1. 02 Oct, 2010 1 commit
    • Yaowu Xu's avatar
      enable trellis quantization for 2nd order blocks · dcd29e36
      Yaowu Xu authored
      Experimented with different value for Y2_RD_MULT ranging f[1, 32],
      without adapting the value to MB coding mode/frame type/Q value,
      4 works out best among all values, providing overall 0.1% coding
      gain on the test set.
      
      Change-Id: I6b2583a8aa5db5e7e5c65c646301909c0c58f876
      dcd29e36
  2. 30 Sep, 2010 3 commits
  3. 29 Sep, 2010 7 commits
    • John Koleszar's avatar
      Rename mode_ref_lf_test_function · 7e5e3151
      John Koleszar authored
      This function graduated from being a test func to something that's on
      by default. Rename it and remove some spurious comments that confuse
      its status.
      
      Change-Id: I689695a3ad29c35e9a72a43ec93766733ac6c20b
      7e5e3151
    • Fritz Koenig's avatar
      Merge "Optimizations on the loopfilters." · 439b2ecd
      Fritz Koenig authored
      439b2ecd
    • John Koleszar's avatar
      Fix loopfilter delta zero transitions · b9be7a46
      John Koleszar authored
      Loopfilter deltas are initialized to zero on keyframes in the decoder.
      The values then persist from the previous frame unless an update bit
      is set in the bitstream. This data is not included in the entropy
      data saved by the 'refresh entropy' bit in the bitstream, so it is
      effectively an additional contextual element beyond the 3 ref-frames
      and the entropy data.
      
      The encoder was treating this delta update bit as update-if-nonzero,
      meaning that the value would be refreshed even if it hadn't changed,
      and more significantly, if the correct value for the delta changed
      to zero, the update wouldn't be sent, and the decoder would preserve
      the last (presumably non-zero) value.
      
      This patch updates the encoder to send an update only if the value
      has changed from the previously transmitted value. It also forces the
      value to be transmitted in error resilient mode, to account for lost
      context in the event of lost frames.
      
      Change-Id: I56671d5b42965d0166ac226765dbfce3e5301868
      b9be7a46
    • Paul Wilkins's avatar
      Change to coefficient optimization rules. · 7288cdf7
      Paul Wilkins authored
      Allow coefficient optimization for good quality speed 0.
      
      Change-Id: Id0cb363df6823c6798671584fbba097916a7df2c
      7288cdf7
    • Adrian Grange's avatar
    • Adrian Grange's avatar
      Moved row-specific computation of MV bounds out of col loop · 0e7c45b3
      Adrian Grange authored
      Moved the bounds computation on vertical MV component out
      of the loop that processes MBs within a MB row.
      0e7c45b3
    • Paul Wilkins's avatar
      Control of active min quantizer for two pass. · ff3068d6
      Paul Wilkins authored
      Create  look up tables for controlling the active quantizer range.
      Some initial tuning to improve quality circa 0.5% on test set.
      Clean up of some stats output code
      
      Change-Id: Ia698a8525f8b8129a503cadace3ee73fe888f543
      ff3068d6
  4. 28 Sep, 2010 7 commits
    • Fritz Koenig's avatar
      Optimizations on the loopfilters. · 0964ef0e
      Fritz Koenig authored
      - Scheduling for Atom processors
      - Combining of macros to allow for better interleaving
      - Change from multiplies to adds for main filter
      - Use of movhps/movlps to fill xmm registers without
        shifting and orring
      
      Change-Id: I0b3500a5f58abf7085253ec92d64c8a96723040b
      0964ef0e
    • Adrian Grange's avatar
      Enabled AltRef motion map creation · 47fc8f26
      Adrian Grange authored
      Enabled the first-pass encode to output the
      map of macroblock coding modes required by
      the AltRef filter.
      47fc8f26
    • Adrian Grange's avatar
    • Adrian Grange's avatar
      Made AltRef filter adaptive & added motion compensation · 1b2f8308
      Adrian Grange authored
      Modified AltRef temporal filter to adapt filter length based
      on macroblock coding modes selected during first-pass
      encode.
      
      Also added sub-pixel motion compensation to the AltRef
      filter.
      1b2f8308
    • Johann's avatar
      Merge "update gitignore" · e4d43c21
      Johann authored
      e4d43c21
    • Johann's avatar
      update gitignore · 6fa5c24a
      Johann authored
      this was excluding all .asm files when it should have just been .asm
      files in the top level directory and .asm.s files lower down. also be
      more restrictive on some other items, and run the whole thing through
      sort to keep it organized
      
      Change-Id: Ia48525033226b13098a491ce89465d0377b990c2
      6fa5c24a
    • Timothy B. Terriberry's avatar
      Add 4-tap version of 2nd-pass ARMv6 MC filter. · 18dc92fd
      Timothy B. Terriberry authored
      The existing code applied a 6-tap filter with 0's on either end.
      We're already paying the branch penalty to avoid computing the two
       extra columns needed as input to this filter.
      We might as well save time computing the filter as well.
      This reduces the inner loop from 21 instructions to 16, the number
       of loads per iteration from 4 to 1, and the number of multiplies
       from 7 to 4.
      The gain in overall decoding performance, however, is small (less
       than 1%).
      
      This change also means we now valgrind clean on ARMv6, which is
       its real purpose.
      The errors reported here were valgrind's fault (it does not detect
       that 0 times an uninitialized value is initialized), but Julian
       Seward says it would slow down valgrind considerably to make such
       checks.
      Speeding up libvpx rather, even by a small amount, seems a much
       better idea if only to enable proper valgrind checking of the
       rest of the codec.
      
      Change-Id: Ifb376ea195e086b60f61daf1097d8910c4d8ff16
      18dc92fd
  5. 27 Sep, 2010 6 commits
  6. 24 Sep, 2010 10 commits
  7. 23 Sep, 2010 2 commits
    • John Koleszar's avatar
      Add getter functions for the interface data symbols · fa7a55bb
      John Koleszar authored
      Having these symbols be available as functions rather than data is
      occasionally more convenient. Implemented this way rather than a
      get-codec-by-id style to avoid creating a link-time dependency
      between the encoder and the decoder.
      
      Fixes issue #169
      
      Change-Id: I319f281277033a5e7e3ee3b092b9a87cce2f463d
      fa7a55bb
    • Yunqing Wang's avatar
      Adjust multi-thread sync ranges according to image sizes · 8db5da29
      Yunqing Wang authored
      In multi-threaded decoder, set different sync ranges for
      different video resolutions.
      
      Change-Id: Iea48fd36f51919e0152c8ed3b1f10e1b723c0ca7
      8db5da29
  8. 22 Sep, 2010 1 commit
    • Johann's avatar
      Remove dead code · 7fed3832
      Johann authored
      The new loopfilter was originally introduced as an experimental change.
      It's permanent now.
      
      Change-Id: I25dbedb6ceff3e9f9c04e18bb29f84c3ecb7e546
      7fed3832
  9. 21 Sep, 2010 3 commits