1. 09 Feb, 2011 - 4 commits
    • James Berry's avatar
      fixed stride in vp8_temporal_filter_predictors_mb_c · fffa2a61
      James Berry authored
      stride would not be calculated correctly for material
      with odd sized frame widths.
      
      Change-Id: I1710f6aef9ebb93d36249c9239c68c5baa9791f8
      fffa2a61
    • John Koleszar's avatar
      correct cost for implicit bit in mvs · 9954d05c
      John Koleszar authored
      Use 0xFFF0 vice 240 (0xF0) for determining whether the sometimes
      implicit bit 3 will be transmitted. This is consistent with the decoder
      and encode_mvcomponent().
      
      Change-Id: Ic1304d0ab56844bed8236edd1c5243a6767fc6b1
      9954d05c
    • Gaute Strokkenes's avatar
      Put more code under #if CONFIG_MULTITHREAD. · 315e3c25
      Gaute Strokkenes authored
      Change-Id: Icf4b692099d7d249fe3553852b1022b027b28e4b
      315e3c25
    • Tero Rintaluoma's avatar
      Adds armv6 optimized variance calculation · cb14764f
      Tero Rintaluoma authored
      Adds vp8_sub_pixel_variance16x16_armv6 function to encoder. Integrates
      ARMv6 optimized bilinear interpolations from vp8/common/arm/armv6
      and adds new assembly file for variance16x16 calculation.
       - vp8_filter_block2d_bil_first_pass_armv6   (integrated)
       - vp8_filter_block2d_bil_second_pass_armv6  (integrated)
       - vp8_variance16x16_armv6 (new)
       - bilinearfilter_arm.h (new)
      Change-Id: I18a8331ce7d031ceedd6cd415ecacb0c8f3392db
      cb14764f
  2. 08 Feb, 2011 - 4 commits
    • Johann's avatar
      clean up bilinear filter · e5aaac24
      Johann authored
      make reference version of bilinear_filters short.
      use reference versions of bilinear_filters and sub_pel_filters when
      possible.
      
      recognize that Width was being passed into
      filter_block2d_bil_first_pass multiple times. ARM version had already
      fixed this. propegate to C.
      
      change references to src_pixels_per_line to src_pitch and standardize on
      src/dst (instead of input/output).
      
      recognize that first_pass is only run in the verticle and second_pass
      only horizontal. ARM version had already fixed this. propegate to C
      
      Change-Id: I292d376d239a9a7ca37ec2bf03cc0720606983e2
      e5aaac24
    • Scott LaVarnway's avatar
      Added early breakout for vp8_rd_pick_intra4x4mby_modes · 13db80c2
      Scott LaVarnway authored
      Improved performance of good quality, speed 0 (3% average)
      with no average quality loss.
      
      Change-Id: Ica34473f99bd74260eaebde6b132185e09e3c09d
      13db80c2
    • Johann's avatar
      clarify *_offsets.asm differences · 40dcae9c
      Johann authored
      it's difficult to mux the *_offsets.c files because of header conflicts.
      make three instead, name them consistently and partititon the contents
      to allow building them as required.
      
      Change-Id: I8f9768c09279f934f44b6c5b0ec363f7943bb796
      40dcae9c
    • James Berry's avatar
      vp8e_get_preview fixed for resized frames · ddacf1cf
      James Berry authored
      preview_img d_w and d_h along with w and h
      would not be updated for resized frames.
      
      now uses sd.y_width and sd.y_height
      
      Change-Id: I52241de4cc1de5e73f865e668bd70a7cbd954390
      ddacf1cf
  3. 07 Feb, 2011 - 2 commits
    • Johann's avatar
      move one of the offset files · 3273c7b6
      Johann authored
      common/arm/vpx_asm_offsets moves up a level. prepare for muxing with
      encoder/arm/vpx_vp8_enc_asm_offsets
      
      Change-Id: I89a04a5235447e66571995c9d9b4b6edcb038e24
      3273c7b6
    • Yunqing Wang's avatar
      Fix link error in real-time mode · 58d2e70f
      Yunqing Wang authored
      make vp8_mv_pred() and vp8_cal_sad() available in real-time mode.
      
      Change-Id: I71dbae241b486ba943458dcbae552ec4a51689d3
      58d2e70f
  4. 04 Feb, 2011 - 3 commits
    • Johann's avatar
      remove unused dboolhuff code · bb9c95ea
      Johann authored
      we were holding on to this "just in case." purge it instead
      
      Change-Id: I77a367b36d0821d731019f2566ecfffdae1d4b8a
      bb9c95ea
    • 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
    • Gaute Strokkenes's avatar
      Remove duplicate loopfilter parameters. · ffc6aeef
      Gaute Strokkenes authored
      Change-Id: I0d41415e3961c2c9492d342290c1999f9d02e6d8
      ffc6aeef
  5. 03 Feb, 2011 - 1 commit
  6. 02 Feb, 2011 - 1 commit
    • Attila Nagy's avatar
      Delay auto key frame insertion in realtime configuration · e5904f2d
      Attila Nagy authored
      Whe auto keyframe insertion is enabled and conditions are right (scene change)
      the encoder can decide to insert a key frame and does a re-encoding. This can
      introduce extra latency. In RT mode we do not do the re-encoding of the current
      frame but force the next frame to key frame.
      
      Change-Id: I15c175fa845ac4c1a1f18bea3676e154669522a7
      e5904f2d
  7. 01 Feb, 2011 - 7 commits
  8. 31 Jan, 2011 - 2 commits
  9. 28 Jan, 2011 - 5 commits
    • Yaowu Xu's avatar
      change the threshold of DC check for encode breakout · 8f279596
      Yaowu Xu authored
      Previously, the DC check is to make sure there is no code-able
      DC shift for quantizer Q0, which has been verified rather
      conservative. This commit changes the criteria to have two
      components, DC and AC, to address the conservativeness. First,
      it checks if all AC energy is enough to contribute a single
      non-zero quantized AC coefficient. Second, for DC, the decision
      to skip further considers two possible scenarios: 1. There is
      no code-able 2nd order DC coefficient at all; 2 The residue is
      relatively flat, but the uniform DC change is very small, i.e.
      less than 1/2 gray level per pixel.
      
      Comparing to previous criteria, the new criteria is about 10%
      to 15% faster in encoding time with a very small quality loss.
      (threshold ~1000 and quality range 33db-45db)
      
      It should be noted that this commit enables "automatic" static
      threshold for encodebreakout if a non-zero small value is passed
      in to encoder.
      
      Change-Id: I0f77719a1ac2c2dfddbd950d84920df374515ce3
      8f279596
    • Yunqing Wang's avatar
      Improve MV prediction in vp8_pick_inter_mode() for speed>3 · 7cbe684e
      Yunqing Wang authored
      Applied same method used in vp8_rd_pick_inter_mode() to improve
      the accuracy of MV prediction.
      
      Change-Id: Ia50ae26208b18482695601f32febd99fe89fbc17
      7cbe684e
    • 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
    • Paul Wilkins's avatar
      Inconsistent distortion metric in vp8_rd_pick_intra_mbuv_mode · dcb23e2a
      Paul Wilkins authored
      This function was using a variance metric compared to and SSE metric in
      other places (eg. vp8_rd_inter_uv)
      
      Change-Id: I9109fcc5a13bca9db1d7ead500fe14999ab233eb
      dcb23e2a
    • Tero Rintaluoma's avatar
      Adds "armvX-none-rvct" targets · 11a222f5
      Tero Rintaluoma authored
      Adds following targets to configure script to support RVCT compilation
      without operating system support (for Profiler or bare metal images).
       - armv5te-none-rvct
       - armv6-none-rvct
       - armv7-none-rvct
      
      To strip OS specific parts from the code "os_support"-config was added
      to script and CONFIG_OS_SUPPORT flag is used in the code to exclude OS
      specific parts such as OS specific includes and function calls for
      timers and threads etc. This was done to enable RVCT compilation for
      profiling purposes or running the image on bare metal target with
      Lauterbach.
      
      Removed separate AREA directives for READONLY data in armv6 and neon
      assembly files to fix the RVCT compilation. Otherwise
      "ldr <reg>, =label" syntax would have been needed to prevent linker
      errors. This syntax is not supported by older gnu assemblers.
      
      Change-Id: I14f4c68529e8c27397502fbc3010a54e505ddb43
      11a222f5
  10. 27 Jan, 2011 - 2 commits
    • Johann's avatar
      warning: pointer targets differ in signedness · 73207a1d
      Johann authored
      vp8/encoder/rdopt.c:728: warning: pointer targets in passing argument 3
      of 'macro_block_yrd' differ in signedness
      vp8/encoder/rdopt.c:541: note: expected 'int *' but argument is of type
      'unsigned int *'
      
      distortion is signed when calling macro_block_yrd is both other cases,
      as well as for RDCOST
      
      Change-Id: I5e22358b7da76a116f498793253aac8099cb3461
      73207a1d
    • Johann's avatar
      clean up implicit declaration warnings for neon · 27000ed6
      Johann authored
      Change-Id: I6ca2d89f355839c4c770773c09fc69dcea7c1406
      warning: implicit declaration of function
        'vp8_variance_halfpixvar16x16_[h|v|hv]_neon'
        'vp8_sub_pixel_variance16x16_neon_func'
      27000ed6
  11. 26 Jan, 2011 - 7 commits
    • Scott LaVarnway's avatar
      Performance improvement of first pass · 3c18a2bb
      Scott LaVarnway authored
      Improved the performance of the first pass only
      (~6% on 720p test clip) by making use of LUT instead of the
      float calculations.  Might try a SIMD version later.
      Also started to make use of int_mv instead of
      MV.
      
      Change-Id: If2a217c7d6b59cd2c25c5553e0ca7e0502403af8
      3c18a2bb
    • Yunqing Wang's avatar
      Remove copies of same functions · cac54404
      Yunqing Wang authored
      Reduce the code size.
      
      Change-Id: I2e1998557a3c8776e262c442fd758c25e17aff7a
      cac54404
    • Scott LaVarnway's avatar
      Removed unused members from VP8_COMP · c4887da3
      Scott LaVarnway authored
      Change-Id: I8f3f2642b02975fbdb14982984a29821f80d30d3
      c4887da3
    • Paul Wilkins's avatar
      Rationalize vp8_rd_pick_intra16x16mby_mode() · 35bb74a6
      Paul Wilkins authored
      Use the function macro_block_yrd() to calculate error and distortion
      in keeping with what is done for inter frames.
      
      The old code was using a variance metric for once case and an
      SSE function for measuring distortion in the other case.
      
      The function vp8_encode_intra16x16mbyrd() is no longer used.
      
      Change-Id: Ic228cb00a78ff637f4365b43f58fbe5a9273d36f
      35bb74a6
    • Attila Nagy's avatar
      Adds vpx_vp8_enc_asm_offsets.c.o to OBJS-yes list · 0def48b6
      Attila Nagy authored
      Change-Id: Ibd6e3bc82471839904b1086b499efc55f7c5cbaf
      0def48b6
    • Paul Wilkins's avatar
      Correction to buffer update for non-viewable frames. · a3f71ccf
      Paul Wilkins authored
      The code previously tested cpi->common.refresh_alt_ref_frame
      but there are situations where this flag may be set for viewable frames.
      
      The correct test should be !cm->show_frame.
      
      Change-Id: Ia1a600622992a4a68fe1d38ac23bf6b34b133688
      a3f71ccf
    • Yaowu Xu's avatar
      cap the best quantizer for 2nd order DC · 999e155f
      Yaowu Xu authored
      This commit also removes artificial RDMULT cap for low quantizers.
      The intention is to address some abnormal behavior of mode selections
      at the low quantizer end, where many macroblocks were coded with
      SPLITMV with all partitions using same motion vector including (0,0).
      This change improves the compression quality substantially for high
      quality encodings in both PSNR and SSIM terms. Overall effect on
      mid/low rate range is also positive for all metrics, but smaller
      in magnitude.
      
      Change-Id: I864b29c4bd9ff610d2545fa94a19cc7e80c02667
      999e155f
  12. 25 Jan, 2011 - 2 commits
    • Fritz Koenig's avatar
      Fix for incorrect variable declaration. · 53d8e9dc
      Fritz Koenig authored
      Commit 336aa0b7 incorrectly
      declared current_pos as and int, when it should have been
      a FIRSTPASS_STATS pointer.
      
      Change-Id: I0a51c7a86ebba8546c95dd5d9d1c1143d4613e40
      53d8e9dc
    • Yunqing Wang's avatar
      Refine motion vector prediction for NEWMV mode · dcaaadd8
      Yunqing Wang authored
      Adjust checking points in motion vector prediction to better cover
      possible movements, and get a better prediction. Tests on test
      clips showed a 0.1% improvement in SSIM, and no change in PSNR
      and performance.
      
      Change-Id: Ifdab05d35e10faea1445c61bb73debf888c9d2f8
      dcaaadd8