1. 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
      aa8f8522
  2. 20 Oct, 2015 8 commits
  3. 19 Oct, 2015 1 commit
  4. 17 Oct, 2015 1 commit
  5. 16 Oct, 2015 11 commits
    • Ronald S. Bultje's avatar
      vp10: per-segment lossless coding. · 60c58b52
      Ronald S. Bultje authored
      Some more testing of this patch would probably be useful, but I
      think the basics of it should work fine now.
      
      See issue 1035.
      
      Change-Id: I4a36d58f671c5391cb09d564581784a00ed26245
      60c58b52
    • Ronald S. Bultje's avatar
      vp10: add extended-intra prediction edges experiment. · c7dc1d78
      Ronald S. Bultje authored
      This experiment allows using full above/right edges for all transform
      sizes whenever available (for d45/d63), and adds bottom/left edges for
      d207.
      
      See issue 1043.
      
      Change-Id: I5cf7f345e783e8539bb6b6d2c9972fb1d6d0a78b
      c7dc1d78
    • Ronald S. Bultje's avatar
      vp10: allow MV refs to point outside visible image. · dea99899
      Ronald S. Bultje authored
      In VP9, the ref MV had to point to a block that itself fully resided
      within the visible image, i.e. all borders of the image had to be
      within the visible borders of the coded frame. This is somewhat
      illogical, and had obscure side effects, e.g. clamping of fairly
      reasonable motion vectors such as 0,0 were clipped to negative values
      if the block was overhanging on frame edges (such as the last rows
      on 1080p content), which makes no sense whatsoever.
      
      Instead, relax clamping constraints such that the ref MVs are allowed
      to point to blocks exactly outside the visible edges in both Y as well
      as UV planes, including the 8tap filter edges (that's why the offset is
      8 pixels + block size).
      
      See issue 1037.
      
      Change-Id: I2683eb2a18b24955e4dcce36c2940aa2ba3a1061
      dea99899
    • Ronald S. Bultje's avatar
      vp10: allow forward updates for keyframe y intra mode probabilities. · 1eb51a20
      Ronald S. Bultje authored
      See issue 1040 point 5.
      
      Change-Id: I51a70b9eade39efba392a1457bd70a3c515525cb
      1eb51a20
    • Ronald S. Bultje's avatar
      vp10: merge keyframe/interframe uvintramode/partition probabilities. · d8f3bb18
      Ronald S. Bultje authored
      This has various benefits:
      - simplify implementations because we don't have to switch between
        multiple probability tables depending on frametype
      - allows fw subexp and bw adaptivity for partitions/uvmode in keyframes
      
      See issue 1040 point 5.
      
      Change-Id: Ia566aa2863252d130cee9deedcf123bb2a0d3765
      d8f3bb18
    • Ronald S. Bultje's avatar
      vp10: make segmentation probs use generic probability model. · 6e5a1165
      Ronald S. Bultje authored
      Locate them (code-wise) in frame_context, and have them be updated
      as any other probability using the subexp forward and adaptive bw
      updates.
      
      See issue 1040 point 1.
      
      TODOs:
      - real-world default probabilities
      - why is counts sometimes NULL in the decoder? Does that mean bw
        adaptivity updates only work on some frames? (I haven't looked
        very closely yet, maybe this is a red herring.)
      
      Change-Id: I23b57b4e5e7574b75f16eb64823b29c22fbab42e
      6e5a1165
    • 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
      56842951
    • James Zern's avatar
      vpx/*.h: add VPX_CTRL_* preproc defines · 7dd7a7da
      James Zern authored
      allows controls to be tested for at compile-time
      
      Change-Id: I1cd01287dc144392956c82e6dbac003f37703039
      7dd7a7da
    • James Zern's avatar
      Merge "vpx/*.h, cosmetics: fix some typos" · 9ade6e10
      James Zern authored
      9ade6e10
    • 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
      b44c5cf6
    • 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
      1832ba75
  6. 15 Oct, 2015 10 commits
  7. 14 Oct, 2015 2 commits
  8. 13 Oct, 2015 6 commits