1. 19 Dec, 2016 1 commit
    • Guillaume Martres's avatar
      Fix uninitialized entropy contexts · e50d9ddb
      Guillaume Martres authored
      When enable_optimize_b is false in av1_encode_intra_block_plane the
      entropy contexts were never initialized.
      
      No changes on metrics for objective-1-fast when no experiment is
      enabled.
      
      Change-Id: Ic68913f6400d2becbaec3cc14214a0257530ed0b
      e50d9ddb
  2. 14 Dec, 2016 1 commit
    • Yushin Cho's avatar
      Enable the activity masking codes of PVQ · 70669125
      Yushin Cho authored
      Turned off, by default.
      
      TODO: The distortion function of Daala should be added
      to complete the activity masking working.
      
      Note that PVQ QM matrix (i.e. scaler for each band of
      transform block) is calculated in decoder side as exactly same
      way in encoder. In Daala, this matrix is written to bitstream
      and decoder does not generate it.
      
      Activity masking can be turned on by setting below flag as 1:
      
      Change-Id: I44bfb905cb4e0cad6aa830a4c355cd760a993ffe
      70669125
  3. 06 Dec, 2016 1 commit
    • Jingning Han's avatar
      Handle the block offset using min transform block size · 81492267
      Jingning Han authored
      Map the block offset to pixel positions in the unit of minimum
      transform block size. This change retains the same coding
      statistics. The encoding speed is slightly faster (<1%).
      
      Change-Id: I2641d2b1e317ef4cdf477718c446ef025b8eef41
      81492267
  4. 01 Dec, 2016 1 commit
  5. 30 Nov, 2016 2 commits
  6. 29 Nov, 2016 1 commit
  7. 22 Nov, 2016 2 commits
    • Jingning Han's avatar
      Deprecated the separate handle on rectangular tx_size in var_tx · fe45b216
      Jingning Han authored
      The recursive transform block partitioning system naturally supports
      the use of rectangular transform block size. Hence there is no need
      to make a separate coding route for the rectangular transform block
      size support there.
      
      Change-Id: I709b61f94cd4a6ea3f33c05abe319488c7d24f5a
      fe45b216
    • Jingning Han's avatar
      Update tx_size assertions in rd search · d3fada80
      Jingning Han authored
      The processing units support the rectangular transform block size.
      Update the assertion conditions accordingly.
      
      Change-Id: Iebd46dbbb04feaf161fb02f203fa2cde50b2b700
      d3fada80
  8. 18 Nov, 2016 1 commit
    • Debargha Mukherjee's avatar
      Add default 64x64 scan orders and entropy models · 153e1f86
      Debargha Mukherjee authored
      Adds 64x64 default scan orders
      Adds 64x64 coefficient entropy models (just copy the 32x32 ones)
      Entropy context updates for 64x64 transform
      Various misc. changes to support 64x64 transforms
      
      Change-Id: I2c0bc4ba540886dd196e87a78b205407ad3e866b
      153e1f86
  9. 16 Nov, 2016 2 commits
    • Debargha Mukherjee's avatar
      Add recode loop test for global motion usage · b98a702d
      Debargha Mukherjee authored
      Adds a feature to recode if global motion is used for a reference but
      has very few blocks in the frame actually using it.
      
      lowres improves to -0.512% on average.
      
      Change-Id: I61a36770e1b7103b9a27706909443c3f14ee4e42
      b98a702d
    • Thomas Davies's avatar
      AOM_QM: fix av1_optimize_b. · e0f8c559
      Thomas Davies authored
      BUG=aomedia:79
      
      Merge of nextgenv2 caused av1_optimize_b not to take account
      of different inverse quantization when quant matrices are on.
      
      Change-Id: I1b8da2e110ce201183be777663222e3d73c9f17b
      e0f8c559
  10. 11 Nov, 2016 1 commit
  11. 10 Nov, 2016 3 commits
    • 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
    • Yushin Cho's avatar
      Refactor PVQ codes in av1_encode_block_intra() · 3827fddd
      Yushin Cho authored
      Since non PVQ path in av1_encode_block_intra() was refactored
      in nextgenv2 so that both inter and intra block txfm_quant,
      i.e. av1_encode_block() and av1_encode_block_intra(), are done
      similar way, such as both call av1_xform_quant().
      This is also nice for PVQ, since it can reuse pvq enc helper call
      in av1_xform_quant() for intra block mode.
      
      Change-Id: I45aaf5b899552bf947d777cdb2d92e665d4f217e
      3827fddd
    • Yaowu Xu's avatar
      apply clang-format · 49eea11c
      Yaowu Xu authored
      For these files:
      av1/common/common_data.h
      av1/encoder/encodemb.c
      av1/encoder/quantize.c
      av1/encoder/rdopt.c
      
      Change-Id: I379e861d55c2875d0366df24f986b29796a70087
      49eea11c
  12. 09 Nov, 2016 3 commits
  13. 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
      Add transform parameter initialization · 856c55e9
      Yaowu Xu authored
      The initialization of transform parameters was missing, that led to a
      crash in encoder.
      
      Change-Id: I9e35830d5f24e771c845f0d8881671d6b7228c5e
      856c55e9
  14. 07 Nov, 2016 3 commits
    • Yaowu Xu's avatar
      Fix compiler warning of un-used variables · 02d4c3b7
      Yaowu Xu authored
      Change-Id: I17d05bbf75a201fd010fc17e2d9bd0db8ef36d41
      02d4c3b7
    • 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
  15. 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
    • 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
  16. 02 Nov, 2016 1 commit
    • Jingning Han's avatar
      Make recursive txfm encoding process support rectangular tx_size · a9336328
      Jingning Han authored
      This commit makes the encoding process of the recursive transform
      block partition support both rectangular and square transform block
      sizes as the starting point. If the coding block size is rectangular,
      it would allow the transform block size to start from the largest
      rectangular transform size, and recursive parse to the selected
      coding sizes.
      
      Change-Id: I576628b9166565bada6a918f0a1e67849dfef4cd
      a9336328
  17. 31 Oct, 2016 2 commits
  18. 25 Oct, 2016 1 commit
  19. 24 Oct, 2016 3 commits
    • Jingning Han's avatar
      Simplify variable defs in av1_encode_block_intra · 62a2b9e1
      Jingning Han authored
      Use direct table access to fetch the block size and transform size
      in pixels.
      
      Change-Id: Ia0093d5aed912be24996a06b0567bb2d873ec068
      62a2b9e1
    • Jingning Han's avatar
      Refactor av1_predict_intra_block tx_size interface · c4c99da9
      Jingning Han authored
      Simplify the input arguments. Make direct use of the block size
      in the unit of pixels.
      
      Change-Id: Ifec9d90b4b4fa9605f93b4f93b8242f76f898b5f
      c4c99da9
    • David Barker's avatar
      Fix a bug when combining new-quant + supertx · d7d78c83
      David Barker authored
      Previously, we assumed that av1_init_plane_quantizers is always called with
      segment_id == xd->mi[0]->mbmi.segment_id (and use the latter to derive the value
      of 'qindex' to use in the quantizer). But this is no longer true when supertx
      is enabled. This patch instead remembers the value of 'qindex' derived from
      the latest call to av1_init_plane_quantizers and uses that directly.
      
      Change-Id: Ifa1c5bf74cad29942ff79b88ca92c231bc07f336
      d7d78c83
  20. 21 Oct, 2016 1 commit
    • Angie Chiang's avatar
      Pass AV1_COMMON into get_scan · ff6d8905
      Angie Chiang authored
      This CL will facilitate adapt_scan experiment.
      In adapt_scan experiment, dynamic scan order will be stored in
      AV1_COMMON
      
      Change-Id: I4763ea931b5e1af54d4f173971befeb01a4db335
      ff6d8905
  21. 19 Oct, 2016 2 commits
  22. 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
  23. 30 Sep, 2016 1 commit