1. 15 Nov, 2013 - 1 commit
  2. 13 Nov, 2013 - 2 commits
    • Jingning Han's avatar
      Dual buffer encoding for intra modes · b6b91432
      Jingning Han authored
      Overall change (using dual buffer scheme for superblocks of both inter
      and intra modes) reduces speed 2 runtime:
      bluesky_1080p at 6000kbps:   263553ms -> 257441ms
      riverbed_1080p at 8000kbps:  233230ms -> 225308ms.
      
      Change-Id: Idf8d70f768a4b0d97b2a8506372c57b7b4022119
      b6b91432
    • Dmitry Kovalev's avatar
      Moving q_index from MACROBLOCKD to MACROBLOCK. · 3f3d14e1
      Dmitry Kovalev authored
      Moving because q_index is used only by encoder.
      
      Change-Id: I0b96175614ed4fd3d76ee56a0ba36258e1e896f6
      3f3d14e1
  3. 12 Nov, 2013 - 2 commits
    • Jingning Han's avatar
      Enable dual buffer rd search and encoding scheme · 34b6abef
      Jingning Han authored
      This commit enables the dual buffer rate-distortion optimization
      and encoding scheme. It stacks the original transform coefficients,
      quantized levels, and reconstructed coefficients, in the rate-
      distortion optimization search process, hence eliminates the need
      to re-run residual generation, forward transform, and quantization
      in the encoding stage.
      
      Change-Id: I011bfad3a59a380a869ee552e91dae0394ec492e
      34b6abef
    • Jingning Han's avatar
      Allocate dual buffer sets for encoding · 3b3aea68
      Jingning Han authored
      Allocate memory space of dual buffer sets that store the coeff, qcoeff,
      dqcoeff, and eobs. Connect the pointers of macroblock_plane and
      macroblockd_plane to the actual buffer in use accordingly.
      
      Change-Id: I2f0b5f482ca879fae39095013eaf8901db20a5a4
      3b3aea68
  4. 11 Nov, 2013 - 1 commit
  5. 07 Nov, 2013 - 1 commit
  6. 06 Nov, 2013 - 2 commits
  7. 04 Nov, 2013 - 1 commit
    • Adrian Grange's avatar
      Remove unused member variables from VP9_COMP · a0a6590e
      Adrian Grange authored
      Removed three members from the VP9_COMP data structure:
      inter_zz_count, gf_bad_count, gf_update_recommended.
      
      These were part of the VP8 real-time mode implementation
      that was removed from the initial VP9 codecbase.
      
      Change-Id: I866b083b88ef02c74837277d50ce532ca88492f3
      a0a6590e
  8. 30 Oct, 2013 - 1 commit
  9. 29 Oct, 2013 - 1 commit
  10. 28 Oct, 2013 - 1 commit
    • James Zern's avatar
      vp9: add TileInfo · 58a0f6db
      James Zern authored
      replaces use of cur_tile_mi_(row|col)_(start|end) by VP9_COMMON, making
      it less stateful and more reusable for parallel tile decoding
      
      Change-Id: I1df09382b4567a0e5f4434825d47c79afe2399be
      58a0f6db
  11. 25 Oct, 2013 - 4 commits
  12. 24 Oct, 2013 - 2 commits
  13. 23 Oct, 2013 - 1 commit
  14. 21 Oct, 2013 - 1 commit
    • Dmitry Kovalev's avatar
      Inlining set_partition_seg_context function. · a0be71c7
      Dmitry Kovalev authored
      We used set_partition_seg_context() only before calls to:
       1. update_partition_context()
       2. partition_plane_context()
      
      Moving these functions from vp9_blockd.h to vp9_onyxc_int.h and
      inlining  set_partition_seg_context into them. After that it is not
      necessary to have {above, left}_seg_context fields in MACROBLOCKD struture,
      so removing them also.
      
      Change-Id: I4723f59e1c8f3788432b7f51185d8d747b3a97f9
      a0be71c7
  15. 18 Oct, 2013 - 2 commits
    • Jingning Han's avatar
      Make memory alloc in pick_mode_context bsize aware · 72033fcf
      Jingning Han authored
      This commit makes the buffer allocation of zcoeff_blk array in
      pick_mode_context block size aware. It calculates the number of
      4x4 blocks in the partition and assigns the memory space accordingly.
      This process (and the uninitialization) is done once for each encoding
      pass. It allows memory copy of smaller buffer when possible.
      
      For football at 600kbps, the runtimes improve by about 1%:
      speed 1, 45961ms -> 45472ms
      speed 2, 23863ms -> 23598ms
      
      Change-Id: Id2ca24906fa89f46fa5fe742ec4b8efc2a61f877
      72033fcf
    • Dmitry Kovalev's avatar
      Passing block index explicitly instead of using get_sb_index(). · a8ffa96e
      Dmitry Kovalev authored
      That makes decoder and encoder (only bitstream writing part) a little bit
      simpler and faster. Moving get_sb_index() function to the encoder.
      
      Change-Id: Ie91aaeefd69c84b085948267b33556a7666c6278
      a8ffa96e
  16. 17 Oct, 2013 - 2 commits
  17. 16 Oct, 2013 - 3 commits
  18. 15 Oct, 2013 - 5 commits
  19. 09 Oct, 2013 - 1 commit
    • Jingning Han's avatar
      Deprecate the use of PARTITION_INFO from encoder · 03fe08ca
      Jingning Han authored
      Use b_mode_info to store the inter prediction mode of sub8x8 block,
      in replacement of the use of partition_info. Remove redundant buffer
      update for partition_info. For bus_cif at 2000 kbps, this seem to make
      speed 0 about 1% faster.
      
      Change-Id: Id1b3be45e75a24fb4b42335ac480c23e440978f6
      03fe08ca
  20. 08 Oct, 2013 - 1 commit
    • Dmitry Kovalev's avatar
      Removing inv_txm4x4_1_add and inv_txm4x4_add function pointers. · c983c966
      Dmitry Kovalev authored
      We already have itxm_add member in MACROBLOCKD structure. Both
      inv_txm4x4_1_add and inv_txm4x4_add are just its special cases for
      different eob values. But eob logic is already implemented in
      vp9_iwht4x4_add and vp9_idct4x4_add (that's why also removing
      inverse_transform_b_4x4_add).
      
      Change-Id: I80bec9b6f7d40c5e5033c613faca5c819c3e6326
      c983c966
  21. 04 Oct, 2013 - 2 commits
    • Jim Bankoski's avatar
      vp9_encodeframe.c cpplint issues resolved · de5cb8b1
      Jim Bankoski authored
      Change-Id: Id9d837e062d9c4a94def4b4ed1f49a67c75d3618
      de5cb8b1
    • Dmitry Kovalev's avatar
      Giving consistent names to IDCT/IWHT functions. · 3a060257
      Dmitry Kovalev authored
      The idea is to have the following names for each transform size:
      
      vp9_idct4x4_add
        vp9_idct4x4_1_add
        vp9_idct4x4_10_add
        vp9_idct4x4_16_add
      
      vp9_idct8x8_add
        vp9_idct8x8_1_add
        vp9_idct8x8_10_add
        vp9_idct8x8_64_add
      
      etc for 16x16, 32x32
      
      The actual list of renames in this patch:
      
      vp9_idct_add_lossless     -> vp9_iwht4x4_add
      vp9_short_iwalsh4x4_add   -> vp9_iwht4x4_16_add
      vp9_short_iwalsh4x4_1_add -> vp9_iwht4x4_1_add
      
      vp9_idct_add            -> vp9_idct4x4_add
      vp9_short_idct4x4_add   -> vp9_idct4x4_16_add
      vp9_short_idct4x4_1_add -> vp9_idct4x4_1_add
      
      Change-Id: I6f43f7437c68dd30cdd05d72e213765578ed30b1
      3a060257
  22. 03 Oct, 2013 - 3 commits
    • Jingning Han's avatar
      Refactor inter mode rate-distortion search · 11abab35
      Jingning Han authored
      This commit separates the rate-distortion optimization loop of
      superblocks from that of sub8x8 blocks. This allows better design
      rate-distortion optimization search loop for each setting. It also
      removes the use of SPLITMV and I4X4_PRED therein.
      
      No performance change in speed 0 settings. For bus@CIF at 2000kbps,
      the speed 1 runtime goes from 48009ms to 43894ms (about 10% faster).
      The overall compression performance on derf changed by -0.021%.
      
      Speed 2 runtime goes from 27114ms to 28700ms (6% slower), while the
      overall coding efficiency goes up by 1.629% for derf, 1.236% for yt.
      
      Change-Id: Ie6bdfa0a370148dd60bd800961077f7e97e67dd4
      11abab35
    • Dmitry Kovalev's avatar
      Using vp9_zero instead of vpx_memset. · 9250d152
      Dmitry Kovalev authored
      Change-Id: I9a0d0e9c3459954aa7b9c68f92cc5d56385ebd18
      9250d152
    • Paul Wilkins's avatar
      Speed setting review. · 6253cc92
      Paul Wilkins authored
      Substantial reworking of the speed vs quality trade offs for
      speed 1 and 2.
      
      In this patch I am attempting to freeze the "quality" meaning of
      speeds 1 and 2 relative to speed 0 so that in future we can
      better evaluate progress.
      
      I am targeting :
      Speed 1 quality ~-5% vs speed 0.
      Speed 2 quality ~-10% vs speed 0
      
      It is inevitable that quality will still fluctuate a little as we adjust
      settings and add new features, but we will attempt to keep as
      close as possible to these values. Above speed 2 things will remain
      a bit more fluid for now.
      
      In this patch speed 1 is approximately 4-5x as fast as speed 0. This
      is similar to before but the quality hit is a lot less. Likewise speed 2
      is approximately 2x as fast as speed 1 but is similar in quality to the
      previous speed 1 configuration.
      
      Also slight change to behavior of FLAG_EARLY_TERMINATE to insure
      all reference frames get at least one rd test. Important for very low
      variance regions.
      
      WIP :- Added a new speed level with old speed 4 becoming speed 5.
      Speed 3 and 4 tradeoffs still WIP
      
      Change-Id: Ic7a38dd7b5b63ab1501f9352411972f480ac6264
      6253cc92