1. 18 Jan, 2013 2 commits
    • John Koleszar's avatar
      Use alt-ref frame context for keyframes · 2f24ad9e
      John Koleszar authored
      This matches the behavior prior to generalizing the frame context
      selection, and intuitively makes sense in that the first forward ref
      is immediately after the keyframe, so it's quality is improved a bit
      by using the keyframe's entropy context rather than the default.
      
      Change-Id: Ia82cef79382b9d8cfafdc44ba0533d4dc3e44053
      2f24ad9e
    • Yaowu Xu's avatar
      a minor change to a portion of loop filtering · b95ed688
      Yaowu Xu authored
      The loop filtering used for MB edge or internal edge of a MB using 8x8
      tranform was reading 5 pixel each side and writting 3 pixel each side.
      With suggestion from Aki and Scott on hardware&software performance,
      this commit changed to read 4 pixel each side and write 3 pixel each
      side.
      
      Change-Id: I584393906c4f5f948a581d6590959522572743bb
      b95ed688
  2. 16 Jan, 2013 5 commits
    • John Koleszar's avatar
      Preserve the previous golden frame on golden updates · 26bd81b9
      John Koleszar authored
      This commit restores the quality lost when the buffer-to-buffer copy
      logic was removed. Note that this is specific to the current use of
      golden frames and will need rework when RTC functionality is added.
      
      Change-Id: I7324a75acd96eafd9e0f9b8633d782e390d5dc21
      26bd81b9
    • John Koleszar's avatar
      Generalize and increase frame coding contexts · 4b65837b
      John Koleszar authored
      Previously there were two frame coding contexts tracked, one for normal
      frames and one for alt-ref frames. Generalize this by signalling the
      context to use in the bitstream, rather than tieing it to the alt ref
      refresh bit. Also increase the number of contexts available to 4, which
      may be useful for temporal scalability.
      
      Change-Id: I7b66daaddd55c535c20cd16713541fab182b1662
      4b65837b
    • 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
    • John Koleszar's avatar
      Update encoder to use fb_idx_ref_cnt · 394b0a6a
      John Koleszar authored
      Do reference counting the same way on the encoder as the decoder does,
      rather than maintaining the 'flags' member of YV12_BUFFER_CONFIG.
      
      Change-Id: I91dc210ffca081acaf9d5c09a06e7461b3c3139c
      394b0a6a
    • John Koleszar's avatar
      Remove buffer-to-buffer copy logic · b8e02798
      John Koleszar authored
      This is the first in a series of commits to add additional reference
      frames to the codec. Each frame will be able to update any of the
      available references, but copying between references is not
      supported.
      
      Change-Id: I5945b5ce6cc3582c495102b4e7eed4f08c44d5a1
      b8e02798
  3. 15 Jan, 2013 1 commit
  4. 14 Jan, 2013 10 commits
    • John Koleszar's avatar
      Use INT64_MAX instead of LLONG_MAX · 24bc1a71
      John Koleszar authored
      These variables have the type int64_t, not long long. long long could
      be a larger type than 64 bits. Emulate INT64_MAX for older versions of
      MSVC, and remove the unreferenced vpx_ports/vpxtypes.h
      
      Change-Id: Ideaca71838fcd3849d816d5ab17aa347c97d03b0
      24bc1a71
    • Ronald S. Bultje's avatar
      Remove compound intra-intra experiment. · c9071601
      Ronald S. Bultje authored
      This experiment gives little gains and adds relatively much code
      complexity (and it hinders other experiments), so let's get rid of
      it.
      
      Change-Id: Id25e79a137a1b8a01138aa27a1fa0ba4a2df274a
      c9071601
    • Yaowu Xu's avatar
      Merge experiment "subpelrefmv" · 741fbe96
      Yaowu Xu authored
      Change-Id: Iac7f3d108863552b850c92c727e00c95571c9e96
      741fbe96
    • Yaowu Xu's avatar
      Merge experiment "widerlpf" · f7dab600
      Yaowu Xu authored
      Change-Id: I0c94475075e66e13cfe4c20fab7db6474441ae86
      f7dab600
    • Yaowu Xu's avatar
      changed UV plane loop filtering for TX_8X8 · ad9a16ed
      Yaowu Xu authored
      In commit 9a1d73d0, loop filtering was added for UV 4x4 boundaries
      when TX_8X8 is used by a MB. This commit further refined the decision
      to be based on the actual transform used for the UV planes. When
      UV planes use 4x4 transform, i.e. when prediction mode used is either
      I8X8_PRED or SPLITMV, UV planes are filtered on 4x4 boundaries, and no
      filtering is applied on 4x4 block boundaries when UV planes use 8X8
      transform.
      
      Change-Id: Ibb404face0a1d129b4b4abaf67c55d82e8df8bec
      ad9a16ed
    • Yaowu Xu's avatar
      change to evaluate reference mvs using above only · fdf86541
      Yaowu Xu authored
      Change-Id: Ibcc342efac0a9be7a21d9b2c09984d9e16bbb225
      fdf86541
    • Yaowu Xu's avatar
      Fix compiler warnings · 113005b1
      Yaowu Xu authored
      The warnings caused verify failure with gerrit for several  commits
      
      Change-Id: I030df8638bd69b8783a3ac58e720ff9f0bfd546c
      113005b1
    • Adrian Grange's avatar
      Merge prediction filter · 7bcaac3e
      Adrian Grange authored
      Removed the experimental flag from around the prediction filter.
      
      Change-Id: Ic1dd2db8fe8ac17ed5129f83094d4c5cdd5527d2
      7bcaac3e
    • Ronald S. Bultje's avatar
      Reset x->skip for each iteration in the RD loop. · 290b83ab
      Ronald S. Bultje authored
      This prevents ill-defined behaviour, such as setting x->skip for a mode
      that is excluded because of frame-level flags (e.g. filter selection,
      compound prediction selection), then not breaking out of the RD loop
      because the mode is not allowed, but keeping the flag on. Whatever mode
      is iterated through next in the RD loop will then carry this flag, and
      all sort of bad stuff happens, such as x->skip being set on intra pred
      modes.
      
      Change-Id: I5bec46b36e38292174acb1c564b3caf00a9b4b9a
      290b83ab
    • John Koleszar's avatar
      Fix unused variable warnings · 76ac5b39
      John Koleszar authored
      Previous commit does not build cleanly on Jenkins with the DWT/DCT
      hybrid experiment enabled (--enable-dwtdcthybrid).
      
      Change-Id: Ia67e8f59d17ef2d5200ec6b90dfe6711ed6835a5
      76ac5b39
  5. 13 Jan, 2013 1 commit
    • Deb Mukherjee's avatar
      Further enhancements/fixes on dct/dwt hybrid txfm · 516db21c
      Deb Mukherjee authored
      Fixes some scaling issues. Adds an option to only compute the
      dct on the low-low subband for 32x32 and 64x64 blocks using
      only a single 16x16 dct after 1 and 2 wavelet decomposition
      levels respectively. Also adds an option to use a 8x8 dct
      as building block.
      
      Currenlty with the 2/6 filter and with a single 16x16 dct on
      the low low band, the reuslts compared to full 32x32 dct is
      as follows:
      derf: -0.15%
      yt: -0.29%
      std-hd: -0.18%
      hd: -0.6%
      These are my current recommended settings, since the 2/6 filter
      is very simple.
      
      Results with 8x8 dct are about 0.3% worse.
      
      Change-Id: I00100cdc96e32deced591985785ef0d06f325e44
      516db21c
  6. 12 Jan, 2013 2 commits
    • Scott LaVarnway's avatar
      WIP: Added sse2 version of vp9_mb_lpf_horizontal_edge_w · b20ce07d
      Scott LaVarnway authored
      and vp9_mb_lpf_vertical_edge_w_sse2.  This was quickly done so we can
      run some tests over the weekend.  Future commits will optimize/refactor these
      functions further.
      
      The decoder performance improved by ~17% for the clip used.
      
      Change-Id: I612687cd5a7670ee840a0cbc3c68dc2b84d4af76
      b20ce07d
    • Yaowu Xu's avatar
      Add loop filtering for UV plane · 9a1d73d0
      Yaowu Xu authored
      On block boundary within a MB when 8x8 block boundary only is filtered
      for Y.
      
      Change-Id: Ie1c804c877d199e78e2fecd8c2d3f1e114ce9ec1
      9a1d73d0
  7. 11 Jan, 2013 5 commits
  8. 10 Jan, 2013 3 commits
  9. 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
  10. 08 Jan, 2013 5 commits
    • Deb Mukherjee's avatar
      Adds 64x64 hybrid dct/dwt transform · 4b7304ee
      Deb Mukherjee authored
      This is to add to the 64x64 transform experiment as an alternative to
      a 64x64 DCT.
      Two levels of wavelet decomposition is used on a 64x64 block, followed
      by 16x16 DCT on the four lowest subbands. The highest three subbands
      are left untransformed after the first level DWT.
      
      Change-Id: I3d48d5800468d655191933894df6b46e15adca56
      4b7304ee
    • Ronald S. Bultje's avatar
      Merge superblocks (32x32) experiment. · 4455036c
      Ronald S. Bultje authored
      Change-Id: I0df99742029834a85c4933652b0587cf5b6b2587
      4455036c
    • Yunqing Wang's avatar
      vp9_sub_pixel_variance16x2 SSE2 optimization · 8d568312
      Yunqing Wang authored
      About 5% decoder speedup.
      
      Change-Id: Ib6687d337af758a536a0e7e289f400990f1f9794
      8d568312
    • Yaowu Xu's avatar
      reset segement map on key frame · c14439c3
      Yaowu Xu authored
      This is to fix a decoder crash when decoder skips a number of frame to
      continue decoding from a later key frame.
      
      Change-Id: I3ba116eba6c3440e0528a21f53745f694302e4ad
      c14439c3
    • Yaowu Xu's avatar
      minor loop filter refactoring and cleanup · d278d018
      Yaowu Xu authored
      This commit did a couple of minor cleanup/refactoring to prepare for
      futher loop filter experiments. It merged y_only version of loop filter
      function into the regular one, which makes sure that same logic is used
      for functions for picking level and for actual loop filtering.
      
      Change-Id: Id10c94dccd45f58e5310bacfdf6ee63cbb60b86f
      d278d018
  11. 07 Jan, 2013 3 commits
  12. 06 Jan, 2013 1 commit
  13. 04 Jan, 2013 1 commit
    • Adrian Grange's avatar
      Fix mode selection infinite loop bug · 81d1171f
      Adrian Grange authored
      Mode selection for SBs could enter an infinite loop because
      the interpolation filter mode index was not being reset
      correctly.
      
      Change-Id: I4bbe726f29ef5b6836e94884067c46084713cc11
      81d1171f