1. 13 Feb, 2018 1 commit
  2. 07 Nov, 2017 1 commit
  3. 31 Oct, 2017 1 commit
  4. 24 Oct, 2017 1 commit
  5. 21 Oct, 2017 1 commit
  6. 20 Oct, 2017 1 commit
    • Debargha Mukherjee's avatar
      Remove CONFIG_CB4X4 config flags · 6ea917ec
      Debargha Mukherjee authored
      Since CB4X4 is adopted and without it the codec does not work,
      it is better to remove it and simplify the code.
      
      Change-Id: I51019312846928069727967e3b2bbb60f0fba80d
      6ea917ec
  7. 16 Oct, 2017 1 commit
    • Hui Su's avatar
      Remove the intra-interp experiment · 259d4422
      Hui Su authored
      This experiment uses switchable interpolation filter for intra
      prediction. Current gain is too small to be useful for AV1.
      May explore more for AV2 in the future.
      
      Change-Id: I24ae8c75dc71adf6271eabdb68a81b68a0869fa2
      259d4422
  8. 21 Jul, 2017 1 commit
  9. 20 Jul, 2017 1 commit
    • Jingning Han's avatar
      Make intra coding processed in 64x64 unit · 5b70174f
      Jingning Han authored
      Process the intra block coding in maximum of 64x64 block unit.
      This allows to simpilify the hardware design for 128x128 level
      block coding.
      
      Change-Id: I6ef1dd8549bdb53b2d2394c6aa7d61cea93686bf
      5b70174f
  10. 17 Jul, 2017 1 commit
  11. 21 Jun, 2017 1 commit
    • Timothy B. Terriberry's avatar
      cb4x4: Move sub-4X4 block sizes behind chroma flags. · 81ec2619
      Timothy B. Terriberry authored
      cb4x4 itself should not require these sizes.
      
      This simplifies compatibility with other experiments, since we can
      first make them work with cb4x4 (which is now on by default), and
      then worry about chroma_sub8x8 and chroma_2x2 (which is not) in
      separate steps.
      
      Encoder and decoder output should remain unchanged.
      
      Change-Id: Iff2a5494cab3b7d96f881e8bd9cd4bf18c817cfa
      81ec2619
  12. 08 Jun, 2017 1 commit
    • Yushin Cho's avatar
      Refactor sub8x8 tx size RD for daala-dist · 30a2c5f2
      Yushin Cho authored
      For a tx size RD search with partition size >= 8x8 and tx size < 8x8,
      daala-dist function is applied to the whole partition after all tx blocks are encoded
      instead of each 8x8 sub block of the partition.
      
      Change-Id: I27d9e2960aa641f550096e32ebcdf8dfb4de79a6
      30a2c5f2
  13. 01 Jun, 2017 1 commit
    • Yushin Cho's avatar
      Fix daala-dist for cb4x4 · 63927c43
      Yushin Cho authored
      The place where av1_daala_dist() is applied for sub8x8 partition is
      moved from sub8x8 mode decision functions to rd_pick_partition().
      
      BD-Rate change by daala-dist with '--disable-var-tx' is:
      (AWCY, objective-1-fast, high delay mode)
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      15.1558 | 12.9585 | 14.4662 |  -3.8651 | -1.7102 | -9.2956 |    10.8686
      
      In MSE probe mode:
      
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0429 |  0.0435 |  0.1651 |  -0.0415 | 0.0850 |  0.0122 |     0.0546
      
      Change-Id: I3b2ea916d41c48e433eb641adf44552e4725c198
      63927c43
  14. 21 May, 2017 1 commit
    • Timothy B. Terriberry's avatar
      cb4x4: Fix reset_skip_context() without chroma_2x2 · a2d5cdef
      Timothy B. Terriberry authored
      reset_skip_context() was always clearing the entropy contexts for
      all three color planes, using a block size that corresponded with
      the luma plane.
      
      However, when chroma_2x2 is disabled, then for sub-8x8 luma block
      sizes, the corresponding chroma block size is always 4x4, and the
      skip flag only affects the chroma blocks corresponding to the
      upper-left luma block.
      
      This patch makes reset_skip_context() reset the contexts that
      actually correspond to the chroma blocks that are skipped (if any).
      It also moves reset_skip_context() to av1_reset_skip_context() in
      blockd.c, because blockd.h gets included before onyx_int.h, which
      declares the required is_chroma_reference() function.
      reset_skip_context() was too large and used in too many places to
      be a reasonable candidate for inlining, anyway.
      
      AWCY results on objective-1-fast:
      
      cb4x4-fix-base@2017-05-11T06:26:50.159Z -> cb4x4-fix-reset_skip@2017-05-11T06:28:45.482Z
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0301 |  0.1068 |  0.1463 |   0.0359 | 0.0260 |  0.0347 |     0.0479
      
      A regression (near the noise range), but without this fix, the line
      buffer size required by the entropy contexts will be doubled.
      
      Change-Id: I12fa6e60d9c1c7c85927742775a346ea22b3193f
      a2d5cdef
  15. 07 Apr, 2017 1 commit
  16. 05 Apr, 2017 1 commit
  17. 16 Mar, 2017 1 commit
    • Angie Chiang's avatar
      Draft of av1_update_txb_context · 0397eda0
      Angie Chiang authored
      This draft version only pass compiling check, it's not working yet.
      
      The following goal is to use new coding system when doing bitstream
      packing but keep old coding system in RD loop.
      
      Change-Id: I224a1581d1cc5c67d73e71558fb77d9faf9c2470
      0397eda0
  18. 08 Mar, 2017 1 commit
    • Fangwen Fu's avatar
      Remove palette interleave · b3be926a
      Fangwen Fu authored
      * Run 45 degree wavefront coding for palette index
      with palette_throughput experiment.
      * Remove palette index interleave.
      
      Change-Id: Ibb57004401f817dec8b00bc2a941d70a26783ff9
      b3be926a
  19. 01 Mar, 2017 1 commit
  20. 27 Feb, 2017 1 commit
  21. 25 Feb, 2017 1 commit
  22. 24 Feb, 2017 2 commits
    • Fangwen Fu's avatar
      improving palette throughput · 33bcd117
      Fangwen Fu authored
      * code the palette color index using 45 wavefront
      * interleave the coeff and palette color index in
        transform block level
      * the above change does not change code efficiency
      
      Details: 
      The 45 wavefront scan allows to compute the ctx of
      the diagonal samples' indices  at the same time. 
      Interleaving palette indices and palette residual
      on a transform block basis means that the entropy
       decoding and further processing of the palette 
      residual is not delayed by the entropy decoding 
      of all the color indices of the palette encoded 
      block.
      Change-Id: Ie9f576002a9a68394b99c23b01e9730df06df070
      33bcd117
    • Luc Trudeau's avatar
      Add get_plane_type() helper function. · 005feb6b
      Luc Trudeau authored
      Adds the static inline function get_plane_type to convert a plane number
      to the corresponding PLANE_TYPE.
      
      There's no change to the bitstream, it only encapsulates the logic to
      get the PLANE_TYPE.
      
      Change-Id: I1199db3a32c89437d9c029ab5b2b2e62582a13a2
      005feb6b
  23. 23 Feb, 2017 1 commit
    • Jingning Han's avatar
      Add chroma 2x2 block experiment · 31b6a4f9
      Jingning Han authored
      Support the use of 2x2 prediction and transform block size for
      chroma components. This experiment builds on top of cb4x4. It
      brings back the loss in performance gains due to 4x4 chroma
      component constrain. The coding gains for lowres are up from 1.5%
      to 2.5%.
      
      Change-Id: I8e461e230c2d920f6df1af9d935ebe9dfa3820d9
      31b6a4f9
  24. 18 Feb, 2017 2 commits
  25. 23 Jan, 2017 1 commit
    • Yushin Cho's avatar
      Add a new experiment, DAALA_DIST · 7a428ba2
      Yushin Cho authored
      This commit adds a new experiment, Daala's distortion function,
      which is designed to better approximate perceptual distortion
      in 8x8 pixel blocks.
      
      This experiment is expected to work best with PVQ.
      
      It measures the variance of overlapped 4x4 regions in the 8x8 area,
      then uses these variances to scale the MSE of weighted frequency domain
      distortion of 8x8 block.
      
      Since AV1 calculates distortion in blocks as small as 4x4, it is not possible to
      directly replace the existing distortion functions of AV1,
      such as dist_block() and block_rd_txf().
      Hence, there has been substantial changes in order to apply
      Daala's 8x8 distortion function.
      The daala distortion function is applied
      after all 4x4 tx blocks in a 8x8 block are encoded (during RDO),
      as in below two cases:
      1) intra/inter sub8x8 predictions and
      2) 4x4 transform with prediction size >= 8.
      
      To enable this experiment, add '--enable-daala-dist' with configure.
      
      TODO: Significant tuning of parameters is required since the function has
      originally came from Daala thus most parameters would not work
      correctly outside Daala.
      The fact that chroma distortion is added to the distortion of AV1's RDO is
      also critical since Daala's distortion function is applied to luma only
      and chroma continues to use MSE.
      
      Change-Id: If35fdd3aec7efe401f351ba1c99891ad57a3d957
      7a428ba2
  26. 15 Dec, 2016 1 commit
    • Jingning Han's avatar
      Remove the use case of bmi->as_mode · d7d20477
      Jingning Han authored
      Remove the use case of bmi->as_mode in cb4x4 mode. Its function is
      covered by 4x4 level mode_info.
      
      Change-Id: I04abc1b7a0a97c12c3b6fddc1f16f7045512772e
      d7d20477
  27. 09 Dec, 2016 1 commit
    • hui su's avatar
      Add intra-interp experiment flag · eda3d764
      hui su authored
      intra-interp experiment allows intra prediction to use different
      interpolation filters. It was part of the ext-intra in the nextgenv2
      branch.
      
      Change-Id: I27ab692494dc79bb92e457dbf9a72988577f1c6d
      eda3d764
  28. 05 Dec, 2016 1 commit
  29. 02 Dec, 2016 1 commit
    • Jingning Han's avatar
      Refactor transform block operating loop · a9eae87e
      Jingning Han authored
      Control the loop over transform blocks in the unit of smallest
      transform block size. This would provide scalability to support
      smaller transform block sizes.
      
      Change-Id: I6a8167cf91f71c5d4af4e244c628f378866a607c
      a9eae87e
  30. 21 Nov, 2016 1 commit
    • iole moccagatta's avatar
      Add coef_interleave experiment · f25a4cf9
      iole moccagatta authored
      This commit adds an experiment to interleave the coding of transform
      coefficients from YUV planes.  The experiment can be enabled at config
      time by --enable-coef-interleave.
      
      Change-Id: Ifd92f9c367304bca9732f13fa026eb8996363677
      f25a4cf9
  31. 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
  32. 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
  33. 25 Oct, 2016 1 commit
    • Jingning Han's avatar
      Refactor tx_size use cases in blockd.c · 95cff5c9
      Jingning Han authored
      Use table to replace the arithmetic computation for mapping between
      transform block and pixel number. Support automatic scale of block
      size and transform block size.
      
      Change-Id: I84766850172265d4295f418383dbc5e6e5838ec8
      95cff5c9
  34. 24 Oct, 2016 1 commit
  35. 21 Oct, 2016 1 commit
  36. 20 Oct, 2016 1 commit
    • hui su's avatar
      Seperate FILTER_INTRA from EXT_INTRA experiment · 5db9743f
      hui su authored
      Prepare for the av1/nextgenv2 merge.
      
      Coding gain (%):
      
                     lowres     midres
      ext-intra       0.69       0.97
      filter-intra    0.67       0.83
      both            1.05       1.48
      
      Change-Id: Ia24d6fafb3e484c4f92192e0b7eee5e39f4f4ee6
      5db9743f
  37. 02 Sep, 2016 1 commit
  38. 01 Sep, 2016 1 commit
    • Jingning Han's avatar
      Refactor tx_size use cases in blockd.c · 7332ae06
      Jingning Han authored
      Use table to replace the arithmetic computation for mapping between
      transform block and pixel number.
      
      Change-Id: Ica71af9891bb9ab8f0bab30794e1021066d57d64
      7332ae06