1. 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
  2. 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
  3. 11 Nov, 2016 1 commit
  4. 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
  5. 09 Nov, 2016 3 commits
  6. 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
  7. 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
  8. 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
  9. 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
  10. 31 Oct, 2016 2 commits
  11. 25 Oct, 2016 1 commit
  12. 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
  13. 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
  14. 19 Oct, 2016 2 commits
  15. 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
  16. 30 Sep, 2016 1 commit
  17. 28 Sep, 2016 1 commit
  18. 23 Sep, 2016 1 commit
  19. 21 Sep, 2016 2 commits
    • Angie Chiang's avatar
      Pass AV1_COMMON into get_scan() · 99cb0d28
      Angie Chiang authored
      This CL doesn't change coding behavior. It is to facilitate the
      following implementation of adaptive scan order
      
      Change-Id: I229963cb5185812a2da43f5c8a6506b296452a6a
      99cb0d28
    • Angie Chiang's avatar
      Pass AV1_COMMON into block encoding functions · 1e150c77
      Angie Chiang authored
      Those functions include optimize_b, av1_encode_block_intra,
      av1_xform_quant and av1_xform_quant_fp
      
      This CL doesn't change any coding behavior. It is to facilitate the
      following implementation of adaptive scan order experiment.
      
      Change-Id: I0836e558b94e196a02c830a856be305afe20472b
      1e150c77
  20. 17 Sep, 2016 1 commit
  21. 15 Sep, 2016 1 commit
  22. 06 Sep, 2016 1 commit
    • Yue Chen's avatar
      Make RECT_TX(>=8x8) work with VAR_TX · a1e48dcc
      Yue Chen authored
      Bitstream syntax:
      For a rectangular inter block, 'rect_tx' flag is sent to indicate if
      the biggest rect tx is used. If no, continue to decode regular
      recursive tx partition.
      
      Change-Id: I127e35cc619b65acb5e9a0717f399cdcdb73fbf0
      a1e48dcc
  23. 05 Sep, 2016 1 commit
    • Debargha Mukherjee's avatar
      Enable rectangular transforms for UV · 2f12340f
      Debargha Mukherjee authored
      Uses an array to map block sizes, y tx sizes, and subsampling
      factors to various transform sizes for UV.
      
      Results improve by 0.1-0.2%
      
      Change-Id: Icb58fd96bc7c01a72cbf1332fe2be4d55a0feedc
      2f12340f
  24. 02 Sep, 2016 1 commit