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 1 commit
  3. 19 Jul, 2011 1 commit
    • 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. 18 Jul, 2011 1 commit
    • John Koleszar's avatar
      Improved 1-pass CBR rate control · b5ea2fbc
      John Koleszar authored
      This patch attempts to improve the handling of CBR streams with
      respect to the short term buffering requirements. The "buffer level"
      is changed to be an average over the rc buffer, rather than a long
      running average. Overshoot is also tracked over the same interval
      and the golden frame targets suppressed accordingly to correct for
      overly aggressive boosting.
      
      Testing shows that this is fairly consistently positive in one
      metric or another -- some clips that show significant decreases
      in quality have better buffering characteristics, others show
      improvenents in both.
      
      Change-Id: I924c89aa9bdb210271f2e03311e63de3f1f8f920
      b5ea2fbc
  5. 14 Jul, 2011 1 commit
  6. 12 Jul, 2011 2 commits
  7. 08 Jul, 2011 2 commits
    • Johann's avatar
      update x86 asm for loopfilter · 01433c50
      Johann authored
      Change-Id: I1ed739522db7c00c189851c7095c1b64ef6412ce
      01433c50
    • 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
  8. 30 Jun, 2011 1 commit
  9. 29 Jun, 2011 1 commit
  10. 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
    • 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
    • Stefan Holmer's avatar
      Adding support for independent partitions · 4cb0ebe5
      Stefan Holmer authored
      Adding support in the encoder for generating
      independent residual partitions by forcing
      equal probabilities over the prev coef entropy
      contexts.
      
      Change-Id: I402f5c353255f3ca20eae2620af739f6a498cd21
      4cb0ebe5
    • 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
  11. 27 Jun, 2011 1 commit
  12. 24 Jun, 2011 1 commit
  13. 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
  14. 17 Jun, 2011 1 commit
  15. 13 Jun, 2011 2 commits
    • 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
    • Scott LaVarnway's avatar
      Calc ref_frame_cost once per frame · e71a0106
      Scott LaVarnway authored
      instead of every macro block.
      
      Change-Id: I2604e94c6b89e3a8457777e21c8c38406d55b165
      e71a0106
  16. 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
  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. 26 May, 2011 1 commit
  19. 24 May, 2011 2 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
      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
  20. 19 May, 2011 3 commits
    • John Koleszar's avatar
      Fix segv without --enable-error-concealment · 7def9022
      John Koleszar authored
      Missed wrapping one function call in #if CONFIG_ERROR_CONCEALMENT.
      
      Change-Id: I5746b1e6e4531670dbed1130467331fe309bdcae
      7def9022
    • 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
    • Attila Nagy's avatar
      Fixed iwalsh_neon build problems with RVDS4.1 · f96d56c4
      Attila Nagy authored
      rvct 4.1 was complaining about vstmia.16, store multiple expects 64 data type.
      optimized the implementation.
      
      Change-Id: I0701052cabd685c375637bbc3796ff6d88f5972c
      f96d56c4
  21. 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
  22. 10 May, 2011 1 commit
  23. 09 May, 2011 1 commit
  24. 06 May, 2011 1 commit
    • Aron Rosenberg's avatar
      Fix semaphore emulation on Windows · eeb81173
      Aron Rosenberg authored
      The existing emulation of posix semaphores on Windows uses SetEvent()
      and WaitForSingleObject(), which implements a binary semaphore, not a
      counting semaphore as implemented by posix. This causes deadlock when
      used with the expected posix semantics. Instead, this patch uses the
      CreateSemaphore() and ReleaseSemaphore() calls (introduced in Windows
      2000) which have the expected behavior.
      
      This patch also reverts commit eb16f00c, which split a semaphore that
      was being used with counting semantics into two binary semaphores.
      That commit is unnecessary with corrected emulation.
      
      Change-Id: If400771536a27af4b0c3a31aa4c4e9ced89ce6a0
      eeb81173
  25. 04 May, 2011 1 commit
  26. 02 May, 2011 1 commit
  27. 30 Apr, 2011 1 commit
  28. 29 Apr, 2011 2 commits
  29. 28 Apr, 2011 2 commits