1. 22 Jul, 2013 - 5 commits
    • Yaowu Xu's avatar
      fix a build error · fc186dca
      Yaowu Xu authored
      Change-Id: I3b05687f439ff6a7c426d2c97a6c58c831fa51ac
      fc186dca
    • 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
    • Paul Wilkins's avatar
      Re-order mode search in rd. · 1d189d64
      Paul Wilkins authored
      Mode search order in rd loop changed to better reflect
      observed hit counts.
      
      Also some adjustment of the baseline mode rd thresholds
      to reflect the order change and observed frequencies.
      
      Change-Id: I47a131cc83e11551df8add6d6d8d413d78d3a63c
      1d189d64
    • Jim Bankoski's avatar
      fix left over overflow · 2ac8b50c
      Jim Bankoski authored
      This cl fixes issues rbultje brought up. that I somehow neglected when I
      submitted yaowu's patch.
      
      Change-Id: I07ad18796317822510b96e951c88d29f194a3c2e
      2ac8b50c
    • Paul Wilkins's avatar
      Fix build error. · 888375d2
      Paul Wilkins authored
      When CONFIG_POSTPROC is set there was a now
      invalid reference to cm->filter_level.
      
      Changed to cpi->mb.e_mbd.lf.filter_level in line with
      change Iaf5fb71c33719cdfa1b991f671caf071be9ea035
      
      Change-Id: If746e60044903f7ba8d0d346225b3d015226c7d0
      888375d2
  2. 21 Jul, 2013 - 1 commit
    • Jingning Han's avatar
      Skip buffer update in sub8x8 rd loop · c725502b
      Jingning Han authored
      This commit allows the encoder to skip a few buffer update steps in
      rd_pick_best_mbsegmentation, when early breakout has been triggered
      in the rd_check_segment_txsize. It provides about 1% speed-up for
      bus_cif at 2000 kbps, in the settings of speed 0.
      
      Change-Id: Ica034f10a24dec572b397d8389a2b81020ebc0b9
      c725502b
  3. 20 Jul, 2013 - 2 commits
    • Yaowu Xu's avatar
      added checks to prevent rate/distortion overflow · ea284d62
      Yaowu Xu authored
      At speed 2, due to the threshold scheme used, it is possible the rate
      and distortion assigned with INT_MAX value. The patch added checking
      to prevent the INT_MAX value is used in further calculation of RD
      scores. The patch also changed the assertion in rd_use_partition() to
      be mirror similar assertion in rd_pick_partition().
      
      Change-Id: Idb52c543cc1e10abdf6e6a5d6e9cb535a42214dc
      ea284d62
    • Dmitry Kovalev's avatar
      Removing pre probabilities from FRAME_CONTEXT. · 7e703de7
      Dmitry Kovalev authored
      Using cm->frame_contexts[cm->frame_context_idx] as source of previous
      probabilities.
      
      Change-Id: Ie03778acf0e7bebdc3a1f6a51854d4a0712f24a1
      7e703de7
  4. 19 Jul, 2013 - 9 commits
  5. 18 Jul, 2013 - 11 commits
  6. 17 Jul, 2013 - 12 commits
    • Dmitry Kovalev's avatar
      Removing kf_{y, uv}_mode_prob arrays from VP9Common. · f9f453ec
      Dmitry Kovalev authored
      These arrays have constant values (no any updates). Removing two
      corresponding memcpy calls. Making a little cleanup in vp9_entropymode.h
      as well: removing redundant 'extern' keyword and moving all function
      declarations at the end.
      
      Change-Id: Ia16b38b46aec2e2500f5df29c40a297ae241dede
      f9f453ec
    • Yunqing Wang's avatar
      Remove unnecessary calling of vp9_init_quantizer() · 3798db88
      Yunqing Wang authored
      vp9_init_quantizer() is called in vp9_create_compressor(), and
      should not be called in vp9_set_speed_features().
      
      Change-Id: Ic2f1f4b0531b9d46bb841d7e1d8da9812207dad6
      3798db88
    • Ronald S. Bultje's avatar
      Add a best_yrd shortcut in splitmv mode search. · c6917528
      Ronald S. Bultje authored
      Encoding of first 50 frames of bus (speed 0) @ 1500kbps goes from
      1min6.2 to 1min5.9, i.e. 0.5% faster overall.
      
      Change-Id: I59d8a3b2f0a75010fa041d5e2646c8caac5bd683
      c6917528
    • Ronald S. Bultje's avatar
      Skip redundant nearest/near/zero encodes in splitmv. · 161c9956
      Ronald S. Bultje authored
      Encode of first 50 frames of bus @ 1500kbps (speed 0) goes from
      1min7.3 to 1min6.2, i.e. 1.7% faster overall.
      
      Change-Id: I19d2deacfbffadd61d32551cee9586757ab4a987
      161c9956
    • Yaowu Xu's avatar
      changed mode checking order · 42facc29
      Yaowu Xu authored
      Change-Id: Ic4c4b363ed840935e42f495f13ea5e601a56f1b2
      42facc29
    • Ronald S. Bultje's avatar
      Skip nearest/near/zero redundant encodes. · 8fea880b
      Ronald S. Bultje authored
      Encode of first 50 frames of bus @ 1500kbps (speed 0) goes from 1min12.8
      to 1min7.3, i.e. 8% faster.
      
      Change-Id: Ia22d1c7b687316c553cc60eacae988b24e175b62
      8fea880b
    • Yunqing Wang's avatar
      Enable disable_splitmv feature for other speeds · 10e83b07
      Yunqing Wang authored
      Added disable_splitmv feature at other speed levels. For speed 3 or
      above, always turn it on.
      
      Change-Id: Ibb36f0a7ef12a34b4f8d0f9cb6193eab43b34360
      10e83b07
    • Ronald S. Bultje's avatar
      Best_rd breakout in rd partition search. · 9f427bfe
      Ronald S. Bultje authored
      About 15% faster for bus (speed 0) first 50 frames @ 1500kbps, which
      goes from 1min36 to 1min24. Results become slightly better (+0.2% on
      derf/yt, +0.4% on hd), probably because of a bugfix for skipmode in
      super_block_yrd(). Overall speed change (on derfraw300) is roughly
      -13%. This can probably be improved further by caching best_yrd
      between partition searches. Also, we might be able to get more
      speedups by always doing PARTITION_NONE before PARTITIONS_SPLIT, not
      just at the sb8x8 level.
      
      Change-Id: I83736949ebd5b4a3b400ee688d7661913fefc98b
      9f427bfe
    • Ronald S. Bultje's avatar
      Do a skip-block check for sub8x8 partitions also. · 83c7e13a
      Ronald S. Bultje authored
      +0.2% SSIM and glbPSNR on derfraw300.
      
      Change-Id: I9cba0bca55e606a22f557c7732b064f738efe84d
      83c7e13a
    • Yunqing Wang's avatar
      Speed up motion estimation using small partitions' result(experiment) · df90d58f
      Yunqing Wang authored
      Current partition checking starts from small sizes, and then goes up
      to large sizes. This experiment uses the small partitions' motion
      estimation result, which is already available, to speed up the
      large partition's motion estimation. We can decide to skip some
      patition checkings if they are unlikely choices. We could use the
      motion vector(MV) result as current partition's prediction MV, limit
      the search range and reference frame.
      
      Current result at speed 1:
      psnr loss: 1.19% for stdhd, 0.287% for derf.
      speed gain: 14% for sunflower(hd), 11% for akiyo.
      
      Further improvement will be done later.
      
      Change-Id: I5abfd070e9cace2e91e2a0247d1325df313887ab
      df90d58f
    • Paul Wilkins's avatar
      Move uv intra mode selection in rd loop. · 2ee338ce
      Paul Wilkins authored
      Use an estimate based on DC_PRED for intra uv cost
      within the rd loop then only do a full uv mode analysis
      if an intra mode is chosen.
      
      Significant speed gains in some cases. Currently only
      enabled for speed 2 pending speed/quality tests.
      
      Change-Id: Ie851a12400d5483bce47ec0e3ccb8516041e91c0
      2ee338ce
    • Paul Wilkins's avatar
      Limit transform sizes searched for uv intra. · 6c667f0f
      Paul Wilkins authored
      Apply limit if search_method == USE_LARGESTALL
      to the range of UV tx sizes searched.
      
      Change-Id: I6db29f0dd237285ffc50d75a37e8b68151ad821c
      6c667f0f