1. 04 Oct, 2013 2 commits
    • Dmitry Kovalev's avatar
      Cleaning up foreach_predicted_block_in_plane() function. · ee74054e
      Dmitry Kovalev authored
      Change-Id: Ibb3d9667eba56621667412f62097aa7a392659c2
      ee74054e
    • Dmitry Kovalev's avatar
      Adding vp9_get_filter_kernel() function. · 9ec09700
      Dmitry Kovalev authored
      Moving INTERPOLATIONFILTERTYPE enum and subpix_fn_table struct to
      vp9_filter.h. Adding convenient typedef for subpel kernels.
      
      Function vp9_setup_interp_filters() besides setting xd->subpix.filter_x &
      xd->subpix.filter_y has a side effect of also setting scale factors. This
      is not required inside decode_modes_b() because scale factors have been
      already set by set_ref() calls. That's why replacing
      vp9_setup_interp_filters() call with newly created vp9_get_filter_kernel()
      call. The behavior of vp9_setup_interp_filters() is unchanged (it
      is used from the encoder).
      
      Change-Id: I3f36d3f7cd8d15195a6e2fafd1777cdaf9ecb847
      9ec09700
  2. 26 Sep, 2013 1 commit
  3. 19 Sep, 2013 1 commit
  4. 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
  5. 09 Sep, 2013 1 commit
  6. 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
  7. 26 Aug, 2013 1 commit
  8. 22 Aug, 2013 2 commits
  9. 21 Aug, 2013 2 commits
  10. 16 Aug, 2013 1 commit
  11. 12 Aug, 2013 1 commit
    • Dmitry Kovalev's avatar
      Removing foreach_predicted_block_uv function. · 76d166e4
      Dmitry Kovalev authored
      Adding function build_inter_predictors_for_planes to build inter
      predictors for specified planes. This function allows to remove
      condition "#if CONFIG_ALPHA" and use MAX_MB_PLANE for general case.
      Renaming 'which_mv' local var to 'ref', and 'weight' argument to 'ref'.
      
      Change-Id: I1a97160c9263006929d38953f266bc68e9c56c7d
      76d166e4
  12. 09 Aug, 2013 2 commits
  13. 08 Aug, 2013 1 commit
    • Dmitry Kovalev's avatar
      Cleanup inside vp9_reconinter.c. · a766d891
      Dmitry Kovalev authored
      Using block width and block height instead of their logarithms. Using
      SUBPEL_BITS and SUBPEL_SHIFTS constants instead of magic numbers.
      
      Change-Id: I4e10e93c907c8a5e1cb27dfe74d1fcdcc4995448
      a766d891
  14. 06 Aug, 2013 1 commit
    • Dmitry Kovalev's avatar
      Using only one scale function in scale_factors struct. · 1c552e79
      Dmitry Kovalev authored
      Functions scale_mv_q4 and scale_mv_q3_to_q4 were almost identical except
      q3->q4 conversion in scale_mv_q3_to_q4. Now q3->q4 conversion happens
      directly in vp9_build_inter_predictor.
      
      Also adding useful constants: SUBPEL_BITS and SUBPEL_MASK.
      
      Change-Id: Ia0a6ad2ac07c45fdf95a5139ece6286c035e9639
      1c552e79
  15. 05 Aug, 2013 1 commit
  16. 02 Aug, 2013 2 commits
  17. 01 Aug, 2013 1 commit
  18. 27 Jul, 2013 1 commit
  19. 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
  20. 18 Jul, 2013 1 commit
    • Ronald S. Bultje's avatar
      Merge scale_factors and scale_factors_uv. · 5ebe503f
      Ronald S. Bultje authored
      This prevents a duplicate memcpy of a 128-byte struct every time
      set_scale_factors() is called (which is a lot), thus leading to a
      decrease from 3.7 MB to 1.85 MB of struct copying per 64x64 block
      RD/partition loop.
      
      Overall, this decreases encoding time of the first 50 frames of bus
      @ 1500kbps (speed 0) from 1min5.9 to 1min4.9, i.e. about a 1.5%
      overall speedup. We can likely get more gains by removing the copy
      of the other struct (and replacing it with an indexing) as well.
      
      Change-Id: I3dceb7e79f71e6fe911b11cc994cf89a869dde7a
      5ebe503f
  21. 16 Jul, 2013 1 commit
    • Yaowu Xu's avatar
      Change to extend full border only when needed · 5b915ebd
      Yaowu Xu authored
      This is a short term optimization till we work out a decoder
      implementation requiring no frame border extension.
      
      Change-Id: I02d15bfde4d926b50a4e58b393d8c4062d1be70f
      5b915ebd
  22. 11 Jul, 2013 1 commit
  23. 10 Jul, 2013 1 commit
  24. 02 Jul, 2013 1 commit
  25. 27 Jun, 2013 1 commit
    • Dmitry Kovalev's avatar
      Decoder's code cleanup. · 3231da0a
      Dmitry Kovalev authored
      Using vp9_set_pred_flag function instead of custom code, adding
      decode_tokens function which is now called from decode_atom,
      decode_sb_intra, and decode_sb.
      
      Change-Id: Ie163a7106c0241099da9c5fe03069bd71f9d9ff8
      3231da0a
  26. 21 Jun, 2013 1 commit
  27. 10 Jun, 2013 1 commit
    • Tero Rintaluoma's avatar
      Fixed point reference picture scaling · 86bb6df0
      Tero Rintaluoma authored
      Fixed point scaling factors are calculated once for each
      reference frame by using integer division. Otherwise fixed point
      scaling routines are used in all scaling calculations. This makes it
      possible to calculate fixed point scaling factors on device driver
      software and pass them to hardware and thus avoid division on hardware.
      
      TODO:
       - Missing check for maximum frame dimensions
         (currently scaling uses 14 bits)
       - Missing check for maximum scaling ratio
         (upscaling 16:1, downscaling 2:1)
      
      Problems:
       - Straightforward fixed point implementation can cause error +-1
         compared to integer division (i.e. in x_step_q4). Should only
         be an issue for frames larger than 16k.
      
      Change-Id: I3cf4dabd610a4dc18da3bdb31ae244ebaf5d579c
      86bb6df0
  28. 07 Jun, 2013 1 commit
    • Ronald S. Bultje's avatar
      Change ref frame coding. · 6ef805eb
      Ronald S. Bultje authored
      Code intra/inter, then comp/single, then the ref frame selection.
      Use contextualization for all steps. Don't code two past frames
      in comp pred mode.
      
      Change-Id: I4639a78cd5cccb283023265dbcc07898c3e7cf95
      6ef805eb
  29. 31 May, 2013 3 commits
  30. 17 May, 2013 1 commit
    • John Koleszar's avatar
      Initial version of alpha channel support · 679e4abd
      John Koleszar authored
      This is a mostly-working implementation of an extra channel in the
      bitstream. Configure with --enable-alpha to test. Notable TODOs:
      
       - Add extra channel to all mismatch tests, PSNR, SSIM, etc
       - Configurable subsampling
       - Variable number of planes (currently always uses all 4)
       - Loop filtering
       - Per-plane lossless quantizer
       - ARNR support
      
      This implementation just uses the same contents as the Y channel
      for the A channel, due to lack of content and general pain in
      playing back 4 channel content. A later patch will use the actual
      alpha channel passed in from outside the codec.
      
      Change-Id: Ibf81f023b1c570bd84b3064e9b4b8ae52e087592
      679e4abd
  31. 15 May, 2013 2 commits
  32. 10 May, 2013 1 commit
    • John Koleszar's avatar
      Fix non-4:2:0 chroma MV calculation for SPLITMV · a37ee9d2
      John Koleszar authored
      The previous code was somewhat vestigial for 16x16 MI units, but was
      incorrect when called with chroma blocks larger than 4x4 because the
      block index caused a reference to a non-existent BMI. This patch uses
      the same MV for all chroma subblocks in SPLITMV mode, which is
      suboptimal for non-4:2:0 subsamplings, but as SPLITMV may be removed
      in the near future, will use this as a stop gap.
      
      Change-Id: I3211cee5ccf1cfb426e5eef5353b0ce5bb92b4cd
      a37ee9d2