1. 01 Sep, 2016 1 commit
  2. 12 Aug, 2016 1 commit
  3. 29 Jun, 2016 1 commit
  4. 08 Jun, 2016 1 commit
    • Jingning Han's avatar
      Take out skip_recode speed feature · 025fa11c
      Jingning Han authored
      The assumption doesn't hold true in the current codebase. Remove
      this speed feature to simplify the codebase.
      
      Change-Id: I9b69f484c9b7cd612b825047cc5b2fce63ee0af7
      025fa11c
  5. 31 May, 2016 2 commits
    • hui su's avatar
      Add a speed feature for inter tx type search · f523d7b5
      hui su authored
      Seperate prediction mode and tx type search for inter
      modes. Enabled for speed >=1.
      
      baseline:
      speed increase     40%
      compression drop   0.30%/0.29% on lowres/midres
      
      ext-tx:
      speed increase    160%
      compression drop  1.08%/0.95% on lowres/midres
      
      Change-Id: Ieb34b1ee80df6980d16e26a5783e08cc0deae55b
      f523d7b5
    • hui su's avatar
      Add a speed feature for intra tx type search · 38e6dd71
      hui su authored
      Add a speed feature to seperate prediction mode and tx type search
      for intra modes: search for best intra prediction mode with fixed
      default tx type first, then choose the best tx type for the
      selected mode.
      
      Coding performance drop:
      baseline
        lowres 0.10% midres 0.08% hdres 0.14%
      with ext-tx
        lowres 0.14% midres 0.25% hdres 0.20%
      
      Speed improvement is 20% for baseline and 17% for ext-tx.
      
      It is turned on for speed >= 1.
      
      Change-Id: Ia5e8d39e8a4e2e42c521bfde938f8b6a98ab24f9
      38e6dd71
  6. 16 May, 2016 1 commit
    • Debargha Mukherjee's avatar
      Various wedge enhancements · fb8ea173
      Debargha Mukherjee authored
      Increases number of wedges for smaller block and removes
      wedge coding mode for blocks larger than 32x32.
      
      Also adds various other enhancements for subsequent experimentation,
      including adding provision for multiple smoothing functions
      (though one is used currently), adds a speed feature that decides
      the sign for interinter wedges using a fast mechanism, and refactors
      wedge representations.
      
      lowres: -2.651% BDRATE
      
      Most of the gain is due to increase in codebook size for 8x8 - 16x16.
      
      Change-Id: I50669f558c8d0d45e5a6f70aca4385a185b58b5b
      fb8ea173
  7. 03 May, 2016 1 commit
  8. 28 Apr, 2016 1 commit
  9. 07 Apr, 2016 1 commit
    • Geza Lore's avatar
      Make superblock size variable at the frame level. · 454989ff
      Geza Lore authored
      The uncompressed frame header contains a bit to signal whether the
      frame is encoded using 64x64 or 128x128 superblocks. This can vary
      between any 2 frames.
      
      vpxenc gained the --sb-size={64,128,dynamic} option, which allows the
      configuration of the superblock size used (default is dynamic). 64/128
      will force the encoder to always use the specified superblock size.
      Dynamic would enable the encoder to choose the sb size for each
      frame, but this is not implemented yet (dynamic does the same as 128
      for now).
      
      Constraints on tile sizes depend on the superblock size, the following
      is a summary of the current bitstream syntax and semantics:
      
      If both --enable-ext-tile is OFF and --enable-ext-partition is OFF:
           The tile coding in this case is the same as VP9. In particular,
           tiles have a minimum width of 256 pixels and a maximum width of
           4096 pixels. The tile width must be multiples of 64 pixels
           (except for the rightmost tile column). There can be a maximum
           of 64 tile columns and 4 tile rows.
      
      If --enable-ext-tile is OFF and --enable-ext-partition is ON:
           Same constraints as above, except that tile width must be
           multiples of 128 pixels (except for the rightmost tile column).
      
      There is no change in the bitstream syntax used for coding the tile
      configuration if --enable-ext-tile is OFF.
      
      If --enable-ext-tile is ON and --enable-ext-partition is ON:
           This is the new large scale tile coding configuration. The
           minimum/maximum tile width and height are 64/4096 pixels. Tile
           width and height must be multiples of 64 pixels. The uncompressed
           header contains two 6 bit fields that hold the tile width/heigh
           in units of 64 pixels. The maximum number of tile rows/columns
           is only limited by the maximum frame size of 65536x65536 pixels
           that can be coded in the bitstream. This yields a maximum of
           1024x1024 tile rows and columns (of 64x64 tiles in a 65536x65536
           frame).
      
      If both --enable-ext-tile is ON and --enable-ext-partition is ON:
           Same applies as above, except that in the bitstream the 2 fields
           containing the tile width/height are in units of the superblock
           size, and the superblock size itself is also coded in the bitstream.
           If the uncompressed header signals the use of 64x64 superblocks,
           then the tile width/height fields are 6 bits wide and are in units
           of 64 pixels. If the uncompressed header signals the use of 128x128
           superblocks, then the tile width/height fields are 5 bits wide and
           are in units of 128 pixels.
      
      The above is a summary of the bitstream. The user interface to vpxenc
      (and the equivalent encoder API) behaves a follows:
      
      If --enable-ext-tile is OFF:
           No change in the user interface. --tile-columns and --tile-rows
           specify the base 2 logarithm of the desired number of tile columns
           and tile rows. The actual number of tile rows and tile columns,
           and the particular tile width and tile height are computed by the
           codec ensuring all of the above constraints are respected.
      
      If --enable-ext-tile is ON, but --enable-ext-partition is OFF:
           No change in the user interface. --tile-columns and --tile-rows
           specify the WIDTH and HEIGHT of the tiles in unit of 64 pixels.
           The valid values are in the range [1, 64] (which corresponds to
           [64, 4096] pixels in increments of 64.
      
      If both --enable-ext-tile is ON and --enable-ext-partition is ON:
           If --sb-size=64 (default):
               The user interface is the same as in the previous point.
               --tile-columns and --tile-rows specify tile WIDTH and HEIGHT,
               in units of 64 pixels, in the range [1, 64] (which corresponds
               to [64, 4096] pixels in increments of 64).
           If --sb-size=128 or --sb-size=dynamic:
               --tile-columns and --tile-rows specify tile WIDTH and HEIGHT,
               in units of 128 pixels in the range [1, 32] (which corresponds
               to [128, 4096] pixels in increments of 128).
      
      Change-Id: Idc9beee1ad12ff1634e83671985d14c680f9179a
      454989ff
  10. 18 Mar, 2016 1 commit
  11. 12 Mar, 2016 1 commit
  12. 04 Mar, 2016 1 commit
    • Sarah Parker's avatar
      Adding speed feature interface for ext tx search · 2ca7d42e
      Sarah Parker authored
      This sets up the interface for 3 speed features that progressively
      eliminate a greater number of transforms in ext tx using
      pre-trained support vector machines.
      Each speed feature still needs to be implemented.
      
      Change-Id: Ia508aeadc0cffdc080fb227f357a5d1dfbca08e2
      2ca7d42e
  13. 26 Feb, 2016 1 commit
  14. 23 Feb, 2016 1 commit
  15. 22 Jan, 2016 1 commit
    • Yue Chen's avatar
      Adding new compound modes to EXT_INTER experiment · 968bbc7b
      Yue Chen authored
      Combinations of different mv modes for two reference frames
      are allowed in compound inter modes. 9 options are enabled,
      including NEAREST_NEARESTMV, NEAREST_NEARMV, NEAR_NEARESTMV,
      NEAREST_NEWMV, NEW_NEARESTMV, NEAR_NEWMV, NEW_NEARMV, ZERO_ZEROMV,
      and NEW_NEWMV.
      This experiment is mostly deported from the nextgen branch.
      It is made compatible with other experiments
      
      Coding gain of EXT_INTER(derflr/hevcmr/hevchd): 0.533%/0.728%/0.639%
      
      Change-Id: Id47e97284e6481b186870afbad33204b7a33dbb0
      968bbc7b
  16. 15 Jan, 2016 1 commit
    • Yue Chen's avatar
      EXT_INTER experiment · 1ac85879
      Yue Chen authored
      NEW2MV is enabled, representing a new motion vector predicted from
      NEARMV. It is mostly ported from nextgen, where it was named
      NEW_INTER.
      A few fixes are done for sub8x8 RDO to correct some misused
      mv references in the original patch.
      A 'bug-fix' for encoding complexity is done, reducing the additional
      encoding time from 50% to 20%. In sub8x8 case, the old patch
      did motion search for every interpolation filter (vp9 only
      searches once). This fix also slightly improves the coding gain.
      This experiment has been made compatible with REF_MV and EXT_REFS.
      
      Coding gain (derflr/hevcmr/hevchd): 0.267%/0.542%/0.257%
      
      Change-Id: I9a94c5f292e7454492a877f65072e8aedba087d4
      1ac85879
  17. 08 Dec, 2015 1 commit
    • paulwilkins's avatar
      Changes to exhaustive motion search. · 4e692bbe
      paulwilkins authored
      This change has been imported from VP9 and
      alters the nature and use of exhaustive motion search.
      
      Firstly any exhaustive search is preceded by a normal step search.
      The exhaustive search is only carried out if the distortion resulting
      from the step search is above a threshold value.
      
      Secondly the simple +/- 64 exhaustive search is replaced by a
      multi stage mesh based search where each stage has a range
      and step/interval size. Subsequent stages use the best position from
      the previous stage as the center of the search but use a reduced range
      and interval size.
      
      For example:
        stage 1: Range +/- 64 interval 4
        stage 2: Range +/- 32 interval 2
        stage 3: Range +/- 15 interval 1
      
      This process, especially when it follows on from a normal step
      search, has shown itself to be almost as effective as a full range
      exhaustive search with step 1 but greatly lowers the computational
      complexity such that it can be used in some cases for speeds 0-2.
      
      This patch also removes a double exhaustive search for sub 8x8 blocks
      which also contained  a bug (the two searches used different distortion
      metrics).
      
      For best quality in my test animation sequence this patch has almost
      no impact on quality but improves encode speed by more than 5X.
      
      Restricted use in good quality speeds 0-2 yields significant quality gains
      on the animation test of 0.2 - 0.5 db with only a small impact on encode
      speed. On most natural video clips, however, where the step search
      is performing well, the quality gain and speed impact are small.
      
      Change-Id: Iac24152ae239f42a246f39ee5f00fe62d193cb98
      4e692bbe
  18. 09 Nov, 2015 1 commit
    • Johann's avatar
      Release v1.5.0 · cbecf57f
      Johann authored
      Javan Whistling Duck release.
      
      Change-Id: If44c9ca16a8188b68759325fbacc771365cb4af8
      cbecf57f
  19. 10 Sep, 2015 3 commits
  20. 26 Aug, 2015 1 commit
  21. 13 Aug, 2015 2 commits
  22. 12 Aug, 2015 2 commits
  23. 30 Jul, 2015 1 commit
  24. 04 May, 2015 1 commit
    • Marco's avatar
      Allow for H and V intra modes for non-rd mode. · b9a72d3c
      Marco authored
      For non-rd mode (speed >=5): use mask based on prediction block size, and
      (for non-screen content mode) allow for checking horiz and vert intra modes
      for blocks sizes < 16x16.
      
      Avg psnr/ssim metrics go up by about ~0.2%.
      
      Only allowing H/V intra on block sizes below 16x16 for now, to keep
      encoding time increase very small, and also when allowing H/V on 16x16 blocks,
      metrics went down on a few clips which need to be further examined.
      
      Change-Id: I8ae0bc8cb2a964f9709612c76c5661acaab1381e
      b9a72d3c
  25. 01 May, 2015 2 commits
    • paulwilkins's avatar
      Image size restriction to rd auto partition search. · 4a7dcf8e
      paulwilkins authored
      Impose a limit on the rd auto partition search based on
      the image format. Smaller formats require that the search
      includes includes a smaller minimum block size.
      
      This change is intended to mitigate the visual impact of
      ringing in some problem clips, for smaller image formats.
      
      Change-Id: Ie039e5f599ee079bbef5d272f3e40e2e27d8f97b
      4a7dcf8e
    • paulwilkins's avatar
      Remove CONSTRAIN_NEIGHBORING_MIN_MAX. · 287b0c6d
      paulwilkins authored
      Remove one of the auto partition size cases.
      This case can behaves badly in some types of animated content
      and was only used for the rd encode path. A subsequent patch
      will add additional checks to help further improve visual quality.
      
      Change-Id: I0ebd8da3d45ab8501afa45d7959ced8c2d60ee4e
      287b0c6d
  26. 10 Feb, 2015 1 commit
    • Yaowu Xu's avatar
      Move computation up to frame level · ee5d7999
      Yaowu Xu authored
      This is to avoid redo the same calculation repeatly, and also allow
      easier adjustments for further experiments.
      
      This commit shall have no effect on quality/compression.
      
      Change-Id: I4460acf5c808ff5518da18d21e002c5da58af857
      ee5d7999
  27. 23 Jan, 2015 1 commit
  28. 03 Dec, 2014 2 commits
    • Jingning Han's avatar
      Remove unused ONE_LOOP entry from speed feature · a8d8c0f6
      Jingning Han authored
      Change-Id: I56ead0ebc2491144c4e79e5859b05e126176702c
      a8d8c0f6
    • Jingning Han's avatar
      Rework coeff probability model update for rtc coding · 8fe50191
      Jingning Han authored
      This commit reworks the ONE_LOOP_REDUCED coefficient probability
      model update process. It allows model update for every coefficient
      across the spectrum at a coarser resolution, instead of performing
      precise update only for certain subset of probability models.
      
      The overall runtime remains nearly same (<1% change) for speed -6.
      The compression performance is improved by 7.5% in PSNR for speed
      -5 and 4.57% for speed -6, respectively.
      
      Change-Id: Ifb17136382ee7e39a9f34ff4a4f09a753125c8d1
      8fe50191
  29. 20 Nov, 2014 1 commit
    • Yunqing Wang's avatar
      vp9_ethread: move max/min partition size to mb struct · ad7586a9
      Yunqing Wang authored
      The max_partition_size and max_partition_size are set at the
      beginning while setting speed features, and then adjusted at
      SB level. Moving them to mb struct ensures there is a local
      copy for each thread.
      
      Change-Id: I7dd08dc918d9f772fcd718bbd6533e0787720ad4
      ad7586a9
  30. 13 Nov, 2014 1 commit
    • Adrian Grange's avatar
      Prepare for dynamic frame resizing in the recode loop · 0d085ebc
      Adrian Grange authored
      Prepare for the introduction of frame-size change
      logic into the recode loop.
      
      Separated the speed dependent features into
      separate static and dynamic parts, the latter being
      those features that are dependent on the frame size.
      
      Change-Id: Ia693e28c5cf069a1a7bf12e49ecf83e440e1d313
      0d085ebc
  31. 30 Oct, 2014 1 commit
  32. 21 Oct, 2014 2 commits