1. 18 Nov, 2016 2 commits
  2. 16 Nov, 2016 1 commit
  3. 14 Nov, 2016 1 commit
  4. 11 Nov, 2016 2 commits
  5. 10 Nov, 2016 5 commits
    • Debargha Mukherjee's avatar
      Add guided projection filter to loop restoration · 8f209a87
      Debargha Mukherjee authored
      BDRATE:
      lowres: -1.01% (up from -0.7%)
      midres: -1.90% (up from -1.5%)
      hdres:  -2.11% (up from ~1.7%)
      
      Change-Id: I1fe04ec9ef90ccc4cc990e09cd45eea82c752e0c
      8f209a87
    • Debargha Mukherjee's avatar
      Harmonize the global parameter mappings · 8db4c776
      Debargha Mukherjee authored
      lowres: -0.401% BDRATE (tempete -5.4%)
      
      Also includes some fixes and cleanups.
      
      Change-Id: I82922a453fad59fad2f12829d2ef1e56b2d20949
      8db4c776
    • Jingning Han's avatar
      Support rectangular tx_size in recursive txfm partition · 70e5f3f0
      Jingning Han authored
      This commit supports the recursive transform block partition to
      start with both square and rectangular transform block sizes.
      
      Change-Id: Idaf29d50cb1f4876b43e5ba82c2609708c6b1926
      70e5f3f0
    • David Barker's avatar
      Fix compile error with ref-mv · 599dfd01
      David Barker authored
      Change-Id: If7a117b78473d5b1f02b0219ddc314c7be7fbbbf
      599dfd01
    • David Barker's avatar
      Fix clpf + ext_partition and dering + ext_partition · 9739f365
      David Barker authored
      In both cases, the data to be signalled (for clpf/dering) is
      stored at the topmost superblock level, but previously this data
      would not be signalled for 128x128 superblocks.
      
      For dering, it was also assumed that all superblocks were of the
      maximum possible size. When ext_partition was enabled and we
      chose to use a 64x64 superblock, this resulted in an out-of-bounds
      access to cm->mi_grid_visible, leading to a segfault.
      
      Change-Id: I81b9c037ed8db8be16d7e4cf6041e1df7525cc97
      9739f365
  6. 09 Nov, 2016 3 commits
  7. 08 Nov, 2016 4 commits
    • Yushin Cho's avatar
      Fix the bug that PVQ commit broke dering · 48f84dbd
      Yushin Cho authored
      Since PVQ's max block size equals to the max transform size,
      daala's definition of OD_BSIZE_MAX was changed from 5 down to 4 to
      use AV1's max trasform size 32x32. However, dering also uses
      OD_BSIZE_MAX and assumes its value is 5, which caused dering
      not working.
      
      Change-Id: I9d82bb24adc7d57552a8e0a8a7e798e77d96fd4b
      48f84dbd
    • Thomas Davies's avatar
      Fix clang-format issues. · 8b0f6368
      Thomas Davies authored
      Change-Id: I6cdb7e80072359fc2c485424e2130e62a796cf25
      8b0f6368
    • Yushin Cho's avatar
      Fix the bug that PVQ commit broke dering · 7d208d08
      Yushin Cho authored
      Since PVQ's max block size equals to the max transform size,
      daala's definition of OD_BSIZE_MAX was changed from 5 down to 4 to
      use AV1's max trasform size 32x32. However, dering also uses
      OD_BSIZE_MAX and assumes its value is 5, which caused dering
      not working.
      
      Change-Id: I9d82bb24adc7d57552a8e0a8a7e798e77d96fd4b
      7d208d08
    • Yaowu Xu's avatar
      Use block_size for max_scan_line in pvq decoding · fc1b213a
      Yaowu Xu authored
      Change-Id: I642bc205a7d2c4d472385fbeb4323e62e17984b4
      fc1b213a
  8. 07 Nov, 2016 2 commits
    • Yaowu Xu's avatar
      Resolve merge issues with --enable-pvq · d6ea71cf
      Yaowu Xu authored
      This commit resolves some compiling issues due to merge.
      
      Change-Id: I0eef8aa36c404e185e0b0004948a49307c360d3e
      d6ea71cf
    • 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
  9. 05 Nov, 2016 1 commit
  10. 04 Nov, 2016 2 commits
    • 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
    • Angie Chiang's avatar
      Add mi_row and mi_col into mbmi to facilitate rd_debug process · 394c3377
      Angie Chiang authored
      Change-Id: Ia69f13c47f2dd34fabd220652691049166a06a68
      394c3377
  11. 02 Nov, 2016 1 commit
    • Jingning Han's avatar
      Make bit-stream support rectangular tx_size · f64062f3
      Jingning Han authored
      Allow the transform size writing, reading, and the reconstruction
      process to support rectangular transform block size coding.
      
      Change-Id: I57393c73ec60835a088d785ca838d7e3d7eb29a4
      f64062f3
  12. 01 Nov, 2016 1 commit
  13. 31 Oct, 2016 3 commits
    • Yaowu Xu's avatar
      Fix a bad merge · e86288d2
      Yaowu Xu authored
      Change-Id: I4615e8e64d75b1f4277d2221ec94c5d4f1830aa4
      e86288d2
    • Steinar Midtskogen's avatar
      Reverse order of CLPF and dering · 5d56f4d6
      Steinar Midtskogen authored
      Low latency:
      PSNR YCbCr:     -0.15%      0.11%      0.12%
         PSNRHVS:     -0.25%
            SSIM:     -0.26%
          MSSSIM:     -0.26%
       CIEDE2000:     -0.03%
      
      High latency:
      PSNR YCbCr:     -0.18%      0.18%      0.07%
         PSNRHVS:     -0.20%
            SSIM:     -0.21%
          MSSSIM:     -0.21%
       CIEDE2000:     -0.03%
      
      Change-Id: Ieb86d9ba353220de6454bdc15cea825944b6385b
      5d56f4d6
    • Yaowu Xu's avatar
      Refactor: read_tx_size_probs() · efc7535b
      Yaowu Xu authored
      Change-Id: Ibdedd9b8e0b6646b882bc159856ac7c7e7073149
      efc7535b
  14. 30 Oct, 2016 5 commits
    • Deng's avatar
      simp-mv-pred integration with ref-mv · ca8d24d4
      Deng authored
      This commit adds simp-mv-pred experiment. The experiment is to work on
      top of ref-mv experiment to save memory bandwidth and reduce the size
      of line buffer needed in ref-mv experiment.
      
      When compared to ref-mv, this experiment showed:
      low-delay BDR gain: 0.03%
      High-delay BDR gain: 0.01%
      memory/memory bandwidth saving: 40%
      local memory/gate count saving: 20%
      
      Change-Id: Ic4006e041fc58ede411da83d0d730c464ebe1749
      ca8d24d4
    • Nathan E. Egge's avatar
      Centralize EC_MULTISYMBOL error checking. · baaaa161
      Nathan E. Egge authored
      The EC_ADAPT experiment cannot work unless EC_MULTISYMBOL is also
       enabled.
      This patch replaces all individual checks with a centralized check in
       both the bitreader.h and bitwriter.h.
      
      Change-Id: I418852d95c5012cc074ed65cd24997e08bc2aadd
      baaaa161
    • Thomas Davies's avatar
      EC_ADAPT: refactor and fix MinArfFreq unit tests. · 6519bebf
      Thomas Davies authored
      Ensure that cdfs are synced with pdfs after every
      forward update.
      
      Change-Id: I5677f78300156c8622f1728d7a343ff6c3a4ea64
      6519bebf
    • Thomas Davies's avatar
      EC_ADAPT: send updates for the correct nodes. · 09ebbfb3
      Thomas Davies authored
      EOB and ZERO token are not currently adapted.
      
      Change-Id: Ie7d657b71fcb157b09e40874fb06a8b7cd95cc70
      09ebbfb3
    • 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
  15. 29 Oct, 2016 2 commits
    • 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
    • Deng's avatar
      simp-mv-pred integration with ref-mv to save memory bandwidth and reduce · 9abdec64
      Deng authored
      the line buffer.
      
      As compared to ref-mv, the results of this integration are:
      low-delay BDR gain: 0.03%
      High-delay BDR gain: 0.01%
      memory/memory bandwidth saving: 40%
      local memory/gate count saving: 20%
      
      Change-Id: Ic4006e041fc58ede411da83d0d730c464ebe1749
      9abdec64
  16. 28 Oct, 2016 4 commits
    • Jingning Han's avatar
      Replace num_4x4_blocks_txsize_loopup table · 32b2028b
      Jingning Han authored
      Unify the transform block size access table in preparation for
      2x2 transform integration.
      
      Change-Id: I308def6729e138ae2b2542175206e3225c0cb392
      32b2028b
    • Thomas Davies's avatar
      Tile groups: ensure each tile in a TG has a length. · 8fe64a3a
      Thomas Davies authored
      This ensures TGs can be decoded even if the whole
      frame has not been received and the frame length
      is not known.
      
      Change-Id: If24837fcc3b5c46554751be792e91100de73e8d6
      8fe64a3a
    • Thomas Davies's avatar
      Encode and decode multiple tile groups · 80188d15
      Thomas Davies authored
      This is a manual adaptation of the following commit from aom/master:
      ce12003d
      
      The original commit message:
      
      A tile group is a set of tiles in scan order.
      
      Each tile group has a version of uncompressed and compressed headers,
      identical apart from tile group parameters.
      Encoding probability updates takes account of the number of
      headers to control overheads.
      
      The decoder supports arbitrary numbers of tile groups with
      arbitrary number of tiles. The number of tiles in a TG is
      signalled in the uncompressed header for that TG.
      
      The encoder currently only supports a fixed number
      of TGs (3, when error resilient mode is on) of equal size
      (except possibly for the last one).
      
      The average BDR performnce with 3 tile groups versus
      anchor with error resilient mode and up to 16 tiles is:
      
      NR YCbCr:      3.02%      3.04%      3.05%
      PSNRHVS:      3.09%
      SSIM:      3.06%
      MSSSIM:      3.05%
      CIEDE2000:      3.04%
      
      Change-Id: I9b97c5ed733103b9160a3a5d4370de5322c00c0b
      80188d15
    • Jingning Han's avatar
      Refactor recursive transform block decoding · 5f614264
      Jingning Han authored
      Unify the transform block and coding block mapping.
      
      Change-Id: Ifb394809a4aafee6adf2b49a2607036cf13c878e
      5f614264
  17. 27 Oct, 2016 1 commit