1. 15 Jul, 2014 1 commit
    • Tim Kopp's avatar
      VP9 Denoiser denoises after mode/bsize search · 03819ed9
      Tim Kopp authored
      In vp8, statistics are collected about the different modes as they are searched.
      This process is more complicated due to the variable block size. Fields were
      added to the PICM_MODE_CONTEXT struct to hold this information for each point in
      the search. The information is then taken from the appropriate part of the tree
      during denoising.
      Change-Id: I89261ab77ad637821287ae157dfdf694702b8e77
  2. 11 Jul, 2014 7 commits
  3. 10 Jul, 2014 5 commits
    • James Zern's avatar
      call vp[89]_clear_system_state after longjmp · 61c33385
      James Zern authored
      restore the environment post encode/decode failure
      Change-Id: I3c72e2260a616432eaf1f9545d4fb4d8e45cc7b0
    • James Zern's avatar
      update vp9_thread.c · 8701ed02
      James Zern authored
      pull the latest from libwebp.
      Original source:
       100644 blob 264210ba2807e4da47eb5d18c04cf869d89b9784 src/utils/thread.c
      commit 46fd44c1042c9903b2f1ab87e9f200a13c7e702d
      Author: James Zern <jzern@google.com>
      Date:   Tue Jul 8 19:53:28 2014 -0700
          thread: remove harmless race on status_ in End()
          if a thread was still doing work when End() was called there'd be a race
          on worker->status_. in these cases, however, the specific value is
          meaningless as it would be >= OK and the thread would have been shut
          down properly, but we'll check 'impl_' instead to avoid any potential
          TSan/DRD reports.
          Change-Id: Ib93cbc226a099f07761f7bad765549dffb8054b1
      Change-Id: Ib0ef25737b3c6d017fa74822e21ed58508230b91
    • hkuang's avatar
      Fix a bug in boundary checking. · 51e9788e
      hkuang authored
      Change-Id: Ifc741da9da6f61c8d3c1f675ec6b8a96570f877d
    • Yunqing Wang's avatar
      Refactor vp9_diamond_search_sad function · 75cd5750
      Yunqing Wang authored
      Currently, vp9_diamond_search_sadx4() is only called when sse3 is
      enabled, which is improper since sse2 optimization of sdx4df
      functions are available. Changed to always use
      Change-Id: I4b95d6b7a3c6c645783c373f0ba8d645ece24717
    • James Zern's avatar
      vp9_loopfilter.c: cosmetics · 58609335
      James Zern authored
      - fix indent, spelling
      - drop some whitespace in some comments
      - add an assert in vp9_setup_mask, it shouldn't be called on decode
      Change-Id: Ic312a815e977a6f9cb81ceb7b039eeada76c5aa0
  4. 09 Jul, 2014 6 commits
    • Yunqing Wang's avatar
      Refactor refining_search_sad code · 30117a57
      Yunqing Wang authored
      There are sse2 optimization of sdx4df functions. Instead of calling
      vp9_refining_search_sadx4 only when sse3 is enabled, call it always.
      Change-Id: I24f93818f7d4209d1425039e0eb099ff9ff08fe9
    • Yaowu Xu's avatar
      Minor cleanup · 87cf002e
      Yaowu Xu authored
      Change-Id: I3a3ceeeed489f8b1ccd7199ff97f3fb991bbf5a4
    • Yunqing Wang's avatar
      Remove repetitive code in mcomp.c · a581da21
      Yunqing Wang authored
      Deleted vp9_find_best_sub_pixel_comp_tree(), and combined it in
      Change-Id: Ifb25763c8b19822df5537cc1daa76ce88dc3b056
    • Yunqing Wang's avatar
      Adjust full-pixel search method in real-time mode · 9bd3be69
      Yunqing Wang authored
      Use FAST_HEX in speed 5 and 6, which covers more points than
      FAST_DIAMOND and improves motion search quality.
      At speed 6, RTC set borg tests showed slight quality gain (psnr
      gain: 0.143%, ssim gain: 0.226%). No noticeable encoding speed
      Change-Id: Ifa62875d9a52ee382ec494f271382bb77d8c67bf
    • Yaowu Xu's avatar
      Combined non-rd motion searchs into a single function · c788bceb
      Yaowu Xu authored
      This commit combined the full pel and sub pel motion search into a
      single function to avoid code duplication. The commit does not change
      encoder outputs.
      Change-Id: Ibe18342c4f64073bef20f9cf6c6ca0a20d01bf0d
    • James Zern's avatar
      vp9_decoder_remove: destroy common after thread shutdown · 2e0588bc
      James Zern authored
      in a failure case the threads may still be running and share a reference
      to VP9_COMMON
      Change-Id: I867034b4b55f133663b8cbf6ca06e72acf952849
  5. 08 Jul, 2014 4 commits
    • Jingning Han's avatar
      Re-design quantization process for 32x32 transform block · 9ad1b9fc
      Jingning Han authored
      This commit enables a new quantization process for 32x32 2D-DCT
      transform coefficient blocks. It improves the compression
      performance of speed 5 by 1.4%. The overall compression gains of
      speed 5 due to the new quantization scheme is 4.7%. It also includes
      the SSSE3 implementation of the 32x32 quantization process.
      Change-Id: I0855b124fd6462418683f783f5bcb44255c9993b
    • Adrian Grange's avatar
      Fix decoder handling of intra-only frames · 7c43fb67
      Adrian Grange authored
      This patch fixes bug 633:
      The first decoded frame does not have to be a keyframe,
      it could be an inter-frame that is coded intra-only.
      This patch fixes the handling of intra-only frames.
      A test vector has also been added that encodes 3
      intra-only frames at the start of the clip. The
      test vector was generated using the code in the
      following patch:
      Change-Id: Ib40b1dbf91aae2bc047e23c626eaef09d1860147
    • Tim Kopp's avatar
      Vp9 denoiser MC bugfix · 3c86228c
      Tim Kopp authored
      In the previous version, only certain buffers in the macroblockd were saved and
      the restored. In this version, all of the buffers are saved and restored. The
      code was then rolled into a loop for readability.
      Also contains a tiny fix for when the -DOUTPUT_YUV_DENOISED flag is used.
      Change-Id: Id925ef8b3fa122ae88acfa1d9a1e4df45df83518
    • Guillaume Martres's avatar
      vp9_cx_iface.c: allow speed greater than 7 · 113dbf8d
      Guillaume Martres authored
      This makes it possible to use --rt --cpu-used=8.
      Change-Id: I8b5bc4449b6e05d24d25145e35b4793501268c59
  6. 07 Jul, 2014 4 commits
    • hkuang's avatar
      Move vp9_thread.* to common. · 337e8015
      hkuang authored
      Prepare for frame parallel decoding, the reference count buffers
      need to be protected by mutex. Move vp9_thread.* to common
      folder so that those buffers could use cross-platform mutex
      from vp9_thread.*.
      Change-Id: I541277cf15eefed6641555944f67f4a0bcdc8154
    • Jingning Han's avatar
      Tune SSSE3 implementation of fast path quantization · 00fc0e3f
      Jingning Han authored
      This commit further simplifies the SSSE3 implementation of the fast
      path quantization process.
      Change-Id: I5be3286ec0f1bd81d1cf5be3168fece6384fb9ca
    • Jingning Han's avatar
      Remove an empty line · 3316918b
      Jingning Han authored
      Change-Id: Id6eedc502c86433df1456dd994aee6bc9a1359a2
    • Alex Converse's avatar
      Cleanup motion search speed features. · f60a1178
      Alex Converse authored
      * Replace max_step_search_steps with constant MAX_MVSEARCH_STEPS
      * Fold (reduce_first_step_size + speed > 5) into reduce_first_step_size
        replacing uses of reduce_first_step_size that don't add the speed
        check with zero.
      Change-Id: Iae46395dbf3eaca138bf4d18b838a9e364b5a198
  7. 05 Jul, 2014 1 commit
    • Deb Mukherjee's avatar
      Adds support for reading and writing 10/12-bit y4m · 5820c5d6
      Deb Mukherjee authored
      The y4m extension used is the same as the one used in ffmpeg/x264.
      The patch is adapted from the highbitdepth branch.
      Also adds unit tests for y4m header parsing and md5 check
      of the raw frame data, as well as y4m writing.
      [build fix for Mac/VS by not using tuples with strings]
      Change-Id: I40897ee37d289e4b6cea6fedc67047d692b8cb46
  8. 03 Jul, 2014 1 commit
  9. 02 Jul, 2014 11 commits
    • Alex Converse's avatar
      Cleanup vp9_rd. · 15123db7
      Alex Converse authored
      Change-Id: I39a37335ba5b3a969d328afb1f425ddb2cf7ddda
    • Alex Converse's avatar
      Split vp9_rdopt into vp9_rdopt and vp9_rd. · 03c276ea
      Alex Converse authored
      vp9_rdopt is for making rd optimal mode decisions. vp9_rd is for all
      other rd related routines. Anything used outside of making an rd optimal
      decision belongs in rd.
      Change-Id: I772a3073f7588bdf139f551fb9810b6864d8e64b
    • Dmitry Kovalev's avatar
      Cleaning up and simplifying read_frame_stats(). · 4635a2ba
      Dmitry Kovalev authored
      Change-Id: I262ecac02d376de83097bb40f744f5584e987603
    • Yunqing Wang's avatar
      Fix rd threshold overflow issue · 3bc11932
      Yunqing Wang authored
      Moved the threshold adjustment before reference flag checking,
      which could set the threshold to INT_MAX for disabled reference
      frame, and cause overflow if the adjustment is done after that.
      Change-Id: I85e94f8726d5e3ae93f65965aa978721dddc9957
    • Tim Kopp's avatar
      VP9 denoiser implemented FILTER_BLOCK case · 03a3ba4a
      Tim Kopp authored
      Renamed updating_running_avg() to filter(). Extended function with the rest of
      the filter procedure. Made all of the empirically-determined constants used in
      VP8 into functions so they can be tweaked more easily.
      Change-Id: I41730c8c92370c76885950a43742347477ca4e7e
    • Tim Kopp's avatar
      VP9 denoising enabled by noise_sensitivity param · 9c9922df
      Tim Kopp authored
      As in VP8.
      Currently, this parameter is set with the VP8E_SET_NOISE_SENSITIVITY flag.
      The flag was not renamed so that we don't break the interface for webrtc. This
      should probably be changed at some point in the future.
      Change-Id: Ic73fcb0dde9d1d019e9d042050b617333ac65472
    • Tim Kopp's avatar
      Replaced loops with vpx_memcpy() · 49741fee
      Tim Kopp authored
      Change-Id: Icbe05657f0e92c3838e6a5a975f4f82d21328a2e
    • Paul Wilkins's avatar
      Multi-arf: Add code to turn it on and off. · 88307723
      Paul Wilkins authored
      Add test code to turn multi-arf on and off depending
      on group length and zero motion.
      Changes to active max group length for mult-arf.
      Fund second arf only from normal frame bits.
      Change-Id: I920287fac1c886428c15a39f731a25d07c2b796c
    • Yaowu Xu's avatar
      Added a speed feature controlling a motion search parameter · 92a6db79
      Yaowu Xu authored
      This commit added a speed feature to control the step_param used in
      full pixel motion search. The intention is to reduced the search
      steps for high speed real time coding.
      Change-Id: I21d2f0105c2b647783a6688615da7fcf2b6d670b
    • Paul Wilkins's avatar
      Adapt strength of AQ2. · adf4293e
      Paul Wilkins authored
      Adapt the use of segmentation in AQ mode 2 based on
      the ambient kf/arf/gf Q.
      Disable segmentation where the rate per SB is very
      low and overheads are likely to outweigh the benefits.
      This patch reduces the -ve average metrics impact
      of AQ mode 2 while allowing stronger 3 segment AQ
      in some cases. Average improvement ~0.5-1.0%.
      Change-Id: I5892dfcc7507c5cc6444531cc7fe17554cf8d0c7
    • Deb Mukherjee's avatar
      Adds support for reading and writing 10/12-bit y4m · 82dc1332
      Deb Mukherjee authored
      The y4m extension used is the same as the one used in ffmpeg/x264.
      The patch is adapted from the highbitdepth branch.
      Also adds unit tests for y4m header parsing and md5 check
      of the raw frame data, as well as y4m writing.
      Change-Id: Ie2794daf6dbafd2f128464f9b9da520fc54c0dd6