1. 25 Sep, 2013 - 1 commit
  2. 24 Sep, 2013 - 2 commits
    • Yaowu Xu's avatar
      Limit mv search range for first pass and mbgraph · 35c5d79e
      Yaowu Xu authored
      Both first pass and mbgraph search use block size 16x16 for motion
      estimation. This commit put a limit of motion vector range. The
      effective range allows the entire 16x16 with required subpel
      interpolation input to be completely outside image border, but
      not any further away from image border.
      
      Change-Id: Id70a5ed08be49e70959f064859d72adc7d775d08
      35c5d79e
    • Dmitry Kovalev's avatar
      Moving from int_mv* to MV* (2). · b87696ac
      Dmitry Kovalev authored
      Updating fractional_mv_step_fp and fractional_mv_step_comp_fp function
      types.
      
      Change-Id: I601c4378bc39ac3ffd4e295d9cbd8e1f74829d46
      b87696ac
  3. 11 Sep, 2013 - 1 commit
    • Scott LaVarnway's avatar
      New mode_info_context storage -- undo revert · ac6093d1
      Scott LaVarnway authored
      mode_info_context was stored as a grid of MODE_INFO structs.
      The grid now constists of pointers to MODE_INFO structs.  The
      MODE_INFO structs are now stored as a stream (decoder only),
      eliminating unnecessary copies and is a little more cache
      friendly.
      
      Change-Id: I031d376284c6eb98a38ad5595b797f048a6cfc0d
      ac6093d1
  4. 09 Sep, 2013 - 1 commit
  5. 06 Sep, 2013 - 1 commit
    • Scott LaVarnway's avatar
      New mode_info_context storage · dae17734
      Scott LaVarnway authored
      mode_info_context was stored as a grid of MODE_INFO structs.
      The grid now constists of a pointer to a MODE_INFO struct and
      a "in the image" flag.  The MODE_INFO structs are now stored
      as a stream, eliminating unnecessary copies and is a little
      more cache friendly.
      
      For the test clips used, the decoder performance improved
      by ~4.3% (1080p) and ~9.7% (720p).
      
      Patch Set 2: Re-encoded clips with latest. Now ~1.7% (1080p)
      and 5.9% (720p).
      
      Change-Id: I846f29e88610fce2523ca697a9a9ef2a182e9256
      dae17734
  6. 15 Aug, 2013 - 1 commit
  7. 12 Aug, 2013 - 1 commit
  8. 07 Aug, 2013 - 1 commit
    • Deb Mukherjee's avatar
      Clean ups of the subpel search functions · 71b43b0f
      Deb Mukherjee authored
      Removes some unused code and speed features, and organizes the
      interfaces for fractional mv step functions for use in new speed
      features to come.
      
      In the process a new speed feature - number of iterations per
      step during the subpel search - is exposed.
      
      No change when this parameter is set as the original value of 3.
      
      Results:
      subpel_iters_per_step = 3: baseline
      subpel_iters_per_step = 2: psnr -0.067%, 1% speedup
      subpel_iters_per_step = 1: psnr -0.331%, 3-4% speedup
      
      Change-Id: I2eba8a21f6461be8caf56af04a5337257a5693a8
      71b43b0f
  9. 06 Aug, 2013 - 1 commit
    • Deb Mukherjee's avatar
      Flexible support for various pattern searches · 15b5a6a2
      Deb Mukherjee authored
      Adds a few pattern searches to achieve various tradeoffs
      between motion estimation complexity and performance.
      The search framework is unified across these searches so that a
      common pattern search function is used for all. Besides it will
      be easier to experiment with various patterns or combinations
      thereof at different scales in the future.
      
      The new pattern search is multi-scale and is capable of using
      different patterns at different scales.
      
      The new hex search uses 8 points at the smallest scale
      and 6 points at other scales.
      Two other pattern searches - big-diamond and square are
      also added. Big diamond uses 4 points at the smallest scale and
      8 points in diamond shape at the larger scales.
      Square is very similar conceptually to the default n-step search
      but is somewhat faster since it keeps only one survivor across
      all scales.
      
      Psnr/speed-up results on derf300:
      
      hex: -1.6% psnr%, 6-8% speed-up
      big-diamond: -0.96% psnr, 4-5% speedup
      square: -0.93% psnr, 4-5% speedup
      
      Change-Id: I02a7ef5193f762601e0994e2c99399a3535a43d2
      15b5a6a2
  10. 05 Aug, 2013 - 1 commit
  11. 01 Aug, 2013 - 1 commit
  12. 25 Jul, 2013 - 1 commit
    • Dmitry Kovalev's avatar
      General cleanups. · 7131cb0e
      Dmitry Kovalev authored
      Removing unused constants, macros, and function declarations. Using
      ROUND_POWER_OF_TWO macro, vp9_zero, vp9_copy where possible. Moving
      #include from *.h to *.c. Merging for loops for motion vectors.
      
      Change-Id: Ic3bf841764a2bb177128bb3a6d7aa8f68229cd13
      7131cb0e
  13. 18 Jul, 2013 - 1 commit
  14. 09 Jul, 2013 - 1 commit
    • Ronald S. Bultje's avatar
      Make intra prediction pointers RTCD-based. · 8350e7fe
      Ronald S. Bultje authored
      This probably has a mildly negative impact on performance, but will
      (in future commits - or possibly merged with this one) allow SIMD
      implementations of individual intra prediction functions. We may
      perhaps want to consider having separate functions per txfm-size
      also (i.e. 4x4, 8x8, 16x16 and 32x32 intra prediction functions for
      each intra prediction mode), but I haven't played much with that
      yet.
      
      Change-Id: Ie739985eee0a3fcbb7aed29ee6910fdb653ea269
      8350e7fe
  15. 28 Jun, 2013 - 1 commit
  16. 26 Jun, 2013 - 1 commit
    • Paul Wilkins's avatar
      Change meaning of cpi->sf.first_step and rename. · e606cac0
      Paul Wilkins authored
      Renamed cpi->sf.first_step to cpi->sf.reduce_first_step_size
      and changed its meaning such that it is a delta applied to
      reduce the default first step size (>> x) in the motion search
      rather than an absolute value.
      
      The default first step size is already changed according to the image
      dimensions (smaller for smaller images). cpi->sf.reduce_first_step_size
      now applies a further correction from the default.
      
      Change-Id: Ia94e08bc24c67b604831f980909af7e982fcd16d
      e606cac0
  17. 07 Jun, 2013 - 2 commits
  18. 08 May, 2013 - 2 commits
  19. 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
  20. 06 May, 2013 - 1 commit
    • Scott LaVarnway's avatar
      Removed vp9_setup_intra_recon() · cb7955d8
      Scott LaVarnway authored
      This setup is now handled by vp9_build_intra_predictors()
      when left_available and/or up_available is zero.
      
      Change-Id: I59cec0ab95f8be69ce885fd20727510e4deef8a0
      cb7955d8
  21. 29 Apr, 2013 - 1 commit
  22. 26 Apr, 2013 - 2 commits
  23. 25 Apr, 2013 - 2 commits
    • John Koleszar's avatar
      Remove predictor pointers from BLOCKD · a99e1aa8
      John Koleszar authored
      Access these members from MACROBLOCKD instead.
      
      Change-Id: I2574622e577bb9feede47f6b7ccbb11f3e928ca8
      a99e1aa8
    • John Koleszar's avatar
      Remove BLOCK structure · 4bd0f4f6
      John Koleszar authored
      All members can be referenced from their per-plane counterparts, and
      removes assumptions about 24 blocks per macroblock.
      
      Change-Id: I593fb0715e74cd84b48facd1c9b18c3ae1185d4b
      4bd0f4f6
  24. 22 Apr, 2013 - 2 commits
  25. 19 Apr, 2013 - 1 commit
    • John Koleszar's avatar
      Move dst to per-plane MACROBLOCKD data · d12376aa
      John Koleszar authored
      First in a series of commits moving the framebuffers pointers to
      per-plane data, so that they can be indexed numerically rather than
      by name.
      
      Change-Id: I6e0d60fd4d51e6375c384eb7321776564df21775
      d12376aa
  26. 18 Apr, 2013 - 1 commit
    • Jingning Han's avatar
      Make the use of pred buffers consistent in MB/SB · 6f43ff58
      Jingning Han authored
      Use in-place buffers (dst of MACROBLOCKD) for  macroblock prediction.
      This makes the macroblock buffer handling consistent with those of
      superblock. Remove predictor buffer MACROBLOCKD.
      
      Change-Id: Id1bcd898961097b1e6230c10f0130753a59fc6df
      6f43ff58
  27. 08 Mar, 2013 - 1 commit
    • Jingning Han's avatar
      Extend diff MV limit from +/-256 to +/-1024 · 2a5278bd
      Jingning Han authored
      Increase the motion search range by 4x. Change MV_CLASS tree of the
      entropy coding to allow two additional mv classes to cover the
      extended motion vector limit. The codec determines the effective
      motion search range conditioned on the actual frame dimension.
      
      It provides coding gains:
      
      stdhd 0.39%
      yt    0.56%
      hd    0.47%
      
      Major coding performance gains are packed in several sequences with
      intense motion activities, e.g., ped_1080p gains 7% at high bit-rates,
      and on average 3%.
      
      TODO: Need to further tune the rate control and motion search units.
      
      Change-Id: Ib842540a6796fbee5a797809433ef6a477c6d78d
      2a5278bd
  28. 28 Feb, 2013 - 1 commit
    • Dmitry Kovalev's avatar
      Code cleanup. · 0d9cc0a9
      Dmitry Kovalev authored
      Removing redundant 'extern' keyword, better formatting, code
      simplification.
      
      Change-Id: I132fea14f08c706ee9ea147d19464d03f833f25b
      0d9cc0a9
  29. 27 Feb, 2013 - 2 commits
    • John Koleszar's avatar
      Use ref_frame_map vice active_ref_idx on the encoder · 800ad0b8
      John Koleszar authored
      This patch makes the encoder's use of ref_frame_map and active_ref_idx
      consistent with the decoder. ref_frame_map[] maps a reference buffer
      index to its actual location in the yv12_fb array, since many
      references may share an underlying buffer. active_ref_idx[] mirrors
      cpi->{lst,gld,alt}_fb_idx, holding the active references in each
      slot.
      
      This also fixes a bug in setup_buffer_inter() where the incorrect
      reference was used to populate the scaling factors.
      
      Change-Id: Id3728f6d77cffcd27c248903bf51f9c3e594287e
      800ad0b8
    • 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
  30. 26 Feb, 2013 - 1 commit
    • John Koleszar's avatar
      Refactor inter recon functions to support scaling · 6a4f708c
      John Koleszar authored
      Ensure that all inter prediction goes through a common code path
      that takes scaling into account. Removes a bunch of duplicate
      1st/2nd predictor code. Also introduces a 16x8 mode for 8x8
      MVs, similar to the 8x4 trick we were doing before. This has an
      unexpected effect with EIGHTTAP_SMOOTH, so it's disabled in that
      case for now.
      
      Change-Id: Ia053e823a8bc616a988a0af30452e1e75a739cba
      6a4f708c
  31. 16 Jan, 2013 - 1 commit
    • John Koleszar's avatar
      Start to anonymize reference frames · da832a80
      John Koleszar authored
      Remove lst_fb_idx, gld_fb_idx, alt_fb_idx, refresh_last_frame,
      refresh_golden_frame, refresh_alt_ref_frame from common. Gold/Alt are
      encode side conventions. From the decoder's perspective, we want to be
      dealing with numbered references.
      
      Updates to active_ref 2 signal mode context switches, vestigial from
      refresh_alt_ref_frame. This needs some clean up to make sense with
      increased numbers of reference frames, as well as reimplementing the
      swapping of alt/golden which was previously done using the
      buffer-to-buffer copy mechanism removed in an earlier commit.
      
      Change-Id: I7334445158b7666f9295d2a2dd22aa03f4485f58
      da832a80
  32. 09 Jan, 2013 - 1 commit
    • Adrian Grange's avatar
      New prediction filter · 7d6b5425
      Adrian Grange authored
      This patch removes the old pred-filter experiment and replaces it
      with one that is implemented using the switchable filter framework.
      
      If the pred-filter experiment is enabled, three interopolation
      filters are tested during mode selection; the standard 8-tap
      interpolation filter, a sharp 8-tap filter and a (new) 8-tap
      smoothing filter.
      
      The 6-tap filter code has been preserved for now and if the
      enable-6tap experiment is enabled (in addition to the pred-filter
      experiment) the original 6-tap filter replaces the new 8-tap smooth
      filter in the switchable mode.
      
      The new experiment applies the prediction filter in cases of a
      fractional-pel motion vector. Future patches will apply the filter
      where the mv is pel-aligned and also to intra predicted blocks.
      
      Change-Id: I08e8cba978f2bbf3019f8413f376b8e2cd85eba4
      7d6b5425
  33. 26 Dec, 2012 - 1 commit