1. 07 Jul, 2014 3 commits
    • 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
  2. 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
  3. 03 Jul, 2014 1 commit
  4. 02 Jul, 2014 12 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
    • Jingning Han's avatar
      Re-design quantization process · 9ac2f663
      Jingning Han authored
      This commit re-designs the quantization process for transform
      coefficient blocks of size 4x4 to 16x16. It improves compression
      performance for speed 7 by 3.85%. The SSSE3 version for the
      new quantization process is included.
      The average runtime of the 8x8 block quantization is reduced
      from 285 cycles -> 255 cycles, i.e., over 10% faster.
      Change-Id: I61278aa02efc70599b962d3314671db5b0446a50
  5. 01 Jul, 2014 9 commits
    • Alex Converse's avatar
      Allow lossless skipping in RD mode decision. · 0256a759
      Alex Converse authored
      Change-Id: I2fc4ecfc2dd3ff1dd241a68c9ed4c280291b41f2
    • Pengchong Jin's avatar
      Store/read 16x16 block statistics obtained from the first pass · aaabbd67
      Pengchong Jin authored
      Add a conditional compile flag for this feature. Also add a
      switch to enable the encoder to use these statistics in the
      second pass. Currently, the switch is turned off.
      Change-Id: Ia1c858c35ec90e36f19f5cffe156b97ddaa04922
    • Yunqing Wang's avatar
      Elevate NEWMV mode checking threshold in real time · f31ff029
      Yunqing Wang authored
      The current threshold is knid of low, and in many cases NEWMV
      mode is checked but not picked as the best mode. This patch
      added a speed feature to increase NEWMV threshold, so that
      less partition mode checking goes to check NEWMV. This feature
      is enabled for speed 6 and 7.
      Rtc set borg tests showed:
      1. Speed 6, overall psnr: -0.088%, ssim: -1.339%;
         Average speedup on rtc set is 11.1%.
      2. Speed 7, overall psnr: -0.505%, ssim: -2.320%
         Average speedup on rtc set is 12.9%.
      Change-Id: I953b849eeb6e0d5a1f13eacba30c14204472c5be
    • Tim Kopp's avatar
      VP9 denoiser used s/int/enum where appropriate · 1a66dab9
      Tim Kopp authored
      Change-Id: Id52a7869fd1f31bb060de170e3295da7435adb9e
    • Tim Kopp's avatar
      Denoised output is now grayscale · 2f71de77
      Tim Kopp authored
      Grayscale is conditionally compiled.
      Change-Id: I482ab237560d0bae8d397fd9999e78d38104f2a1
    • Jim Bankoski's avatar
      validate uv block size when reading partition · abf0df08
      Jim Bankoski authored
      Change-Id: I74fc5f1a7bab3128cdd49441b83ec3a25aee65ca
    • Yunqing Wang's avatar
      Fix visual studio build issue · 9ba1d60b
      Yunqing Wang authored
      Fixed the signed/unsigned mismatch.
      Change-Id: Id83d603b8f1745b71f4cf695a0751e55518b1316
    • James Zern's avatar
      update vp9_thread.[hc] · e656f44c
      James Zern authored
      pull the latest from WebP, which adds a worker interface abstraction
      allowing an application to override init/reset/sync/launch/execute/end
      this has the side effect of removing a harmless, but annoying, TSan
      Original source:
        100644 blob 08ad4e1fecba302bf1247645e84a7d2779956bc3 src/utils/thread.c
        100644 blob 7bd451b124ae3b81596abfbcc823e3cb129d3a38 src/utils/thread.h
      Local modifications:
       - s/WebP/VP9/g
       - camelcase functions -> lower with _'s
       - associate '*' with the variable, not the type
      Change-Id: I875ac5a74ed873cbcb19a3a100b5e0ca6fcd9aed
    • hkuang's avatar
      Revert "Fix a bug in VP9Worker which leads to unit test hang." · 1480ba6f
      hkuang authored
      The caller should reset the state instead of letting worker
      to reset.
      This reverts commit 34b2ce15.
      Change-Id: Idb546ea6386cffc44e98dee772900d21ab79710f
  6. 30 Jun, 2014 7 commits
    • Yaowu Xu's avatar
      change to not force interp_type as SWITCHABLE · 186bd4eb
      Yaowu Xu authored
      Encoder still uses SWITCHABLE as default via DEFAULT_INTERP_FILTER,
      but does not override the default if it is not SWITCHABLE.
      Change-Id: I3c0f6653bd228381a623a026c66599b0a87d01d5
    • Yunqing Wang's avatar
      Encode_breakout code refactoring · 3779ccaf
      Yunqing Wang authored
      Moved the encode_breakout_test out of vp9_pick_inter_mode().
      Change-Id: I6966d0293ae5210a5a28b0e8debacb24d1c0d2d4
    • Jingning Han's avatar
      Remove unused set_mode_info function · 30ab3701
      Jingning Han authored
      When the frame is intra coded only, the encoder takes the RD
      coding flow. Hence the function set_mode_info is not practically
      in use. This commit removes it and the associated conditional
      Change-Id: I1e42659ceb55b771ba712d1cdecacb446aa6460d
    • hkuang's avatar
      Fix a bug in VP9Worker which leads to unit test hang. · 34b2ce15
      hkuang authored
      This fixes the hang in VP9/InvalidFileTest.ReturnCode/3
      due to worker->had_error has not been reset after getting
      Change-Id: Ia3608225094758a2bd88f6ae4dd9dfd93bbaad27
    • Yunqing Wang's avatar
      Enable encode breakout in real time · dee5782f
      Yunqing Wang authored
      For real time speed 7, once encode breakout is on(i.e. encoding
      setting --static-thresh=1), a proper encode breakout threshold
      is set to speed up the encoder.
      Set --static-thresh=1, RTC set borg test showed a slight overall
      psnr loss of 0.162%, but ssim gain of 0.287%. The average speedup
      on RTC set is 6%, and for some clips, the speedup can be 10+%.
      Change-Id: Id522d9ce779ff7c699936d13d0c47083de4afb85
    • Yunqing Wang's avatar
      Decide the partitioning threshold from the variance histogram · 9d41313e
      Yunqing Wang authored
      Before encoding a frame, calculate and store each 16x16 block's
      variance of source difference between last and current frame.
      Find partitioning threshold T for the frame from its variance
      histogram, and then use T to make partition decisions.
      Comparing with fixed 16x16 partitioning, rtc set test showed an
      overall psnr gain of 3.242%, and ssim gain of 3.751%. The best
      psnr gain is 8.653%.
      The overall encoding speed didn't change much. It got faster for
      some clips(for example, 12% speedup for vidyo1), and a little
      slower for others.
      Also, a minor modification was made in datarate unit test.
      Change-Id: Ie290743aa3814e83607b93831b667a2a49d0932c
    • Jim Bankoski's avatar
      initialize bit buffer structure to avoid warning error · 7a8829f6
      Jim Bankoski authored
      Change-Id: I38bb2801ad3f059d5e2eb6513eec92397c67abcd
  7. 29 Jun, 2014 2 commits
  8. 28 Jun, 2014 2 commits
    • James Zern's avatar
      vp9: disable postproc buffer alloc when unnecessary · 44472cde
      James Zern authored
      the buffer is only used in encoding and only when
      a future change should decouple this from the frame buffer allocation
      and make it conditional based on runtime flags when the above config
      options are enabled.
      reduces decode heap usage by at least 12%
      Change-Id: Id0b97620d4936afefa538d3aadf32106743d9caf
    • James Zern's avatar
      Revert "Revert "Revert 3 patches from Hangyu to get Chrome to build:"" · 749e0c7b
      James Zern authored
      This reverts commit b3363561.
      This causes a hang in:
      the change to test/user_priv_test.cc remains with a minor update
      Change-Id: I4a8a272ca37ea329b0f413f0b1cd827a238bd9fd
  9. 27 Jun, 2014 3 commits
    • Yaowu Xu's avatar
      Allow encoder to set lpf level to 0 · d0cb273e
      Yaowu Xu authored
      As a way to speed-up rtc encoding at speed 7.
      Change-Id: Ie36a010392cf7b741dc130df21a4e733622a75b7
    • Yaowu Xu's avatar
      Added a new speed 7 in rt mode · 3f92b7b9
      Yaowu Xu authored
      To experiment with different speed/quality compromises.
      Change-Id: Ia9d4b85243554d620498a327da37c356e752b07f
    • Jim Bankoski's avatar
      Better validation of invalid files · 9f37d149
      Jim Bankoski authored
      This patch checks that a decoder never tries to reference frame that's
      outside the range of 2x to 1/16th the size of this frame.  Any attempt
      to do so causes a failure.
      Change-Id: I5c98fa7bb95ac4f29146f29dd92b62fe96164e4c