1. 10 Jul, 2013 2 commits
    • Jim Bankoski's avatar
      mi_width_log2 & mi_height_log2 · 863204e6
      Jim Bankoski authored
      converted to lookup to avoid unnecessary code
      
      Change-Id: I2ee6a01f06984cc2c4ba74b3fffd215318f749d2
      863204e6
    • Jim Bankoski's avatar
      b_width_log2 and b_height_log2 lookups · 6c8170af
      Jim Bankoski authored
          Replace case statement with lookup.
          Small speed gain at low speed settings but at speed 2+ where the
          number of motion searches etc. falls the impact rises to ~3-4%.
      
          Change-Id: Idff639b7b302ee65e042b7bf836943ac0a06fad8
      
      Change-Id: I5940719a4a161f8c26ac9a6753f1678494cec644
      6c8170af
  2. 02 Jul, 2013 3 commits
    • Dmitry Kovalev's avatar
      Removing redundant struct from union b_mode_info. · be77f6bb
      Dmitry Kovalev authored
      Change-Id: I08fc6e474ff2c12cfa065bae4989c724276e2c83
      be77f6bb
    • Deb Mukherjee's avatar
      Tx size selection enhancements · 8d3d2b76
      Deb Mukherjee authored
      (1) Refines the modeling function and uses that to add some speed
      features. Specifically, intead of using a flag use_largest_txfm as
      a speed feature, an enum tx_size_search_method is used, of which
      two of the types are USE_FULL_RD and USE_LARGESTALL. Two other
      new types are added:
      USE_LARGESTINTRA (use largest only for intra)
      USE_LARGESTINTRA_MODELINTER (use largest for intra, and model for
      inter)
      
      (2) Another change is that the framework for deciding transform type
      is simplified to use a heuristic count based method rather than
      an rd based method using txfm_cache. In practice the new method
      is found to work just as well - with derf only -0.01 down.
      The new method is more compatible with the new framework where
      certain rd costs are based on full rd and certain others are
      based on modeled rd or are not computed. In this patch the existing
      rd based method is still kept for use in the USE_FULL_RD mode.
      In the other modes, the count based method is used.
      However the recommendation is to remove it eventually since the
      benefit is limited, and will remove a lot of complications in
      the code
      
      (3) Finally a bug is fixed with the existing use_largest_txfm speed feature
      that causes mismatches when the lossless mode and 4x4 WH transform is
      forced.
      
      Results on derf:
      USE_FULL_RD: +0.03% (due to change in the tables), 0% encode time reduction
      USE_LARGESTINTRA: -0.21%, 15% encode time reduction (this one is a
      pretty good compromise)
      USE_LARGESTINTRA_MODELINTER: -0.98%, 22% encode time reduction
      (currently the benefit of modeling is limited for txfm size selection,
      but keeping this enum as a placeholder) .
      USE_LARGESTALL: -1.05%, 27% encode-time reduction (same as existing
      use_largest_txfm speed feature).
      
      Change-Id: I4d60a5f9ce78fbc90cddf2f97ed91d8bc0d4f936
      8d3d2b76
    • Dmitry Kovalev's avatar
      Removing vp9_mbpitch.c, moving vp9_setup_block_dptrs to vp9_block.h. · 1ac05402
      Dmitry Kovalev authored
      Change-Id: Ia547a5dd7650b771fd00edd673ab9f920270731c
      1ac05402
  3. 29 Jun, 2013 1 commit
    • James Zern's avatar
      fix test compile error · a63e31e8
      James Zern authored
      since:
      92479d95 Make update_partition_context faster
      
      fixes:
      vp9/common/vp9_blockd.h:408:22: error:
      non-constant-expression cannot be narrowed from type 'int' to 'char' in
      initializer list [-Wc++11-narrowing]
        char pcvalue[2] = {~(0xe << boffset), ~(0xf <<boffset)};
                           ^~~~~~~~~~~~~~~~~
      
      Change-Id: Id5b00b9a72d00a2b314081a23879bd1fa3ce983b
      a63e31e8
  4. 27 Jun, 2013 1 commit
    • Jingning Han's avatar
      Make update_partition_context faster · 92479d95
      Jingning Han authored
      Use vpx_memset for updating the partition contexts. Thanks to Noah
      for pointing out the need of refactoring in this part.
      
      Change-Id: I67fb78429d632298f1cd8a0be346cc76f79392a6
      92479d95
  5. 26 Jun, 2013 1 commit
  6. 25 Jun, 2013 1 commit
    • 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
  7. 24 Jun, 2013 1 commit
  8. 21 Jun, 2013 1 commit
  9. 12 Jun, 2013 2 commits
  10. 10 Jun, 2013 2 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
    • 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
  11. 07 Jun, 2013 5 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
    • Ronald S. Bultje's avatar
      Fix segment feature data type. · fb1f6f1d
      Ronald S. Bultje authored
      It has a range of -255,255, so should be int16_t, not int8_t.
      
      Change-Id: I5ef4b6aefb6212b0f35f4754f3c4d73fddbc52a0
      fb1f6f1d
    • Yaowu Xu's avatar
      Remove two un-used entries in mode_lf_delta[] · b097a3ba
      Yaowu Xu authored
      With the removal of i4X4 and SPLIT_MV modes, the two entries for the
      modes are no longer used. This patch remove the coding of the deltas.
      
      Change-Id: Iea4eb500404ebe9706159380a03b8eca542fb4c3
      b097a3ba
    • 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
  12. 06 Jun, 2013 3 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
    • 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
  13. 05 Jun, 2013 1 commit
  14. 31 May, 2013 6 commits
  15. 30 May, 2013 2 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
    • Paul Wilkins's avatar
      Patch to remove implicit segmentation. · 1b103f25
      Paul Wilkins authored
      This patch removes the implicit segmentation
      experiment from the code base as the benefits
      were still unproven as of the bitstream deadline.
      
      Change-Id: I273b99d8d621d1853eac4182f97982cb5957247e
      1b103f25
  16. 29 May, 2013 1 commit
    • 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
  17. 27 May, 2013 2 commits
    • Yaowu Xu's avatar
      a few clean-ups · 2b96ffe0
      Yaowu Xu authored
      1. remove prediction mode conversion
      2. unified bmode, same for key and non-key frame
      3. set I4X4_PRED count for pdf to 0, as I4X4_PRED is no longer
      coded ever. It is determined by ref_frame and block partition
      
      Change-Id: If5b282957c24339b241acdb9f2afef85658fe47d
      2b96ffe0
    • Jingning Han's avatar
      Reduce bmi buffer length from 16 to 4 · de735929
      Jingning Han authored
      This commit removes the use of bmi_ in the first-pass encoding by
      forcing encode_intra4x4block_ to use DC_PRED, followed by DCT_DCT
      only, as John suggested. This makes the need for bmi buffer only
      up to 4 entries, instead of 16.
      
      Change-Id: I3410007dfae789ee46a09ae20c39d3ce3c7954aa
      de735929
  18. 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
  19. 24 May, 2013 1 commit
    • Yaowu Xu's avatar
      Change txfm_type decision · 22694ca1
      Yaowu Xu authored
      The changing in intra coding to base on transform block, i.e. pred->
      txfm->quant->dequant-itxfm->recon, made all blocks within a prediction
      unit behave consistently, there is no longer a need to handle blocks
      differently based on the position within a predicitn block. So this
      commit simplifies the decision of transform type to be based on
      prediction mode only.
      
      Change-Id: If96cb72386f2e9186126ace88afa35ef085b6c96
      22694ca1
  20. 23 May, 2013 1 commit
    • 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
  21. 22 May, 2013 1 commit
    • Yaowu Xu's avatar
      changes intra coding to be based on txfm block · 8ba92a0b
      Yaowu Xu authored
      This commit changed the encoding and decoding of intra blocks to be
      based on transform block. In each prediction block, the intra coding
      iterates thorough each transform block based on raster scan order.
      
      This commit also fixed a bug in D135 prediction code.
      
      TODO next:
      The RD mode/txfm_size selection should take this into account when
      computing RD values.
      
      Change-Id: I6d1be2faa4c4948a52e830b6a9a84a6b2b6850f6
      8ba92a0b
  22. 21 May, 2013 1 commit