1. 20 Oct, 2016 3 commits
  2. 19 Oct, 2016 11 commits
    • Thomas Davies's avatar
      Step size and arithmetic coding for delta quantization. · f693610a
      Thomas Davies authored
      Example performance: 1.8% bit rate savings using
      the AQ test mode aq-mode=4 :
      ./aomenc --codec=av1 --ivf --tile-columns=1 --tile-rows=1 \
                       --kf-max-dist=1000 --kf-min-dist=1000 --cpu-used=0 \
                       --passes=1 --threads=1 --lag-in-frames=0 \
                       --end-usage=q --limit=600 --cq-level=42 \
                       --aq-mode=4 --error-resilient=1 out.bits FourPeople_1280x720_60.y4m
      
      Change-Id: Iba01cf2732a57f3c27481ac2a3c8fc37bb9e5533
      f693610a
    • Arild Fuldseth's avatar
      Support for delta-q at superblock level · 07441165
      Arild Fuldseth authored
      Change-Id: I4128af44776d1f361bddc1fdffb75ed2224dbfa5
      07441165
    • Yaowu Xu's avatar
      Fix build issues when --enable-aom-qm · 0dd04637
      Yaowu Xu authored
      Change-Id: I1a462675c06c4b2a5f8b4b347f23fec67feccdd0
      0dd04637
    • Alex Converse's avatar
      Partition the ans experiment into 'ans' and 'rans' · ec6fb649
      Alex Converse authored
      The (new) ans experiment replaces the bool coder with uABS bools. The
      'rans' experiment adds multisymbol coding.
      
      This matches the setup in aom/master.
      
      Change-Id: Ida8372ccabf1e1e9afc45fe66362cda35a491222
      ec6fb649
    • Yaowu Xu's avatar
      Reorder includes · caf2023a
      Yaowu Xu authored
      Change-Id: I97487bf353471bf9d245cd620780adfb1d3fc2b1
      caf2023a
    • Michael Bebenita's avatar
      Bit accounting. · 6048d052
      Michael Bebenita authored
      This patch adds bit account infrastructure to the bit reader API.
      When configured with --enable-accounting, every bit reader API
      function records the number of bits necessary to decoding a symbol.
      Accounting symbol entries are collected in global accounting data
      structure, that can be used to understand exactly where bits are
      spent (http://aomanalyzer.org). The data structure is cleared and
      reused each frame to reduce memory usage. When configured without
      --enable-accounting, bit accounting does not incur any runtime
      overhead.
      
      All aom_read_xxx functions now have an additional string parameter
      that specifies the symbol name. By default, the ACCT_STR macro is
      used (which expands to __func__). For more precise accounting,
      these should be replaced with more descriptive names.
      
      Change-Id: Ia2e1343cb842c9391b12b77272587dfbe307a56d
      6048d052
    • Brennan Shacklett's avatar
      Temporary fix for 4X8 block intra prediction. · 7523a7ec
      Brennan Shacklett authored
      Currently the RD loop traverses 4X8 blocks in inverted N order while
      the bitstream stores blocks smaller than 8x8 in Z order. This causes a
      discrepancy where the RD loop reads uninitialized data while
      performing intra prediction.  As a temporary fix simply disable the
      use of the extended right edge for 4X8 blocks, until the bitstream can
      be changed to match the logical structure of the blocks.
      
      Change-Id: I44a9e4fc1a15cd551a7b38c3c1227bc5dac77e9a
      7523a7ec
    • Urvang Joshi's avatar
      Fix warnings reported by -Wshadow: Part2b: more from av1 directory · 368fbc95
      Urvang Joshi authored
      From code only part of nextgenv2 (and not aomedia)
      
      Change-Id: I21f7478a59d525dff23747efe5238ded16b743d2
      368fbc95
    • Urvang Joshi's avatar
      Fix warnings reported by -Wshadow: Part2: av1 directory · 454280da
      Urvang Joshi authored
      While we are at it:
      - Rename some variables to more meaningful names
      - Reuse some common consts from a header instead of redefining them.
      
      Cherry-picked from aomedia/master: 863b0499
      
      Change-Id: Ida5de713156dc0126a27f90fdd36d29a398a3c88
      454280da
    • Urvang Joshi's avatar
      Fix warnings reported by -Wshadow: Part1b: scan_order struct and variable · 03f6fdcf
      Urvang Joshi authored
      - Change struct name to all caps SCAN_ORDER to be locally consistent.
      - Rename struct pointers to 'scan_order' instead of hard to read short
        names 'so' and 'sc'.
      
      Cherry-picked from aomedia/master: 30abc082
      
      Change-Id: Ib9f0eefe28fa97d23d642b77d7dc8e5f8613177d
      03f6fdcf
    • Urvang Joshi's avatar
      Code cleanup: mainly rd_pick_partition and methods called from there. · 52648448
      Urvang Joshi authored
      - Const correctness
      - Refactoring
      - Make variables local when possible etc
      - Remove -Wcast-qual to allow explicitly casting away const.
      
      Cherry-picked from aomedia/master: c27fcccc
      And then a number of more const correctness changes to make sure other
      experiments build OK.
      
      Change-Id: I77c18d99d21218fbdc9b186d7ed3792dc401a0a0
      52648448
  3. 18 Oct, 2016 4 commits
  4. 17 Oct, 2016 4 commits
    • Nathan E. Egge's avatar
      Update partition_cdf per frame. · fba2be69
      Nathan E. Egge authored
      Move computing the partition_cdf tables per symbol to
       computing them only when the probabilities are updated.
      
      Change-Id: I442f9230ba00be7f5d0558d7c38d7324ad009ee8
      fba2be69
    • Nathan E. Egge's avatar
      Update inter_ext_tx_cdf per frame. · 93878c42
      Nathan E. Egge authored
      Move computing the inter_ext_tx_cdf tables per symbol to
       computing them only when the probabilities are updated.
      
      Change-Id: I5e1e62f8eae8f6b2edbbd378beeb786649502c10
      93878c42
    • Nathan E. Egge's avatar
      Update intra_ext_tx_cdf per frame. · 7c5b4c16
      Nathan E. Egge authored
      Move computing the intra_ext_tx_cdf tables per symbol to
       computing them only when the probabilities are updated.
      
      Change-Id: I26d5e419e103093e98a7d896c196176305b50fc9
      7c5b4c16
    • Nathan E. Egge's avatar
      Update switchable_interp_cdf once per frame. · 4947c296
      Nathan E. Egge authored
      Move from computing the switchable_interp_cdf per symbol to
       computing once per frame when the probabilities are adapted.
      
      Change-Id: I6571126239f0327e22bb09ee8bad94114291683e
      4947c296
  5. 14 Oct, 2016 7 commits
    • Nathan E. Egge's avatar
      Use Daala entropy coder to code bits. · 8043cc40
      Nathan E. Egge authored
      When building with --enable-daala_ec, calls to aom_write() and aom_read()
       use the daala entropy coder to write and read bits.
      When the probability is exactly 0.5 (128), then raw bits are used.
      
      ntt-short-1:
      
                MEDIUM (%) HIGH (%)
          PSNR -0.027556  -0.020114
       PSNRHVS -0.027401  -0.020169
          SSIM -0.027587  -0.020151
      FASTSSIM -0.027592  -0.020102
      
      subset1:
      
               RATE (%)  DSNR (dB)
          PSNR 0.03296  -0.00210
       PSNRHVS 0.03537  -0.00281
          SSIM 0.03299  -0.00161
      FASTSSIM 0.03458  -0.00111
      
      Change-Id: I48ad8eb40fc895d62d6e241ea8abc02820d573f7
      8043cc40
    • Yaowu Xu's avatar
      Clear existing format issue in the codebase · 931bc2a7
      Yaowu Xu authored
      Fix the clang-format warnings on the existing codes.
      
      Change-Id: I8e9e781b6f68f41a7fbd0a2116f6b35290d73dc8
      931bc2a7
    • Nathan E. Egge's avatar
      Add Daala entropy coder. · 1078dee5
      Nathan E. Egge authored
      Change-Id: I2849a50163268d58cc5d80aacfec1fd02299ca43
      1078dee5
    • Alex Converse's avatar
      Switch rANS to 15 bit precision, and adjust L_BASE. · 62a94a64
      Alex Converse authored
      This causes rANS to operate at the same precision as the Daala EC.
      
      aom/master stats: rans10uabs8lbase12 → rans15uabs8lbase15
      
      objective-1-fast
      PSNR YCbCr:      0.01%      0.01%      0.01%
         PSNRHVS:      0.01%
            SSIM:      0.01%
          MSSSIM:      0.01%
       CIEDE2000:      0.01%
      
      subset1
      PSNR YCbCr:     -0.01%     -0.00%     -0.00%
         PSNRHVS:     -0.01%
            SSIM:     -0.01%
          MSSSIM:     -0.01%
       CIEDE2000:     -0.01%
      
      (cherry picked from aom/master commit ddbc2e2a)
      
      Change-Id: I6ef0a4f6198784b3712a61af9f105d560a22eaea
      62a94a64
    • Urvang Joshi's avatar
      Wrap palette code inside CONFIG_PALETTE flag. · b100db7c
      Urvang Joshi authored
      This flag was already added to aomedia/master, so bringing it back to
      webm/nextgenv2, as part of an effort to get the two codebases in sync.
      
      Change-Id: I2b933a6a160e4210d1411a9e7978149eb8553205
      b100db7c
    • Yaowu Xu's avatar
      Revert "Revert "Move CLPF block signals from frame to SB level."" · d71be781
      Yaowu Xu authored
      This reverts commit 9b25f306 to
      reinstate the reverted commit with fixes that solved the build issues
      when --enalbe-clpf is used in configure.
      
      Change-Id: I15447cae7fa9b3deb27976345dc3db230a4a7a60
      d71be781
    • Yaowu Xu's avatar
      Revert "Move CLPF block signals from frame to SB level." · 9b25f306
      Yaowu Xu authored
      This reverts commit 97535038.
      
      Change-Id: I9f8e891739352ca2bde4b294e37c85a668f416e0
      9b25f306
  6. 13 Oct, 2016 11 commits
    • Steinar Midtskogen's avatar
      Move CLPF block signals from frame to SB level. · 97535038
      Steinar Midtskogen authored
      These signals were in the uncompressed frame header (as a temporary
      hack), which caused two problems:
      
      * We don't want that header to be duplicated in the slice header
      * It was necessary to signal the number of bits to transmit up front
      
      However, the filter size can be 128x128 which is greater than the SB
      size, and a decoder wouldn't be able to know whether to read a bit or
      not until the final SB of that 128x128 block has been decoded
      (depending on whether the 128x128 is all skip or not).  Therefore the
      signalling was changed for 128x128 blocks so that every top left SB of
      a 128x128 filter block contains a signal regardless of whether the
      block is all skip or not.  Also, all the MB's of 128x128 block are
      filtered even if they are skip MB's.  This gives the signal a purpose
      even when the 128x128 block is all skip, and it also gives a slight
      coding gain as it leaves a way to filter skip blocks, which was
      previously forbidden.
      
      Low latency:
      PSNR YCbCr:     -0.19%     -0.14%     -0.06%
         PSNRHVS:     -0.15%
            SSIM:     -0.13%
          MSSSIM:     -0.15%
       CIEDE2000:     -0.19%
      
      High latency:
      PSNR YCbCr:     -0.03%     -0.01%     -0.09%
         PSNRHVS:      0.04%
            SSIM:      0.00%
          MSSSIM:      0.02%
       CIEDE2000:     -0.02%
      
      Change-Id: I69ba7144d07d388b4f0968f6a53558f480979171
      97535038
    • Yue Chen's avatar
      Renamings for OBMC experiment · cb60b185
      Yue Chen authored
      To get ready for pulling AV1 to nextgenv2
      Replace the experimental flag by MOTION_VAR. Rename major variables.
      
      Change-Id: If6cf4f37b9319c46d8f90df551cc7295d66ca205
      cb60b185
    • Jean-Marc Valin's avatar
      Removing some useless loops in deringing filter · a8ce2c91
      Jean-Marc Valin authored
      No change in the output
      
      Change-Id: I1627feaa163d65da0df90e9dacbc5e39ee755de8
      a8ce2c91
    • Jean-Marc Valin's avatar
      Don't dering superblocks that have deringing disabled · 3cfec90d
      Jean-Marc Valin authored
      Doesn't change the output, but avoids useless deringing with threshold=0
      
      Change-Id: I69f3e54abad2d2493cfbc76c188ad7d190f0aeff
      3cfec90d
    • Michael Bebenita's avatar
      Add SSE4.1 code for deringing functions. · 7227b65c
      Michael Bebenita authored
      Change-Id: I363f7fb610a5c86ea9f417e34b57c6373af877e5
      7227b65c
    • David Barker's avatar
      Add sse2 forward and inverse 16x32 and 32x16 transforms · 33231d48
      David Barker authored
      Change-Id: I1241257430f1e08ead1ce0f31db8272b50783102
      33231d48
    • Alex Converse's avatar
      Remove custom rans types · 9ed1a2ff
      Alex Converse authored
      (cherry picked from aom/master commit 11206c60)
      
      Includes renames in a bunch of places not handled by the original
      due to differing tree states.
      
      Change-Id: Ic74d9d8850b8c80a51e55e425bbf472a67e2653f
      9ed1a2ff
    • Jean-Marc Valin's avatar
      Simpler threshold calculation for the second filter · 4713d8d0
      Jean-Marc Valin authored
      PSNR YCbCr:      0.03%     -0.00%      0.07%
         PSNRHVS:      0.06%
            SSIM:      0.12%
          MSSSIM:      0.09%
       CIEDE2000:      0.05%
      
      Change-Id: I15ef9598a08f6713bc28ab98b0182310433e97ef
      4713d8d0
    • Jean-Marc Valin's avatar
      Make 4x4 deringing (chroma) use shorter filters · ea64c342
      Jean-Marc Valin authored
      Avoids blurring chroma for 4:2:0
      
      PSNR YCbCr:      0.03%     -0.31%     -0.29%
         PSNRHVS:      0.02%
            SSIM:      0.03%
          MSSSIM:      0.02%
       CIEDE2000:      0.01%
      
      Change-Id: If744fb902b5f24404479def22b9ca8a19baec722
      ea64c342
    • Jean-Marc Valin's avatar
      Removing Daala-specific deringing code · 2c616e61
      Jean-Marc Valin authored
      No point in keeping them in sync now that all the code is reformatted
      
      Change-Id: I8a062253ed6a5f86028cd5a2a922b3c760def6fb
      2c616e61
    • Alex Converse's avatar
      Remove the starting zero from ANS CDFs. · e9f70f8f
      Alex Converse authored
      This brings it in line with the Daala CDFs and will make it easier to
      share code.
      
      Change-Id: Idfd2d2b33c3b9b2c4e72ce72fb3d8039013448b9
      (cherry picked from aom/master commit af98507c)
      e9f70f8f