1. 26 Sep, 2012 1 commit
  2. 24 Sep, 2012 2 commits
    • Jim Bankoski's avatar
      disable segmentation on enhancement layers · 22141d9d
      Jim Bankoski authored
      This should avoid problems with blocks gettings high quality
      improvement despite having recently moved:
      
      Change-Id: Ic0af0de2d6577807fa3c553f47b55d547ef36359
      22141d9d
    • Marco Paniconi's avatar
      Update to cyclic refresh: · b501251e
      Marco Paniconi authored
      Set the seg map to 0 for key frame.
      
      In previous commit on cyclic refresh, the seg map for key frame
      was not reset, and instead used the seg map from last frame.
      
      Change-Id: I848eb2face420dfcd2f7daca6f070b9127ca938b
      b501251e
  3. 22 Sep, 2012 1 commit
    • Marco Paniconi's avatar
      Update to cyclic refresh. · 5979b89b
      Marco Paniconi authored
      -Increase the amount of mbs to be refreshed.
      -Replace the delta qp with a fixed and reduced delta.
      -Change to the mb update loop to try to always update same amount of mbs.
      
      Change-Id: I93ac88002fd8dc677d2337f77998ff93f64e4ff9
      5979b89b
  4. 21 Aug, 2012 2 commits
    • Yunqing Wang's avatar
      Add biasing to ZEROMV for videos with static background · 24c346df
      Yunqing Wang authored
      For videos with big static background(such as video conferencing
      clips), the mode decision was biased to ZEROMV in order to
      obtain a stable background. The percentage of ZEROMV on last
      frame was used to predict if there is static area in current frame,
      and checking already-encoded neighboring macroblocks' motion
      vectors to make sure the local area has low motion.
      
      Change-Id: I05b3241d3a56a0bda88b6681e5646c1c8baf2e57
      24c346df
    • Yunqing Wang's avatar
      Fix inter_zz_count calculation bug · 8ee88da0
      Yunqing Wang authored
      The current way of counting inter_zz_count doesn't work correctly
      in multi-threaded encoding. Calculating it after the frame is
      encoded fixed the problem.
      
      Change-Id: Ifcb1972cde950b8cc194f75c6d7b6af09e8b0e65
      8ee88da0
  5. 20 Aug, 2012 2 commits
  6. 14 Aug, 2012 1 commit
  7. 02 Aug, 2012 1 commit
  8. 01 Aug, 2012 1 commit
    • Attila Nagy's avatar
      Fix encoder mem allocation when picture size is changed · cbc249ba
      Attila Nagy authored
      After the picture size was changed to a bigger one, the internal memory was
      corrupted and multithreaded encoder was deadlocking.
      
      Memory for last frame's MVs, segmentation map and active map were allocated when
      the compressor was created (vp8_create_compressor). Buffers need to be
      reallocated when picture size is changed, so, the allocation was moved to
      vp8_alloc_compressor_data, which is called every time the picture is resized.
      
      Change-Id: I7ce16b8e69bbf0386d7997df57add155aada2240
      cbc249ba
  9. 28 Jul, 2012 1 commit
    • Marco Paniconi's avatar
      Remove the resetting of qp params for temporal layers. · ef4a9670
      Marco Paniconi authored
      The ambient qp and active worse/best qp were reset for every frame
      when temporal layers is on. This change removes this reset.
      
      As this affects the target size for forced key frames
      (it will actually lower the size somewhat), we increased the
      inital boost factor to compensate.
      
      Change-Id: Ie38d95f5c99ab3d447469c49e2177bc3fcc4ad28
      ef4a9670
  10. 27 Jul, 2012 1 commit
    • 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
  11. 26 Jul, 2012 1 commit
    • 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
  12. 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
  13. 12 Jun, 2012 1 commit
  14. 11 Jun, 2012 1 commit
    • 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
  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 1 commit
    • Johann's avatar
      Remove extra enum · 965d8686
      Johann authored
      VP8_REFFRAME is the same as vpx_ref_frame_type
      
      Change-Id: I63c2ddfb39f6ec87d1e5eb6a8852846464552b1b
      965d8686
  18. 30 May, 2012 1 commit
    • 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
  19. 24 May, 2012 1 commit
    • 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
  20. 23 May, 2012 3 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
      Fix memory leak in vpx_codec_enc_config_set() · cf097015
      John Koleszar authored
      Resolution changes in calls to vpx_codec_enc_config_set() would cause
      a memory leak due to failing to release the lookahead and alt ref
      buffers.
      
      Change-Id: I48392ea25e71fe2760d60cfde3fb3874598cc85f
      cf097015
    • Attila Nagy's avatar
      Fix another multithreaded encoder loopfilter race condition · ea392d47
      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
      ea392d47
  21. 16 May, 2012 1 commit
    • Yunqing Wang's avatar
      multi-res: force Key frame sychronization · 65dd157c
      Yunqing Wang authored
      In multi-resolution encoding, frame_type decision for each frame
      is made by the lowest-resolution encoder. For all other higher-
      resolution encoders, kf_mode is always set to VPX_KF_DISABLED,
      and they are forced to use the same frame_type picked by the
      lowest-resolution encoder.
      
      Change-Id: Ic4d52ec65bbc012ca9c2d236210e28a295591eaf
      65dd157c
  22. 11 May, 2012 1 commit
  23. 04 May, 2012 3 commits
    • John Koleszar's avatar
      fix vp8_ namespace issues · 14d827f4
      John Koleszar authored
      Make functions only referenced from one translation unit static. Other
      symbols with extern linkage get a vp8/vpx prefix.
      
      Change-Id: I928c7e0d0d36e89ac78cb54ff8bb28748727834f
      14d827f4
    • John Koleszar's avatar
      Formalize encodeframe.c forward delclarations · 22f56b93
      John Koleszar authored
      Change If4321cc5 fixed a bug caused by forward declarations not being
      kept in sync across C files, resulting in a function call with the
      wrong arguments. The commit moves the affected function declarations
      into a header file, along with the other symbols from encodeframe.c
      that were being sloppily shared.
      
      Change-Id: I76a7b4c66d4fe175f9cbef7e52148655e4bb9ba1
      22f56b93
    • Attila Nagy's avatar
      Make global data const · f039a85f
      Attila Nagy authored
      Removes all runtime initialization of global data. This commit is a
      squashed version of the following series cherry-picked from master.
      This is necessary because of a change that was merged to the tester
      that depends on the scaler being moved to the RTCD framework, which
      is a worthwhile thing to include in Eider anyway.
      
        - a91b42f0 Makes all global data in entropy.c const
        - b35a0db0 Makes all global data in tokenize.c const
        - 441cac8e Makes all mode token tables const
        - 5948a021 Ports vpx_xcaler to new RTCD method
        - 317d4244 Makes all mode token tables const part 2
      
      Change-Id: Ifeaea24df2b731e7c509fa6c6ef6891a374afc26
      f039a85f
  24. 02 May, 2012 1 commit
    • Attila Nagy's avatar
      Fix compiler warnings · 14c9fce8
      Attila Nagy authored
      Fix code for following warnings:
      -Wimplicit-function-declaration
      -Wuninitialized
      -Wunused-but-set-variable
      -Wunused-variable
      
      Change-Id: I2be434f22fdecb903198e8b0711255b4c1a2947a
      14c9fce8
  25. 25 Apr, 2012 1 commit
    • Attila Nagy's avatar
      Fix loopfilter race condition in multithreaded encoder · 3939e85b
      Attila Nagy authored
      Race was introduced by https://gerrit.chromium.org/gerrit/15563.
      
      If loopfilter related config params were changed between frames, or
      after a KEY frame, there could be a mismatch between encoder's and
      decoder's recontructed image. In worst case, when frame buffers are
      reallocated because of a size change, the loopfilter could
      do an invalid data access (segmentation fault).
      
      Fixes:
      Sync with the loopfilter before applying any encoder changes in
      vp8_change_config().
      Moved the loopfilter synching to the top of
      encode_frame_to_data_rate() so that it's done before any alteration of
      the encoder.
      
      Change-Id: Ide5245d2a2aeed78752de750c0110bc4b46f5b7b
      3939e85b
  26. 23 Apr, 2012 2 commits
    • Attila Nagy's avatar
      Shares one set of RD costs tables between all encoding threads · b41c17d6
      Attila Nagy authored
      RD costs were local to MACROBLOCK data and had to be copied all the
      time to each thread's MACROBLOCK data. Tables moved to a common place
      and only pointers are setup for each encoding thread.
      
      vp8_cost_tokens() generates 'int' costs so changed all types to be
      int (i.e. removed unsigned).
      
      NOTE: Could do some more cleaning in vp8cx_init_mbrthread_data().
      
      Change-Id: Ifa4de4c6286dffaca7ed3082041fe5af1345ddc0
      b41c17d6
    • Scott LaVarnway's avatar
      Removed mcomp_filter_type · 11876faa
      Scott LaVarnway authored
      and replaced with use_bilinear_mc_filter.
      
      Change-Id: Ie9e9f0bccca4ab7d3e23ae045aefed33536103ff
      11876faa
  27. 20 Apr, 2012 1 commit
    • John Koleszar's avatar
      vp8_change_config: don't force kf with spatial resampling · 8e858f90
      John Koleszar authored
      Look for changes in the codec's configured w/h instead of its active
      w/h when forcing keyframes. Otherwise calls to vp8_change_config()
      will force a keyframe when spatial resampling is active.
      
      Change-Id: Ie0d20e70507004e714ad40b640aa5b434251eb32
      8e858f90
  28. 19 Apr, 2012 2 commits
    • Attila Nagy's avatar
      Ports vpx_xcaler to new RTCD method · 5948a021
      Attila Nagy authored
      We can get rid of all remaining global initializers now:
       vp8_scale_machine_specific_config()
       vp8_initialize()
       vp8dx_initialize()
      
      Change-Id: I2825cea5d1c01ad9f6c45df49a0f86d803bfeb69
      5948a021
    • Attila Nagy's avatar
      Makes all mode token tables const · 441cac8e
      Attila Nagy authored
      Mode token tabels precalculated in entropymode.c.
      Removes vp8_initialize_common()as all common global data
      is precalculated const now.
      
      Change-Id: I9b2ccc883e4f618069e1bc180dad3a823394eb73
      441cac8e
  29. 17 Apr, 2012 1 commit
    • Attila Nagy's avatar
      Makes all global data in tokenize.c const · b35a0db0
      Attila Nagy authored
      Removes all runtime initialization of global data in tokenize.c.
      DCT token and cost tabels are pre-generated.
      
      Second patch in a series to make sure code is reentrant.
      
      Change-Id: Iab48b5fe290129823947b669413101f22a1bcac0
      b35a0db0