1. 11 May, 2012 1 commit
  2. 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
  3. 04 May, 2012 5 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
      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
    • 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
  4. 02 May, 2012 5 commits
    • 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
  5. 27 Apr, 2012 2 commits
    • 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
  6. 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
  7. 23 Apr, 2012 3 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
    • 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
  8. 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
  9. 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
  10. 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
  11. 16 Apr, 2012 1 commit
    • 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
  12. 29 Mar, 2012 1 commit
  13. 26 Mar, 2012 1 commit
  14. 22 Mar, 2012 1 commit
    • Deb Mukherjee's avatar
      Miscellaneous changes in mfqe and postproc modules · 66ba79f5
      Deb Mukherjee authored
      Adds logic to disable mfqe for the first frame after a configuration
      change such as change in resolution. Also adds some missing
      if CONFIG_POSTPROC macro checks.
      
      Change-Id: If29053dad50b676bd29189ab7f9fe250eb5d30b3
      66ba79f5
  15. 21 Mar, 2012 2 commits
  16. 16 Mar, 2012 1 commit
    • Yunqing Wang's avatar
      Add motion search skipping in first pass · 6a819ce4
      Yunqing Wang authored
      This change added a motion search skipping mechanism similar
      to what we did in second pass. For a macroblock that is very
      similar to the macroblock at same location on last frame,
      we can set its mv to be zero, and skip motion search. This
      improves first-pass performance for slide shows and video
      conferencing clips with a slight PSNR loss.
      
      Change-Id: Ic73f9ef5604270ddd6d433170091d20361dfe229
      6a819ce4
  17. 14 Mar, 2012 1 commit
    • John Koleszar's avatar
      fix potential use of uninitialized rate_y · 20cd3e6b
      John Koleszar authored
      This issue likely doesn't appear in the unmodified encoder, but
      sufficient hacking on the mode selection loop can expose it.
      
      Change-Id: I8a35831e8f08b549806d0c2c6900d42af883f78f
      20cd3e6b
  18. 13 Mar, 2012 1 commit
  19. 12 Mar, 2012 1 commit
  20. 06 Mar, 2012 2 commits
  21. 05 Mar, 2012 1 commit
    • Jim Bankoski's avatar
      vp8e - fix coefficient costing · 88869909
      Jim Bankoski authored
      Coefficient costing failed to take account of the first branch
      being skipped ( 0 vs eob) if the previous token is 0.
      
      Fixed rd to account for slightly increased token cost & cleaned up
      warning message
      
      Change-Id: I56140635d9f48a28dded5a816964e973a53975ef
      88869909
  22. 01 Mar, 2012 2 commits
  23. 29 Feb, 2012 2 commits
    • Attila Nagy's avatar
      Packing bitstream on-the-fly with delayed context updates · 52cf4dca
      Attila Nagy authored
      Produce the token partitions on-the-fly, while processing each MB.
      Context is updated at the beginning of each frame based on the
      previoud frame's counters. Optimally encoder outputs partitions in
      separate buffers. For frame based output, partitions are concatenated
      internally.
      
      Limitations:
          - enabled just in combination with realtime-only mode
          - number of encoding threads has to be equal or less than the
          number of token partitions. For this reason, by default the encoder
          will do 8 token partitions.
          - vpxenc supports partition output (-P) just in combination with
          IVF output format (--ivf)
      
      Performance:
          - Realtime encoder can be up to 13% faster (ARM) depending on the number
          of threads and bitrate settings. Constant gain over the 5-16 speed
          range.
          - Token buffer reduced from one frame to 8 MBs
      
      Quality:
          - quality is affected by the delayed context updates. This again
          dependents on input material, speed and bitrate settings. For VC
          style input the loss seen is up to 0.2dB. If error-resilient=2
          mode is used than the effect of this change is negligible.
      
      Example:
      ./configure --enable-realtime-only --enable-onthefly-bitpacking
      ./vpxenc --rt --end-usage=1 --fps=30000/1000 -w 640 -h 480
      --target-bitrate=1000 --token-parts=3 --static-thresh=2000
      --ivf -P -t 4 -o strm.ivf tanya_640x480.yuv
      
      Change-Id: I127295cb85b835fc287e1c0201a67e378d025d76
      52cf4dca
    • Jim Bankoski's avatar
      vp8e - attempt to lessen blockiness · b8fa2839
      Jim Bankoski authored
      applies a penalty to intra blocks in order to cut down on blockiness in
      easy sections.
      
      Change-Id: Ia9e5df16328b0bf01bf0f2e6e61abcb687316c12
      b8fa2839