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
      03819ed9
  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
      61c33385
    • James Zern's avatar
      update vp9_thread.c · 8701ed02
      James Zern authored
      pull the latest from libwebp.
      
      Original source:
       http://git.chromium.org/webm/libwebp.git
       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
      8701ed02
    • hkuang's avatar
      Fix a bug in boundary checking. · 51e9788e
      hkuang authored
      Change-Id: Ifc741da9da6f61c8d3c1f675ec6b8a96570f877d
      51e9788e
    • 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
      vp9_diamond_search_sadx4().
      
      Change-Id: I4b95d6b7a3c6c645783c373f0ba8d645ece24717
      75cd5750
    • 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
        error
      
      Change-Id: Ic312a815e977a6f9cb81ceb7b039eeada76c5aa0
      58609335
  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
      30117a57
    • Yaowu Xu's avatar
      Minor cleanup · 87cf002e
      Yaowu Xu authored
      Change-Id: I3a3ceeeed489f8b1ccd7199ff97f3fb991bbf5a4
      87cf002e
    • 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
      vp9_find_best_sub_pixel_tree().
      
      Change-Id: Ifb25763c8b19822df5537cc1daa76ce88dc3b056
      a581da21
    • 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.
      
      Change-Id: Ifa62875d9a52ee382ec494f271382bb77d8c67bf
      9bd3be69
    • 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
      c788bceb
    • 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
      2e0588bc
  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
      9ad1b9fc
    • Adrian Grange's avatar
      Fix decoder handling of intra-only frames · 7c43fb67
      Adrian Grange authored
      This patch fixes bug 633:
      https://code.google.com/p/webm/issues/detail?id=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:
      https://gerrit.chromium.org/gerrit/#/c/70680/
      
      Change-Id: Ib40b1dbf91aae2bc047e23c626eaef09d1860147
      7c43fb67
    • 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
      3c86228c
    • 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
      113dbf8d
  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
      337e8015
    • 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
      00fc0e3f
    • Jingning Han's avatar
      Remove an empty line · 3316918b
      Jingning Han authored
      Change-Id: Id6eedc502c86433df1456dd994aee6bc9a1359a2
      3316918b
    • 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
      f60a1178
  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
      5820c5d6
  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
      15123db7
    • 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
      03c276ea
    • Dmitry Kovalev's avatar
      Cleaning up and simplifying read_frame_stats(). · 4635a2ba
      Dmitry Kovalev authored
      Change-Id: I262ecac02d376de83097bb40f744f5584e987603
      4635a2ba
    • 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
      3bc11932
    • 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
      03a3ba4a
    • 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
      9c9922df
    • Tim Kopp's avatar
      Replaced loops with vpx_memcpy() · 49741fee
      Tim Kopp authored
      Change-Id: Icbe05657f0e92c3838e6a5a975f4f82d21328a2e
      49741fee
    • 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
      88307723
    • 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
      92a6db79
    • 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
      adf4293e
    • 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
      82dc1332