1. 27 Jul, 2012 2 commits
    • Johann's avatar
      Be consistent with SAD values · 11610551
      Johann authored
      SAD returns unsigned values. Make all the declarations the same.
      
      Remove bestsad initialization and check. It is always set to the
      result of a SAD call so it will never remain UINT_MAX
      
      Use ja instead of jg to test unsigned comparison instead of signed.
      
      Update test.
      
      Change-Id: I46336ab45f4e60fc37caf20bd36bc5782079c7a5
      11610551
    • Attila Nagy's avatar
      Optimizes updates of encoder block ptrs · e66e9ddf
      Attila Nagy authored
      Precalculated block ptrs do not need updates during encoding.
      Set these at init stage.
      
      Moved the allocation of 'mt_current_mb_col' (last encoded MB on each
      row) to vp8_alloc_compressor_data(), so that it is correctly
      reallocated when frame size is changing.
      
      Change-Id: Idcdaa2d0cf3a7f782b7d888626b7cf22a4ffb5c1
      e66e9ddf
  2. 26 Jul, 2012 2 commits
    • Johann's avatar
      SAD cosmetic cleanup · dd0100dd
      Johann authored
      Change-Id: Iae915f2988081697cca6b65943afaca1d8de8df3
      dd0100dd
    • Yunqing Wang's avatar
      multi-res: add drop_frame support · 4066c8b2
      Yunqing Wang authored
      Added drop_frame support in multi-resolution encoder.
      
      If one frame is dropped at a lower-resolution level, the next
      upper-resolution level encoder needs to encode that frame
      independently without any lower-resolution level motion
      information.
      
      Another issue is that if one frame is dropped at some but not all
      resolution levels, a frame after that one may use different set
      of reference frames at different resolution levels. This reference
      frame asynchronization could degrade motion search precision in
      upper-resolution level encoding, which uses lower-resolution level
      motion result. This change compares the lower-resolution and upper-
      resolution level's reference frames. If they are not the same, the
      upper-resolution level encoder can not use lower-resolution level
      motion result.
      
      Change-Id: I61afa4f313630e75b7cbdd5742e230e8724a988a
      4066c8b2
  3. 24 Jul, 2012 2 commits
  4. 14 Jul, 2012 1 commit
    • Yunqing Wang's avatar
      multi-res: add parameter validity checking · 7f009975
      Yunqing Wang authored
      Added validity checking in multi-res encoder. Disable spatial
      resampling and frame dropping before we have those supports.
      Also, deallocate the memory for all resolution levels once error
      occurs.
      
      Change-Id: Ia5d65a645381cad1a49940ab3a19bb5696c39c09
      7f009975
  5. 13 Jul, 2012 2 commits
  6. 10 Jul, 2012 1 commit
  7. 02 Jul, 2012 2 commits
    • Yunqing Wang's avatar
      Add 0 offsets handling in SSSE3 sixtap_predict functions · 147e8646
      Yunqing Wang authored
      This patch fixed issue 458 by calling copy function when both
      offsets are 0, which guarantees the SSSE3 functions output
      same result as the c function for all possible offsets.
      
      Change-Id: I209aec7a4c6b3362db2646a8887c1038493b6496
      147e8646
    • Yunqing Wang's avatar
      Fix subpixel_predict initialization · b2936985
      Yunqing Wang authored
      xd->subpixel_predict16x16 is called in first pass, but isn't
      initialized in first pass, which causes segfault. This patch
      fixed that problem.
      
      Change-Id: Ibd2cad4e2d32ea589fc3e0876d60d3079ae836e7
      b2936985
  8. 28 Jun, 2012 1 commit
  9. 20 Jun, 2012 2 commits
    • John Koleszar's avatar
      Fix compilation with -werror · 6291dd4c
      John Koleszar authored
      Fix a last few warnings with multithread, arm, 32 bit
      
      Change-Id: Ic7c67616c370d0ff87562a232fb1e5df0702dc86
      6291dd4c
    • Paul Wilkins's avatar
      Fix segmentation updates with vp8_set_roimap() · 7c32cb52
      Paul Wilkins authored
      Changes relating to Issue 411
      
      Removed code that was clearing down the segmentation data each
      frame.
      
      Added range/parameter checking in vp8_set_roimap(); Return error
      if called when cyclic_refresh is enabled.
      
      Correct setup_features() so that it sets or clears the segment update
      flags as appropriate.
      
      Change-Id: Ib31ac53006640ddf1ba7b9ec8f8b952e3eff860a
      7c32cb52
  10. 19 Jun, 2012 1 commit
    • Adrian Grange's avatar
      Corrected usage of image strides · 5eaa9bcf
      Adrian Grange authored
      The function vp8_post_proc_down_and_across_c takes the
      stride of both the src and dst images as parameters, but
      assumes that they are the same.
      
      I modified the code to use the correct strides, as the
      assembler versions of these functions do.
      
      Change-Id: I222715b774cd071b21c15a4b0d2f4aef64a520de
      5eaa9bcf
  11. 15 Jun, 2012 1 commit
    • John Koleszar's avatar
      Remove threading dependencies with --disable-multithread · 8df79e9d
      John Koleszar authored
      Avoid a pthreads dependency via pthread_once() when compiled with
      --disable-multithread.
      
      In addition, this synchronization is disabled for Win32 as well, even
      though we can be sure that the required primatives exist, so that the
      requirements on the application when built with --disable-multithread
      are consistent across platforms.
      
      Users using libvpx built with --disable-multithread in a multithreaded
      context should provide their own synchronization. Updated the
      documentation to vpx_codec_enc_init_ver() and vpx_codec_dec_init_ver()
      to note this requirement. Moved the RTCD initialization call to match
      this description, as previously it didn't happen until the first
      frame.
      
      Change-Id: Id576f6bce2758362188278d3085051c218a56d4a
      8df79e9d
  12. 13 Jun, 2012 1 commit
    • James Zern's avatar
      disable lagged encoding in one-pass · 7b0b6a2c
      James Zern authored
      This currently has no effect and can create an artificial lag in e.g.,
      realtime.
      
      Change-Id: Ia1c7c6dbe7c6fe82a944f087f1b0d1dbbc0aa1b6
      7b0b6a2c
  13. 12 Jun, 2012 1 commit
  14. 11 Jun, 2012 2 commits
    • John Koleszar's avatar
      Fix pedantic compiler warnings · 0164a1cc
      John Koleszar authored
      Allows building the library with the gcc -pedantic option, for improved
      portabilty. In particular, this commit removes usage of C99/C++ style
      single-line comments and dynamic struct initializers. This is a
      continuation of the work done in commit 97b766a4, which removed most
      of these warnings for decode only builds.
      
      Change-Id: Id453d9c1d9f44cc0381b10c3869fabb0184d5966
      0164a1cc
    • John Koleszar's avatar
      Fix bad merge · 52ec78be
      John Koleszar authored
      Change-Id: I45849dde0ee9b7e87fa32adb65ade8486bb66556
      52ec78be
  15. 07 Jun, 2012 2 commits
    • Yunqing Wang's avatar
      Fix decimation_count in drop_frame · 53d92e61
      Yunqing Wang authored
      Frame dropping decision is made by evaluating both current frame
      and next frame's buffer_level. If both buffer_levels are less
      than drop_mark, next frame is dropped. When frame dropping is
      over, namely, buffer_level becomes normal again, we need to
      reset decimation_count to 0.
      
      Change-Id: Iae182612e61e0da367fbd43afdc90738d975d1a3
      53d92e61
    • Yunqing Wang's avatar
      Remove unused code in drop_frame · 9904c28f
      Yunqing Wang authored
      Removed unused parameters and code related to drop_frame.
      
      Change-Id: I594e050d49b1805c6f72abf06005ef624256bb57
      9904c28f
  16. 06 Jun, 2012 1 commit
    • Marco Paniconi's avatar
      Reset Q for key frame when spatial resizing occurs. · baedcedc
      Marco Paniconi authored
      The logic for spatial resizing is done after the Q is selected for the
      frame. This causes a problem that the Q we select for the (resized)
      key frame may be based on a different resolution than the frame we
      will encode.
      
      This fix is to ensure that, when resize is on, the selected Q is still
      based on the resolution of the frame to be encoded.
      
      Change-Id: Ia49a9eac5f64e48d1c00dfc7ed4ce26fe84d3fa1
      baedcedc
  17. 04 Jun, 2012 3 commits
    • Johann's avatar
      Remove extra enum · 965d8686
      Johann authored
      VP8_REFFRAME is the same as vpx_ref_frame_type
      
      Change-Id: I63c2ddfb39f6ec87d1e5eb6a8852846464552b1b
      965d8686
    • Johann's avatar
      Remove redundant assignment · 2b10528a
      Johann authored
      clang complains about self-assignment
      
      Change-Id: Iead70eed0a960e84a4b167f67f05b05e2965b3b6
      2b10528a
    • Johann's avatar
      Explicitly discard fwrite/fread return values · c8a88a76
      Johann authored
      Using if(); triggers an empty body warning with clang
      
      Change-Id: I0fa2ee676400a974b40f8eaafca9ae668107eebb
      c8a88a76
  18. 31 May, 2012 4 commits
  19. 30 May, 2012 5 commits
    • Stefan Holmer's avatar
      Added another denoising threshold for finding DC shifts. · dd6134b4
      Stefan Holmer authored
      Compares the sum of differences between the input block and the averaged
      block. If they differ too much the block will not be filtered. Negligible
      perfomance hit.
      
      Change-Id: Ib1c31a265efd4d100b3abc4a1ea6675038c8ddde
      dd6134b4
    • Alpha Lam's avatar
      Make libvpx Chromium build friendly · fc2fc899
      Alpha Lam authored
      Add PRIVATE macro for adding private_extern directive for yasm
      to hide global symbols. This is only enabled if -DCHROMIUM is used
      with YASM.
      
      Also fixed a small problem with	rtcd_defs.sh to guard TEMPORAL_DENOISING.
      
      Change-Id: I9027fce3ebddcf20078293e4b86b396f21da7857
      fc2fc899
    • Jim Bankoski's avatar
      fix denoiser for temporal patterns and rd · f78e5a04
      Jim Bankoski authored
      This extends the denoiser to work for temporally scalable
      coding.
      
      I believe this also fixes a very rare but really bad bug in the original
      implementation.
      
      Change-Id: I8b3593a8c54b86eb76f785af1970935f7d56262a
      f78e5a04
    • Christian Duvivier's avatar
      Inline Intrinsic optimized Denoiser · 5715c39c
      Christian Duvivier authored
      Faster version of denoiser, cut cost by 1.7x for C path, by 3.3x for
      SSE2 path.
      
      Change-Id: I154786308550763bc0e3497e5fa5bfd1ce651beb
      5715c39c
    • Stefan Holmer's avatar
      Added another denoising threshold for finding DC shifts. · d8500344
      Stefan Holmer authored
      Compares the sum of differences between the input block and the averaged
      block. If they differ too much the block will not be filtered. Negligible
      perfomance hit.
      
      Change-Id: Ib1c31a265efd4d100b3abc4a1ea6675038c8ddde
      d8500344
  20. 24 May, 2012 2 commits
    • Jim Bankoski's avatar
      fix denoiser for temporal patterns and rd · 57faddb7
      Jim Bankoski authored
      This extends the denoiser to work for temporally scalable
      coding.
      
      I believe this also fixes a very rare but really bad bug in the original
      implementation.
      
      
      Change-Id: I8b3593a8c54b86eb76f785af1970935f7d56262a
      57faddb7
    • Alpha Lam's avatar
      Make libvpx Chromium build friendly · 0f7e4665
      Alpha Lam authored
      Add PRIVATE macro for adding private_extern directive for yasm
      to hide global symbols. This is only enabled if -DCHROMIUM is used
      with YASM.
      
      Also fixed a small problem with	rtcd_defs.sh to guard TEMPORAL_DENOISING.
      
      Change-Id: I9027fce3ebddcf20078293e4b86b396f21da7857
      0f7e4665
  21. 23 May, 2012 2 commits
    • Attila Nagy's avatar
      Fix another multithreaded encoder loopfilter race condition · 48908530
      Attila Nagy authored
      After a key frame encoding, the frame type could change while
      filtering is still going on. Pass the frame type as parameter to the
      loopfilter function and don't read it from common storage.
      
      vp8cx_set_alt_lf_level has to be done before packing the stream.
      Currently alt_lf_level is not used so there hasn't been any visible
      problem here.
      
      Change-Id: Ia114162158cd833c2b16e3b89303cc9c91f19165
      48908530
    • John Koleszar's avatar
      Prevent external frame size changes in two-pass · 410ae576
      John Koleszar authored
      The two-pass code does not support the case where the application
      changes the frame size dynamically. Add this case to the validation
      checks in the vpx_codec_enc_config_set() path.
      
      Change-Id: Idadc42c7c3bd566ecdbce30d8dd720add097f992
      410ae576