1. 03 Jun, 2011 - 1 commit
    • Yunqing Wang's avatar
      Adjust bounds checking for hex search in real-time mode · e5c236c2
      Yunqing Wang authored
      Currently, hex search couldn't guarantee the motion vector(MV)
      found is within the limit of maximum MV. Therefore, very large
      motion vectors resulted from big motion in the video could cause
      encoding artifacts. This change adjusted hex search bounds
      checking to make sure the resulted motion vector won't go out
      of the range. James Berry, thank you for finding the bug.
      
      Change-Id: If2c55edd9019e72444ad9b4b8688969eef610c55
      e5c236c2
  2. 02 Jun, 2011 - 2 commits
    • 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
    • Ronald S. Bultje's avatar
      Don't allow very short GF groups even when the GF is predicted from an ARF. · 9f002bee
      Ronald S. Bultje authored
      This is basically a slightly modified version of the previous patch,
      and it has a moderately positive effect (SSIM/PSNR both +0.08% avg
      on derf-set). Most clips show no change, except waterfall/coastguard,
      each ~ +0.8% SSIM/PSNR. You can see similar effects in other clips
      by shortening their length to terminate at a very short last group
      of frames.
      
      Change-Id: I7a70de99ca1f9fe6a8b6ca7a6e30e8a4b64383e4
      9f002bee
  3. 01 Jun, 2011 - 4 commits
    • Yaowu Xu's avatar
      further clean up of errorperbit and sadperbit · 5b2fb329
      Yaowu Xu authored
      this commit makes the usage errorperbit and sadperbit consistent for
      encoding modes and passes. Removed all different magic weight factors
      associated with errorperbit. Now 1/2 is used for both sadperbit16 and
      sadperbit4, the /2 operation is merged into initializations of the 2
      variables.
      
      Tests on cif set show .23%, 0.18% and 0.19% gain by avg psnr, overall
      psnr and ssim respectively.
      
      Change-Id: Ifa285c3e065ce0a5a77addfc9f95aabf54ee270d
      5b2fb329
    • Ronald S. Bultje's avatar
      Fix code under #if CONFIG_INTERNAL_STATS. · 34ba1876
      Ronald S. Bultje authored
      Change-Id: Iccbd78d91c3071b16fb3b2911523a22092652ecd
      34ba1876
    • Yaowu Xu's avatar
      remove some magic weights associated with sad_per_bit · 50916c6a
      Yaowu Xu authored
      sad_per_bit has been used for a number of motion vector search routines
      with different magic weights: 1, 1/2 and 1/4. This commit remove these
      magic numbers and use 1/2 for all motion search routines, also reformat
      a number of source code lines to within 80 column limit.
      
      Test on cif set shows overall effect is neutral on all metrics. <=0.01%
      
      Change-Id: I8a382821fa4cffc9c0acf8e8431435a03df74885
      50916c6a
    • 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. 31 May, 2011 - 2 commits
    • Scott LaVarnway's avatar
      vp8_pick_inter_mode code cleanup · 1a5a1903
      Scott LaVarnway authored
      Small code cleanups before attempting to reduce the size
      of bmi found in BLOCKD.
      
      Change-Id: Ie9c14adb53afd847716a75bcce067d0e6c04f225
      1a5a1903
    • John Koleszar's avatar
      Initialize first_time_stamp_ever · 0a72f568
      John Koleszar authored
      Misplaced #endif caused first_time_stamp_ever to only be initialized if
      CONFIG_INTERNAL_STATS was set.
      
      Change-Id: I2296a4ab00f7dfb767583edcc5d59b94f48c0621
      0a72f568
  5. 30 May, 2011 - 1 commit
    • Tero Rintaluoma's avatar
      adds preload for armv6 encoder asm · 5305e79e
      Tero Rintaluoma authored
      Added preload instructions to armv6 encoder optimizations.
      About 5% average speed-up on Tegra2 for VGA@30fps sequence.
      
      Change-Id: I41d74737720fb71ce7a316f07555357822f3347e
      5305e79e
  6. 27 May, 2011 - 3 commits
    • James Berry's avatar
      bug fix check frame buffer index before copy · 8795b525
      James Berry authored
      in onyx_if.c update_reference_frames() make
      sure that frame buffer indexes are not equal
      before preforming a buffer copy.  If two frames
      share the same buffer the flags will already be
      set correctly.
      
      Change-Id: Ida9b5516d08e3435c90f131d2dc19d842cfb536e
      8795b525
    • Yunqing Wang's avatar
      Use hex search for realtime mode speed>4 · 4d052bdd
      Yunqing Wang authored
      Test showed using hex search in realtime mode largely speed up
      encoding process, and still achieves similar quality like the
      diamond search we have. Therefore, removed the diamond search
      option.
      
      Change-Id: I975767d0ec0539f9f6ed7fdfc09506e39761b66c
      4d052bdd
    • Yunqing Wang's avatar
      Remove unused code · 2dc24635
      Yunqing Wang authored
      Hex search is not called in rdopt.c
      
      Change-Id: I67347f03e13684147a7c77fb9e9147e440bb5e8e
      2dc24635
  7. 25 May, 2011 - 4 commits
    • Yaowu Xu's avatar
      fix the mix use of errorperbit and sadperbit · d8c525b8
      Yaowu Xu authored
      error_per_bit and sad_per_bit were designed as estimates of a bit worth
      of sum squared error and sum absolute difference respectively. Under
      this assumption, error_per_bit should be used in combination with 2nd
      order errors (variance or sum squared error) while sad_per_bit should
      be used in combination with 1st order SADs in motion estimation. There
      were a few places where sad_per_bit has been misused with variances,
      this commit changes to use error_per_bit for those places, also changes
      parameter names to properly indicate which constant is being used.
      
      On cif set, the change has a universal gain by all metrics: 0.13% by
      average/overall psnr and 0.1% by ssim.
      
      Change-Id: I4850fdcc3fd6886b30f784bd843f13dd401215fb
      d8c525b8
    • Yaowu Xu's avatar
      remove code not in use · 22c05c05
      Yaowu Xu authored
      Change-Id: I6e5e86235d341cce3b02abda26dbeb71940ed955
      22c05c05
    • Yunqing Wang's avatar
      Return sse value in vp8_variance SSE2 functions · b6679879
      Yunqing Wang authored
      Minor modification.
      
      Change-Id: I09511d38fd1451d5c4106a48acdb3f766ce59cb7
      b6679879
    • Attila Nagy's avatar
      Use var8x8 instead of get8x8var in VP8_UVSSE · a615c404
      Attila Nagy authored
        'sum' returned by get8x8var is not used and var8x8 has optimizations
        for more platforms.
      
      Change-Id: I4a907fb1a05f285669fb0b95dc71d42182c980f6
      a615c404
  8. 24 May, 2011 - 4 commits
    • Yunqing Wang's avatar
      Fix a bug happening while encoding at profile=3 · d75eb736
      Yunqing Wang authored
      While profile=3, there is no sub-pixel search. Distortion and SSE
      have to calculated using get_inter_mbpred_error().
      
      Change-Id: Ifb36e17eef7750af93efa7d0e2870142ef540184
      d75eb736
    • Scott LaVarnway's avatar
      Use int_mv instead of MV in vp8_mv_cont · a39321f3
      Scott LaVarnway authored
      Less operations.
      
      Change-Id: Ibb9cd5ae66b8c7c681c9a654d551c8729c31c3ae
      a39321f3
    • Scott LaVarnway's avatar
      Removed unused variable warnings · cfab2cae
      Scott LaVarnway authored
      Change-Id: I6e5e921f03dc15a72da89a457848d519647677a3
      cfab2cae
    • 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
  9. 23 May, 2011 - 2 commits
  10. 20 May, 2011 - 2 commits
  11. 19 May, 2011 - 6 commits
    • James Berry's avatar
      bug fix active_worst_quality set below active_best_quality · caa1b28b
      James Berry authored
      fixed a bug where active_worst_quality could be set
      below active_best_quality which could result in an
      infinite loop.
      
      Change-Id: I93c229c3bc5bff2a82b4c33f41f8acf4dd194039
      caa1b28b
    • John Koleszar's avatar
      cleanup: collect twopass variables · 63cb1a7c
      John Koleszar authored
      This patch collects the twopass specific memebers of VP8_COMP into a
      dedicated struct. This is a first step towards isolating the two pass
      rate control and aids readability by decorating these variables with
      the 'twopass.' namespace. This makes it clear to the reader in what
      contexts the variable will be valid, and is a hint that a section of
      code might be a good candidate to move to firstpass.c in later
      refactoring. There likely will be other rate control modes that need
      their own specific data as well.
      
      This notation is probably overly verbose in firstpass.c, so an
      alternative would be to access this struct through a pointer like
      'rc->' instead of 'cpi->firstpass.' in that file. Feel free to make
      a review comment to that effect if you prefer.
      
      Change-Id: I0ab8254647cb4b493a77c16b5d236d0d4a94ca4d
      63cb1a7c
    • John Koleszar's avatar
      Remove unused members of VP8_COMP · 04849772
      John Koleszar authored
      Various members that were either completely unreferenced or written
      and not read.
      
      Change-Id: Ie41ebac0ff0364a76f287586e4fe09a68907806e
      04849772
    • Scott LaVarnway's avatar
      Using partition_info instead of blockd info for splitmv · 99b97576
      Scott LaVarnway authored
      The partition_info struct contains info just for SPLITMV,
      so it should be used instead of BLOCKD.  Eventually, I want
      to reduce the size of B_MODE_INFO struct found in BLOCKD, so
      this is the first step toward that goal.
      Also, since SPLITMV is not supported in vp8_pick_inter_mode(),
      the unnecessary mem copies and checks were removed.  For rt
      encodes, this gave a slight performance improvement.
      
      Change-Id: I5585c98fa9d5acbde1c7e0f452a01d9ecc080574
      99b97576
    • John Koleszar's avatar
      Make activity masking functions static · a84177b4
      John Koleszar authored
      These don't need extern linkage.
      
      Change-Id: I21220ada926380a75ff654f24df84376ccc49323
      a84177b4
    • John Koleszar's avatar
      Move quantizer init functions to quantize.c · 87254e0b
      John Koleszar authored
      Group related functions together.
      
      Change-Id: I92fd779225b75a7204650f1decb713142c655d71
      87254e0b
  12. 18 May, 2011 - 1 commit
    • Yunqing Wang's avatar
      Fix a bug in vp8_clamp_mv function · 9c62f941
      Yunqing Wang authored
      Scott fixed the bug in MV clamping function in encoder, which
      could cause artifacts.
      
      Change-Id: Id05f2794c43c31cdd45e66179c8811f3ee452cb9
      9c62f941
  13. 17 May, 2011 - 1 commit
  14. 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
  15. 12 May, 2011 - 5 commits
    • John Koleszar's avatar
      Improve framerate adaptation · 5ed116e2
      John Koleszar authored
      This patch improves the accuracy of frame rate estimation by using a
      larger, 1 second window. It also more quickly adapts to step changes
      in the input frame rate (ie 30fps to 15fps)
      
      Change-Id: I39e48a8f5ac880b4c4b2ebd81049259b81a0218e
      5ed116e2
    • Scott LaVarnway's avatar
      Removed mv_bits_sadcost · 71a7501b
      Scott LaVarnway authored
      This sad cost is being generated but never used.
      
      Change-Id: I562eebdcb792b743770954feca365b5b37491ecd
      71a7501b
    • 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
    • Yunqing Wang's avatar
      Modification and issue fix in full-pixel refining search · b4da1f83
      Yunqing Wang authored
      Further modification and wrong implementation fix which caused
      refining_search and refining_searchx4 result mismatching.
      
      Change-Id: I80cb3a44bf5824413fd50c972e383eebb75f9b6f
      b4da1f83
    • Yaowu Xu's avatar
      adjusting rd constant slightly by ~10% · bd9d8906
      Yaowu Xu authored
      This is to reflect the RD improvement in the encoder. The change has a
      small positive impact on quality (0.25% by VPXSSIM and 0.05% by PSNR)
      
      Change-Id: Ic66ffc19b10870645088c0624c85556f009fd210
      bd9d8906
  16. 11 May, 2011 - 1 commit
    • Yaowu Xu's avatar
      remove a variable no longer in use · f7cf439b
      Yaowu Xu authored
      The variable is introduced in commit 2e53e9e5 to make more use of
      trellis quantization, but this is no longer necessary after RDMULT
      was made adaptive in a number of later commits.
      
      Change-Id: I7420522ec7723f38cf77033466c25afb405d52ae
      f7cf439b