1. 06 Jun, 2011 - 1 commit
    • Yaowu Xu's avatar
      remove redundant functions · d4700731
      Yaowu Xu authored
      The encoder defined about 4 set of similar functions to calculate sum,
      variance or sse or a combination of them. This commit removed one set
      of these functions, get8x8var and get16x16var, where calls to the later
      function are replaced with var16x16 by using the fact on a 16x16 MB:
          variance == sse - sum*sum/256
      
      Change-Id: I803eabd1fb3ab177780a40338cbd596dffaed267
      d4700731
  2. 02 Jun, 2011 - 1 commit
    • Scott LaVarnway's avatar
      Removed B_MODE_INFO · 773768ae
      Scott LaVarnway authored
      Declared the bmi in BLOCKD as a union instead of B_MODE_INFO.
      Then removed B_MODE_INFO completely.
      
      Change-Id: Ieb7469899e265892c66f7aeac87b7f2bf38e7a67
      773768ae
  3. 01 Jun, 2011 - 1 commit
    • Tero Rintaluoma's avatar
      neon fast quantize block pair · 61f0c090
      Tero Rintaluoma authored
      vp8_fast_quantize_b_pair_neon function added to quantize
      two adjacent blocks at the same time to improve performance.
       - Additional 3-6% speedup compared to neon optimized fast
         quantizer (Tanya VGA@30fps, 1Mbps stream, cpu-used=-5..-16)
      
      Change-Id: I3fcbf141e5d05e9118c38ca37310458afbabaa4e
      61f0c090
  4. 25 May, 2011 - 1 commit
  5. 24 May, 2011 - 1 commit
    • Scott LaVarnway's avatar
      MODE_INFO size reduction · e11f21af
      Scott LaVarnway authored
      Declared the bmi in MODE_INFO as a union instead of B_MODE_INFO.
      This reduced the memory footprint by 518,400 bytes for 1080
      resolutions.  The decoder performance improved by ~4% for the
      clip used and the encoder showed very small improvements. (0.5%)
      This reduction was first mentioned to me by John K. and in a
      later discussion by Yaowu.
      This is WIP.
      
      Change-Id: I8e175fdbc46d28c35277302a04bee4540efc8d29
      e11f21af
  6. 19 May, 2011 - 3 commits
  7. 17 May, 2011 - 1 commit
  8. 13 May, 2011 - 1 commit
    • Paul Wilkins's avatar
      Restructure of activity masking code. · ff52bf36
      Paul Wilkins authored
      This commit restructures the mb activity masking code
      to better facilitate experimentation using different metrics
      etc. and also allows for adjustment of the zero bin either
      for encode only or both the encode and mode selection
      stages
      
      It also uses information from the current frame rather than
      the previous frame and the default strength has been
      reduced.
      
      Change-Id: Id39b19eace37574dc429f25aae810c203709629b
      ff52bf36
  9. 12 May, 2011 - 1 commit
    • Scott LaVarnway's avatar
      Using int_mv instead of MV · 6b25501b
      Scott LaVarnway authored
      The compiler produces better assembly when using int_mv
      for assignments.  The compiler shifts and ors the two 16bit
      values when assigning MV.
      
      Change-Id: I52ce4bc2bfbfaf3f1151204b2f21e1e0654f960f
      6b25501b
  10. 06 May, 2011 - 1 commit
    • Yaowu Xu's avatar
      fix a bug related to gf_active_flags in multi-threaded encoder · 89c6017c
      Yaowu Xu authored
      Paul pointed out that the pointer to the gf_active_flags is not being
      properly incremented in multithreaded encoder. This commit fixes the
      issue by making sure the gf_active_ptr points to the starting of next
      group of mb rows.
      
      Change-Id: I3246e657d23beabb614dfb880733a68a5fd7e34c
      89c6017c
  11. 28 Apr, 2011 - 1 commit
  12. 27 Apr, 2011 - 1 commit
  13. 21 Apr, 2011 - 1 commit
    • Scott LaVarnway's avatar
      Removed dc_diff from MB_MODE_INFO · 3698c1f6
      Scott LaVarnway authored
      The dc_diff flag is used to skip loopfiltering.  Instead
      of setting this flag in the decoder/encoder, we now check
      for this condition in the loopfilter.
      
      Change-Id: Ie2b9cdf9e0f4e8b932bbd36e0878c05bffd28931
      3698c1f6
  14. 20 Apr, 2011 - 2 commits
  15. 13 Apr, 2011 - 1 commit
    • Johann's avatar
      store quant_shift as an unsigned char · 70f30aa9
      Johann authored
      in encodframe.c, quant_shift is set to 0 or 1 in vp8cx_invert_quant
      
      only use 8 bits to store this, instead of 16. will allow saving an
      xmm register in an updated version of the regular quantize
      
      Change-Id: Ie88c47fe2aff5af0283dab1147fb2791e4b12f90
      70f30aa9
  16. 11 Apr, 2011 - 2 commits
  17. 08 Apr, 2011 - 1 commit
    • Paul Wilkins's avatar
      Error accumulator stats bug. · de4e9e3b
      Paul Wilkins authored
      The error accumulator stats values cpi->prediction_error and
      cpi->intra_error were being populated with rd values not
      distortion values.
      
      These are only "currently" used in a limited way for RT compress
      key frame detection.
      
      Change-Id: I2702ba1cab6e49ab8dc096ba75b6b34ab3573021
      de4e9e3b
  18. 01 Apr, 2011 - 1 commit
    • Yunqing Wang's avatar
      Use full-pixel MV in mvsadcost calculation · 3d681581
      Yunqing Wang authored
      MV sad cost error is only used in full-pixel motion search,
      which only need full-pixel resolution instead of quarter-pixel
      resolution. This change reduced mvsadcost table size, and
      removed unneccessary pamameter passing since this table is
      constant once it is generated.
      
      Change-Id: I9f931e55f6abc3c99011321f1dfb2f3562e6f6b0
      3d681581
  19. 18 Mar, 2011 - 1 commit
  20. 11 Mar, 2011 - 1 commit
  21. 10 Feb, 2011 - 1 commit
    • John Koleszar's avatar
      Fix relative include paths · 02321de0
      John Koleszar authored
      Allow compiling without adding vp8/{common,encoder,decoder} to the
      include paths.
      
      Change-Id: Ifeb5dac351cdfadcd659736f5158b315a0030b6c
      02321de0
  22. 09 Feb, 2011 - 1 commit
  23. 08 Feb, 2011 - 1 commit
  24. 04 Feb, 2011 - 1 commit
    • John Koleszar's avatar
      correct quantizer initialization · 63fc44df
      John Koleszar authored
      The encoder was not correctly catching transitions in the quantizer
      deltas. If a delta_q was set, then the quantizer would be reinitialized
      on every frame, but if they transitioned to 0, the quantizer would
      not be reinitialized, leading to a encode-decode mismatch.
      
      This bug was triggered by commit 999e155f, which sets a Y2 delta Q
      for very low base Q levels.
      
      Change-Id: Ia6733464a55ee4ff2edbb82c0873980d345446f5
      63fc44df
  25. 01 Feb, 2011 - 4 commits
    • Scott LaVarnway's avatar
      Moved rd calculation into vp8_pick_intra4x4mby_modes · b18df82e
      Scott LaVarnway authored
      Then removed unnecessary code.
      
      Change-Id: I142658815d843c9396b07881dbdd8d387c43c90e
      b18df82e
    • Scott LaVarnway's avatar
      Removed intra_modes from vp8cx_encode_intra_macro_block · 4e7e79f7
      Scott LaVarnway authored
      Restructured function in order to eliminate the prediction
      modes save/restore.  Code cleanup also.
      
      Change-Id: I816e3b910de64d0f0f0ddc2398805c63263191e8
      4e7e79f7
    • Attila Nagy's avatar
      Improved encoder threading · 385c2a76
      Attila Nagy authored
      Reduce the number of sync points by letting each thread
      continue imediatly with a new MB row.
      Better multicore scaling, improves performance by 5-20% on ARM multicore.
      
      Change-Id: Ic97e4d1c4886a842c85dd3539a93cb217188ed1b
      385c2a76
    • Scott LaVarnway's avatar
      Removed prediction_error accumulation · 9e7fec21
      Scott LaVarnway authored
      from vp8cx_encode_intra_macro_block.  prediction_error is used when
      deciding if a frame should be a keyframe.  After reviewing this with
      Yaowu, it was pointed out that vp8cx_encode_intra_macro_block
      is only called for keyframes, so the accumulation is unnecessary.
      
      Change-Id: Id79dc81b80d4f5d124f3a0dba1b923887e2e1ec8
      9e7fec21
  26. 31 Jan, 2011 - 1 commit
    • Scott LaVarnway's avatar
      Possible bug in vp8cx_encode_intra_macro_block · 4a15e557
      Scott LaVarnway authored
      vp8_pick_intra4x4mby_modes uses the passed in distortion
      for an early breakout.  The best distortion was never saved
      and the distortion for TM_PRED was always used.
      
      Change-Id: Idbaf73027408a4bba26601713725191a5d7b325e
      4a15e557
  27. 28 Jan, 2011 - 1 commit
    • Adrian Grange's avatar
      Changed condition for using RD in Intra Mode · e9f513d7
      Adrian Grange authored
      The condition for using RD when selecting the intra coding mode
      for a MB is that the RD flag is set AND we're not in real-time
      mode.
      
      Previously the code used RD if either the RD flag was set OR
      we were not using real-time mode.
      
      Change-Id: Ic711151298468a3f99babad39ba8375f66d55a08
      e9f513d7
  28. 24 Jan, 2011 - 1 commit
    • Scott LaVarnway's avatar
      Added vp8_update_zbin_extra · 0ee525d6
      Scott LaVarnway authored
      vp8cx_mb_init_quantizer was being called for every mode checked
      in vp8_rd_pick_inter_mode.  zbin_extra is the only value that
      really needs to be recalculated.  This calculation is disabled
      when using the fast quantizer for mode selection.
      This gave a small performance boost (~.5% to 1%).
      Note: This needs to be verified with segmentation_enabled.
      
      Change-Id: I62716a870b3c82b4a998bdf95130ff0b02106f1e
      0ee525d6
  29. 18 Jan, 2011 - 1 commit
    • Paul Wilkins's avatar
      Further CQ, Key frame and ARF changes · 57136a26
      Paul Wilkins authored
      This code fixes a bug in the calculation of
      the minimum Q for alt ref frames.
      
      It also allows an extended gf/arf interval for sections
      of clips that completely static (or nearly so).
      
      Change-Id: I1a21aaa16d4f0578e5f99b13bebd78d59403c73b
      57136a26
  30. 11 Jan, 2011 - 1 commit
    • Henrik Lundin's avatar
      Remove unused local variables · 48c28fc4
      Henrik Lundin authored
      Removing unused local variables causing compiler warnings in
      Visual Studio.
      
      Change-Id: I0e2096303be1fdbc01428a6e57cca9796bb32c8a
      48c28fc4
  31. 07 Jan, 2011 - 1 commit
    • Scott LaVarnway's avatar
      Removed cpi->target_bits_per_mb · 6dbdfe34
      Scott LaVarnway authored
      cpi->target_bits_per_mb is currently not being used,
      so delete it.  Also removed other unused code in rdopt.c.
      
      Change-Id: I98449f9030bcd2f15451d9b7a3b9b93dd1409923
      6dbdfe34
  32. 28 Dec, 2010 - 1 commit
    • Scott LaVarnway's avatar
      Use the fast quantizer for inter mode selection · 516ea846
      Scott LaVarnway authored
      Use the fast quantizer for inter mode selection and the
      regular quantizer for the rest of the encode for good quality,
      speed 1.  Both performance and quality were improved.  The
      quality gains will make up for the quality loss mentioned in
      I9dc089007ca08129fb6c11fe7692777ebb8647b0.
      
      Change-Id: Ia90bc9cf326a7c65d60d31fa32f6465ab6984d21
      516ea846
  33. 17 Dec, 2010 - 1 commit
    • John Koleszar's avatar
      Add psnr/ssim tuning option · b0da9b39
      John Koleszar authored
      Add a new encoder control, VP8E_SET_TUNING, to allow the application
      to inform the encoder that the material will benefit from certain
      tuning. Expose this control as the --tune option to vpxenc. The args
      helper is expanded to support enumerated arguments by name or value.
      
      Two tunings are provided by this patch, PSNR (default) and SSIM.
      Activity masking is made dependent on setting --tune=ssim, as the
      current implementation hurts speed (10%) and PSNR (2.7% avg,
      10% peak) too much for it to be a default yet.
      
      Change-Id: I110d969381c4805347ff5a0ffaf1a14ca1965257
      b0da9b39