1. 16 Oct, 2014 1 commit
  2. 15 Oct, 2014 2 commits
    • Marco's avatar
      Some updates for Speed 6/VAR_BASED_PARTITION. · 09ea74f1
      Marco authored
      Reduce the intra_cost_penalty for non-rd mode,
      and some updates to VAR_BASED_PARTITION.
      
      Visual tests show some improvement at Speed 6, for RTC clips.
      
      Change-Id: If9090daf7aed14906a32d931a538ab544bbca606
      09ea74f1
    • Jingning Han's avatar
      Replace copy_partitioning use case with choose_partitioning · 89b8c7a5
      Jingning Han authored
      This commit replaces the use of copy_partitioning with
      choose_partitioning based on the sse of subsamped pixels, which
      provides significantly better coding performance and runs at
      similar speed, as compared to copy_partitioning. It improves rtc
      speed 5 coding performance by 3%.
      
      Change-Id: I52d3682a12dce0147f5e52383a594fc242ca3228
      89b8c7a5
  3. 14 Oct, 2014 6 commits
    • Minghai Shang's avatar
      [spatial svc]Another workaround to avoid using prev_mi · c113457a
      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-Id: I60b680314e33a60b4093cafc296465ee18169c19
      c113457a
    • Yunqing Wang's avatar
      Remove an unneeded function call · a614f228
      Yunqing Wang authored
      set_tile_limits() is called in vp9_change_config() already.
      
      Change-Id: I91c3a0df2c1c7fd7e71546d8f51fd5b65838a7da
      a614f228
    • Alex Converse's avatar
      Add a 32-bit friendly sse2 quantizer. · 7497d2fb
      Alex Converse authored
      This is based on the 64-bit ssse3 quantizer.
      
      1.1x speedup for screen content at speed 7.
      
      Change-Id: I57d15415ef97c49165954bbe3daaaf9318e37448
      7497d2fb
    • hkuang's avatar
      Correct the format. · c1b0d0da
      hkuang authored
      Change-Id: I59a53b419adda3a609d50b2a82f5a4a54849752e
      c1b0d0da
    • Jingning Han's avatar
      Refactor super_block_uvrd function to remove goto statement · f3a5de81
      Jingning Han authored
      Use return value 0/1 as indicator of the validity of the rate-
      distortion cost.
      
      Change-Id: I6244126fbf03472cebcba4f177a6cd329fae4743
      f3a5de81
    • Adrian Grange's avatar
      Move input frame scaling into the recode loop · 452dc215
      Adrian Grange authored
      Move the point at which input frames are scaled
      into the recode loop. This will allow us to change
      the coded frame size dynamically in response
      to previous attempts to encode the frame at a
      higher resolution.
      
      A following patch will implement a scheme for
      resizing the frame in the recode loop.
      
      Change-Id: I6a59c02d6ac1626512edad6de8b60063b79433e6
      452dc215
  4. 13 Oct, 2014 8 commits
    • Jingning Han's avatar
      Use speed feature variable in vp9_rd_pick_inter/intra_mode · 69a09a70
      Jingning Han authored
      Replace repeated fetch cpi->sf with a local sf pointer.
      
      Change-Id: I5a55bba3e1c41fbdbc6ad5f078d2fa49dd95ee67
      69a09a70
    • Jingning Han's avatar
      Fix vp9_rd_pick_inter/intra function types · 3bdb6bfc
      Jingning Han authored
      The returned value is not used anywhere, hence changing the function
      type into void.
      
      Change-Id: I0ece49ed61e7aab6df01140135503ad41d4ef4a4
      3bdb6bfc
    • Jingning Han's avatar
      Refactor rate distortion cost structure · 811cef97
      Jingning Han authored
      This commit makes a struct that contains rate value, distortion
      value, and the rate-distortion cost. The goal is to provide a
      better interface for rate-distortion related operation. It is
      first used in rd_pick_partition and saves a few RDCOST calculations.
      
      Change-Id: I1a6ab7b35282d3c80195af59b6810e577544691f
      811cef97
    • hkuang's avatar
      Use pre increment. · c5fd035c
      hkuang authored
      Change-Id: I016b4e77d8268e189473f4c382603afe1ae1750f
      c5fd035c
    • hkuang's avatar
      Remove unnecessary local variable. · c7f9c717
      hkuang authored
      Change-Id: I7b19b6061cec369825a0a0b7a485ca490dbc12ee
      c7f9c717
    • Adrian Grange's avatar
      Remove mi_grid_base_array from VP9_COMMON (unused) · 83b63d57
      Adrian Grange authored
      Change-Id: I4b4764463f5a7cdc01ec004b882c6237466c74b0
      83b63d57
    • Paul Wilkins's avatar
      Clamp rate error estimate. · 6dbb9e4d
      Paul Wilkins authored
      Add back clamp which ensures that the Q adaptation
      is turned off when the over_shoot_pct and under_shoot_pct
      parameters are set to 100.
      
      Change-Id: Id0161b114d39a3029cd3eb28020caab0c3914922
      6dbb9e4d
    • Paul Wilkins's avatar
      Add adaptation option for VBR. · f7f0eaa5
      Paul Wilkins authored
      Allow min and maxQ to creep when the undershoot
      or overshoot exceeds thresholds controlled by the
      command line under_shoot_pct and over_shoot_pct
      values.
      
      Default is 100%,100% which ~disables adaptation.
      
      Derf results for example undershoot% / overshoot%:-
      
      Head:- Mean abs (%rate error) = 14.4%
      
      This check in:-
      25%/25% - Mean abs (%rate error) = 6.7%
                        PSNR hit -1% SSIM -0.1%
      
      5% / 5%  - Mean abs (%rate error) = 2.2%
                       PSNR hit -3.3% SSIM - 1.1%
      
      Most of the remaining error and most of the quality hit is
      at extreme data rates. The adaptation code still has an
      exception for material that is in effect static so that we
      don't over adjust and over spend on YT slide show type
      content.
      
      (Rebase of If25a2449a415449c150acff23df713e9598d64c9
      to resolve a auto-merge error)
      
      Change-Id: Iec4e1613ef0d067454751d8220edb7058dfbd816
      f7f0eaa5
  5. 12 Oct, 2014 1 commit
  6. 10 Oct, 2014 6 commits
    • hkuang's avatar
      Remove extra line. · dbe91de6
      hkuang authored
      Change-Id: I5e79c276d8953ae17cd35b2846e6e40660c037c3
      dbe91de6
    • Alex Converse's avatar
      Revert "Add adaptation option for VBR." · a90255c3
      Alex Converse authored
      This reverts commit 869d4ca5.
      
      This breaks the build via conflict with
      e18edd5e.
      
      Change-Id: If544b99e367a449452834eb8cce600f58c34ec0d
      a90255c3
    • James Zern's avatar
      vp9/choose_partitioning: add missing clear_system_state · a3e1a929
      James Zern authored
      set_vt_partitioning does double math
      
      Change-Id: I8e9d73d5c89b937a5326abf04164d24d9d88c5ef
      a3e1a929
    • Paul Wilkins's avatar
      Add adaptation option for VBR. · 869d4ca5
      Paul Wilkins authored
      Allow min and maxQ to creep when the undershoot
      or overshoot exceeds thresholds controlled by the
      command line under_shoot_pct and over_shoot_pct
      values.
      
      Default is 100%,100% which ~disables adaptation.
      
      Derf results for example undershoot% / overshoot%:-
      
      Head:- Mean abs (%rate error) = 14.4%
      
      This check in:-
      25%/25% - Mean abs (%rate error) = 6.7%
                        PSNR hit -1% SSIM -0.1%
      
      5% / 5%  - Mean abs (%rate error) = 2.2%
                       PSNR hit -3.3% SSIM - 1.1%
      
      Most of the remaining error and most of the quality hit is
      at extreme data rates. The adaptation code still has an
      exception for material that is in effect static so that we
      don't over adjust and over spend on YT slide show type
      content.
      
      Change-Id: If25a2449a415449c150acff23df713e9598d64c9
      869d4ca5
    • James Zern's avatar
      vp9_avg_intrin_sse2: correct intrinsics include · 7c6fec67
      James Zern authored
      immintrin.h -> emmintrin.h
      fixes build where newer intrinsics are unavailable
      
      Change-Id: I79311b39bfa782fc2abeb45884ecb417050cb9f8
      7c6fec67
    • hkuang's avatar
      Correct the code format. · effc1a6f
      hkuang authored
      Change-Id: If2de420f8123a4e8bf635dd29205dd74ee174eee
      effc1a6f
  7. 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
  8. 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
  9. 07 Oct, 2014 4 commits