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
      636099f7
    • 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
      eee201c2
  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
      size.
      
      Change-Id: Ie4131f5ec6fb93148879f6ce96123296442bf2d1
      65753eeb
    • James Zern's avatar
      add vp9_loop_filter_data_reset · 01483677
      James Zern authored
      Change-Id: I8a9c9019242ec10fa499a78db322221bf96a0275
      01483677
    • Yaowu Xu's avatar
      Move filter_ref initialization · 065809d2
      Yaowu Xu authored
      To outside the loop to avoid repeating the operations.
      
      Change-Id: I66c1986e98ce0d7594caad3d3b45de655b299bff
      065809d2
    • 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
      8fc3ab77
  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
      7c7e4d4e
    • 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
      08cdd006
    • 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
      3f79359e
    • JackyChen's avatar
      vp9_denoiser_sse2.c: improve code style. · 5cba6516
      JackyChen authored
      denoiser_sse2.c: fix typos in comment.
      
      Change-Id: Ic0fb102331b0e533c058da3cab1fbc30de9a0070
      5cba6516
    • 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
      95a568b3
    • 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
      7cd6330e
    • 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
      be212d4d
  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
      9f128b3e
    • 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
      6f0ae3a2
    • 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
      9626a0cb
  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:
      vp9_sad64x64
      vp9_sad64x32
      vp9_sad32x64
      vp9_sad32x32
      vp9_sad32x16
      vp9_sad64x64_avg
      vp9_sad64x32_avg
      vp9_sad32x64_avg
      vp9_sad32x32_avg
      vp9_sad32x16_avg
      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
      7045aec0
  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
      7c4992c4
    • 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
      e3bf55de
    • 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
      94ecfa32
    • JackyChen's avatar
      vp9_denoiser_sse2.c: solve windows build error. · 6356d21a
      JackyChen authored
      Change-Id: Ib5df91c8580d5dbeb0b3554edc9c2ca906ba4c4d
      6356d21a
    • Jingning Han's avatar
      Remove unused VAR_BASED_FIXED_PARTITION flag · e1111fba
      Jingning Han authored
      Change-Id: I4ce19b7cb1c45fed86e81ee785e787630020fb4f
      e1111fba
    • 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
      f0c3da93
    • JackyChen's avatar
      vp9_denoiser_sse2.c: eliminate gcc warnings · 8514d034
      JackyChen authored and James Zern's avatar James Zern committed
      Change-Id: I5f63f48e11e31ea9951223c5b18f42a2471e4560
      8514d034
  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
      ed100c0b
    • 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
      LFWorkerData.
      
      Change-Id: Ic7b2faa34e3eb59dbcb8a7c67f333448fa047c88
      e9b8810b
    • James Zern's avatar
      vp9_loop_filter_frame_mt: remove pbi dependency · 175c870e
      James Zern authored
      Change-Id: I44d42a5098305a2d050ce8ff3c76baf7798c48af
      175c870e
    • James Zern's avatar
      vp9_loop_filter_frame_mt: pass planes directly · 69f11d2b
      James Zern authored
      one less dependency on pbi
      
      Change-Id: I3f3a392416d3523f4aea6682c3965885baf85197
      69f11d2b
    • 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
      eb3fdfba
    • 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
      ff3ae42d
    • 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
      716ae78c
    • 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
      68b550f5