1. 16 Feb, 2017 1 commit
  2. 06 Feb, 2017 1 commit
    • Alex Converse's avatar
      ec_multisymbol: Split off new new_tokenset experiment · a9598cd6
      Alex Converse authored
      The new_tokenset experiment replaces the unconstrained tokenset with a
      multisymbol alphabet in an inventive way.
      
      Tested configurations:
      new_tokenset + ec_adapt, new_tokenset, ec_multisymbol
      
      Change-Id: I846ab2e51c2a1dc3f2f9904ed8c47a8e98f853c5
      a9598cd6
  3. 03 Feb, 2017 2 commits
  4. 31 Jan, 2017 2 commits
    • Thomas Davies's avatar
      EC_MULTISYMBOL: reconfigure coefficient decoding loop. · 0583c984
      Thomas Davies authored
      Preparation for merging EOB into multi-symbol encoding.
      The more_data flag for the first position is moved
      out of the loop, and for remaining positions is
      moved in with the previous coefficient. This way it
      can always be associated with the previous non-zero
      coefficient.
      
      Change-Id: Idfb38058f4c415127b4d9a9beeb8ea2d3a2ec1a2
      0583c984
    • Thomas Davies's avatar
      EC_MULTISYMBOL: merge ZERO_TOKEN into coding scheme. · 0ccefe21
      Thomas Davies authored
      Zero, one, and two or more coded as one symbol (head).
      Remaining tokens coded as a tail symbol.
      
      The pareto CDF distribution is adjusted to cover tokens from
      two onwards.
      
      Change-Id: I98b33fab6b9f52690f6ad618ac55e725a97be056
      0ccefe21
  5. 30 Jan, 2017 2 commits
  6. 27 Jan, 2017 1 commit
  7. 26 Jan, 2017 1 commit
    • Urvang Joshi's avatar
      Palette: Don't store tokens for pixels outside image boundary. · 56ba91bb
      Urvang Joshi authored
      If part of a block falls outside right and/or bottom image boundary,
      then only store tokens for the part of it within the boundary.
      
      Also, consider only the part of the block within the boundary when
      calculating the number of colors in the image, deciding the base
      colors for palette, RD calculation etc.
      
      The part of color map corresponding to pixels outside the image
      boundary is padded with color indices copied from same row/column.
      This behavior is similar to how pixels outside the boundary are padded.
      
      For screen_content set, this is improves compression performance by
      0.038 overall. One clip, in particular, has a significant gain of 0.8.
      
      Change-Id: I745ca032f313c5041aacc98c03ae4bfc33d840de
      56ba91bb
  8. 20 Jan, 2017 1 commit
  9. 13 Jan, 2017 1 commit
  10. 05 Dec, 2016 1 commit
  11. 30 Nov, 2016 1 commit
  12. 29 Nov, 2016 1 commit
  13. 10 Nov, 2016 2 commits
    • Yaowu Xu's avatar
      Revert "fix msvc build warnings and errors" · fdb4216d
      Yaowu Xu authored
      This reverts commit 32dbdff1.
      
      Change-Id: I94ef281223f7abceb156714e8192d5ea5fdc2581
      fdb4216d
    • Yaowu Xu's avatar
      fix msvc build warnings and errors · 32dbdff1
      Yaowu Xu authored
      This commit fix the msvc2013 build for configuration:
      configure --target=x86_64-win64-vs12 --enable-experimental
       --enable-clpf --enable-dering --enable-motion-var --enable-ans
      
      BUG=aomedia:80
      
      Change-Id: I08b61e38e761ea4ed3175529fba4a50c57be44ac
      32dbdff1
  14. 09 Nov, 2016 1 commit
  15. 07 Nov, 2016 1 commit
    • Yushin Cho's avatar
      New experiment: Perceptual Vector Quantization from Daala · 77bba8d3
      Yushin Cho authored
      PVQ replaces the scalar quantizer and coefficient coding with a new
      design originally developed in Daala. It currently depends on the
      Daala entropy coder although it could be adapted to work with another
      entropy coder if needed:
      ./configure --enable-experimental --enable-daala_ec --enable-pvq
      
      The version of PVQ in this commit is adapted from the following
      revision of Daala:
      https://github.com/xiph/daala/commit/fb51c1ade6a31b668a0157d89de8f0a4493162a8
      
      More information about PVQ:
      - https://people.xiph.org/~jm/daala/pvq_demo/
      - https://jmvalin.ca/papers/spie_pvq.pdf
      
      The following files are copied as-is from Daala with minimal
      adaptations, therefore we disable clang-format on those files
      to make it easier to synchronize the AV1 and Daala codebases in the future:
       av1/common/generic_code.c
       av1/common/generic_code.h
       av1/common/laplace_tables.c
       av1/common/partition.c
       av1/common/partition.h
       av1/common/pvq.c
       av1/common/pvq.h
       av1/common/state.c
       av1/common/state.h
       av1/common/zigzag.h
       av1/common/zigzag16.c
       av1/common/zigzag32.c
       av1/common/zigzag4.c
       av1/common/zigzag64.c
       av1/common/zigzag8.c
       av1/decoder/decint.h
       av1/decoder/generic_decoder.c
       av1/decoder/laplace_decoder.c
       av1/decoder/pvq_decoder.c
       av1/decoder/pvq_decoder.h
       av1/encoder/daala_compat_enc.c
       av1/encoder/encint.h
       av1/encoder/generic_encoder.c
       av1/encoder/laplace_encoder.c
       av1/encoder/pvq_encoder.c
       av1/encoder/pvq_encoder.h
      
      Known issues:
      - Lossless mode is not supported, '--lossless=1' will give the same result as
      '--end-usage=q --cq-level=1'.
      - High bit depth is not supported by PVQ.
      
      Change-Id: I1ae0d6517b87f4c1ccea944b2e12dc906979f25e
      77bba8d3
  16. 04 Nov, 2016 1 commit
    • Yushin Cho's avatar
      New experiment: Perceptual Vector Quantization from Daala · 09705fe7
      Yushin Cho authored
      PVQ replaces the scalar quantizer and coefficient coding with a new
      design originally developed in Daala. It currently depends on the
      Daala entropy coder although it could be adapted to work with another
      entropy coder if needed:
      ./configure --enable-experimental --enable-daala_ec --enable-pvq
      
      The version of PVQ in this commit is adapted from the following
      revision of Daala:
      https://github.com/xiph/daala/commit/fb51c1ade6a31b668a0157d89de8f0a4493162a8
      
      More information about PVQ:
      - https://people.xiph.org/~jm/daala/pvq_demo/
      - https://jmvalin.ca/papers/spie_pvq.pdf
      
      The following files are copied as-is from Daala with minimal
      adaptations, therefore we disable clang-format on those files
      to make it easier to synchronize the AV1 and Daala codebases in the future:
       av1/common/generic_code.c
       av1/common/generic_code.h
       av1/common/laplace_tables.c
       av1/common/partition.c
       av1/common/partition.h
       av1/common/pvq.c
       av1/common/pvq.h
       av1/common/state.c
       av1/common/state.h
       av1/common/zigzag.h
       av1/common/zigzag16.c
       av1/common/zigzag32.c
       av1/common/zigzag4.c
       av1/common/zigzag64.c
       av1/common/zigzag8.c
       av1/decoder/decint.h
       av1/decoder/generic_decoder.c
       av1/decoder/laplace_decoder.c
       av1/decoder/pvq_decoder.c
       av1/decoder/pvq_decoder.h
       av1/encoder/daala_compat_enc.c
       av1/encoder/encint.h
       av1/encoder/generic_encoder.c
       av1/encoder/laplace_encoder.c
       av1/encoder/pvq_encoder.c
       av1/encoder/pvq_encoder.h
      
      Known issues:
      - Lossless mode is not supported, '--lossless=1' will give the same result as
      '--end-usage=q --cq-level=1'.
      - High bit depth is not supported by PVQ.
      
      Change-Id: I1ae0d6517b87f4c1ccea944b2e12dc906979f25e
      09705fe7
  17. 01 Nov, 2016 1 commit
  18. 31 Oct, 2016 1 commit
  19. 30 Oct, 2016 1 commit
    • Alex Converse's avatar
      Add ec_multisymbol for common daala_ec and rans code · aca9feba
      Alex Converse authored
      The new ec_multisymbol experiment supersedes the rans experiment and is
      used for multisymbol features that can be backed by either daala_ec or
      rans.
      
      This experiment is automatically enabled by ec_adapt and will try to
      enable daala_ec or ans (in that order).
      
      Change-Id: Ie75b4002b7a9d7f5f7b4d130c1aacb3dbe97e54f
      aca9feba
  20. 29 Oct, 2016 1 commit
    • Thomas's avatar
      Add EC_ADAPT experiment for symbol-adaptive entropy coding. · 9ac5508f
      Thomas authored
      This experiment performs symbol-by-symbol statistics
      adaptation for non-binary symbols. It requires DAALA_EC or
      RANS and ANS to be enabled. The adaptation is currently
      based on a simple recursive filter and is taken from
      Daala. It has an adaptation rate dependent on alphabet size,
      taken from Daala. It applies wherever non-binary symbols
      are encoded using Cumulative Probability Functions rather
      than trees.
      
      Where symbols are adapted, forward updates in the compressed
      header are removed.
      
      In the case of RANS coefficient token values are adapted,
      with the exception of the zero token which remains a
      binary symbol. In the case of DAALA_EC other values
      such as inter and intra modes are adapted as CDFs are
      provided in those cases.
      
      The experiment is configured with:
      
      ./configure --enable-experimental --enable-daala-ec --enable-ec-adapt
      
      or
      
      ./configure --enable-experimental --enable-ans --enable-rans \
          --enable-ec-adapt
      
      EC_ADAPT is not currently compatible with tiles.
      
      BDR results on Objective-1-fast give a small loss:
      
      PSNR YCbCr:      0.51%      0.49%      0.48%
      PSNRHVS:      0.50%
      SSIM:      0.50%
      MSSSIM:      0.51%
      CIEDE2000:      0.50%
      
      Change-Id: I3888718e42616f3fd87144de7f125228446ac984
      9ac5508f
  21. 25 Oct, 2016 1 commit
  22. 21 Oct, 2016 2 commits
  23. 20 Oct, 2016 2 commits
  24. 19 Oct, 2016 3 commits
    • 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
    • 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
    • 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
  25. 14 Oct, 2016 1 commit
    • 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
  26. 13 Oct, 2016 2 commits
  27. 12 Oct, 2016 2 commits
  28. 04 Oct, 2016 1 commit
    • Thomas's avatar
      Add EC_ADAPT experiment for symbol-adaptive entropy coding. · b0112dfd
      Thomas authored
      This experiment performs symbol-by-symbol statistics
      adaptation for non-binary symbols. It requires DAALA_EC or
      RANS and ANS to be enabled. The adaptation is currently
      based on a simple recursive filter and is taken from
      Daala. It has an adaptation rate dependent on alphabet size,
      taken from Daala. It applies wherever non-binary symbols
      are encoded using Cumulative Probability Functions rather
      than trees.
      
      Where symbols are adapted, forward updates in the compressed
      header are removed.
      
      In the case of RANS coefficient token values are adapted,
      with the exception of the zero token which remains a
      binary symbol. In the case of DAALA_EC other values
      such as inter and intra modes are adapted as CDFs are
      provided in those cases.
      
      The experiment is configured with:
      
      ./configure --enable-experimental --enable-daala-ec --enable-ec-adapt
      
      or
      
      ./configure --enable-experimental --enable-ans --enable-rans \
          --enable-ec-adapt
      
      EC_ADAPT is not currently compatible with tiles.
      
      BDR results on Objective-1-fast give a small loss:
      
      PSNR YCbCr:      0.51%      0.49%      0.48%
      PSNRHVS:      0.50%
      SSIM:      0.50%
      MSSSIM:      0.51%
      CIEDE2000:      0.50%
      
      Change-Id: I3888718e42616f3fd87144de7f125228446ac984
      b0112dfd
  29. 02 Oct, 2016 1 commit
    • Debargha Mukherjee's avatar
      Further changes to new-quant tables · 3c42c096
      Debargha Mukherjee authored
      Refactor to streamline the number of profiles needed, in
      preparation for the next steps.
      
      NO change in performance.
      
      Change-Id: I753b89299897857f3c250c316b4cdc4fedcb90e8
      3c42c096
  30. 29 Sep, 2016 1 commit