1. 15 Nov, 2012 2 commits
    • John Koleszar's avatar
      support building vp8 and vp9 into a single lib · a9c7597a
      John Koleszar authored
      Change-Id: Ib8f8a66c9fd31e508cdc9caa662192f38433aa3d
      a9c7597a
    • John Koleszar's avatar
      make: flatten object file directories · b72373de
      John Koleszar authored
      Rather than building an object file directory heirarchy matching the
      source tree's layout, rename the object files so that the object
      file name contains the path in the source file tree. The intent here
      is to allow two files in different parts of the source tree to have
      the same name and still not collide when put into an ar archive.
      
      Change-Id: Id627737dc95ffc65b738501215f34a995148c5a2
      b72373de
  2. 07 Nov, 2012 1 commit
    • James Zern's avatar
      Fix variance (signed integer) overflow · 98473443
      James Zern authored
      In the variance calculations the difference is summed and later squared.
      When the sum exceeds sqrt(2^31) the value is treated as a negative when
      it is shifted which gives incorrect results.
      
      To fix this we force the multiplication to be unsigned.
      
      The alternative fix is to shift sum down by 4 before multiplying.
      However that will reduce precision.
      
      For 16x16 blocks the maximum sum is 65280 and sqrt(2^31) is 46340 (and
      change).
      
      This change is based on:
      16982342 Missed some variance casts
      fea3556e Fix variance overflow
      
      Change-Id: I2c61856cca9db54b9b81de83b4505ea81a050a0f
      98473443
  3. 06 Nov, 2012 1 commit
    • James Zern's avatar
      fix test builds · 2e3e6857
      James Zern authored
      s/([vV][pP])8/$19/
      additionally dct.h was removed; declare the _c functions that are used
      in the tests. the TODO for conversion to parameterized tests still
      remains.
      
      Change-Id: I73db9425a57075bbb78a92693ba6b320578981cd
      2e3e6857
  4. 01 Nov, 2012 1 commit
  5. 30 Oct, 2012 1 commit
  6. 27 Oct, 2012 1 commit
  7. 22 Oct, 2012 1 commit
  8. 11 Oct, 2012 1 commit
  9. 08 Oct, 2012 1 commit
    • Yunqing Wang's avatar
      post-proc: deblock filter optimization · 4c53bacc
      Yunqing Wang authored
      1. Algorithm modification:
      Instead of having same filter threshold for a whole frame, now we
      allow the thresholds to be adjusted for each macroblock. In current
      implementation, to avoid excessive blur on background as reported
      in issue480(http://code.google.com/p/webm/issues/detail?id=480), we
      reduce the thresholds for skipped macroblocks.
      
      2. SSE2 optimization:
      As started in issue479(http://code.google.com/p/webm/issues/detail?id=479),
      the filter calculation was adjusted for better performance. The c
      code was also modified accordingly. This made the deblock filter
      2x faster, and the decoder was 1.2x faster overall.
      
      Next, the demacroblock filter will be modified similarly.
      
      Change-Id: I05e54c3f580ccd427487d085096b3174f2ab7e86
      4c53bacc
  10. 04 Oct, 2012 1 commit
  11. 03 Oct, 2012 4 commits
    • Adrian Grange's avatar
      Unit Test for Error Resilience Mode · cc017ca8
      Adrian Grange authored
      This unit test compares the difference in quality with
      error resilience enabled and disabled. The test runs
      for all of the one-pass encoding modes.
      
      The test ensures that the effect of turning on error
      resilience makes less than a 10% difference in PSNR.
      
      Further cases should be added to do a more comprehensive
      test.
      
      Change-Id: I1fc747fc78c9459bc6c74494f4b38308dbed0c32
      cc017ca8
    • Adrian Grange's avatar
      Added handler for PSNR packets to EncoderTest class · e6109dbd
      Adrian Grange authored
      Added a virtual function to handle PSNR packets.
      
      Change-Id: Id2a6372c691a14f19bbeed217a93a9df03e81e75
      e6109dbd
    • Adrian Grange's avatar
      Add initialization and per frame flag members · 4206c6dd
      Adrian Grange authored
      Modified EncoderTest class to have separate member variables
      for initialization time and per-frame.
      
      Change-Id: I08a1901f8f3ec16e45f96297e08e7f6df0f4aa0b
      4206c6dd
    • Adrian Grange's avatar
      Added Reset method to TwopassStatsStore · 30f58b52
      Adrian Grange authored
      The stats buffer needs to be reset between runs of the
      encoder. I added a Reset() function to TwopassStatsStore
      and called it at the beginning of each encode.
      
      This enables us to run multiple encodes which was
      previously not possible since there was no way to reset
      the stats between runs.
      
      Change-Id: Iebb18dab83ba9331f009f764cc858609738a27f9
      30f58b52
  12. 01 Oct, 2012 1 commit
    • Jim Bankoski's avatar
      Disable keyframe in real time that's placed one frame after a cut. · 6f35b195
      Jim Bankoski authored
      The codec as it stood placed a keyframe one frame after a
      real cut scene - and ignored datarate and other considerations.
      
      TODO: Its possible that we should detect a keyframe and recode
      the frame ( in certain circumstances) to improve quality.
      
      Change-Id: Ia1fd6d90103f4da4d21ca5ab62897d22e0b888a8
      6f35b195
  13. 26 Sep, 2012 1 commit
  14. 31 Aug, 2012 2 commits
    • Yaowu Xu's avatar
      added encode/decode matching validation to tests · c953aeac
      Yaowu Xu authored
      This commit adds the ability of validating matched encoder and
      decoder to unit tests.
      
      Change-Id: Ie00d69a42477b6a69b324a6bd134939684f7300b
      c953aeac
    • James Zern's avatar
      msvs/tests: fix data alignment for asm tests · 10f8b361
      James Zern authored
      Replace DECLARE_ALIGNED_ with vpx_memalign()
      
      DECLARE_ALIGNED (__declspec(align())) does not work as intended when
      used on class data members:
      
      Data in classes or structures is aligned within the class or structure
      at the minimum of its natural alignment and the current packing setting
      (from #pragma pack or the /Zp compiler option)
      
      Change-Id: I304aaa6c3716fbfae24675ecf192f4b40787e83e
      10f8b361
  15. 24 Aug, 2012 1 commit
    • Yaowu Xu's avatar
      change to properly account for coef scaling in unit tests · 95ee7f11
      Yaowu Xu authored
      The transform functions in experimental branch absorbed a scaling
      factor of 4 to allow quantization steps closer to unit quantizer.
      This commit added scaling code in between forward and inverse
      transform to properly account for the scaling factor.
      
      Change-Id: I9a573ddc1ffa74973b34800a5da1a56dbabe0949
      95ee7f11
  16. 21 Aug, 2012 2 commits
    • James Zern's avatar
      sad_test: fix msvc build · 12ddb75a
      James Zern authored
      pass a variable to make_tuple() rather than a function, fixes type
      errors
      
      Change-Id: Ic0cbd25d0ca35ad08c672040b4141b3b81695752
      12ddb75a
    • James Zern's avatar
      sixtap_predict_test: fix msvc build · e57394aa
      James Zern authored
      pass a variable to make_tuple() rather than a function, fixes type
      errors
      
      Change-Id: I5e04b61b5ab58cc0090ef21119486ca04853af61
      e57394aa
  17. 08 Aug, 2012 3 commits
  18. 07 Aug, 2012 1 commit
    • Yaowu Xu's avatar
      A bit of temporary relief on encoder slowness · 0b17ea6f
      Yaowu Xu authored
      The commit replaces run-time initialization of cosine constants with
      static constant values, which provides ~30% relief on slow speed. The
      real solution, however will be to implement integer versions of those
      functions that current use float/double.
      
      Change-Id: Ie3ff1793509653d78dd1aeaf88cc6737da1bc55f
      0b17ea6f
  19. 03 Aug, 2012 1 commit
    • Daniel Kang's avatar
      16x16 DCT blocks. · fed8a183
      Daniel Kang authored
      Set on all 16x16 intra/inter modes
      
      Features:
      - Butterfly fDCT/iDCT
      - Loop filter does not filter internal edges with 16x16
      - Optimize coefficient function
      - Update coefficient probability function
      - RD
      - Entropy stats
      - 16x16 is a config option
      
      Have not tested with experiments.
      
      hd:     2.60%
      std-hd: 2.43%
      yt:     1.32%
      derf:   0.60%
      
      Change-Id: I96fb090517c30c5da84bad4fae602c3ec0c58b1c
      fed8a183
  20. 27 Jul, 2012 1 commit
    • Johann's avatar
      Be consistent with SAD values · 11610551
      Johann authored
      SAD returns unsigned values. Make all the declarations the same.
      
      Remove bestsad initialization and check. It is always set to the
      result of a SAD call so it will never remain UINT_MAX
      
      Use ja instead of jg to test unsigned comparison instead of signed.
      
      Update test.
      
      Change-Id: I46336ab45f4e60fc37caf20bd36bc5782079c7a5
      11610551
  21. 26 Jul, 2012 1 commit
  22. 24 Jul, 2012 2 commits
  23. 23 Jul, 2012 3 commits
  24. 20 Jul, 2012 2 commits
  25. 17 Jul, 2012 1 commit
  26. 10 Jul, 2012 3 commits
    • John Koleszar's avatar
      keyframe_test: use a fixed speed step for realtime · 606ac45b
      John Koleszar authored
      The lower complexity modes may not generate a keyframe automatically.
      This behavior was found when running under Valgrind, as the slow
      performance caused the speed selection to pick lower complexities than
      when running natively. Instead, use a fixed complexity for the
      realtime auto keyframe test.
      
      Affected tests:
        AllModes/KeyframeTest.TestAutoKeyframe/0
      
      Change-Id: I44e3f44e125ad587c293ab5ece29511d7023be9b
      606ac45b
    • Yunqing Wang's avatar
      Add unit test for vp8_sixtap_predict functions · e61573c5
      Yunqing Wang authored
      This unit test tests vp8_sixtap_predict function against preset
      data and random generated data. The test against preset data
      checks the correctness of the functions, and the test against
      random data checks if the optimized six-tap predictor functions
      generate matching result as the c functions. It tests the
      following functions:
      vp8_sixtap_predict16x16_c
      vp8_sixtap_predict16x16_mmx
      vp8_sixtap_predict16x16_sse2
      vp8_sixtap_predict16x16_ssse3
      
      vp8_sixtap_predict8x8_c
      vp8_sixtap_predict8x8_mmx
      vp8_sixtap_predict8x8_sse2
      vp8_sixtap_predict8x8_ssse3
      
      vp8_sixtap_predict8x4_c
      vp8_sixtap_predict8x4_mmx
      vp8_sixtap_predict8x4_sse2
      vp8_sixtap_predict8x4_ssse3
      
      vp8_sixtap_predict4x4_c
      vp8_sixtap_predict4x4_mmx
      vp8_sixtap_predict4x4_ssse3
      
      Change-Id: I6de097898ebca34a4c8020aed1e8dde5cd3e493b
      e61573c5
    • James Zern's avatar
      I420VideoSource: add members to ctor initialization · 15296c24
      James Zern authored
      silences valgrind warnings about uninitialized values in SetSize()
      
      Change-Id: I54c4fdcc246687793393735b213c8777e79e47da
      15296c24