1. 08 Aug, 2014 2 commits
  2. 07 Aug, 2014 1 commit
    • Deb Mukherjee's avatar
      Changes hdr for profiles > 1 for intraonly frames · 09bf1d61
      Deb Mukherjee authored
      Specifies the bit-depth, color sampling and colorspace
      for intra only frames for profiles > 0
      
      Also adds checks to ensure that profile 1 and 3 are
      exclusively used for non 420 streams.
      
      Change-Id: Icfb15fa1acccbce8f757c78fa8a2f60591360745
      09bf1d61
  3. 06 Aug, 2014 1 commit
  4. 05 Aug, 2014 1 commit
    • Adrian Grange's avatar
      Create function vp9_preserve_existing_gf · 0984121f
      Adrian Grange authored
      This code was being called from two places and
      difficult to parse. I rationalized it in to a
      function to improve readability.
      
      Change-Id: I154b8fe0b84e6c01e69601e78e67bd47c954d8b6
      0984121f
  5. 04 Aug, 2014 1 commit
  6. 24 Jul, 2014 1 commit
  7. 23 Jul, 2014 1 commit
    • Minghai Shang's avatar
      [spatial svc]Fix reference issues · 929001bf
      Minghai Shang authored
      1. Remove last reference flag for first frame upper layers in one pass mode.
      2. Disable refresh golden frame flag for key frames.
      
      Change-Id: I44ac1bd2c795169e4fbfdd078ea79a1d33a204d6
      929001bf
  8. 22 Jul, 2014 2 commits
  9. 21 Jul, 2014 2 commits
    • Alex Converse's avatar
      Remove unfinished VP9 alpha channel. · 5926e7c0
      Alex Converse authored
      Change-Id: Ic5d3a3a0dac10b49495771886a31e793bb78b5ca
      5926e7c0
    • Yaowu Xu's avatar
      Moved call to vp9_clear_system_state() to a proper location · bcaf1d69
      Yaowu Xu authored
      The commit moved a call to vp9_clear_system_state() to a correct
      location, i.e. prior function calls using floating point numbers.
      This was to fix a mismatch mmx code and sse2 version, where a
      floating point number used in adjust_frame_rate(cpi) gets NAN due
      to mmx registers being in wrong state.
      
      Change-Id: I40e0a6de98812000ccee6a729badb630604fd7e6
      bcaf1d69
  10. 17 Jul, 2014 2 commits
    • Pengchong Jin's avatar
      Fixed a bug of setting wrong first pass mb stats pointer · e358ab5f
      Pengchong Jin authored
      The bug sets the wrong pointer to the first pass mb stats
      if the encoder does the re-coding in the second pass.
      
      Change-Id: I8a11f45dd7dceb38de814adec24cecccae370d00
      e358ab5f
    • Adrian Grange's avatar
      Modified frame buffer handling · f68aaa38
      Adrian Grange authored
      This patch is the first step toward simplifying the
      frame buffer handling.
      
      The final goal is to have a common frame buffer handling
      framework for both encoder and decoder that incorporates
      the existing ability to use externally allocated memory.
      
      Change-Id: I2c378a4f54a39908915f46c4260e17a080db7ff1
      f68aaa38
  11. 16 Jul, 2014 2 commits
    • Yaowu Xu's avatar
      make default_interp_filter choice a speed feature · 51c60a89
      Yaowu Xu authored
      This commit changed the hard-coded DEFAULT_INTERP_FILTER to a speed
      feature with the same default value: SWITCHABLE.
      
      Change-Id: I7f54f40f1bd3f5277841d04b85db7a84e47313f1
      51c60a89
    • Paul Wilkins's avatar
      Changes to rd balance and multi-arf bug fix. · b691230d
      Paul Wilkins authored
      2 pass only change to calculation of rd mult based on Q.
      Make a small adjustment based on frame type and also
      replace adjustment based on iifactor with an one based
      on the ambient GF/ARF boost level.
      
      Also fix multi arf bug / issue.
      
      Overall these change give an slight improvement in ssim
      but hurt psnr a little.
      
      Change-Id: I5e1751e3ff5390a26f543d7855059e6fbcce105e
      b691230d
  12. 15 Jul, 2014 1 commit
  13. 14 Jul, 2014 1 commit
    • Minghai Shang's avatar
      [spatial svc]Implement alt reference frames · e899859c
      Minghai Shang authored
      All changes are for spatial svc only.
      1. Enable encoding hidden frames in each layer and use alt reference idex to reference the hidden frame in each layer
      2. Use golden reference idx for spatial reference
      3. For those layers that don't have hidden frames (caused by lack of frame buffers), reference a hidden frame in lower layers
      4. Add "auto-alt-refs" in svc options
      Change-Id: Idf27d1fd2fb5f3ffd9e86d2119235e3dad36c178
      e899859c
  14. 11 Jul, 2014 2 commits
  15. 08 Jul, 2014 1 commit
    • Tim Kopp's avatar
      Vp9 denoiser MC bugfix · 3c86228c
      Tim Kopp authored
      In the previous version, only certain buffers in the macroblockd were saved and
      the restored. In this version, all of the buffers are saved and restored. The
      code was then rolled into a loop for readability.
      
      Also contains a tiny fix for when the -DOUTPUT_YUV_DENOISED flag is used.
      
      Change-Id: Id925ef8b3fa122ae88acfa1d9a1e4df45df83518
      3c86228c
  16. 02 Jul, 2014 3 commits
    • Alex Converse's avatar
      Split vp9_rdopt into vp9_rdopt and vp9_rd. · 03c276ea
      Alex Converse authored
      vp9_rdopt is for making rd optimal mode decisions. vp9_rd is for all
      other rd related routines. Anything used outside of making an rd optimal
      decision belongs in rd.
      
      Change-Id: I772a3073f7588bdf139f551fb9810b6864d8e64b
      03c276ea
    • Tim Kopp's avatar
      VP9 denoising enabled by noise_sensitivity param · 9c9922df
      Tim Kopp authored
      As in VP8.
      
      Currently, this parameter is set with the VP8E_SET_NOISE_SENSITIVITY flag.
      The flag was not renamed so that we don't break the interface for webrtc. This
      should probably be changed at some point in the future.
      
      Change-Id: Ic73fcb0dde9d1d019e9d042050b617333ac65472
      9c9922df
    • Paul Wilkins's avatar
      Multi-arf: Add code to turn it on and off. · 88307723
      Paul Wilkins authored
      Add test code to turn multi-arf on and off depending
      on group length and zero motion.
      
      Changes to active max group length for mult-arf.
      
      Fund second arf only from normal frame bits.
      
      Change-Id: I920287fac1c886428c15a39f731a25d07c2b796c
      88307723
  17. 01 Jul, 2014 1 commit
  18. 30 Jun, 2014 1 commit
    • Yunqing Wang's avatar
      Decide the partitioning threshold from the variance histogram · 9d41313e
      Yunqing Wang authored
      Before encoding a frame, calculate and store each 16x16 block's
      variance of source difference between last and current frame.
      Find partitioning threshold T for the frame from its variance
      histogram, and then use T to make partition decisions.
      
      Comparing with fixed 16x16 partitioning, rtc set test showed an
      overall psnr gain of 3.242%, and ssim gain of 3.751%. The best
      psnr gain is 8.653%.
      
      The overall encoding speed didn't change much. It got faster for
      some clips(for example, 12% speedup for vidyo1), and a little
      slower for others.
      
      Also, a minor modification was made in datarate unit test.
      
      Change-Id: Ie290743aa3814e83607b93831b667a2a49d0932c
      9d41313e
  19. 27 Jun, 2014 2 commits
  20. 26 Jun, 2014 2 commits
    • Pengchong Jin's avatar
      Skip the partition search for the frame with no motion · 12861260
      Pengchong Jin authored
      This patch allows the encoder to skip the partition search for the
      frame if it is an inter frame and only zero motion vectors have
      been detected in the first pass. The partition size is directly
      assigned according to the difference variance.
      
      Borg tests show overall little performance changes in term of PSNR
      (derf -0.027%, yt 0.152%, hd 0.078%, stdhd 0%). The worst case of
      PSNR loss is -0.514% from yt. The best PSNR gain is 4.293% from yt.
      The second pass encoding speedup for slideshow clips is 15%-40%.
      
      Change-Id: I881f347d286553ee5594a9ea09ba1a61ac684045
      12861260
    • 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
  21. 25 Jun, 2014 1 commit
    • Paul Wilkins's avatar
      Dual arf: Name changes. · 9f76c1ec
      Paul Wilkins authored
      Cosmetic patch only in response to comments on
      previous patches suggesting a couple of name changes
      for consistency and clarity.
      
      Change-Id: Ida3a359b0d5755345660d304a7697a3a3686b2a3
      9f76c1ec
  22. 24 Jun, 2014 8 commits
    • Minghai Shang's avatar
      [spatial svc]Implement lag in frames for spatial svc · 277338f7
      Minghai Shang authored
      Change-Id: I930dced169c9d53f8044d2754a04332138347409
      277338f7
    • Johann's avatar
      Use the VP9 version of extend_borders · 58ac00e9
      Johann authored
      Change-Id: Ie16f12b4763a45465e130fb39cbb727c08529ac8
      58ac00e9
    • Adrian Grange's avatar
      Fix test on maximum downscaling limits · 8357292a
      Adrian Grange authored
      There is a normative scaling range of (x1/2, x16)
      for VP9. This patch fixes the maximum downscaling
      tests that are applied in the convolve function.
      
      The code used a maximum downscaling limit of x1/5
      for historic reasons related to the scalable
      coding work. Since the downsampling in this
      application is non-normative it will revert to
      using a separate non-normative scaler.
      
      Change-Id: Ide80ed712cee82fe5cb3c55076ac428295a6019f
      8357292a
    • Paul Wilkins's avatar
      Dual ARF changes: Buffer index selection. · 60244ec1
      Paul Wilkins authored
      Add indirection to the section of buffer indices.
      This is to help simplify things in the future if we
      have other codec features that switch indices.
      
      Limit the max GF interval for static sections to fit
      the gf_group structures.
      
      Change-Id: I38310daaf23fd906004c0e8ee3e99e15570f84cb
      60244ec1
    • Paul Wilkins's avatar
      Further dual arf changes: multi_arf_allowed. · 9aca602e
      Paul Wilkins authored
      Add multi_arf_allowed flag.
      Re-initialize buffer indices every kf.
      Add some const indicators.
      
      Change-Id: If86c39153517c427182691d2d4d4b7e90594be71
      9aca602e
    • Paul Wilkins's avatar
      Fix some bugs in multi-arf · 8160a26f
      Paul Wilkins authored
      Fix some bugs relating to the use of buffers
      in the overlay frames.
      
      Fix bug where a mid sequence overlay was
      propagating large partition and transform sizes into
      the subsequent frame because of :-
        sf->last_partitioning_redo_frequency  > 1 and
        sf->tx_size_search_method == USE_LARGESTALL
      
      Change-Id: Ibf9ef39a5a5150f8cbdd2c9275abb0316c67873a
      8160a26f
    • Paul Wilkins's avatar
      Clean out old CONFIG_MULTIPLE_ARF code. · 26110225
      Paul Wilkins authored
      Remove the old experimental multi arf code that was under
      the flag CONFIG_MULTIPLE_ARF.
      
      Change-Id: Ib24865abc11691d6ac8cb0434ada1da674368a61
      26110225
    • Paul Wilkins's avatar
      Experiment for mid group second arf. · 2e430cba
      Paul Wilkins authored
      This patch implements a mechanism for inserting a second
      arf at the mid position of arf groups.
      
      It is currently disabled by default using the flag multi_arf_enabled.
      
      Results are currently down somewhat in initial testing if
      multi-arf is enabled. Most of the loss is attributable to the
      fact that code to preserve the previous golden frame
      (in the arf buffer) in cases where we are coding an overlay
      frame, is currently disabled in the multi-arf case.
      
      Change-Id: I1d777318ca09f147db2e8c86d7315fe86168c865
      2e430cba
  23. 23 Jun, 2014 1 commit
    • Adrian Grange's avatar
      Allocate buffers based on correct chroma format · 8c1f071f
      Adrian Grange authored
      The encoder currently allocates frame buffers before
      it establishes what the chroma sub-sampling factor is,
      always allocating based on the 4:4:4 format.
      
      This patch detects the chroma format as early as
      possible allowing the encoder to allocate buffers of
      the correct size.
      
      Future patches will change the encoder to allocate
      frame buffers on demand to further reduce the memory
      profile of the encoder and rationalize the buffer
      management in the encoder and decoder.
      
      Change-Id: Ifd41dd96e67d0011719ba40fada0bae74f3a0d57
      8c1f071f