1. 29 Oct, 2015 1 commit
  2. 28 Oct, 2015 3 commits
    • Alex Converse's avatar
      Revert "Replace the zero handling in extend_to_full_distribution." · 663960e7
      Alex Converse authored
      This reverts commit 7f56cb29.
      
      It causes uninitialized reads in the first pass setting up later cost tables.
      
      Change-Id: I2df498df3f5c03eff359f79edf045aed0c618dc9
      663960e7
    • Jingning Han's avatar
      Use precise distortion metric · 71c15607
      Jingning Han authored
      Rework the rate distortion optimization pipeline. Use precise
      distortion metric that accounts for the forward and inverse
      transform rounding effect.
      
      Change-Id: Ibe19ce9791ec3547739294cc3012dd9e11f4ea49
      71c15607
    • Jingning Han's avatar
      Account for variable txfm sizes in coeff token packing · 4bfed0b3
      Jingning Han authored
      This commit makes the coefficient token packtization process account
      for variable transform block sizes supported in a single processing
      block. It fixes an enc/dec mismatch issue when var-tx, ext-tx, and
      misc-fixes experiments are all turned on.
      
      Change-Id: I2e8946e6f72de567603a568debbadad11196430c
      4bfed0b3
  3. 27 Oct, 2015 5 commits
    • Jingning Han's avatar
      Add tx_type counts in key frame · f847a16a
      Jingning Han authored
      Properly update the transform type counts in key frame coding at
      decoder. It fixes an enc/dec mismatch issue when both ext-tx and
      misc-fixes are turned on.
      
      Change-Id: I1e40a77c8d8157d5ff254b072ce474d8dfbaa3ae
      f847a16a
    • Peter de Rivaz's avatar
      Accumulate EXT_TX counts for multithread · 325b96dc
      Peter de Rivaz authored
      EXT_TX introduces some new symbols to be decoded.
      The encoder counts how many times these are used.
      In multithreaded mode, the counts from the worker threads
      need to be accumulated into the main thread.
      
      This change means that VP10/VPxEncoderThreadTest now works
      with more choices of cpu-used and number of passes.
      
      Change-Id: Ibe7e6a3c58145265f4ead155ff98fb4cb37c3513
      325b96dc
    • Yaowu Xu's avatar
      Reorder code to be consistent accross branches · 9d8bde85
      Yaowu Xu authored
      This is to make future merge a bit easier.
      
      Change-Id: I1039de381d8fe7b9988b57c23d15d0cb5f2fcd32
      9d8bde85
    • Alex Converse's avatar
      Fix VS build. · 811be0df
      Alex Converse authored
      Add a cast on a double to unsigned assignment.
      
      Change-Id: I4abce7cfa13e145ed0c71469844ac9b274aa1411
      811be0df
    • Jingning Han's avatar
      Fix early termination flag in recursive transform block search · 236623cf
      Jingning Han authored
      Properly reset the early termination flag in the recursive transform
      block partitioning rate-distortion optimization scheme.
      
      Change-Id: Ibfe918f21f11dcb1ec267c09f954c635305cc95a
      236623cf
  4. 26 Oct, 2015 3 commits
    • Jingning Han's avatar
      Fix lossless coding · f0dee776
      Jingning Han authored
      Use inter_block_yrd as rate-distortion optimization for lossless
      coding. This fixes transform coefficient buffer swap use case and
      resolves the unit test failure related to lossless coding.
      
      Change-Id: I1512dab5ed5760c31f7de21a06e8d9ed1eb081fa
      f0dee776
    • Alex Converse's avatar
      Replace the zero handling in extend_to_full_distribution. · 7f56cb29
      Alex Converse authored
      The old workaround "p = 0 ? 0 : p -1" is misleading.
      
      ?: happens before =
      assigning back to p truncates to one byte.
      
      Therefore it is equivalent to (p - 1) & 0xFF, but the check just exists
      to work around a first pass bug, so let's make the work around more
      clear.
      
      https://code.google.com/p/webm/issues/detail?id=1089
      
      Change-Id: Ia6dcc8922e1acbac0eeca23a4d564a355c489572
      7f56cb29
    • Jingning Han's avatar
      Make transform block partition scheme support use largest txfm setting · 01ba752a
      Jingning Han authored
      This commit properly resets the recursive transform block partition
      array in the settings of using largest transform block size at frame
      header level. It fixes one of the unit test failure related to the use
      of frame level fixed transform block size with 440 color format.
      
      Change-Id: I6750f323e2c2510c080ffc3af82ce2041f4f60b8
      01ba752a
  5. 24 Oct, 2015 1 commit
  6. 23 Oct, 2015 6 commits
    • Jingning Han's avatar
      Silence compiler warnings when high bit-depth is turned on · 3ff33135
      Jingning Han authored
      Clear the compiler warnings when both ext-tx and high bit-depth
      are turned on.
      
      Change-Id: I2e02f1f29043f2952fe215f8183b5bfd80e16f58
      3ff33135
    • Jingning Han's avatar
      Properly handle non-420 color format in recursive transform scheme · 79fe7246
      Jingning Han authored
      This commit makes the recursive transform block partitioning properly
      handle the non-420 color format. It resolves an enc/dec mismatch
      issue in that setting when var-tx experiment is turned on.
      
      Change-Id: I48a91de02c11b3153f897d1cca0ae948eec15605
      79fe7246
    • Debargha Mukherjee's avatar
      Build fix for ext-tx · f1c4b79d
      Debargha Mukherjee authored
      Change-Id: Ifab43f85f6ae1be6b9f95521f79ba49055353b5f
      f1c4b79d
    • Jingning Han's avatar
      Fix enc/dec mismatch in var-tx experiment · 48c7de0f
      Jingning Han authored
      This commit fixes an enc/dec mismatch issue in recursive transform
      partitioning experiment due to merge conflict.
      
      Change-Id: I66146ef806c008902c91d54f4f8c7ccf47996b78
      48c7de0f
    • Jingning Han's avatar
      Use explicit block position in foreach_transformed_block · caeb10bf
      Jingning Han authored
      Add the row and column index to the argument list of unit functions
      called by foreach_transformed_block wrapper. This avoids the
      repeated internal parsing according to the block index.
      
      Change-Id: Ie7508acdac0b498487564639bc5cc6378a8a0df7
      caeb10bf
    • Yaowu Xu's avatar
      Fix merge defects · 5a27b3bb
      Yaowu Xu authored
      This commit fixes the merge conflicts between master and nextgenv2 and
      disable early termination in choose_tx_size() to avoid failure in test.
      
      The test failures are pre-existing, some of the issue were fixed in
      masterbase already, so will have another merge to introduce the fixes.
      
      Change-Id: Ib71889661955e73aedbb4db49d8be70425281dcb
      5a27b3bb
  7. 22 Oct, 2015 4 commits
  8. 21 Oct, 2015 4 commits
  9. 20 Oct, 2015 3 commits
    • Ronald S. Bultje's avatar
      vp10: clip MVs before adding to find_ref_mvs() list. · 293e20df
      Ronald S. Bultje authored
      This causes the output of find_ref_mvs() to always be unique or zero.
      A nice side-effect of this is that it also causes the output of
      find_ref_mvs_sub8x8() to be unique-or-zero, and it will not ignore
      available candidate MVs under certain conditions.
      
      See issue 1012.
      
      Change-Id: If4792789cb7885dbc9db420001d95f9b91b63bfa
      293e20df
    • Ronald S. Bultje's avatar
      vp10: disallow coding zero-sized tiles-in-frame/frames-in-superframe. · dec4405c
      Ronald S. Bultje authored
      See issue 1088.
      
      Change-Id: Icb15d33b4e316add848f210b50cbccd7c7847207
      dec4405c
    • Geza Lore's avatar
      Optimize vpx_quantize_{b,b_32x32} assembler. · 9cfba09a
      Geza Lore authored
      Added optimization of the 8 bit assembly quantizer routines. This makes
      these functions up to 100% faster, depending on encoding parameters.
      
      This patch maskes the encoder faster in both the high bitdepth and 8bit
      configurations. In the high bitdepth configuration, it effects profile 0
      only.
      
      Based on my profiling using 1080p input the net gain is between 1-3% for
      the 8 bit config, and around 2.5-4.5% for the high bitdepth config,
      depending on target bitrate. The difference between the 8 bit and high
      bitdepth configurations for the same encoder run is reduced by 1% in all
      cases I have profiled.
      
      Change-Id: I86714a6b7364da20cd468cd784247009663a5140
      9cfba09a
  10. 19 Oct, 2015 1 commit
  11. 17 Oct, 2015 1 commit
  12. 16 Oct, 2015 7 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
    • hui su's avatar
      VP10: some changes to palette mode · 17c817ad
      hui su authored
      Account for rounding in distortion calculation in k-means;
      carry out rounding before duplicates removal of base colors;
      replace numbers with macros;
      use prefix increment.
      
      Slight coding gain (<0.1%) on screen_content testset.
      
      Change-Id: Ie8bd241266da6b82c7b2874befc3a0c72b4fcd8c
      17c817ad
  13. 15 Oct, 2015 1 commit