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
    • Arild Fuldseth's avatar
      Support for delta-q at superblock level · 07441165
      Arild Fuldseth authored
      Change-Id: I4128af44776d1f361bddc1fdffb75ed2224dbfa5
    • Yaowu Xu's avatar
      Fix build issues when --enable-aom-qm · 0dd04637
      Yaowu Xu authored
      Change-Id: I1a462675c06c4b2a5f8b4b347f23fec67feccdd0
    • 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
    • Yaowu Xu's avatar
      Reorder includes · caf2023a
      Yaowu Xu authored
      Change-Id: I97487bf353471bf9d245cd620780adfb1d3fc2b1
    • 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
      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
    • 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
    • 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
    • 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
    • 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
    • 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
  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
    • 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
    • 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
    • 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
  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.
                MEDIUM (%) HIGH (%)
          PSNR -0.027556  -0.020114
       PSNRHVS -0.027401  -0.020169
          SSIM -0.027587  -0.020151
      FASTSSIM -0.027592  -0.020102
               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
    • 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
    • Nathan E. Egge's avatar
      Add Daala entropy coder. · 1078dee5
      Nathan E. Egge authored
      Change-Id: I2849a50163268d58cc5d80aacfec1fd02299ca43
    • 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
      PSNR YCbCr:      0.01%      0.01%      0.01%
         PSNRHVS:      0.01%
            SSIM:      0.01%
          MSSSIM:      0.01%
       CIEDE2000:      0.01%
      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
    • 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
    • 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
    • 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
  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
    • 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
    • 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
    • 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
    • Michael Bebenita's avatar
      Add SSE4.1 code for deringing functions. · 7227b65c
      Michael Bebenita authored
      Change-Id: I363f7fb610a5c86ea9f417e34b57c6373af877e5
    • David Barker's avatar
      Add sse2 forward and inverse 16x32 and 32x16 transforms · 33231d48
      David Barker authored
      Change-Id: I1241257430f1e08ead1ce0f31db8272b50783102
    • 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
    • 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
    • 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
    • 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
    • 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)