1. 19 Aug, 2013 1 commit
    • Dmitry Kovalev's avatar
      Using plane_bsize instead of bsize. · 2e3478a5
      Dmitry Kovalev authored
      This change set is intermediate. The next one will remove all repetitive
      plane_bsize calculations, because it will be passed as argument to
      foreach_transformed_block_visitor.
      
      Change-Id: Ifc12e0b330e017c6851a28746b3a5460b9bf7f0b
      2e3478a5
  2. 16 Aug, 2013 1 commit
    • Dmitry Kovalev's avatar
      Moving from ss_txfrm_size to tx_size. · afd9bd3e
      Dmitry Kovalev authored
      Updating foreach_transformed_block_visitor and corresponding functions
      to accept tx_size instead of ss_txfrm_size. List of functions per file:
      
      vp9_decodframe.c
        decode_block
        decode_block_intra
      
      vp9_detokenize.c
        decode_block
      
      vp9_encodemb.c
        optimize_block
        vp9_xform_quant
        vp9_encode_block_intra
      
      vp9_rdopt.c
        dist_block
        rate_block
        block_yrd_txfm
      
      vp9_tokenize.c
        set_entropy_context_b
        tokenize_b
        is_skippable
      
      Change-Id: I351bf563eb36cf34db71c3f06b9bbc9a61b55b73
      afd9bd3e
  3. 15 Aug, 2013 3 commits
    • Dmitry Kovalev's avatar
      Converting code from using ss_txfrm_size to tx_size. · bb3b817c
      Dmitry Kovalev authored
      Updated function signatures:
        txfrm_block_to_raster_block
        txfrm_block_to_raster_xy
        extend_for_intra
        vp9_optimize_b
      
      Change-Id: I7213f4c4b1b9ec802f90621d5ba61d5e4dac5e0a
      bb3b817c
    • Dmitry Kovalev's avatar
      Moving segmentation struct from MACROBLOCKD to VP9_COMMON. · b7616e38
      Dmitry Kovalev authored
      VP9_COMMON is the right place to segmentatation struct because it has
      global segmentation parameters, not something specific to macroblock
      processing.
      
      Change-Id: Ib9ada0c06c253996eb3b5f6cccf6a323fbbba708
      b7616e38
    • Jingning Han's avatar
      Unify luma and chroma rd-cost estimation · ec01f52f
      Jingning Han authored
      This commit unifies the rate-distortion cost calculation process of
      luma and chroma components. It allows early termination to be enabled
      later in the rd search loop of chroma components, in consistent with
      luma pixels.
      
      Change-Id: I2e52a7c6496176bf2a5e3ef338d34ceb8aad9b3d
      ec01f52f
  4. 14 Aug, 2013 2 commits
    • Dmitry Kovalev's avatar
      foreach_transformed_block_in_plane cleanup, explicit tx_size var. · bb072000
      Dmitry Kovalev authored
      Making foreach_transformed_block_in_plane more clear (it's not finished
      yet). Using explicit tx_size variable consistently instead of
      (ss_txfrm_size / 2) or (ss_txfrm_size >> 1) expression.
      
      Change-Id: I1b9bba2c0a9f817fca72c88324bbe6004766fb7d
      bb072000
    • Paul Wilkins's avatar
      Renaming in MB_MODE_INFO · 26fead7e
      Paul Wilkins authored
      The macro block mode info context originally contained an
      entry for each 16x16 macroblock. In VP9 each entry refers
      to an 8x8 region not a macro block, so the naming is misleading.
      
      This first stage clean up changes the names of 3 entries in the
      structure to remove the mb_ prefix.
      
      TODO clean up the nomenclature more widely in respect of
      mbmi and bmi.
      
      Change-Id: Ia7305c6d0cb805dfe8cdc98dad21338f502e49c6
      26fead7e
  5. 12 Aug, 2013 2 commits
    • Jingning Han's avatar
      SSE2 high precision 32x32 forward DCT · 78136edc
      Jingning Han authored
      Enable SSE2 implementation of high precision 32x32 forward DCT. The
      intermediate stacks are of 32-bits. The run-time goes down from
      32126 cycles to 13442 cycles.
      
      Change-Id: Ib5ccafe3176c65bd6f2dbdef790bd47bbc880e56
      78136edc
    • Dmitry Kovalev's avatar
      Removing foreach_predicted_block_uv function. · 76d166e4
      Dmitry Kovalev authored
      Adding function build_inter_predictors_for_planes to build inter
      predictors for specified planes. This function allows to remove
      condition "#if CONFIG_ALPHA" and use MAX_MB_PLANE for general case.
      Renaming 'which_mv' local var to 'ref', and 'weight' argument to 'ref'.
      
      Change-Id: I1a97160c9263006929d38953f266bc68e9c56c7d
      76d166e4
  6. 10 Aug, 2013 1 commit
  7. 09 Aug, 2013 3 commits
  8. 08 Aug, 2013 1 commit
  9. 07 Aug, 2013 1 commit
    • Dmitry Kovalev's avatar
      Adding ss_size_lookup table. · 8db2675b
      Dmitry Kovalev authored
      Removing the old one bsize_from_dim_lookup. Now we have a way to determine
      block size for plane using its subsampling values (ss_size_lookup). And
      then we can find the number of pixels in the block (num_pels_log2_lookup).
      
      Change-Id: I6fc981da2ae093de81741d3d78eaefed11015db9
      8db2675b
  10. 06 Aug, 2013 1 commit
    • Dmitry Kovalev's avatar
      Using only one scale function in scale_factors struct. · 1c552e79
      Dmitry Kovalev authored
      Functions scale_mv_q4 and scale_mv_q3_to_q4 were almost identical except
      q3->q4 conversion in scale_mv_q3_to_q4. Now q3->q4 conversion happens
      directly in vp9_build_inter_predictor.
      
      Also adding useful constants: SUBPEL_BITS and SUBPEL_MASK.
      
      Change-Id: Ia0a6ad2ac07c45fdf95a5139ece6286c035e9639
      1c552e79
  11. 05 Aug, 2013 2 commits
  12. 02 Aug, 2013 3 commits
  13. 30 Jul, 2013 1 commit
  14. 25 Jul, 2013 1 commit
  15. 24 Jul, 2013 1 commit
  16. 22 Jul, 2013 1 commit
    • Jingning Han's avatar
      Optimize operation flow in sub8x8 rd loop · 409e77f2
      Jingning Han authored
      Stack the rate-distortion statistics in the sub8x8 rd loop. This allows
      the encoder to skip the forward transform, quantization, and coeff cost
      estimation, in the sub8x8 rd optimization search, if the motion
      vector(s) are of integer pixel value, and have been tested in the
      previous prediction filter type rd loops of the same block.
      
      This gives about 2% speed-up for bus_cif at 2000 kpbs, for speed 0.
      Its efficacy depends how frequently the motion search will select an
      integer motion vector.
      
      Change-Id: Iee15d4283ad4adea05522c1d40b198b127e6dd97
      409e77f2
  17. 19 Jul, 2013 3 commits
  18. 18 Jul, 2013 2 commits
    • Dmitry Kovalev's avatar
      Using VP9_REF_NO_SCALE instead of (1 << VP9_REF_SCALE_SHIFT). · 0b562b2d
      Dmitry Kovalev authored
      Change-Id: Ide58a74d31ff948319445a6337d2c05e98720e34
      0b562b2d
    • Ronald S. Bultje's avatar
      Merge scale_factors and scale_factors_uv. · 5ebe503f
      Ronald S. Bultje authored
      This prevents a duplicate memcpy of a 128-byte struct every time
      set_scale_factors() is called (which is a lot), thus leading to a
      decrease from 3.7 MB to 1.85 MB of struct copying per 64x64 block
      RD/partition loop.
      
      Overall, this decreases encoding time of the first 50 frames of bus
      @ 1500kbps (speed 0) from 1min5.9 to 1min4.9, i.e. about a 1.5%
      overall speedup. We can likely get more gains by removing the copy
      of the other struct (and replacing it with an indexing) as well.
      
      Change-Id: I3dceb7e79f71e6fe911b11cc994cf89a869dde7a
      5ebe503f
  19. 16 Jul, 2013 3 commits
  20. 14 Jul, 2013 1 commit
  21. 12 Jul, 2013 2 commits
    • James Zern's avatar
      vp9: consistent 'log2' variable naming · 0195fb53
      James Zern authored
      lg2 -> log2
      
      Change-Id: I0602ddff49e42c9c40c29c084d04b7592b9f8edf
      0195fb53
    • Deb Mukherjee's avatar
      Some minor cleanups for efficiency · 94c481f9
      Deb Mukherjee authored
      Implements some of the helper functions more efficiently with
      lookups rathers than branches. Modeling function is consolidated
      to reduce some computations.
      
      Also merged the two enums BLOCK_SIZE_TYPES and BlockSize into
      one because there is no need to keep them separate (even though
      the semantics are a little different).
      
      No bitstream or output change.
      
      About 0.5% speedup
      
      Change-Id: I7d71a66e8031ddb340744dc493f22976052b8f9f
      94c481f9
  22. 11 Jul, 2013 1 commit
    • Dmitry Kovalev's avatar
      Moving segmentation related vars into separate struct. · c4ad3273
      Dmitry Kovalev authored
      Adding segmentation struct to vp9_seg_common.h. Struct members are from
      macroblockd and VP9Common structs. Moving segmentation related constants
      and enums to vp9_seg_common.h.
      
      Change-Id: I23fabc33f11a359249f5f80d161daf569d02ec03
      c4ad3273
  23. 10 Jul, 2013 3 commits
    • Jim Bankoski's avatar
      remove warnings when NDEBUG is set · 6591cf2f
      Jim Bankoski authored
      Change-Id: Ie0cb732fdcb98616a422c4463bff80642248d136
      6591cf2f
    • Deb Mukherjee's avatar
      Prunes out full-rd computation based on modeled rd · 53ff43ad
      Deb Mukherjee authored
      Adds a speed feature to eliminate full-rd computation if the modeled
      rd or rd based on a different parameter in the same mode is already
      a lot larger than the best rd yet.
      
      Specifically, only search the sharp and smooth filters if the modeled
      rd cost based on the  regular filter is within a certain factor of the
      best rd cost so far. Also, skip full-rd computation of non splitmv
      inter modes if the modeled rd cost based on pred error is within the
      same factor of the best rd cost so far.
      
      Also adds some enhancements in the rd search for splitmv mode to
      speed things up by early breakouts. Negligible impact on performance.
      
      Resuts on derfraw300:
      psnr:    -0.013% with the splitmv enhancements, -0.24% with the rd
               breakout feature on.
      speedup: 6% with splitmv enhancements, 20% with also residual breakout
               (tested on football sequence at 600 Kbps)
      
      Change-Id: I37abc308ea9f110c1679ce649b6a7e73ab1ad5fc
      53ff43ad
    • 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