1. 23 Oct, 2015 1 commit
    • Marco's avatar
      VP9: Estimate noise level for denoiser. · d162934b
      Marco authored
      Periodically estiamte noise level in source, and only denoise
      if estimated noise level is above threshold.
      Change-Id: I54f967b3003b0c14d0b1d3dc83cb82ce8cc2d381
  2. 21 Oct, 2015 1 commit
    • Geza Lore's avatar
      Optimize vp9_highbd_block_error_8bit assembly. · aa8f8522
      Geza Lore authored
      A new version of vp9_highbd_error_8bit is now available which is
      optimized with AVX assembly. AVX itself does not buy us too much, but
      the non-destructive 3 operand format encoding of the 128bit SSEn integer
      instructions helps to eliminate move instructions. The Sandy Bridge
      micro-architecture cannot eliminate move instructions in the processor
      front end, so AVX will help on these machines.
      Further 2 optimizations are applied:
      1. The common case of computing block error on 4x4 blocks is optimized
      as a special case.
      2. All arithmetic is speculatively done on 32 bits only. At the end of
      the loop, the code detects if overflow might have happened and if so,
      the whole computation is re-executed using higher precision arithmetic.
      This case however is extremely rare in real use, so we can achieve a
      large net gain here.
      The optimizations rely on the fact that the coefficients are in the
      range [-(2^15-1), 2^15-1], and that the quantized coefficients always
      have the same sign as the input coefficients (in the worst case they are
      0). These are the same assumptions that the old SSE2 assembly code for
      the non high bitdepth configuration relied on. The unit tests have been
      updated to take this constraint into consideration when generating test
      input data.
      Change-Id: I57d9888a74715e7145a5d9987d67891ef68f39b7
  3. 17 Oct, 2015 1 commit
  4. 16 Oct, 2015 3 commits
    • Yaowu Xu's avatar
      Add a new enum type vpx_color_range_t · 56842951
      Yaowu Xu authored
      to make meaning of color_range obvious.
      Change-Id: I303582e448b82b3203b497e27b22601cc718dfff
    • Marco's avatar
      Adjustment on limiting cyclic refresh on steady blocks. · b44c5cf6
      Marco authored
      Adjust the qp threshold and consec_zeromv threshold for
      limiting cyclic refresh. Also increase the refresh period
      when the limit amount is significant, and some code-cleanup.
      Small gain in PSNR/SSIM metrics: ~0.25/0.3 gain on RTC set, speed 7.
      Change only affects non-screen content.
      Change-Id: I1ced87a89a132684c071e722616e445b2d18236a
    • Yaowu Xu's avatar
      Restore partial changes from previous commit · 1832ba75
      Yaowu Xu authored
      This portion was tested to have no effect on asan test failures.
      Change-Id: I3de1dab7479148bdffc24c4568cb2e7e9963f099
  5. 15 Oct, 2015 4 commits
  6. 13 Oct, 2015 1 commit
    • paulwilkins's avatar
      Changes to partition breakout rules. · cdc35998
      paulwilkins authored
      Changes to the breakout behavior for partition selection.
      The biggest impact is on speed 0 where encode speed in
      some cases more than doubles with typically less than 1%
      impact on quality.
      Speed 0 encode speed impact examples
      Animation test clip: +128%
      Park Joy:  +59%
      Old town Cross: + 109%
      Change-Id: I222720657e56cede1b2a5539096f788ffb2df3a1
  7. 12 Oct, 2015 1 commit
  8. 10 Oct, 2015 1 commit
  9. 08 Oct, 2015 4 commits
  10. 07 Oct, 2015 5 commits
  11. 06 Oct, 2015 2 commits
    • Alex Converse's avatar
      vp9: simplify extrabits encoding · 2f7f482c
      Alex Converse authored
      Change-Id: I5a2abd35cb303d8f6354b3119ab95acf90405116
    • Marco's avatar
      Add first_spatial_layer_to_encode to SVC. · 7266bedc
      Marco authored
      Use the existing VP9_SET_SVC control to set the
      first spatial layer to encode.
      Since we loop over all spatial layers inside the encoder, the
      setting of spatial_layer_id via VP9_SET_SVC has no relevance.
      Use it instead to set the first_spatial_layer_to_encode,
      which allows an application to skip encoding lower layer(s).
      Change only affects the 1 pass CBR SVC.
      Change-Id: I5d63ab713c3e250fdf42c637f38d5ec8f60cd1fb
  12. 05 Oct, 2015 1 commit
  13. 02 Oct, 2015 4 commits
    • JackyChen's avatar
      Turn on two-steps scaling in VP9 encoder dynamic resizing. · 87b2495f
      JackyChen authored
      First do a 3/4 scaling and then go down to 1/2 when necessary.
      Change-Id: I5689c5228ca7e1606baea7f960eb24d0dab04d4d
    • Marco's avatar
      Fix to denoiser with dynamic resize. · 86ede509
      Marco authored
      Temporary fix to denoiser when dynamic resizing is on.
       -Reallocate denoiser buffers on resized frame.
       -Force golden update on resized frame.
       -Don't denoise resized frame, and copy source into denoised buffers.
      Change-Id: Ife7638173b76a1c49eac7da4f2a30c9c1f4e2000
    • Marco's avatar
      Stabilize the encoder buffer from going too negative. · 37293583
      Marco authored
      For screen-content mode, with frame dropper off, put a limit
      on how low encoder buffer can go.
      Under hard slide changes, the buffer level can go too low and then
      take long time to come back up (in particular when frame-dropping
      is not used), which will affect the active_worst and target frame size.
      Change-Id: Ie9fca097e05cd71141f978ec687f852daf9de332
    • jackychen's avatar
      Two-steps scaling in VP9 encoder dynamic resizing. · ba06be38
      jackychen authored
      Dynamic resizing now support two-steps scaling: first go down to
      3/4 and then 1/2. This feature is under a flag which controls the
      switch between two-steps scaling and one-step scaling (1/2 only).
      Change-Id: I3a6c1d3d5668cf8e016a0a02aeca737565604a0f
  14. 01 Oct, 2015 1 commit
    • hui su's avatar
      Small cleanup · 06bdc7f6
      hui su authored
      Change-Id: I5aeaa94b743f84738d288f8b027fec4c164f2ec3
  15. 30 Sep, 2015 3 commits
  16. 29 Sep, 2015 5 commits
  17. 26 Sep, 2015 2 commits
    • Ronald S. Bultje's avatar
      vp9/10: improve support for render_width/height. · 812945a8
      Ronald S. Bultje authored
      In the decoder, map this to the output variable vpx_image_t.r_w/h.
      This is intended as an improved version of VP9D_GET_DISPLAY_SIZE,
      which doesn't work with parallel frame decoding. In the encoder,
      map this to a codec control func (VP9E_SET_RENDER_SIZE) that takes
      a w/h pair argument in a int[2] (identical to VP9D_GET_DISPLAY_SIZE).
      Also add render_size to the encoder_param_get_to_decoder unit test.
      See issue 1030.
      Change-Id: I12124c13602d832bf4c44090db08c1009c94c7e8
    • Ronald S. Bultje's avatar
      Rename display_{size,width,height} to render_*. · 36ffe644
      Ronald S. Bultje authored
      The name "display_*" (or "d_*") is used for non-compatible information
      (that is, the cropped frame dimensions in pixels, as opposed to the
      intended screen rendering surface size). Therefore, continuing to use
      display_* would be confusing to end users. Instead, rename the field
      to render_*, so that struct vpx_image can include it.
      Change-Id: Iab8d2eae96492b71c4ea60c4bce8121cb2a1fe2d