1. 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
  2. 09 May, 2012 1 commit
  3. 08 May, 2012 1 commit
    • Jim Bankoski's avatar
      vp8e - boolcoder unit test · 9851486b
      Jim Bankoski authored
      Adds a unit test to the boolcoder that tests encoding 
      and decoding thousands of different bits, with different 
      probabilities in different patterns.   
      
      Code borrowed from the webp project - and its committers.
      
      Change-Id: Icabbb884d57e666496490c961dd29b246144ab3e
      9851486b
  4. 04 May, 2012 2 commits
  5. 03 May, 2012 2 commits
    • Attila Nagy's avatar
      vp8_multi_resolution_encoder.c is not a generated example · ef8ba4f6
      Attila Nagy authored
      Move it from GEN_EXAMPLES to UTILS list.
      
      Change-Id: I7ebd51b18a9cb58e3008ca3d7576589400b365ce
      ef8ba4f6
    • John Koleszar's avatar
      multi-res: restore v1.0.0 API · 25a36d6b
      John Koleszar authored
      Move the notion of 0 bitrate implying skip deeper into the codec,
      rather than doing it at the multi-encoder API level. This preserves
      v1.0.0 ABI compatibility, rather than forcing a bump to v2.0.0 over a
      minor change. Also, this allows the case where the application can
      selectively enable and disable the larger resolution(s) without having
      to reinitialize the codec instace (for instance, if no target is
      receiving the full resolution stream).
      
      It's not clear how deep to push this check. It may be valuable to
      allow the framerate adaptation code to run, for example. Currently put
      the check as early as possible for simplicity, should reevaluate this
      as this feature gains real use.
      
      Change-Id: I371709b8c6b52185a1c71a166a131ecc244582f0
      25a36d6b
  6. 02 May, 2012 2 commits
  7. 27 Apr, 2012 3 commits
    • Adrian Grange's avatar
      Reset output frames counter for second pass · 414b5eae
      Adrian Grange authored
      The frame counter was not being reset at the start of
      the first pass.
      
      Change-Id: I2ef7c6edf027e43f83f470c52cbcf95bf152e430
      414b5eae
    • Adrian Grange's avatar
      Modified ARNR MC-filter to ignore ARF frame · 3f252e30
      Adrian Grange authored
      The ARNR filter uses MC to find the best match between the
      ARF and other nearby frames in the filter-set. Since the
      ARF is a member of the filter-set, MC in that case is
      unnecesssary. This patch modifies the filter so it does
      not apply MC in this case.
      
      Change-Id: Ic0321199c08db2189a57f28d1700b745bc7ff66d
      3f252e30
    • Adrian Grange's avatar
      Removed MV costing from ARNR filtering · f0605f4b
      Adrian Grange authored
      The ARNR filter uses a motion compensated temporal filter,
      but the motion estimation implementation accounts for the
      cost of the mv in its decision making process. The ARNR
      filter uses a dummy cost table initialized to 0 as a way
      to ignore the mv costs (which are irrelevant to the filter).
      
      This CL modifies the ARNR filter implementation so that
      the mv costing is ignored without the requirement for
      dummy tables.
      
      Change-Id: I4196aa5c24da63f858ff54fbaa5fc85ae1f1957f
      f0605f4b
  8. 26 Apr, 2012 1 commit
    • Attila Nagy's avatar
      Moves error concealment allocations from common parts to decoder · 24e7b1b9
      Attila Nagy authored
      The backup MODE_INFO buffer used in the error concealment was
      allocated in the codec common parts allocation even though this is a
      decoder only resource. Moved the allocation to the decoder side.
      No need to update_mode_info_border as mode_info buffers are zero
      allocated.
      
      This fixes also a potential memory leak as the EC overlaps buffer was not
      properly released before reallocation after a frame size change.
      
      Change-Id: I12803d3e012308d95669069980b1c95973fb775f
      24e7b1b9
  9. 24 Apr, 2012 1 commit
    • Attila Nagy's avatar
      Simplifies decoder multithread synching · 0c483d6b
      Attila Nagy authored
      Increment the last_row_mb_col counter by nsync after last MB of row is
      ready. This way we dont need to check for last MB of row when
      synching.
      
      Set last MB of row ready just after row extension is done, This avoids
      o potential race condition whit the processing of last MB of next row.
      
      Change-Id: I19c44fd6041116ee5483be2143b4f4bfcd149eac
      0c483d6b
  10. 23 Apr, 2012 5 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
    • Scott LaVarnway's avatar
    • Attila Nagy's avatar
      Optimizes precalculated decoder block ptrs&offs · 175495fe
      Attila Nagy authored
      The block pointers and offset do not need to be calculated for every
      frame. Block internal predictors can be update once when decoder is
      allocated. Destination and previous buffer offsets have to be updated
      just when frame size is changing.
      
      Change-Id: I92ca8df0e6aaac4cc35ab890751d446760bf82e2
      175495fe
    • Attila Nagy's avatar
      Removes duplication of key frame mode probabilities · f4126995
      Attila Nagy authored
      Key frame macrobock and block mode probabilities are constant.
      Remove the allocation of tables for each codec instance and use
      instead the default const prob tables.
      
      Change-Id: I8361798ac491f9b3889e86925a494c58647c753f
      f4126995
  11. 20 Apr, 2012 1 commit
  12. 19 Apr, 2012 3 commits
    • Scott LaVarnway's avatar
      Makes all mode token tables const part 2 · 317d4244
      Scott LaVarnway authored
      (see Change I9b2ccc88: Makes all mode token tables const)
      Further remove runtime table initialization and use
      precalculated const data.  Data footprint reduced
      by 4112 bytes.
      
      Change-Id: Ia3ae9fc19f77316b045cabff01f6e5f0876a86ab
      317d4244
    • 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
  13. 18 Apr, 2012 1 commit
  14. 17 Apr, 2012 2 commits
    • 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
    • Attila Nagy's avatar
      Makes all global data in entropy.c const · a91b42f0
      Attila Nagy authored
      Removes all runtime initialization of global data in entropy.c.
      Precalculated values are used for initializing all entropy related
      tabels.
      
      First patch in a series to make sure code is reentrant.
      
      Change-Id: I9aac91a2a26f96d73c6470d772a343df63bfe633
      a91b42f0
  15. 12 Apr, 2012 9 commits
  16. 10 Apr, 2012 2 commits
    • Deb Mukherjee's avatar
      Fixes to disable MFQE when there is motion. · 6b33ca39
      Deb Mukherjee authored
      This patch includes:
      1. fixes to disable block based termporal mixing when motion
      is detected (because this version of mfqe only handles zero motion).
      2. The criterion used for determining whether to mix or
      not are changed to use squared differences rather than
      absolute differences.
      3. Additional checks on color mismatch and excessive block
      flatness added. If the block as decoded has very low activity
      it is unlikely to yield benefits for mixing.
      
      Change-Id: I07331e5ab5ba64844c56e84b1a4b7de823eac6cb
      6b33ca39
    • Debargha Mukherjee's avatar
  17. 04 Apr, 2012 1 commit
  18. 03 Apr, 2012 1 commit
    • John Koleszar's avatar
      MFQE: apply threshold to subblocks and chroma. · 8106df8f
      John Koleszar authored
      In cases where you have a flat background occluded by a moving object
      of similar luminosity in the foreground, it was likely that the
      foreground blocks would persist for a few frames after the background
      is uncovered. This is particularly noticable when the object has a
      different color than the background, so add the chroma planes in as an
      additional check.
      
      In addition, for block sizes of 8 and 16, the luma threshold is
      applied on four subblocks independently, which helps when only part of
      the background in the block has been uncovered.
      
      This fixes issue #392, which includes a test clip to reproduce the
      issue.
      
      BUG=392
      
      Change-Id: I2bd7b2b0e25e912dcac342e5ad6e8914f5afd302
      8106df8f
  19. 02 Apr, 2012 1 commit
    • Johann's avatar
      Allow disabling disabled codecs · c459d37c
      Johann authored
      When using 'make dist' after --disable-vp8[encoder|decoder] it would
      fail to recognize the option. This would only occur when also specifying
      --enable-install-docs and --enable-install-srcs but not
      --enable-codec-srcs
      
      Including vpx/ fixes builds with --enable-codec-srcs
      
      vpx_timer.h is also required for vpxenc.c
      
      Change-Id: Ie3e28b2f7ec7ee6d5961d3843f9eab869f79c35b
      c459d37c