1. 17 Jun, 2013 - 1 commit
  2. 08 Jun, 2013 - 1 commit
  3. 31 May, 2013 - 1 commit
    • Jim Bankoski's avatar
      Creates a new speed 1: · ced21bd6
      Jim Bankoski authored
      This speed 1 - uses variance threshold stolen from static-thresh
      to determine split.  Any superblock with greater than the variance
      set by static thresh * quantizer index squared is split. In addition
      transform size is set to largest size less than or equal to partition
      size, sub pixel filter is set to normal,  and only 12 modes are used
      at all.
      
      Change-Id: If7a2858ee70f96d1eb989c04fd87a332b147abef
      ced21bd6
  4. 17 May, 2013 - 1 commit
    • Jingning Han's avatar
      Fix parameters in 4x8 variance calc · 481a7c59
      Jingning Han authored
      Correct the stride parameter of 4x8 in vp9_sub_pixel_variance4x8_
      and vp9_sub_pixel_avg_variance4x8.
      
      Change-Id: I2ca74d4043817503b21737563994270e3b0619ff
      481a7c59
  5. 16 May, 2013 - 1 commit
    • Jingning Han's avatar
      Add building blocks for 4x8/8x4 rd search · 8e3d0e4d
      Jingning Han authored
      These building blocks enable rate-distortion optimization search
      over block sizes of 8x4 and 4x8. Need to convert them into mmx/sse
      forms.
      
      Change-Id: I570ea2d22d14ceec3fe3575128d7dfa172a577de
      8e3d0e4d
  6. 10 May, 2013 - 1 commit
    • Yunqing Wang's avatar
      Add joint motion search in comp_inter_inter mode(experiment) · 9f5811c2
      Yunqing Wang authored
      In current code, motion vectors got from single prediction mode are used
      in compound prediction mode directly. These motion vectors may not give
      accurate prediction since they are searched independently. In this patch,
      we took Pascal's suggestion, and did joint motion search in compound
      prediction mode to find better motion vectors in this situation.
      Test results:
      Overall PSNR: 0.570%(derf), 0.918%(stdhd);
      SSIM: 0.572%(derf), 1.009%(stdhd);
      
      The encoder is a little slower. This can be improved since some c
      code is used in motion search.
      
      Change-Id: Ib30c9240f6c56c9b070867b4ca89412a76d9f3c6
      9f5811c2
  7. 01 May, 2013 - 1 commit
  8. 29 Apr, 2013 - 1 commit
  9. 24 Apr, 2013 - 1 commit
  10. 15 Apr, 2013 - 1 commit
  11. 05 Feb, 2013 - 1 commit
    • John Koleszar's avatar
      Convert subpixel filters to use convolve framework · 7a07eea1
      John Koleszar authored
      Update the code to call the new convolution functions to do subpixel
      prediction rather than the existing functions. Remove the old C and
      assembly code, since it is unused. This causes a 50% performance
      reduction on the decoder, but that will be resolved when the asm for
      the new functions is available.
      
      There is no consensus for whether 6-tap or 2-tap predictors will be
      supported in the final codec, so these filters are implemented in
      terms of the 8-tap code, so that quality testing of these modes
      can continue. Implementing the lower complexity algorithms is a
      simple exercise, should it be necessary.
      
      This code produces slightly better results in the EIGHTTAP_SMOOTH
      case, since the filter is now applied in only one direction when
      the subpel motion is only in one direction. Like the previous code,
      the filtering is skipped entirely on full-pel MVs. This combination
      seems to give the best quality gains, but this may be indicative of a
      bug in the encoder's fil...
      7a07eea1
  12. 10 Jan, 2013 - 1 commit
  13. 08 Jan, 2013 - 1 commit
  14. 06 Jan, 2013 - 1 commit
  15. 18 Dec, 2012 - 1 commit
  16. 28 Nov, 2012 - 1 commit
  17. 27 Nov, 2012 - 1 commit
    • John Koleszar's avatar
      Add vp9_ prefix to all vp9 files · fcccbcbb
      John Koleszar authored
      Support for gyp which doesn't support multiple objects in the same
      static library having the same basename.
      
      Change-Id: Ib947eefbaf68f8b177a796d23f875ccdfa6bc9dc
      fcccbcbb
  18. 14 Nov, 2012 - 1 commit
  19. 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
  20. 06 Nov, 2012 - 1 commit
  21. 01 Nov, 2012 - 2 commits
  22. 31 Oct, 2012 - 3 commits
  23. 29 Oct, 2012 - 1 commit
    • Yaowu Xu's avatar
      Improves subpixel reference mv evaluation · cc9c637d
      Yaowu Xu authored
      Previously, in evaluating reference motion vectors, MVs are always
      rounded to integer pixel position and SADs are calculated.  This
      commit takes into account the subpixel portion of the mvs, and uses
      bilinear interpolation to produce reference pixel values in subpixel
      postions. In addition, SSE is used in place of SAD. Pixels used are
      16x2 above and 2x16 to the left.
      
      This commmit intends to test the potential of this line of work in
      term of compression improvement, obviously, the change would increase
      decoder complexity significantly.
      
      Test results
      std-hd: 1.738%(avg) 1.779%(glb), 1.663%(ssim)
      derf: 0.472%(avg) 0.477%(glb), 0.418%(ssim)
      
      Change-Id: I3ae1b098f6289df78891134d9a5e4bb2fde87a0b
      cc9c637d
  24. 20 Aug, 2012 - 1 commit
    • Ronald S. Bultje's avatar
      Superblock coding. · 5d4cffb3
      Ronald S. Bultje authored
      This commit adds a pick_sb_mode() function which selects the best 32x32
      superblock coding mode. Then it selects the best per-MB modes, compares
      the two and encodes that in the bitstream.
      
      The bitstream coding is rather simplistic right now. At the SB level,
      we code a bit to indicate whether this block uses SB-coding (32x32
      prediction) or MB-coding (anything else), and then we follow with the
      actual modes. This could and should be modified in the future, but is
      omitted from this commit because it will likely involve reorganizing
      much more code rather than just adding SB coding, so it's better to let
      that be judged on its own merits.
      
      Gains on derf: about even, YT/HD: +0.75%, STD/HD: +1.5%.
      
      Change-Id: Iae313a7cbd8f75b3c66d04a68b991cb096eaaba6
      5d4cffb3
  25. 08 Aug, 2012 - 1 commit
    • Deb Mukherjee's avatar
      Merging in the sixteenth subpel uv experiment · 7d065653
      Deb Mukherjee authored
      Merges this experiment in to make it easier to run tests on
      filter precision, vectorized implementation etc.
      
      Also removes an experimental filter.
      
      Change-Id: I1e8706bb6d4fc469815123939e9c6e0b5ae945cd
      7d065653
  26. 17 Jul, 2012 - 1 commit
  27. 15 Mar, 2012 - 1 commit
    • Yaowu Xu's avatar
      WebM Experimental Codec Branch Snapshot · 6035da54
      Yaowu Xu authored
      This is a code snapshot of experimental work currently ongoing for a
      next-generation codec.
      
      The codebase has been cut down considerably from the libvpx baseline.
      For example, we are currently only supporting VBR 2-pass rate control
      and have removed most of the code relating to coding speed, threading,
      error resilience, partitions and various other features.  This is in
      part to make the codebase easier to work on and experiment with, but
      also because we want to have an open discussion about how the bitstream
      will be structured and partitioned and not have that conversation
      constrained by past work.
      
      Our basic working pattern has been to initially encapsulate experiments
      using configure options linked to #IF CONFIG_XXX statements in the
      code. Once experiments have matured and we are reasonably happy that
      they give benefit and can be merged without breaking other experiments,
      we remove the conditional compile statements and merge them in.
      
      Current changes include:
      * T...
      6035da54
  28. 06 Mar, 2012 - 1 commit
  29. 23 Feb, 2012 - 1 commit
    • Deb Mukherjee's avatar
      Supporting high precision 1/8-pel motion vectors · 18e90d74
      Deb Mukherjee authored
      This is the initial patch for supporting 1/8th pel
      motion. Currently if we configure with enable-high-precision-mv,
      all motion vectors would default to 1/8 pel. Encode and
      decode syncs fine with the current code. In the next phase
      the code will be refactored so that we can choose the 1/8
      pel mode adaptively at a frame/segment/mb level.
      
      Derf results:
      http://www.corp.google.com/~debargha/vp8_results/enhinterp_hpmv.html
      (about 0.83% better than 8-tap interpoaltion)
      
      Patch 3: Rebased. Also adding 1/16th pel interpolation for U and V
      
      Patch 4: HD results.
      http://www.corp.google.com/~debargha/vp8_results/enhinterp_hd_hpmv.html
      Seems impressive (unless I am doing something wrong).
      
      Patch 5: Added mmx/sse for bilateral filtering, as well as enforced
      use of c-versions of subpel filters with 8-taps and 1/16th pel;
      Also redesigned the 8-tap filters to reduce the cut-off in order to
      introduce a denoising effect. There is a new configure option
      sixteenth-subpel-uv whic...
      18e90d74
  30. 09 Feb, 2012 - 1 commit
    • Johann's avatar
      Fix variance overflow · fea3556e
      Johann 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 cast the result of the multiplication as 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).
      
      PPC change is untested.
      
      Change-Id: I1bad27ea0720067def6d71a6da5f789508cec265
      fea3556e
  31. 06 Jun, 2011 - 1 commit
    • Yaowu Xu's avatar
      remove redundant functions · d4700731
      Yaowu Xu authored
      The encoder defined about 4 set of similar functions to calculate sum,
      variance or sse or a combination of them. This commit removed one set
      of these functions, get8x8var and get16x16var, where calls to the later
      function are replaced with var16x16 by using the fact on a 16x16 MB:
          variance == sse - sum*sum/256
      
      Change-Id: I803eabd1fb3ab177780a40338cbd596dffaed267
      d4700731
  32. 18 Mar, 2011 - 1 commit
    • John Koleszar's avatar
      Increase static linkage, remove unused functions · 429dc676
      John Koleszar authored
      A large number of functions were defined with external linkage, even
      though they were only used from within one file. This patch changes
      their linkage to static and removes the vp8_ prefix from their names,
      which should make it more obvious to the reader that the function is
      contained within the current translation unit. Functions that were
      not referenced were removed.
      
      These symbols were identified by:
      
        $ nm -A libvpx.a | sort -k3 | uniq -c -f2 | grep ' [A-Z] ' \
          | sort | grep '^ *1 '
      
      Change-Id: I59609f58ab65312012c047036ae1e0634f795779
      429dc676
  33. 27 Oct, 2010 - 2 commits
    • John Koleszar's avatar
      Fix half-pixel variance RTCD functions · a0ae3682
      John Koleszar authored
      This patch fixes the system dependent entries for the half-pixel
      variance functions in both the RTCD and non-RTCD cases:
      
        - The generic C versions of these functions are now correct.
          Before all three cases called the hv code.
      
        - Wire up the ARM functions in RTCD mode
      
        - Created stubs for x86 to call the optimized subpixel functions
          with the correct parameters, rather than falling back to C
          code.
      
      Change-Id: I1d937d074d929e0eb93aacb1232cc5e0ad1c6184
      a0ae3682
    • John Koleszar's avatar
      Add half-pixel variance RTCD functions · 209d82ad
      John Koleszar authored
      NEON has optimized 16x16 half-pixel variance functions, but they
      were not part of the RTCD framework. Add these functions to RTCD,
      so that other platforms can make use of this optimization in the
      future and special-case ARM code can be removed.
      
      A number of functions were taking two variance functions as
      parameters. These functions were changed to take a single
      parameter, a pointer to a struct containing all the variance
      functions for that block size. This provides additional flexibility
      for calling additional variance functions (the half-pixel special
      case, for example) and by initializing the table for all block sizes,
      we don't have to construct this function pointer table for each
      macroblock.
      
      Change-Id: I78289ff36b2715f9a7aa04d5f6fbe3d23acdc29c
      209d82ad
  34. 12 Oct, 2010 - 1 commit
  35. 09 Sep, 2010 - 1 commit
  36. 18 Jun, 2010 - 1 commit
    • John Koleszar's avatar
      cosmetics: trim trailing whitespace · 94c52e4d
      John Koleszar authored
      When the license headers were updated, they accidentally contained
      trailing whitespace, so unfortunately we have to touch all the files
      again.
      
      Change-Id: I236c05fade06589e417179c0444cb39b09e4200d
      94c52e4d