1. 09 Oct, 2014 9 commits
    • hkuang's avatar
      Optimize the code to set the refernce frame right after reading the header. · 3304d4e6
      hkuang authored
      Change-Id: I495cf4a366e06e3220ed132500b1ba1c8448f708
      3304d4e6
    • hkuang's avatar
      Remove unnecessary code. · 0e06c8ff
      hkuang authored
      Function will jump to error handler when ref buffer is corrupted.
      So "xd->corrupted |= ref_buffer->buf->corrupted;" is useless.
      
      Change-Id: I35353a0637ad0dbb682454e040ef69fa68280bfa
      0e06c8ff
    • Deb Mukherjee's avatar
      Rename highbitdepth functions to use highbd prefix · 1929c9b3
      Deb Mukherjee authored
      Uses highbd_ prefix convention consistently.
      
      Change-Id: I58f7f799a7ff8e32701bcd71c955bcf1cdd4581e
      1929c9b3
    • hkuang's avatar
      Remove unnecessary scale check in set_ref. · 15a3e5f7
      hkuang authored
      Scale check has been done in read_inter_block_mode_info.
      
      Change-Id: I6c86f93bd579109ed30ff13a04a30e35f5ae6fc5
      15a3e5f7
    • Jingning Han's avatar
      Remove sub8x8 block index from rd_pick_partition argument · 6a0d291f
      Jingning Han authored
      This parameter is deprecated. Its function is replaced with
      other explicit condition check.
      
      Change-Id: I61337e350ba8ca9eb50382db8b4d4acbf45cb7eb
      6a0d291f
    • James Zern's avatar
      set_vt_partitioning: fix type conversion warning · cec763bd
      James Zern authored
      double -> int64
      + make threshold_multiplier an int
      
      Change-Id: I6d3607fdf13d670f57c9d9b04a80acb2be1346a0
      cec763bd
    • James Zern's avatar
      vp9_rtcd_defs: fix vp9_avg_8x8 declaration · caa0f819
      James Zern authored
      vp9_avg_8x8 does not depend on x86inc, fixes 32-bit OS X build
      
      Change-Id: I709b874ea84bf57c8cdb5ac7d43eecc6b8c1a2dd
      caa0f819
    • Deb Mukherjee's avatar
      Subpel search cleanups and enhancements · d78dbff0
      Deb Mukherjee authored
      - Some fixes to surface fit.
      - Returns variance function as cost rather than sad in the
        pattern search and diamond search functions. Only
        vp9_pattern_search_sad function used in bigdia search
        uses sad as integer 1-away costs.
      - Deploys SUBPEL_TREE_PRUNED_MORE for speed 4+.
      
      Results:
      derf [Speed 3]: About +0.036% in coding efficiency without any
      discernible speed loss.
      derf [Speed 4]: About 2-3% faster at -0.199% loss in coding efficiency.
      derf [Speed 5]: About 3-4% faster at -0.149% loss in coding efficiency.
      
      Change-Id: I8462f94f6adb46966ca964f2bd0400977357fd63
      d78dbff0
    • Yunqing Wang's avatar
      Allow mode search breakout at very low prediction errors · e18edd5e
      Yunqing Wang authored
      In model_rd_for_sb function, the spatial domain SSE and variance
      are checked to see if transform coefficients are quantized to 0.
      Besides that, this patch adds another set of thresholds that are
      much more strict. These thresholds are used to conduct a partition
      block level check to measure if all its TX blocks are skippable
      for YUV planes. If it is true, x->skip is set for this partition
      block, and thus its mode search is terminated.
      
      This speeds up the encoding at very low prediction error case,
      such as screen sharing application. This patch covers what
      rd_encode_breakout_test() does, so that function is removed.
      
      Borg test at speed 3 shows:
      For stdhd set, psnr: +0.008%, ssim: +0.014%;
      For derf set, psnr: +0.018%, ssim: +0.025%.
      No noticeable speed change.
      
      Change-Id: I4e5f15cf10016a282a68e35175ff854b28195944
      e18edd5e
  2. 08 Oct, 2014 3 commits
    • Jingning Han's avatar
      Move the high freq coeff check outside store_coding_context · 5fcbcf1b
      Jingning Han authored
      This fixes valgrind message issue 870.
      
      Change-Id: Ibbc2481923a2995029ab05de30c9e8a6e9f0f9a8
      5fcbcf1b
    • Jingning Han's avatar
      Use local variable in vp9_rd_pick_inter_mode_sb · 41cea461
      Jingning Han authored
      Change-Id: Ie35a965a6b8de536ccaf61ff61498620d22db205
      41cea461
    • Yaowu Xu's avatar
      Fix src frame buffer copy and extend · d602500d
      Yaowu Xu authored
      For input source with size that is not multiple of 8, the size is
      rounded to 8 and saved in width or height, the original source sizes
      are saved in crop_width and crop_height. This commit corrects the
      computation of bottom and right extension amounts to use the orignal
      sizes, hence crop_width and crop_height.
      
      In addition, this commit also adds the missed initialization for
      uv_crop_width and uv_crop_height.
      
      This addresses issue #834
      
      Change-Id: I084543ca7645a4964b88f7cf8ff668f517d3a39b
      d602500d
  3. 07 Oct, 2014 14 commits
  4. 06 Oct, 2014 4 commits
    • Jingning Han's avatar
      Fix eobs buffer pointer mis-use · a7555158
      Jingning Han authored
      This commit fixes a buffer pointer mis-use in store_coding_context.
      The compression performance for stdhd set of speed 3 is improved by
      0.097%. It fixes issue 869.
      
      Change-Id: Idc59e22035eaf39f7133ca04174894374d647ff7
      a7555158
    • JackyChen's avatar
      Add SSE2 code and unit test for VP9 denoiser. · 80465dae
      JackyChen authored
      This SSE2 is based on VP8 denoiser's SSE2 code. In VP8, there are
      only 16x16 blocks in denoiser, while in VP9, there are 13 different
      block sizes.
      
      By adding this SSE2 code, the improvement of encoder speed is around
      20%(using C code vs using SSE2 code), vary for different clips.
      
      The unit test for VP9 denoiser is to confirm that the SSE2 code is
      bit-exact with the C code. The unit test covers all block size.
      
      Change-Id: Ic8d8ac26db4ea40a5f146b5678a065af07eaaa3d
      80465dae
    • Jingning Han's avatar
      Add range check in inverse ADST 16x16 · 12344f26
      Jingning Han authored
      Bit-stream clarification related to Issue 868.
      
      Change-Id: I92a7bc5b7782c9ea5c3f6cceec761742183c9514
      12344f26
    • Paul Wilkins's avatar
      Improve two pass VBR accuracy. · 0e1068a4
      Paul Wilkins authored
      Adjustments to the GF interval choice and minimum boost.
      Adjustment to the calculation of 2 pass worst q.
      Compared to 09/29 head there is metrics hit on derf of
      (-0.123%,-0.191%)
      
      Compared to the September 29 head and a baseline on
      September 18 baseline the accuracy of the VBR rate control
      measured on the derf set is as follows:-
      
      Mean error %  / Mean abs(error %)
      Sept 18 baseline (-7.0% / 14.76%)
      Sept 29 head (-15.7%, 19.8%)
      This check in (-1.5% / 14.4%)
      
      The mean undershoot is reduced slightly but the
      worst case overshoot on e.g. harbour/highway is
      increased. This will be addressed in a later patch.
      
      Change-Id: Iffd9b0ab7432a131c98fbaaa82d1e5b40be72b58
      0e1068a4
  5. 05 Oct, 2014 1 commit
    • Jingning Han's avatar
      Fix an IOC issue in vp9_rd_pick_inter_mode_sb · 085b97aa
      Jingning Han authored
      It is possible that the GOLDEN reference frame is not avaiable, in
      which setting the predicted mv will be associated with a residual
      value of INT_MAX. This commit checks this condition before
      left shift and comparison with that of ALTREF frame, to avoid
      overflow issue.
      
      Change-Id: Ib98c3149dbdd016f2fe5beaafb13f67d469dd07c
      085b97aa
  6. 04 Oct, 2014 1 commit
  7. 03 Oct, 2014 6 commits
    • Yaowu Xu's avatar
      Properly initialize segmentID in nonrd coding path · 0065b734
      Yaowu Xu authored
      This commit adds proper initialization of segment id for variance AQ
      mode in non-rd coding path. It fixes the enc/dec mismatch issue of
      rt=7 with --aq-mode=1, as reported in issue #816
      
      Change-Id: I02fa41b96345bf2e66077d5ea553f85ba800f7bb
      0065b734
    • Jingning Han's avatar
      Fix indent in encode_rd_sb_row · ef622333
      Jingning Han authored
      Change-Id: Icbcfe7b56d88474f4398b4c5b52f6719d551ab4a
      ef622333
    • Jingning Han's avatar
      Rework partition search skip scheme · bb260d90
      Jingning Han authored
      This commit enables the encoder to skip split partition search if
      the bigger block size has all non-zero quantized coefficients in low
      frequency area and the total rate cost is below a certain threshold.
      It logarithmatically scales the rate threshold according to the
      current block size. For speed 3, the compression performance loss:
      derf  -0.093%
      stdhd -0.066%
      
      Local experiments show 4% - 20% encoding speed-up for speed 3.
      blue_sky_1080p, 1500 kbps
      51051 b/f, 35.891 dB, 67236 ms ->
      50554 b/f, 35.857 dB, 59270 ms (12% speed-up)
      
      old_town_cross_720p, 1500 kbps
      14431 b/f, 36.249 dB, 57687 ms ->
      14108 b/f, 36.172 dB, 46586 ms (19% speed-up)
      
      pedestrian_area_1080p, 1500 kbps
      50812 b/f, 40.124 dB, 100439 ms ->
      50755 b/f, 40.118 dB,  96549 ms (4% speed-up)
      
      mobile_calendar_720p, 1000 kbps
      10352 b/f, 35.055 dB, 51837 ms ->
      10172 b/f, 35.003 dB, 44076 ms (15% speed-up)
      
      Change-Id: I412e34db49060775b3b89ba1738522317c3239c8
      bb260d90
    • Deb Mukherjee's avatar
      Incorporate WRAPLOW macro into non-highbitdepth tx · d50716fa
      Deb Mukherjee authored
      Incorporates the WRAPLOW macro into the non-highbitdepth transforms
      to aid hardware verification between a software C model and an
      intended hardware implementation though the use of the configure
      options: --enable-experimental --enable-emulate-hardware.
      Note that to avoid further discrepancies between the sse/sse2
      implementations of the transforms and the C implementation, when the
      emulate hardware option is invoked, we also disable sse/sse2/etc.
      
      Also incudes some minor cleanups/renaming etc.
      
      Change-Id: Ib864d8493313927d429cce402982f1c8e45b3287
      d50716fa
    • Deb Mukherjee's avatar
      Prevent negative cost for highbitdepth · 431cdc33
      Deb Mukherjee authored
      Adds proper scaling for highbitdepth in a rdopt cost.
      
      Change-Id: I066694799a7f491b830945ef1c66eb202071c355
      431cdc33
    • Deb Mukherjee's avatar
      rdmult data type change · 00a4b20f
      Deb Mukherjee authored
      To fix a VS warning.
      
      Change-Id: I4c530c0afe8d06acdb8cc78b7995aba57a25373d
      00a4b20f
  8. 02 Oct, 2014 2 commits