1. 10 Nov, 2016 8 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
    • Thomas Davies's avatar
      Add options setting number of tile groups or MTU. · af6df175
      Thomas Davies authored
      Default MTU size is 0, which implies a fixed number
      of tile groups. MTU matching overrides fixed tile
      group. MTU matching will succeed unless a single
      tile is bigger than the MTU.
      
      --mtu-size is in bytes, and includes headers but
      not transport/wrapper overheads
      
      Change-Id: I2b70bd41b175b54273b02d836f2a84011f617a7c
      af6df175
    • David Barker's avatar
      Fix compile error with ref-mv · 599dfd01
      David Barker authored
      Change-Id: If7a117b78473d5b1f02b0219ddc314c7be7fbbbf
      599dfd01
    • David Barker's avatar
      Fix compile with ext-tx · f541932b
      David Barker authored
      The switch to using daala_ec by default broke the compile
      when used with ext-tx, as some code which should have been
      inside #if !CONFIG_EXT_TX was not inside such a block.
      
      Change-Id: I4cec9755bd4e6134a7d3036c4482f952a815cafc
      f541932b
    • 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
    • Jingning Han's avatar
      Reset the txfm context to match block size when skip flag is on · 1b1dc936
      Jingning Han authored
      Reset the transform block size context to the actual block size
      if the skip flag is turned on.
      
      Change-Id: I821afac2dcd4c3a17389e9954b7b2575f87d07d7
      1b1dc936
  2. 09 Nov, 2016 4 commits
  3. 08 Nov, 2016 4 commits
    • Angie Chiang's avatar
      Add txb_coeff_cost_map into TOKEN_STATS · d02001dd
      Angie Chiang authored
      This is to facilitate debugging process in var_tx experiment
      
      Change-Id: Ibd5ea7f6054c598b8e686abb4e8158ef28c67aab
      d02001dd
    • Jingning Han's avatar
      Add min_tx_size variable to recursive transform block partition system · e67b38aa
      Jingning Han authored
      Replace max_tx_size with min_tx_size for transform type decision.
      
      Change-Id: I64e39923a67903d52b381bd93eaac33b3400a201
      e67b38aa
    • 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
    • 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
  4. 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
  5. 06 Nov, 2016 1 commit
    • Angie Chiang's avatar
      Add RD_STATS into MB_MODE_INFO · 9a44f5fb
      Angie Chiang authored
      With RD_STATS in MB_MODE_INFO, we will be able to compare the results
      from rate-distortion loop and the results from bitstream packing.
      
      Change-Id: If1dba7d87126577a6f369ac087d4517f7cebb0c5
      9a44f5fb
  6. 05 Nov, 2016 1 commit
  7. 04 Nov, 2016 6 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
      Separate coefficient cost of U/V planes in write_modes_b() · 75f45814
      Angie Chiang authored
      Change-Id: Ie3082db5b0fead8c322b2aeede4eff7cd723ea12
      75f45814
    • Angie Chiang's avatar
      Add token cost comparison in write_modes_b() · d402282f
      Angie Chiang authored
      This is just partial implementation
      Compare token cost of pack_mb_tokens/pack_txb_tokens with token cost
      from rate-distortion loop. If there is any difference, dump out mode
      info.
      
      Change-Id: I46b373ee2522c5047f799f36baf7cec5fbc06f06
      d402282f
    • Jingning Han's avatar
      Clean up write_tx_type() · 641b1ad5
      Jingning Han authored
      Remove repeated mbmi->tx_size calls.
      
      Change-Id: I3e4e03b69b2efffd860cc1ea34e150f4257bf081
      641b1ad5
    • Jingning Han's avatar
      Factor out common tx_type writing codes from inter/intra frame · 2a4da947
      Jingning Han authored
      Change-Id: Id2626bd19db2504756d9a1dee709c2d08c79f771
      2a4da947
    • Jingning Han's avatar
      Properly schedule the transform block recursion order · 98d6a1f2
      Jingning Han authored
      This commit replaces the offset based block index calculation with
      incremental based one. It does not change the coding statistics.
      
      Change-Id: I3789294eb45416bd0823e773ec30f05ed41ba0dc
      98d6a1f2
  8. 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
  9. 01 Nov, 2016 2 commits
  10. 31 Oct, 2016 5 commits
  11. 30 Oct, 2016 4 commits
  12. 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
  13. 28 Oct, 2016 2 commits