1. 06 Jun, 2013 4 commits
    • 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
  2. 05 Jun, 2013 1 commit
  3. 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
  4. 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
  5. 31 May, 2013 6 commits
  6. 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
  7. 29 May, 2013 7 commits
    • Deb Mukherjee's avatar
      Balancing coef-tree to reduce bool decodes · b8b3f1a4
      Deb Mukherjee authored
      This patch changes the coefficient tree to move the EOB to below
      the ZERO node in order to save number of bool decodes.
      
      The advantages of moving EOB one step down as opposed to two steps down
      in the other parallel patch are: 1. The coef modeling based on
      the One-node becomes independent of the tree structure above it, and
      2. Fewer conext/counter increases are needed.
      
      The drawback is that the potential savings in bool decodes will be
      less, but assuming that 0s are much more predominant than 1's the
      potential savings is still likely to be substantial.
      
      Results on derf300: -0.237%
      
      Change-Id: Ie784be13dc98291306b338e8228703a4c2ea2242
      b8b3f1a4
    • Jim Bankoski's avatar
      valgrind - txfm_thresh not set · aae78c8a
      Jim Bankoski authored
      For 4x4 blocks valgrind points out the cache was uninitalized.
      This resolves the issue by setting it.
      
      Change-Id: I22733000da048643762813a84fbda66d8e4040d2
      aae78c8a
    • Jingning Han's avatar
      Refactor 4x4 block level rd loop · d0a38720
      Jingning Han authored
      This commit makes clean-ups in the rate-distortion loop for 4x4,
      4x8, and 8x4 block sizes for the use of iterative motion search.
      
      Removed unnecessary use of bmi in handle_inter_mode.
      
      Deprecated loop over labels in the 4x4/4x8/8x4 block rd search.
      
      Change-Id: I71203dbb68b65e66f073b37abd90d82ef5ae6826
      d0a38720
    • Scott LaVarnway's avatar
      Moved use_prev_in_find_mv_refs check to frame level · 353642bc
      Scott LaVarnway authored
      This patch checks at the frame level to see if the previous
      mode info context can be used.  This patch eliminates the
      flag check that was done for every mode and removes another
      check that was done prior to every vp9_find_mv_refs().
      
      Change-Id: I9da5e18b7e7e28f8b1f90d527cad087073df2d73
      353642bc
    • Jim Bankoski's avatar
      fix valgrind warning · 5e5470b2
      Jim Bankoski authored
      scales for second reference frame vars are unitialized if the
      second ref frame is one of of those disallowed by refframeflags
      
      Change-Id: I4ce42de391178c1699dcaede18c5f12c84993c61
      5e5470b2
    • Sami Pietila's avatar
      Residual coding to cache energy class of tokens. · 88a4d4c5
      Sami Pietila authored
      Proposal for tuning the residual coding by changing how the context
      from previous tokens is calculated. Storing the energy class of previous
      tokens instead of the token itself eases the critical path of
      HW implementations.
      
      Change-Id: I6d71d856b84518f6c88de771ddd818436f794bab
      88a4d4c5
    • Ronald S. Bultje's avatar
      Remove some unused code related to macroblock/splitmv coding. · 4487f5a6
      Ronald S. Bultje authored
      Change-Id: Ic40d56fb162f4e201547dfae33e62ccd9e865889
      4487f5a6
  8. 28 May, 2013 2 commits
    • Jingning Han's avatar
      Refactor rd loop for inter modes · 94d700e7
      Jingning Han authored
      This commit pulls the iterative motion search for compound inter-
      inter out from handle_inter_mode_ as a separate function. Hence,
      it is applicable to 4x4/4x8/8x4 level compound inter search to be
      enabled later.
      
      Also edit the rd loop for 4x4 inter block sizes for cosmetic
      purpose.
      
      Change-Id: Ibc71a11cbe5a26cd52faba01026cf8446cf4d2b4
      94d700e7
    • Jingning Han's avatar
      further clean-ups on intra4x4 coding · 4729a6f3
      Jingning Han authored
      Removed one 4x4 prediction step that was unnessary in the rd loop.
      Removed a unused modecosts estimate from encoder side.
      
      Change-Id: I65221a52719d6876492996955ef04142d2752d86
      4729a6f3
  9. 27 May, 2013 3 commits
  10. 26 May, 2013 1 commit
    • Ronald S. Bultje's avatar
      Remove splitmv. · 5cac6607
      Ronald S. Bultje authored
      Also do per-partition motion vector referencing in <sb8x8 partitions,
      and adjust mvref finding for sub8x8 partitions.
      
      Change-Id: Id3ed1ed4d2a8910d11d327db6cc63b8eb79f941f
      5cac6607
  11. 24 May, 2013 1 commit
    • Jingning Han's avatar
      Fix a bug in intra4x4 level rd loop · 826efc83
      Jingning Han authored
      This commit fixed a uninitialized value use in the intra 4x4/8x4/4x8
      rate-distortion loop.
      
      Change-Id: I5c25b3536b59e4f5fbb23cf85baf93b2ccec7d72
      826efc83
  12. 23 May, 2013 3 commits
    • Jingning Han's avatar
      Make comp_inter_inter support 4x4 partition coding · ae103195
      Jingning Han authored
      This commit refactors the iterative motion search for compound
      inter-inter mode, to make it support all partition types including
      4x4/4x8/8x4 block sizes.
      
      Change-Id: I5f1212b0f307377291763e45c6bdc9693b5f04c8
      ae103195
    • Paul Wilkins's avatar
      Merge Scatter Scan experiment. · 33ecd6ad
      Paul Wilkins authored
      Removal from under configure flag.
      A bit  renaming
      
      Change-Id: I2213229dfe852001dfec16b149f47c52ce88f3aa
      33ecd6ad
    • Jingning Han's avatar
      Merge 4x4 block level partition into codebase · 7ac5ac52
      Jingning Han authored
      Move 4x4/4x8/8x4 partition coding out of experimental list.
      
      This commit fixed the unit test failure issues. It also resolved
      the merge conflicts between 4x4 block level partition and iterative
      motion search for comp_inter_inter.
      
      Change-Id: I898671f0631f5ddc4f5cc68d4c62ead7de9c5a58
      7ac5ac52
  13. 22 May, 2013 3 commits
    • Deb Mukherjee's avatar
      Using 128 entry look up table for coef models · de4d682c
      Deb Mukherjee authored
      Reverts to using 128 bit LUT for the coef models rather than 48
      to ease hardware implementation.
      
      Also incorporates some cleanups including removing various
      hooks to support different lookup tables based on block_type and
      ref_type.
      
      Change-Id: I54100c120cca07a2ebd3a7776bc4630fa6a153f6
      de4d682c
    • Paul Wilkins's avatar
      Merge CONFIG_COMP_INTER_JOINT_SEARCH. · 0b713f8c
      Paul Wilkins authored
      Merge this experiment so that it is under a speed feature
      flag not a configuration flag.
      
      Change-Id: I536f7f125a4ff5149bb3a64f791e835c324535fd
      0b713f8c
    • Jingning Han's avatar
      Make the intra rd search support 8x4/4x8 · f153a5d0
      Jingning Han authored
      This commit allows the rate-distortion optimization of intra coding
      capable of supporting 8x4 and 4x8 partition settings.
      
      It enables the entropy coding of intra modes in key frame using a
      unified contextual probability model conditioned on its above/left
      prediction modes.
      
      Coding performance:
      derf 0.464%
      
      Change-Id: Ieed055084e11fcb64d5d5faeb0e706d30268ba18
      f153a5d0
  14. 21 May, 2013 1 commit
  15. 20 May, 2013 3 commits
    • Dmitry Kovalev's avatar
      Adding get_ref_frame_idx function. · 4ac70bd7
      Dmitry Kovalev authored
      Change-Id: I4f1a4eca6794cda78d00512196caacd5567e2dcc
      4ac70bd7
    • Deb Mukherjee's avatar
      Updating the model coef experiment · 39a90bc8
      Deb Mukherjee authored
      Cleans up the experiment. Actually uses reduced counts for backward
      updates, and reduced number of probabilities in the context.
      
      No change in bitstream when the experiment is on.
      
      Between expt on and off:
      derfraw300 is down only -0.062% (which is better than when expts
      were run previously).
      
      Change-Id: I55285a049a0c22810bdb42914212ab5a4f8521b5
      39a90bc8
    • Scott LaVarnway's avatar
      WIP: 4x4 idct/recon merge · ba48a111
      Scott LaVarnway authored
      This patch eliminates the intermediate diff buffer usage by
      combining the short idct and the add residual into one function.
      The encoder can use the same code as well.
      
      Change-Id: I296604bf73579c45105de0dd1adbcc91bcc53c22
      ba48a111