1. 26 Jun, 2013 3 commits
    • Paul Wilkins's avatar
      Auto adapt step size feature. · 9f3ab834
      Paul Wilkins authored
      Also tweaks to other features and experiments with
      what is on and off at different speed settings.
      
      Change-Id: I3e1d0be0d195216bf17c2ac5df67f34ce0b306b2
      9f3ab834
    • Paul Wilkins's avatar
      Start adaptive threshold for each mode at max. · 689957e3
      Paul Wilkins authored
      Each frame we reset all adaptive thresholds to MAX
      rather than base. As modes are picked their thresholds
      drop down.
      
      Change-Id: Ia37f03a73003c2d9bfcda57edea07205e9a0e5e8
      689957e3
    • Paul Wilkins's avatar
      Change meaning of cpi->sf.first_step and rename. · e606cac0
      Paul Wilkins authored
      Renamed cpi->sf.first_step to cpi->sf.reduce_first_step_size
      and changed its meaning such that it is a delta applied to
      reduce the default first step size (>> x) in the motion search
      rather than an absolute value.
      
      The default first step size is already changed according to the image
      dimensions (smaller for smaller images). cpi->sf.reduce_first_step_size
      now applies a further correction from the default.
      
      Change-Id: Ia94e08bc24c67b604831f980909af7e982fcd16d
      e606cac0
  2. 25 Jun, 2013 2 commits
    • Jingning Han's avatar
      Refactor intra predictor block · d19ea386
      Jingning Han authored
      Remove vp9_intra4x4_predict(). Use the common intra prediction
      function for all block sizes.
      
      Change-Id: Ibd19d51dfa3da8bbdfb79ddeb81530b2e2089560
      d19ea386
    • Dmitry Kovalev's avatar
      Removing unused code. · 87ee34aa
      Dmitry Kovalev authored
      Removing block index (ib) parameter from get_tx_type_{8x8, 16x16}
      functions.
      
      Change-Id: Ia213335aae7a7cb027f97b9cc9b04519840250f1
      87ee34aa
  3. 21 Jun, 2013 3 commits
    • Dmitry Kovalev's avatar
      Transforming scale_mv_component_q4 into scale_mv_q4 function. · f27f76df
      Dmitry Kovalev authored
      Using MV instead of int_mv for function arguments.
      
      Change-Id: Ic25e13dccbc98fac1fa1b3255127e00cca2a57f6
      f27f76df
    • Ronald S. Bultje's avatar
      Implement SSE2 block_error. · 54b2a596
      Ronald S. Bultje authored
      Change vp9_block_error() to return a 64bit error variable, change all
      callers to expect a 64bit return value (this will prevent overflows,
      which we basically don't check for at all right now). Remove duplicate
      block_error() function, which fixed that through truncation. Remove
      old (incompatible) mmx/sse2 block_error SIMD versions and replace with
      a new one that returns a 64bit value.
      
      Encoding time of first 50 frames of bus @ 1500kbps goes from 3min29 to
      3min23, i.e. a 3% overall speedup.
      
      Change-Id: Ib71ac5508b5ee8a80f1753cd85d72df1629abe68
      54b2a596
    • Yaowu Xu's avatar
      rename variables to avoid build error in MSVC · ee07a261
      Yaowu Xu authored
      Change-Id: I7960178c95c54d5c4497e44cfc8c493566294b34
      ee07a261
  4. 20 Jun, 2013 2 commits
    • Deb Mukherjee's avatar
      Improving model rd with variance and quant step · 7947a33d
      Deb Mukherjee authored
      Improves the rd modeling function and implements them using interpolation
      from a table which is a little faster. Also uses sse as input to the
      modeling function rather than var - since there is no dc prediction
      used and as a result the sse works a little better.
      
      derfraw300: +0.05%
      Speedup: ~1%
      
      Change-Id: I151353c6451e0e8fe3ae18ab9842f8f67e5151ff
      7947a33d
    • Jim Bankoski's avatar
      convert all speed things to speed features · 1f94b976
      Jim Bankoski authored
      Change-Id: Ie24489a4d39f3e53e816eeebf75a1c9c7d94515a
      1f94b976
  5. 19 Jun, 2013 1 commit
  6. 14 Jun, 2013 1 commit
  7. 11 Jun, 2013 1 commit
  8. 10 Jun, 2013 4 commits
    • John Koleszar's avatar
      Fix use of get_uv_tx_size in loopfilter · 717d744a
      John Koleszar authored
      Change the argument of get_uv_tx_size() to be an MBMI pointer, so that the
      correct column's MBMI can be passed to the function.
      
      Change-Id: Ied6b8ec33b77cdd353119e8fd2d157811815fc98
      717d744a
    • Paul Wilkins's avatar
      Rd check on segment level reference mode. · de6ec27d
      Paul Wilkins authored
      Do not allow the rd code to check compound modes if
      a segment level reference frame is selected.
      
      Change-Id: I95f0c57789e0eaceed7caf227e94b4ba3130a06c
      de6ec27d
    • Ronald S. Bultje's avatar
      Allow non-zeromv if ref_frame=intra with segmentation skip/ref enabled. · b12a8dac
      Ronald S. Bultje authored
      Change-Id: Ib5a95bb6ab643b276df3faa9bf99595e4a69ff18
      b12a8dac
    • Tero Rintaluoma's avatar
      Fixed point reference picture scaling · 86bb6df0
      Tero Rintaluoma authored
      Fixed point scaling factors are calculated once for each
      reference frame by using integer division. Otherwise fixed point
      scaling routines are used in all scaling calculations. This makes it
      possible to calculate fixed point scaling factors on device driver
      software and pass them to hardware and thus avoid division on hardware.
      
      TODO:
       - Missing check for maximum frame dimensions
         (currently scaling uses 14 bits)
       - Missing check for maximum scaling ratio
         (upscaling 16:1, downscaling 2:1)
      
      Problems:
       - Straightforward fixed point implementation can cause error +-1
         compared to integer division (i.e. in x_step_q4). Should only
         be an issue for frames larger than 16k.
      
      Change-Id: I3cf4dabd610a4dc18da3bdb31ae244ebaf5d579c
      86bb6df0
  9. 07 Jun, 2013 4 commits
    • Deb Mukherjee's avatar
      Coding tx-size selection by use of spatial context · 21401942
      Deb Mukherjee authored
      Adds coding of transform size within a frame by use of context
      of transform sizes selected in left and above blocks.
      
      Also incorporates code for generating stats.
      
      TODO: generate and incorporate new default stats
      
      Change-Id: I6a7af099f6ad61d448521d9a51167aedaf638ed6
      21401942
    • Paul Wilkins's avatar
      Change to segment ref frame feature. · 340c7a48
      Paul Wilkins authored
      Simplify feature to only support a single reference frame
      instead of a mask.
      
      Change-Id: I5dd3a98c7a224aafb35708850ab82e2f220e68fb
      340c7a48
    • Deb Mukherjee's avatar
      Coding updates for tx-size selection · 3ee1a21a
      Deb Mukherjee authored
      Changes to the coding of transform sizes, along with forward
      and backward probability updates.
      
      Results:
      derf300: +0.241%
      
      Context based coding of transform sizes will be in a separate
      patch.
      
      Change-Id: I97241d60a926f014fee2de21fa4446ca56495756
      3ee1a21a
    • Ronald S. Bultje's avatar
      Change ref frame coding. · 6ef805eb
      Ronald S. Bultje authored
      Code intra/inter, then comp/single, then the ref frame selection.
      Use contextualization for all steps. Don't code two past frames
      in comp pred mode.
      
      Change-Id: I4639a78cd5cccb283023265dbcc07898c3e7cf95
      6ef805eb
  10. 06 Jun, 2013 7 commits
    • Ronald S. Bultje's avatar
      New intra mode and partitioning probabilities. · ad343687
      Ronald S. Bultje authored
      Split partition probabilities between keyframes and non-keyframes,
      since they are fairly different. Also have per-blocksize interframe
      y intramode probabilities, since these vary heavily between different
      blocksizes.
      
      Lastly, replace default probabilities for partitioning and intra modes
      with new ones generated from current codec. Replace counts with actual
      probabilities also.
      
      Change-Id: I77ca996e25e4a28e03bdbc542f27a3e64ca1234f
      ad343687
    • Jingning Han's avatar
      Bug fix in rd_pick_inter_mode_sb_ · d03e974f
      Jingning Han authored
      Fix the calculation of step size in height.
      
      Change-Id: I0e0c0175f141f5a41214ae51cef233d13942d3c5
      d03e974f
    • Jim Bankoski's avatar
      signs reverted · b4c4f648
      Jim Bankoski authored
      Change-Id: Ieface458c83eb6e7ee95595d9fc662f372117c9a
      b4c4f648
    • Paul Wilkins's avatar
      Rd thresholds change with block size. · c3316c2b
      Paul Wilkins authored
      Added structures to support independent rd thresholds
      for different block sizes (and set experimental block
      size correction factors).
      
      Added structure to to allow dynamic adaptation of thresholds
      per mode and per block size basis depending on how often
      the mode/block size combination is seen (currently fixed factor).
      
      Removed some unused variables.
      
      TODO
      - Adaptation of thresholds based on how often each mode chosen.
      - The baseline mode values could also be adjusted based on
        the block size (e.g. for a particular intra mode use a low threshold
        for 4x4 prediction blocks but a relatively high value for 64x64.
      
      Change-Id: Iddee65ff3324ee309815ae7c1c5a8584720e7568
      c3316c2b
    • Paul Wilkins's avatar
      Turn off compound inter search refinement for good quality. · c880e02f
      Paul Wilkins authored
      Turn this feature off for some modes in  "good" quality.
      
      Change-Id: I3f262d62cca8f01736b977af1465291e8be29f0a
      c880e02f
    • Jim Bankoski's avatar
      don't tokenize & encode tokens for blocks in UMV · 5a88271b
      Jim Bankoski authored
      This avoids encoding tokens for blocks that are entirely
      in the UMV border. This changes the bitstream.
      
      Change-Id: I32b4df46ac8a990d0c37cee92fd34f8ddd4fb6c9
      5a88271b
    • Jingning Han's avatar
      Fix UV intra coding rd loop · f04b1548
      Jingning Han authored
      This commit makes the coding/reconstruction operations of intra
      coding rate-distortion loop for UV components consistent with those
      of the encoding process.
      
      key frame coding gains:
      derf:   0.11%
      stdhd:  0.42%
      
      Change-Id: I8d49f83924a320e3689ef2d60096c49d7f0c7a40
      f04b1548
  11. 05 Jun, 2013 1 commit
  12. 04 Jun, 2013 1 commit
    • Jingning Han's avatar
      Make sb intra rd search consistent with encoding · 51b6e73a
      Jingning Han authored
      This commit makes operations of the superblock intra coding rate
      distortion optimization consistent with those used in the encoding
      process. Given the test prediction mode and transform size, the rd
      optimizer encodes and reconstructs each transformed block of the
      superblock consecutively, then computes the total rate-distortion
      costs accosicated with the current superblock to select the coding
      decisions.
      
      It achieves coding performance gains:
      derf 0.353%
      yt   1.111%
      
      Change-Id: I0da2eb7a71361dfb8c1384927fc536b0c2790d07
      51b6e73a
  13. 03 Jun, 2013 1 commit
    • Jingning Han's avatar
      Put iterative motion search under speed control · 9068bce4
      Jingning Han authored
      Enable iterative motion search for compound inter-inter prediction
      of block sizes 4x4/4x8/8x4 only when best coding quality is selected.
      The iterative motion search provides about 0.1% gains for derf and
      stdhd at this point, at the expense of longer runtime.
      
      Change-Id: Idc03e7f827e51f1bb8d269bc3752ee297a6bbfe5
      9068bce4
  14. 31 May, 2013 6 commits
  15. 30 May, 2013 3 commits
    • Ronald S. Bultje's avatar
      Remove i4x4_pred. · 1efa79d3
      Ronald S. Bultje authored
      It remains as a local define in rdopt.c so we can distinguish between
      split and non-split modes in the RD loop, but disappears outside that
      scope in the codec.
      
      Change-Id: I98c18fe5ab7e4fbd1d6620ec5695e2ea20513ce9
      1efa79d3
    • Ronald S. Bultje's avatar
      Merge all intra mode coding trees into a single one. · 98c192ae
      Ronald S. Bultje authored
      Also merge all counters. This removes a few unused probability updates
      from the bitstream.
      
      Change-Id: I20f58853e9dac84d8c0d9703ae012c55917516eb
      98c192ae
    • Jingning Han's avatar
      Enable iterative motion search for 4x4 inter pred · 87626a8f
      Jingning Han authored
      This commit enables iterative motion search for 4x4/4x8/8x4 block
      size compound inter-inter prediction.
      
      WIP: borg run testing
      
      Change-Id: I2b318db4a03cdca5a8002b3fa6c0fa89b129288b
      87626a8f