1. 28 Oct, 2014 1 commit
  2. 27 Oct, 2014 1 commit
  3. 24 Oct, 2014 2 commits
    • Yaowu Xu's avatar
      Add a new control of max bitrate for inter frame · 636099f7
      Yaowu Xu authored
      Change-Id: I205de3611622cff7f751ea8baf9f82784581730a
    • Jingning Han's avatar
      Tile based adaptive mode search in RD loop · eee201c2
      Jingning Han authored
      Make the spatially adaptive mode search in rate-distortion
      optimization loop inter tile independent. Experiments suggest that
      this does not significantly change the coding staticstics.
      Single tile, speed 3:
      pedestrian_area 1080p 1500 kbps
      59192 b/f, 40.611 dB, 101689 ms
      blue_sky 1080p 1500 kbps
      58505 b/f, 36.347 dB, 62458 ms
      mobile_cal 720p 1000 kbps
      13335 b/f, 35.646 dB, 45655 ms
      as compared to 4 column tiles, speed 3:
      pedestrian_area 1080p 1500 kbps
      59329 b/f, 40.597 dB, 101917 ms
      blue_sky 1080p 1500 kbps
      58712 b/f, 36.320 dB, 62693 ms
      mobile_cal 720p 1000 kbps
      13191 b/f, 35.485 dB, 45319 ms
      Change-Id: I35c6e1e0a859fece8f4145dec28623cbc6a12325
  4. 23 Oct, 2014 4 commits
    • Adrian Grange's avatar
      Move frame re-sizing into the recode loop · 65753eeb
      Adrian Grange authored
      The point at which frames are scaled to their
      coded dimensions is moved into the re-code loop.
      This is in preparation for a further patch that
      will add logic into the re-code loop to reduce
      the coded frame size if the encoder is struggling
      to hit the target data rate at the native frame
      Change-Id: Ie4131f5ec6fb93148879f6ce96123296442bf2d1
    • James Zern's avatar
      add vp9_loop_filter_data_reset · 01483677
      James Zern authored
      Change-Id: I8a9c9019242ec10fa499a78db322221bf96a0275
    • Yaowu Xu's avatar
      Move filter_ref initialization · 065809d2
      Yaowu Xu authored
      To outside the loop to avoid repeating the operations.
      Change-Id: I66c1986e98ce0d7594caad3d3b45de655b299bff
    • Paul Wilkins's avatar
      Enable dual arf with constant q. · 8fc3ab77
      Paul Wilkins authored
      Add second level arf Q adjustment when using dual arfs
      in constant Q mode.
      Previously in constant Q mode enabling dual arf hurt by ~5%
      but with this change the average benefit is ~1-1.5% with some
      mid range data points up ~10%.
      Note however that it still hurts on some clips including
      some very low motion show content.
      Change-Id: I5b7789a2f42a6127d9e801cc010c20a7113bdd9b
  5. 22 Oct, 2014 7 commits
    • Yunqing Wang's avatar
      vp9_ethread: allocate frame contexts outside VP9_COMMON struct · 7c7e4d4e
      Yunqing Wang authored
      This patch allocated frame contexts outside VP9_COMMON. This allows
      multiple threads to share the same copy of frame contexts, and
      reduces the overhead. It also guarantees the correct update of
      these contexts during bitstream packing. This patch doesn't change
      encoding result.
      Change-Id: Ic181a2460b891d1d587278a6d02d8057b9dbd353
    • Jingning Han's avatar
      Allow checking zeromv mode in vp9_pick_inter_mode · 08cdd006
      Jingning Han authored
      This improves the compression performance of speed -5 by 0.6%. The
      speed impact is less than 1%.
      Change-Id: Ie77daa561976dfc8b479061e1221bdf428eb0c3b
    • Yaowu Xu's avatar
      Fix a subtle issue in re-use inter_pred · 3f79359e
      Yaowu Xu authored
      The initialization of this_mode_pred does not work when the ref_frame
      loop ever goes beyond LAST_FRAME. This commit fixes the subtle issue
      and allows potentially expanding the loop to test GOLDEN_FRAME.
      Change-Id: Ibbd427a22160d1d9eacb8ed0c87f88d6cef9c0f3
    • JackyChen's avatar
      vp9_denoiser_sse2.c: improve code style. · 5cba6516
      JackyChen authored
      denoiser_sse2.c: fix typos in comment.
      Change-Id: Ic0fb102331b0e533c058da3cab1fbc30de9a0070
    • Frank Galligan's avatar
      Fix Neon convolve profiling · 95a568b3
      Frank Galligan authored
      When profiling, gprof can't distinguish between matching labels in
      different files.
      Change-Id: I56770df212ed314a0d8568071fa8157624ef1e8f
    • Paul Wilkins's avatar
      Initialization bug for multi arf. · 7cd6330e
      Paul Wilkins authored
      Moved erroneous reset of cpi->multi_arf_last_grp_enabled.
      Change-Id: Ibb0b96f6ed1d5eeb575a3b1c798e0fe2ee651d06
    • Jingning Han's avatar
      Refactor rate distortion cost structure in non-RD coding mode · be212d4d
      Jingning Han authored
      This commit refactors the rate distortion structure used in the
      non-RD coding mode and saves a few RDCOST calculations.
      Change-Id: I62c3416c300d2c5372f21b96d93a6b633a34ab3a
  6. 21 Oct, 2014 5 commits
  7. 20 Oct, 2014 3 commits
    • Jingning Han's avatar
      Hybrid partition search for rtc coding mode · 9f128b3e
      Jingning Han authored
      This commit re-designs the recursive partition search scheme in
      rtc speed -5. It first checks if the current block is under cyclic
      refresh mode. If so, apply recursive partition search. Otherwise,
      perform sub-sampled pixel based partition selection. When the
      pre-selection finds the partition size should be 32x32 or above,
      use the partition size directly. Otherwise, apply partition search
      at nearby levels around the preset partition size.
      It is enabled in speed -5. The compression performance of rtc
      speed -5 is improved by 9.4%. Speed wise, the run-time goes slower
      from 1% to 10%.
      nik_720p, 1000 kbps
      33220 b/f, 38.977 dB, 10109 ms -> 33200 b/f, 39.119 dB, 10210 ms
      vidyo1_720p, 1000 kbps
      16536 b/f, 40.495 dB, 10119 ms -> 16536 b/f, 40.827 dB, 11287 ms
      Change-Id: I65adba352e3adc03bae50854ddaea1b421653c6c
    • Paul Wilkins's avatar
      Extend --auto-alt-ref so it can enable multi-alt ref. · 6f0ae3a2
      Paul Wilkins authored
      Extend --auto-alt-ref from parameter so we can use it to
      turn multi-arf on and off from the command line.
      For now the range is 0-off, 1-on, 2-multi-arf on.
      Rename play_alternate to enable_auto_arf
      Change-Id: Id7b64407cfbe76ba0090a83b588a03e22a240386
    • Paul Wilkins's avatar
      Resolve compiler warning. · 9626a0cb
      Paul Wilkins authored
      conversion from 'const int64_t' to 'int', possible loss of data.
      Change-Id: I471a73bba5d448d9be0ef9cbf1590fa73aa74be1
  8. 19 Oct, 2014 1 commit
    • levytamar82's avatar
      SAD32xh and SAD64xh for AVX2 · 7045aec0
      levytamar82 authored
      All sad function that process above 32 consecutive elements are optimized
      for AVX2:
      The functions that appeared as a hotspot is vp9_sad32x32 and vp9_sad64x64
      vp9_sad32x32 was optimized by 68% and vp9_sad64x64 was optimized by 90%
      both of them gave and overall ~2.3% user level gain
      Change-Id: Iccf86b375a2b54c5fbbe685902ead0c9a561b9fd
  9. 18 Oct, 2014 1 commit
  10. 17 Oct, 2014 7 commits
    • Yunqing Wang's avatar
      Remove the dependency in token storing locations · 7c4992c4
      Yunqing Wang authored
      Currently, the tokens for a tile are stored immediately after its
      preceding tile, which causes a dependency. This is unnecessary
      since we always allocate enough memory for tokens. Removing
      the dependency allows token writing done in parallel. This patch
      doesn't change encoding result.
      Change-Id: I7365a6e5e2c2833eb14377c37e1503c9d0f26543
    • hkuang's avatar
      Correct the logic of ready_for_new_data. · e3bf55de
      hkuang authored
      This should be set right after decoder really start to decode frame
      instead setting at the end.
      Even decoder does not have a displayable frame to show and return NULL
      to application, this should be set too.
      Change-Id: If0313a834bc64e3b0f05a84f4459d444d9eab0d8
    • Jingning Han's avatar
      Reset rate cost value in rd mode search · 94ecfa32
      Jingning Han authored
      When early termination is triggered, properly reset the rate cost
      to invalid value to avoid potential ioc issue.
      Change-Id: I3444390be2e49a34bb02cf8a74c33d5dbd96d88d
    • JackyChen's avatar
      vp9_denoiser_sse2.c: solve windows build error. · 6356d21a
      JackyChen authored
      Change-Id: Ib5df91c8580d5dbeb0b3554edc9c2ca906ba4c4d
    • Jingning Han's avatar
      Remove unused VAR_BASED_FIXED_PARTITION flag · e1111fba
      Jingning Han authored
      Change-Id: I4ce19b7cb1c45fed86e81ee785e787630020fb4f
    • Paul Wilkins's avatar
      Alter adjustment of two pass GF/ARF boost with Q. · f0c3da93
      Paul Wilkins authored
      Delete gfboost_qadjust() and move Q based adjustment
      into calc_frame_boost(). Also remove clamping. Making
      the adjustment here means that it influences not just the
      boost level but also the selection of the GF/ARF interval.
      This change gives a small average gain in PSNR but
      larger gains in SSIM, especially for harder std-hd set (1.5%)
      Change-Id: I3aa81b8feccaeff93d915e19fb9cf5cd64c86327
    • JackyChen's avatar
      vp9_denoiser_sse2.c: eliminate gcc warnings · 8514d034
      JackyChen authored and James Zern's avatar James Zern committed
      Change-Id: I5f63f48e11e31ea9951223c5b18f42a2471e4560
  11. 16 Oct, 2014 8 commits
    • Jingning Han's avatar
      Fix an ioc issue in super_block_uvrd · ed100c0b
      Jingning Han authored
      This commit fixes an ioc issue that will happen when the cumulative
      variables are not in effective use. The fix discards these
      redundant additions.
      Change-Id: Idbac5bfb989c0cedc5f8a323effce938519b2457
    • James Zern's avatar
      move LFWorkerData allocation to VP9LfSync · e9b8810b
      James Zern authored
      this removes an assumption that worker->data1 would be pointing to a
      TileWorkerData allocation.
      additionally, within the multi-threaded loopfilter pass VP9LfSync as a
      parameter to the worker hook, removing the need for a shadow pointer in
      Change-Id: Ic7b2faa34e3eb59dbcb8a7c67f333448fa047c88
    • James Zern's avatar
      vp9_loop_filter_frame_mt: remove pbi dependency · 175c870e
      James Zern authored
      Change-Id: I44d42a5098305a2d050ce8ff3c76baf7798c48af
    • James Zern's avatar
      vp9_loop_filter_frame_mt: pass planes directly · 69f11d2b
      James Zern authored
      one less dependency on pbi
      Change-Id: I3f3a392416d3523f4aea6682c3965885baf85197
    • James Zern's avatar
      vp9_loop_filter_frame_mt: pass VP9LfSync directly · eb3fdfba
      James Zern authored
      a step towards removing the pbi dependency
      Change-Id: I10747b325e81c172f5e67031ea5159159fc26e91
    • James Zern's avatar
      vp9: store TileWorkerData allocations separately · ff3ae42d
      James Zern authored
      move them from VP9Worker::data[12] to allow the structure to be reused a
      bit more naturally by the multi-threaded loopfilter.
      Change-Id: I31b49c9e93ca744fd7f6d6ed8696671188fb2c1d
    • Paul Wilkins's avatar
      Change initialization of static_scene_max_gf_interval. · 716ae78c
      Paul Wilkins authored
      This removes an unnecessary restriction that causes
      a problem (noticed by AWG) when the forced key frame
      interval is set to a very small value, such as 10. In this case
      we were being forced to code minimal length GF groups.
      Change-Id: I76ef5861a09638ff51f61fea02359554184ada53
    • Minghai Shang's avatar
      [spatial svc]Another workaround to avoid using prev_mi · 68b550f5
      Minghai Shang authored
      We encode a empty invisible frame in front of the base layer frame to
      avoid using prev_mi. Since there's a restriction for reference frame
      scaling factor, we have to make it smaller and smaller gradually until
      its size is 16x16.
      Change remerged.
      Change-Id: I9efab38bba7da86e056fbe8f663e711c5df38449