Skip to content
Snippets Groups Projects
  1. May 21, 2012
  2. May 11, 2012
  3. May 08, 2012
    • John Koleszar's avatar
      Use consistent range for VP8E_SET_NOISE_SENSITIVITY · c8f4c187
      John Koleszar authored
      Accept the same range of inputs for the VP8E_SET_NOISE_SENSITIVITY
      control, regardless of whether temporal denoising is enabled or not.
      This is important for maintaining compatibility with existing
      applications.
      
      Change-Id: I94cd4bb09bf7c803516701a394cf1a63bfec0097
      c8f4c187
    • 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. May 04, 2012
    • 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
      Fix multi-resolution threaded encoding · 3e32105d
      Attila Nagy authored
      mb_row and mb_col was not passed to vp8cx_encode_inter_macroblock in
      threaded encoding.
      
      Change-Id: If4321cc59bf91e991aa31e772f882ed5f2bbb201
      3e32105d
    • John Koleszar's avatar
      remove deprecated pre-v0.9.0 API · 2bf8fb58
      John Koleszar authored
      Remove a bunch of compatibility code dating back to before the initial
      libvpx release.
      
      Change-Id: Ie50b81e7d665955bec3d692cd6521c9583e85ca3
      2bf8fb58
    • 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
    • Attila Nagy's avatar
      Fix multi-resolution threaded encoding · 357800e7
      Attila Nagy authored
      mb_row and mb_col was not passed to vp8cx_encode_inter_macroblock in
      threaded encoding.
      
      Change-Id: If4321cc59bf91e991aa31e772f882ed5f2bbb201
      357800e7
  5. May 03, 2012
    • 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. May 02, 2012
    • John Koleszar's avatar
      Add VPX_TS_ prefix to MAX_LAYERS, MAX_PERIODICITY · d46ddd08
      John Koleszar authored
      Preserved the prior names for compatibility, will remove in the future.
      
      Change-Id: I8773f959ebce72f60168a2972f7a8ffe6642b9b2
      d46ddd08
    • Timothy B. Terriberry's avatar
      Fix TEXTRELs in the ARM asm. · e50c8427
      Timothy B. Terriberry authored
      Besides imposing a performance penalty at startup in most
       configurations, these relocations break the dynamic linker for
       native Fennec, since it does not support them at all.
      
      Change-Id: Id5dc768609354ebb4379966eb61a7313e6fd18de
      e50c8427
    • Timothy B. Terriberry's avatar
      Fix trailing commas in enums. · 22ae1403
      Timothy B. Terriberry authored
      These are warnings in most builds, but show up as compile errors on
       some platforms when these headers are included from C++ code.
      
      Change-Id: I6c523b4dbbc699075fe73830442b51922e5a61d5
      22ae1403
    • Timothy B. Terriberry's avatar
      Fix trailing commas in enums. · 28f54515
      Timothy B. Terriberry authored
      These are warnings in most builds, but show up as compile errors on
       some platforms when these headers are included from C++ code.
      
      Change-Id: I6c523b4dbbc699075fe73830442b51922e5a61d5
      28f54515
    • 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
  7. Apr 27, 2012
    • 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. Apr 26, 2012
    • 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. Apr 25, 2012
    • 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
  10. Apr 24, 2012
    • 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
  11. Apr 23, 2012
    • 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
    • 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
  12. Apr 20, 2012
    • John Koleszar's avatar
      multi-res: restore v1.0.0 API · d72c536e
      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
      d72c536e
    • 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
  13. Apr 19, 2012
    • 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
    • John Koleszar's avatar
      rtcd: serialize function pointer initialization · c311b3b3
      John Koleszar authored
      Ensure that RTCD function pointers are set at most once, to silence
      some data race warnings. Implementation provided for POSIX threads and
      Win32, with the prior unsynchronized behavior left in place for other
      platforms.
      
      Change-Id: I65c5856df43ef67043b3d5f26ddafddd8fcb2f7e
      c311b3b3
    • 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
  14. Apr 17, 2012
    • 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. Apr 16, 2012
    • John Koleszar's avatar
      correct alt-ref contribution to frame rate · 21173e19
      John Koleszar authored
      When producing an invisible ARF, the time stamp counters aren't
      updated since the last time stamp is seen by the codec twice. The
      prior code was trapping this case with refresh_alt_ref, but this isn't
      correct for other uses of the ARF. Instead, use the show_frame flag.
      
      Change-Id: If67fff7c6c66a3606698e34e2fb5731f56b4a223
      21173e19
  16. Apr 12, 2012
    • Scott LaVarnway's avatar
      loopfilter improvements · e0a80519
      Scott LaVarnway authored
      Local variable offsets are now consistent for the functions,
      removed unused parameters, reworked the assembly to eliminate
      stalls/instructions.
      
      Change-Id: Iaa37668f8a9bb8754df435f6a51c3a08d547f879
      e0a80519
  17. Apr 10, 2012
    • 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
  18. Apr 03, 2012
    • 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. Apr 02, 2012
  20. Mar 29, 2012
    • John Koleszar's avatar
      remove unused BOOL_CODER::value · 3f834946
      John Koleszar authored
      Change-Id: Ic7782707afed38c3ec7e996a4a11dc2d55226691
      3f834946
    • Scott LaVarnway's avatar
      MB_MODE_INFO size reduction · 31322c5f
      Scott LaVarnway authored
      Reduced the size of the struct by 8 bytes, which would be
      a memory savings of 64800 bytes for 1080 resolutions.  Had
      an extra byte, so created an is_4x4 for B_PRED or SPLITMV
      modes.  This simplified the mode checks in
      vp8_reset_mb_tokens_context and vp8_decode_mb_tokens.
      
      Change-Id: Ibec27784139abdc34d4d01f73c09f43e9e10e0f5
      31322c5f
Loading