1. 21 Jul, 2011 1 commit
    • Yaowu Xu's avatar
      fix more merge issues · 8c31484e
      Yaowu Xu authored
      With this fix, the experimental branch now builds and encodes correctly
      with the following two configure options respectively:
      --enable-experimental --enable-t8x8
      --enable-experimental
      
      Change-Id: I3147c33c503fe713a85fd371e4f1a974805778bf
      8c31484e
  2. 20 Jul, 2011 2 commits
  3. 19 Jul, 2011 2 commits
    • Johann's avatar
      remove old armv5 code · 6afafc31
      Johann authored
      armv5 dequantizer is not referenced
      
      Change-Id: Id1cc617dcee35ebd6a406816ec6aaa26e8bbc8ad
      6afafc31
    • Scott LaVarnway's avatar
      Moved vp8_encode_bool into boolhuff.h · a25f6a9c
      Scott LaVarnway authored
      allowing the compiler to inline this function.  For real-time
      encodes, this gave a boost of 1% to 2.5%, depending on the
      speed setting.
      
      Change-Id: I3929d176cca086b4261267b848419d5bcff21c02
      a25f6a9c
  4. 13 Jul, 2011 1 commit
  5. 08 Jul, 2011 1 commit
    • Attila Nagy's avatar
      New loop filter interface · 62295844
      Attila Nagy authored
      Separate simple filter with reduced no. of parameters.
      MB filter level picking based on precalculated table. Level table updated for
      each frame. Inside and edge limits precalculated and updated just when
      sharpness changes. HEV threshhold is constant.
      ARM targets use scalars and others vectors.
      
      Change works only with --target=generic-gnu
      All other targets have to be updated!
      
      Change-Id: I6b73aca6b525075b20129a371699b2561bd4d51c
      62295844
  6. 29 Jun, 2011 1 commit
  7. 28 Jun, 2011 4 commits
    • John Koleszar's avatar
      Use MAX_ENTROPY_TOKENS and ENTROPY_NODES more consistently · b32da7c3
      John Koleszar authored
      There were many instances in the code of vp8_coef_tokens and
      vp8_coef_tokens-1, which was a preprocessor macro despite the naming
      convention. Replace these with MAX_ENTROPY_TOKENS and ENTROPY_NODES,
      respectively.
      
      Change-Id: I72c4f6c7634c94e1fa066cd511471e5592c748da
      b32da7c3
    • Gaute Strokkenes's avatar
      Simplify decode_macroblock. · 81c05464
      Gaute Strokkenes authored
      Change-Id: Ieb2f3827ae7896ae594203b702b3e8fa8fb63d37
      81c05464
    • Stefan Holmer's avatar
      New ways of passing encoded data between encoder and decoder. · 7296b3f9
      Stefan Holmer authored
      With this commit frames can be received partition-by-partition
      from the encoder and passed partition-by-partition to the
      decoder.
      
      At the encoder-side this makes it easier to split encoded
      frames at partition boundaries, useful when packetizing
      frames. When VPX_CODEC_USE_OUTPUT_PARTITION is enabled,
      several VPX_CODEC_CX_FRAME_PKT packets will be returned
      from vpx_codec_get_cx_data(), containing one partition
      each. The partition_id (starting at 0) specifies the decoding
      order of the partitions. All partitions but the last has
      the VPX_FRAME_IS_FRAGMENT flag set.
      
      At the decoder this opens up the possibility of decoding partition
      N even though partition N-1 was lost (given that independent
      partitioning has been enabled in the encoder) if more info
      about the missing parts of the stream is available through
      external signaling.
      
      Each partition is passed to the decoder through the
      vpx_codec_decode() function, with the data pointer pointing
      to the start of the partition, and with data_sz equal to the
      size of the partition. Missing partitions can be signaled to
      the decoder by setting data != NULL and data_sz = 0. When
      all partitions have been given to the decoder "end of data"
      should be signaled by calling vpx_codec_decode() with
      data = NULL and data_sz = 0.
      
      The first partition is the first partition according to the
      VP8 bitstream + the uncompressed data chunk + DCT address
      offsets if multiple residual partitions are used.
      
      Change-Id: I5bc0682b9e4112e0db77904755c694c3c7ac6e74
      7296b3f9
    • Mike Hommey's avatar
      Avoid text relocations in ARM vp8 decoder · e3f850ee
      Mike Hommey authored
      The current code stores pointers to coefficient tables and loads them to
      access the tables contents. As these pointers are stored in the code
      sections, it means we end up with text relocations. eu-findtextrel will
      thus complain about code not compiled with -fpic/-fPIC.
      
      Since the pointers are stored in the code sections, we can actually cheat
      and let the assembler generate relative addressing when accessing the
      coefficient tables, and just load their location with adr.
      
      Change-Id: Ib74ae2d3f2bab80b29991355f2dbe6955f38f6ae
      e3f850ee
  8. 27 Jun, 2011 1 commit
    • Stefan Holmer's avatar
      Adding support for error concealment in multi-threaded decoding · ba0822ba
      Stefan Holmer authored
      Also includes a couple of error concealment bug fixes:
      - the segment_id wasn't properly initialized when missing
      - when interpolating and no neighbors are found, set to zero
      - clear the qcoef buffer when concealing an MB
      
      Change-Id: Id79c876b41d78b559a2241e9cd0fd2cae6198f49
      ba0822ba
  9. 22 Jun, 2011 1 commit
    • James Berry's avatar
      get/set reference buffer dimension check added · 2bd90c13
      James Berry authored
      vp8_yv12_copy_frame_ptr() expects same size
      buffers which was not previously gaurenteed.
      Using an improperly allocated buffer would
      cause a crash before.
      
      Change-Id: I904982313ce9352474f80de842013dcd89f48685
      2bd90c13
  10. 20 Jun, 2011 1 commit
    • Scott LaVarnway's avatar
      Improved vp8dx_decode_bool · 67a1f98c
      Scott LaVarnway authored
      Relocated the vp8dx_bool_decoder_fill() call, allowing
      the compiler to produce better assembly code.  Tests
      showed a 1 - 2 % performance boost (x86 using gcc)
      for the 720p clip used.
      
      Change-Id: Ic5a4eefed8777e6eefa007d4f12dfc7e64482732
      67a1f98c
  11. 15 Jun, 2011 1 commit
  12. 14 Jun, 2011 2 commits
    • Johann's avatar
      fix --disable-runtime-cpu-detect on x86 · 92b0e544
      Johann authored
      Change-Id: Ib8e429152c9a8b6032be22b5faac802aa8224caa
      92b0e544
    • James Zern's avatar
      fix corrupt frame leak · 532c30c8
      James Zern authored
      If setup_token_decoder reported an internal error the memory allocated
      there would not be freed in the resulting call to _remove_decompressor.
      
      Change-Id: Ib459de222d76b1910d6f449cdcd01663447dbdf6
      532c30c8
  13. 13 Jun, 2011 1 commit
    • Scott LaVarnway's avatar
      Populate bmi for B_PRED only · 223d1b54
      Scott LaVarnway authored
      Small decode performance gain (~1%) on keyframes.  No
      noticeable gains on encode.  Also changed pick_intra4x4mby_modes()
      to read the above and left block modes for keyframes only.
      
      Change-Id: I1f4885252f5b3e9caf04d4e01e643960f910aba5
      223d1b54
  14. 08 Jun, 2011 1 commit
    • Johann's avatar
      use GCC inline magic · 79327be6
      Johann authored
      Better fix for #326. ICC happens to support the inline magic
      
      Change-Id: Ic367eea608c88d89475cb7b05d73500d2a1bc42b
      79327be6
  15. 07 Jun, 2011 1 commit
  16. 03 Jun, 2011 1 commit
  17. 02 Jun, 2011 1 commit
    • Scott LaVarnway's avatar
      Removed B_MODE_INFO · 773768ae
      Scott LaVarnway authored
      Declared the bmi in BLOCKD as a union instead of B_MODE_INFO.
      Then removed B_MODE_INFO completely.
      
      Change-Id: Ieb7469899e265892c66f7aeac87b7f2bf38e7a67
      773768ae
  18. 01 Jun, 2011 1 commit
    • Henrik Lundin's avatar
      Bugfix in vp8dx_set_reference · 69ba6bd1
      Henrik Lundin authored
      The fb_idx_ref_cnt book-keeping was in error. Added an assert to
      prevent future errors in the reference count vector. Also fixed a
      pointer syntax error.
      
      Change-Id: I563081090c78702d82199e407df4ecc93da6f349
      69ba6bd1
  19. 26 May, 2011 1 commit
  20. 24 May, 2011 4 commits
    • Scott LaVarnway's avatar
      Use int_mv instead of MV in vp8_mv_cont · a39321f3
      Scott LaVarnway authored
      Less operations.
      
      Change-Id: Ibb9cd5ae66b8c7c681c9a654d551c8729c31c3ae
      a39321f3
    • Scott LaVarnway's avatar
      Removed unused variable warnings · cfab2cae
      Scott LaVarnway authored
      Change-Id: I6e5e921f03dc15a72da89a457848d519647677a3
      cfab2cae
    • Scott LaVarnway's avatar
      MODE_INFO size reduction · e11f21af
      Scott LaVarnway authored
      Declared the bmi in MODE_INFO as a union instead of B_MODE_INFO.
      This reduced the memory footprint by 518,400 bytes for 1080
      resolutions.  The decoder performance improved by ~4% for the
      clip used and the encoder showed very small improvements. (0.5%)
      This reduction was first mentioned to me by John K. and in a
      later discussion by Yaowu.
      This is WIP.
      
      Change-Id: I8e175fdbc46d28c35277302a04bee4540efc8d29
      e11f21af
    • Henrik Lundin's avatar
      Fixing bug in VP8_SET_REFERENCE decoder control command · a126cd17
      Henrik Lundin authored
      In vp8dx_set_reference, the new reference image is written to an
      unused reference frame buffer.
      
      Change-Id: I9e4f2cef5a011094bb7ce7b2719cbfe096a773e8
      a126cd17
  21. 19 May, 2011 1 commit
    • Stefan Holmer's avatar
      Adding error-concealment to the decoder. · d04f8523
      Stefan Holmer authored
      The error-concealer is plugged in after any motion vectors have been
      decoded. It tries to estimate any missing motion vectors from the
      motion vectors of the previous frame. Intra blocks with missing
      residual are replaced with inter blocks with estimated motion vectors.
      
      This feature was developed in a separate sandbox
      (sandbox/holmer/error-concealment).
      
      Change-Id: I5c8917b031078d79dbafd90f6006680e84a23412
      d04f8523
  22. 12 May, 2011 1 commit
    • Scott LaVarnway's avatar
      Using int_mv instead of MV · 6b25501b
      Scott LaVarnway authored
      The compiler produces better assembly when using int_mv
      for assignments.  The compiler shifts and ors the two 16bit
      values when assigning MV.
      
      Change-Id: I52ce4bc2bfbfaf3f1151204b2f21e1e0654f960f
      6b25501b
  23. 09 May, 2011 1 commit
  24. 28 Apr, 2011 1 commit
  25. 27 Apr, 2011 3 commits
    • Ronald S. Bultje's avatar
      SSE2/SSSE3 optimizations for build_predictors_mbuv{,_s}(). · 1083fe49
      Ronald S. Bultje authored
      decoding
      
      before
      10.425
      10.432
      10.423
      =10.426
      
      after:
      10.405
      10.416
      10.398
      =10.406, 0.2% faster
      
      encoding
      
      before
      14.252
      14.331
      14.250
      14.223
      14.241
      14.220
      14.221
      =14.248
      
      after
      14.095
      14.090
      14.085
      14.095
      14.064
      14.081
      14.089
      =14.086, 1.1% faster
      
      Change-Id: I483d3d8f0deda8ad434cea76e16028380722aee2
      1083fe49
    • John Koleszar's avatar
      Speed up VP8DX_BOOL_DECODER_FILL · 5e1fd413
      John Koleszar authored
      The end-of-buffer check is hoisted out of the inner loop. Gives
      about 0.5% improvement on x86_64.
      
      Change-Id: I8e3ed08af7d33468c5c749af36c2dfa19677f971
      5e1fd413
    • John Koleszar's avatar
      Update VP8DX_BOOL_DECODER_FILL to better detect EOS · 9594370e
      John Koleszar authored
      Allow more reliable detection of truncated bitstreams by being more
      precise with the count of "virtual" bits in the value buffer.
      Specifically, the VP8_LOTS_OF_BITS value is accumulated into count,
      rather than being assigned, which was losing the prior value,
      increasing the required tolerance when testing for the error condition.
      
      Change-Id: Ib5172eaa57323b939c439fff8a8ab5fa38da9b69
      9594370e
  26. 26 Apr, 2011 1 commit
    • Scott LaVarnway's avatar
      Test vector mismatch fix · 7a2b9c50
      Scott LaVarnway authored
      Fixed test vector mismatch that was introduced
      in the "Removed dc_diff from MB_MODE_INFO"
      (Ie2b9cdf9e0f4e8b932bbd36e0878c05bffd28931)
      
      Change-Id: I98fa509b418e757b5cdc4baa71202f4168dc14ec
      7a2b9c50
  27. 25 Apr, 2011 1 commit
    • Johann's avatar
      remove simpler_lpf · 01527e74
      Johann authored
      the decision to run the regular or simple loopfilter is made outside the
      function and managed with pointers
      
      stop tracking the option in two places. use filter_type exclusively
      
      Change-Id: I39d7b5d1352885efc632c0a94aaf56b72cc2fe15
      01527e74
  28. 21 Apr, 2011 2 commits
    • Scott LaVarnway's avatar
      Removed unnecessary frame type checks · 6f6cd3ab
      Scott LaVarnway authored
      ref_frame is set to INTRA_FRAME for keyframes.  The B_PRED
      mode is only used in intra frames.
      
      Change-Id: I9bac8bec7c736300d47994f3cb570329edf11ec0
      6f6cd3ab
    • Scott LaVarnway's avatar
      Removed dc_diff from MB_MODE_INFO · 3698c1f6
      Scott LaVarnway authored
      The dc_diff flag is used to skip loopfiltering.  Instead
      of setting this flag in the decoder/encoder, we now check
      for this condition in the loopfilter.
      
      Change-Id: Ie2b9cdf9e0f4e8b932bbd36e0878c05bffd28931
      3698c1f6