1. 27 Feb, 2014 1 commit
  2. 24 Jan, 2014 1 commit
  3. 23 Jan, 2014 1 commit
  4. 22 Jan, 2014 1 commit
  5. 16 Jan, 2014 1 commit
    • Jingning Han's avatar
      Inter-frame non-RD mode decision · 2f52decd
      Jingning Han authored
      This commit setups a test framework for real-time coding. It enables
      a light motion search for non-RD mode decision purpose.
      
      Change-Id: I8bec656331539e963c2b685a70e43e0ae32a6e9d
      2f52decd
  6. 13 Jan, 2014 1 commit
  7. 10 Jan, 2014 1 commit
    • Jingning Han's avatar
      Declare setup_buffer_inter in vp9_rdopt.h · db2b350d
      Jingning Han authored
      This funtion initializes buffer pointers and first stage motion vector
      prediction. It will be needed by both regular rate-distortion
      optimization loop and the non-RD mode decision. Hence move its
      declaration in vp9_rdopt.h
      
      Change-Id: I64e8b6316c9d05f20756a62721533a2e4d158235
      db2b350d
  8. 15 Nov, 2013 1 commit
  9. 28 Oct, 2013 1 commit
    • James Zern's avatar
      vp9: add TileInfo · 58a0f6db
      James Zern authored
      replaces use of cur_tile_mi_(row|col)_(start|end) by VP9_COMMON, making
      it less stateful and more reusable for parallel tile decoding
      
      Change-Id: I1df09382b4567a0e5f4434825d47c79afe2399be
      58a0f6db
  10. 16 Oct, 2013 1 commit
  11. 11 Oct, 2013 1 commit
    • Deb Mukherjee's avatar
      Change in rddiv parameter to make it a power of 2 · d9655e42
      Deb Mukherjee authored
      Converts the constant rddiv parameter to 128 (from 100) and
      implements RDCOST with bit-shift rather than multiplication.
      Other parameters are also adjusted to roughly keep the same
      balance between Rate and Distortion.
      
      There is a slight speed-up of about 0.5-1% (at speed 0) as
      testted on football_cif.
      
      There is a slight change in performance due to small change
      in the parameters.
      derfraw300: +0.033%
      stdhdraw250; +0.102%
      
      Change-Id: I70ac69f58fa71c83108f68fe41796cd19d1fc760
      d9655e42
  12. 03 Oct, 2013 1 commit
    • Jingning Han's avatar
      Refactor inter mode rate-distortion search · 11abab35
      Jingning Han authored
      This commit separates the rate-distortion optimization loop of
      superblocks from that of sub8x8 blocks. This allows better design
      rate-distortion optimization search loop for each setting. It also
      removes the use of SPLITMV and I4X4_PRED therein.
      
      No performance change in speed 0 settings. For bus@CIF at 2000kbps,
      the speed 1 runtime goes from 48009ms to 43894ms (about 10% faster).
      The overall compression performance on derf changed by -0.021%.
      
      Speed 2 runtime goes from 27114ms to 28700ms (6% slower), while the
      overall coding efficiency goes up by 1.629% for derf, 1.236% for yt.
      
      Change-Id: Ie6bdfa0a370148dd60bd800961077f7e97e67dd4
      11abab35
  13. 01 Oct, 2013 1 commit
  14. 25 Sep, 2013 1 commit
  15. 27 Aug, 2013 1 commit
  16. 15 Aug, 2013 1 commit
  17. 17 Jul, 2013 1 commit
    • Ronald S. Bultje's avatar
      Best_rd breakout in rd partition search. · 9f427bfe
      Ronald S. Bultje authored
      About 15% faster for bus (speed 0) first 50 frames @ 1500kbps, which
      goes from 1min36 to 1min24. Results become slightly better (+0.2% on
      derf/yt, +0.4% on hd), probably because of a bugfix for skipmode in
      super_block_yrd(). Overall speed change (on derfraw300) is roughly
      -13%. This can probably be improved further by caching best_yrd
      between partition searches. Also, we might be able to get more
      speedups by always doing PARTITION_NONE before PARTITIONS_SPLIT, not
      just at the sb8x8 level.
      
      Change-Id: I83736949ebd5b4a3b400ee688d7661913fefc98b
      9f427bfe
  18. 15 Jul, 2013 1 commit
    • Jingning Han's avatar
      Skip duplicate block encoding in the rd loop · faff6ed0
      Jingning Han authored
      This speed feature allows the encoder to largely remove the spatial
      dependency between blocks inside a 64x64 superblock, thereby removing
      the need to repeatedly encode superblocks per partition type in the
      rate-distortion optimization loop.
      
      A major challenge lies in the intra modes tested in the rate-distortion
      optimization loop. The subsequent blocks do not have access to the
      reconstructed boundary pixels without the intermediate coding steps.
      This was resolved by using the original pixels for intra prediction
      in the rd loop, followed by an appropriately designed distortion
      modeling on the quantization parameters. Experiments also suggested
      that the performance impact is more discernible at lower bit-rate/psnr
      settings. Hence a quantizer dependent threshold is applied to deactivate
      skip of block coding.
      
      For bus_cif at 2000 kbps,
      speed 0: runtime 269854ms -> 237774ms (12% speed-up) at 0.05dB
               performance loss.
      
      speed 1: runtime 65312ms  -> 61536ms, (7% speed-up) at 0.04dB
               performance loss.
      
      This operation is currently turned on in settings of speed 1.
      
      Change-Id: Ib689741dfff8dd38365d8c1b92860a3e176f56ec
      faff6ed0
  19. 21 Jun, 2013 1 commit
    • Ronald S. Bultje's avatar
      Implement SSE2 block_error. · 54b2a596
      Ronald S. Bultje authored
      Change vp9_block_error() to return a 64bit error variable, change all
      callers to expect a 64bit return value (this will prevent overflows,
      which we basically don't check for at all right now). Remove duplicate
      block_error() function, which fixed that through truncation. Remove
      old (incompatible) mmx/sse2 block_error SIMD versions and replace with
      a new one that returns a 64bit value.
      
      Encoding time of first 50 frames of bus @ 1500kbps goes from 3min29 to
      3min23, i.e. a 3% overall speedup.
      
      Change-Id: Ib71ac5508b5ee8a80f1753cd85d72df1629abe68
      54b2a596
  20. 07 May, 2013 1 commit
    • Jingning Han's avatar
      Merge SB8X8 into the codebase · 776c1482
      Jingning Han authored
      Pull sb8x8 out of experimental list. verified via borg run tests.
      Fixed unit test failures.
      
      Change-Id: I12a4bbd17395930580c048ab68becad1ffe46e76
      776c1482
  21. 30 Apr, 2013 1 commit
    • Ronald S. Bultje's avatar
      sb8x8 integration in rd loop. · d068d869
      Ronald S. Bultje authored
      Work-in-progress, not yet ready for review. TODO items:
      - bitstream writing (encoder) and reading (decoder)
      - decoder reconstruction
      
      Change-Id: I5afb7284e7e0480847b47cd0097cb469433c9081
      d068d869
  22. 26 Apr, 2013 1 commit
  23. 11 Apr, 2013 1 commit
  24. 10 Apr, 2013 1 commit
    • Ronald S. Bultje's avatar
      Make RD superblock mode search size-agnostic. · b4f6098e
      Ronald S. Bultje authored
      Merge various super_block_yrd and super_block_uvrd versions into one
      common function that works for all sizes. Make transform size selection
      size-agnostic also. This fixes a slight bug in the intra UV superblock
      code where it used the wrong transform size for txsz > 8x8, and stores
      the txsz selection for superblocks properly (instead of forgetting it).
      Lastly, it removes the trellis search that was done for 16x16 intra
      predictors, since trellis is relatively expensive and should thus only
      be done after RD mode selection.
      
      Gives basically identical results on derf (+0.009%).
      
      Change-Id: If4485c6f0a0fe4038b3172f7a238477c35a6f8d3
      b4f6098e
  25. 02 Mar, 2013 1 commit
    • Dmitry Kovalev's avatar
      Code cleanup. · 135428e9
      Dmitry Kovalev authored
      Removing redundant 'extern' keyword, lowercase variable names.
      
      Change-Id: I608e8d8579aba8981f5fac3493f77b4481b13808
      135428e9
  26. 27 Feb, 2013 1 commit
    • John Koleszar's avatar
      Spatial resamping of ZEROMV predictors · eb939f45
      John Koleszar authored
      This patch allows coding frames using references of different
      resolution, in ZEROMV mode. For compound prediction, either
      reference may be scaled.
      
      To test, I use the resize_test and enable WRITE_RECON_BUFFER
      in vp9_onyxd_if.c. It's also useful to apply this patch to
      test/i420_video_source.h:
      
        --- a/test/i420_video_source.h
        +++ b/test/i420_video_source.h
        @@ -93,6 +93,7 @@ class I420VideoSource : public VideoSource {
      
           virtual void FillFrame() {
             // Read a frame from input_file.
        +    if (frame_ != 3)
             if (fread(img_->img_data, raw_sz_, 1, input_file_) == 0) {
               limit_ = frame_;
             }
      
      This forces the frame that the resolution changes on to be coded
      with no motion, only scaling, and improves the quality of the
      result.
      
      Change-Id: I1ee75d19a437ff801192f767fd02a36bcbd1d496
      eb939f45
  27. 08 Feb, 2013 1 commit
    • John Koleszar's avatar
      Pass macroblock index to pick inter functions · 6125a1ed
      John Koleszar authored
      Pass the current mb row and column around rather than the
      recon_yoffset and recon_uvoffset, since those offsets will
      change from predictor to predictor, based on the reference
      frame selection.
      
      Change-Id: If3f9df059e00f5048ca729d3d083ff428e1859c1
      6125a1ed
  28. 06 Jan, 2013 1 commit
  29. 18 Dec, 2012 1 commit
  30. 30 Nov, 2012 1 commit
  31. 27 Nov, 2012 1 commit
    • John Koleszar's avatar
      Add vp9_ prefix to all vp9 files · fcccbcbb
      John Koleszar authored
      Support for gyp which doesn't support multiple objects in the same
      static library having the same basename.
      
      Change-Id: Ib947eefbaf68f8b177a796d23f875ccdfa6bc9dc
      fcccbcbb
  32. 26 Nov, 2012 1 commit
    • Paul Wilkins's avatar
      Modified mv prediction. · d22f3d9f
      Paul Wilkins authored
      Modified the  mv_pred() fuunction that chooses a centre
      point from which to start step searches to use the top
      candidate vectors chosen previously.
      
      Some gains (mainly on HD and tested with SB off).
      Std_hd 0.874%, YT-hd 0.174%, YT 0.05%, Derf 0.036%
      
      Change-Id: Ie232284f561838b8ecee0e28dcbb07a9cd46cf56
      d22f3d9f
  33. 02 Nov, 2012 1 commit
  34. 01 Nov, 2012 1 commit
  35. 31 Oct, 2012 3 commits
  36. 30 Oct, 2012 1 commit
    • Ronald S. Bultje's avatar
      Fix superblock experiment. · 7944b4f2
      Ronald S. Bultje authored
      Also merge some duplicate code related to the superblock experiment
      in the RD loop.
      
      Change-Id: Ic93f1d4d1ed81220fd7ecf6e65da2821a215b2de
      7944b4f2
  37. 26 Oct, 2012 1 commit
    • Paul Wilkins's avatar
      Explicit MV reference experiment. · ba30e774
      Paul Wilkins authored
      Coding and costing of mv reference signal.
      
      Issues in updating MV ref with COMPANDED_MVREF_THRESH
      to be resolved. Ideally the MV precision should be defined based
      on absolute MV magnitude not as now the MV ref magnitude.
      
      Update to mv counts moved into bitstream.c because otherwise
      if the motion reference is changed at the last minute the encoder
      and decoder get out of step in terms of the counts used to update
      entropy probs.
      
      Code working on a few test clips but no results yet re benefit vs
      signaling cost and no tuning of red loop to test lower cost alternatives
      based on the available reference values.
      
      Patch 3. Added check to make sure we don't pick a reference
      that would give rise to an uncodeable / out of range residual.
      
      Patch 6-7: Attempt to rebase. OK to submit but best to leave flag off for now.
      
      Patch 9. Remove print no longer needed.
      
      Change-Id: I1938c2ffe41afe6d3cf6ccc0cb2c5d404809a712
      ba30e774
  38. 20 Aug, 2012 1 commit
    • Ronald S. Bultje's avatar
      Superblock coding. · 5d4cffb3
      Ronald S. Bultje authored
      This commit adds a pick_sb_mode() function which selects the best 32x32
      superblock coding mode. Then it selects the best per-MB modes, compares
      the two and encodes that in the bitstream.
      
      The bitstream coding is rather simplistic right now. At the SB level,
      we code a bit to indicate whether this block uses SB-coding (32x32
      prediction) or MB-coding (anything else), and then we follow with the
      actual modes. This could and should be modified in the future, but is
      omitted from this commit because it will likely involve reorganizing
      much more code rather than just adding SB coding, so it's better to let
      that be judged on its own merits.
      
      Gains on derf: about even, YT/HD: +0.75%, STD/HD: +1.5%.
      
      Change-Id: Iae313a7cbd8f75b3c66d04a68b991cb096eaaba6
      5d4cffb3