1. 14 Jun, 2011 - 1 commit
    • Tero Rintaluoma's avatar
      Fix RT only build · 99090474
      Tero Rintaluoma authored
      Moved encode_intra function from firstpass.c to encodeintra.c to
      prevent linking problem in real-time only build. Also changed name
      of the function to vp8_encode_intra because it is not a static.
      
      Change-Id: Ibf3c6c1de3152567347e5fbef47d1d39564620a5
      99090474
  2. 13 Jun, 2011 - 1 commit
  3. 09 Jun, 2011 - 2 commits
  4. 08 Jun, 2011 - 4 commits
    • Yaowu Xu's avatar
      Adjust errorperbit according to RDMULT in activity masking · 1fba1e38
      Yaowu Xu authored
      In activity masking, RDO constant RDMULT is adjusted on a per MB basis
      adaptive to activity with the MB. errorperbit, which is defined as
      RDMULT/RDDIV, is a constant used in motion estimation. Previously, in
      activity masking, errorperbit is not changed even when RDMULT is changed.
      This commit changed to adjust errorperbit according to the change in
      RDMULT.
      
      Test in cif set showed a very small but consistent gain by all quality
      metrics (average, overall psnr and ssim) when activity masking is on.
      
      Change-Id: I07ded3e852919ab76757691939fe435328273823
      1fba1e38
    • John Koleszar's avatar
      Move RD intra block mode selection to rdopt.c · 96a42aaa
      John Koleszar authored
      This change is analogous to I0b67dae1f8a74902378da7bdf565e39ab832dda7,
      which made the move for the non-RD path.
      
      Change-Id: If63fc1b0cd1eb7f932e710f83ff24d91454f8ed1
      96a42aaa
    • John Koleszar's avatar
      Move intra block mode selection to pickinter.c · e90d17d2
      John Koleszar authored
      This commit moves the intra block mode selection from encodeframe.c
      to pickinter.c (in the non-RD case). This allowed pick_intra_mbuv_mode
      and pick_intra4x4mby_modes to be made static, and is a step towards
      refactoring intra mode selection in the main pickinter loop. Gave a
      small perf increase (~0.5%).
      
      Change-Id: I0b67dae1f8a74902378da7bdf565e39ab832dda7
      e90d17d2
    • Paul Wilkins's avatar
      Further activity masking changes: · 4e81a68a
      Paul Wilkins authored
      Some further re-structuring of activity masking code.
      Still has various experimental switches.
      Supports a metric based on intra encode.
      Experimental comparison against a fixed activity target  rather
      than a frame average, for altering rd and zbin.
      
      Overall the SSIM performance is similar  to TT's original
      code but there is a much smaller PSNR hit of circa
      0.5% instead of 3.2%
      
      Change-Id: I0fd53b2dfb60620b3f74d7415e0b81c1ac58c39a
      4e81a68a
  5. 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
  6. 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
  7. 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
  8. 25 May, 2011 - 1 commit
  9. 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
  10. 19 May, 2011 - 3 commits
  11. 17 May, 2011 - 1 commit
  12. 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
  13. 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
  14. 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
  15. 28 Apr, 2011 - 1 commit
  16. 27 Apr, 2011 - 1 commit
  17. 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
  18. 20 Apr, 2011 - 2 commits
  19. 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
  20. 11 Apr, 2011 - 2 commits
  21. 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
  22. 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
  23. 18 Mar, 2011 - 1 commit
  24. 11 Mar, 2011 - 1 commit
  25. 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
  26. 09 Feb, 2011 - 1 commit
  27. 08 Feb, 2011 - 1 commit
  28. 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
  29. 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