1. 12 May, 2017 1 commit
  2. 06 May, 2017 1 commit
  3. 05 May, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] Alpha signaling · f533400a
      Luc Trudeau authored
      Writes and reads alpha to and from the bitstream.
      
      A special case is needed on the encoder side to handle prediction block
      skips. Since whether or not a prediction block is skipped during CfL, a
      rollback is required if the block was skipped and the alpha index was
      not zero. The advantage of this is that no signaling is required when
      the prediction block is skipped as it is assumed tha the alpha index is
      zero.
      
      A encode facade is added to the intra prediction facade as CfL requires
      special encoder side operations.
      
      Change-Id: Ic3b11d0fdbd51389d862112eb09d8785127a6b06
      f533400a
  4. 24 Apr, 2017 1 commit
  5. 12 Apr, 2017 1 commit
    • Timothy B. Terriberry's avatar
      pvq: Remove support for disabling nodesync. · 44bb6d06
      Timothy B. Terriberry authored
      This was broken by commit 1238137c.
      
      When calling the generic coder with a max, it truncates the CDF, but
      then tries to encode/decode with the Q15 entropy coder functions
      with built-in adaptation. That causes assertion failures, because the
      total probability isn't 32768.
      
      We could fix it by re-scaling the CDF, and then doing adaptation
      assuming there was no max, but that requires several special-case
      code paths.
      
      Instead, since non-robust streams were the only thing that still
      required calling the generic coder with a max, and since the gain
      from them is very small (and they require doing more DSP just to be
      able to parse the stream), we simply remove the option and force
      the use of robust streams all the time.
      
      With robust streams enabled, encoder output should not change, and
      all streams should remain decodable without decoder changes.
      
      Thanks to Nathan Egge for reporting the problem.
      
      Change-Id: I6c81481abb796688bf703d68f164d208e6a69f20
      44bb6d06
  6. 07 Apr, 2017 1 commit
  7. 04 Apr, 2017 1 commit
  8. 24 Mar, 2017 2 commits
  9. 22 Mar, 2017 1 commit
  10. 18 Feb, 2017 1 commit
  11. 26 Jan, 2017 1 commit
    • ltrudeau's avatar
      Convert PVQ skip variable to enum · e1c0929f
      ltrudeau authored
      Creates the PVQ_SKIP_TYPE enum to encapsulate the different types of
      skipping that can be signaled by PVQ (i.e. skip: AC, DC or both).
      
      There is no impact on the bitstream. However, the decoder will now emit
      an internal error if the decoded skip flag is out of range. The
      block_skip variable is also renamed to ac_dc_coded as it stores the same
      information.
      
      Change-Id: Ib2aadaf99dc1736ea392ae5ed8948c3cdc12da9b
      e1c0929f
  12. 29 Nov, 2016 1 commit
  13. 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
  14. 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
  15. 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
  16. 30 Sep, 2016 1 commit
  17. 21 Sep, 2016 1 commit
    • 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
  18. 02 Sep, 2016 1 commit
  19. 01 Sep, 2016 2 commits
  20. 12 Aug, 2016 1 commit
  21. 27 Jun, 2016 1 commit
  22. 24 Jun, 2016 1 commit
  23. 14 Jun, 2016 1 commit
    • Jingning Han's avatar
      Rework transform quantization pipeline · 1faf2887
      Jingning Han authored
      This commit reworks the transform and quantization unit. It enables
      the use of adaptive quantization for intra modes. This further
      improves the compression performance:
      lowres 0.36%
      midres 0.79%
      hdres  0.73%
      
      The key frame coding performance is improved:
      lowres 1.7%
      midres 1.9%
      hdres  3.3%
      
      The overall coding gains are:
      lowres 1.1%
      midres 1.8%
      hdres  2.3%
      
      Change-Id: Iaec1a3a4c1d5eac883ab526ed076d957060479dd
      1faf2887
  24. 10 Jun, 2016 2 commits
    • Jingning Han's avatar
      Trellis based adaptive quantization · 25ca3229
      Jingning Han authored
      This commit combines uniform quantizer with trellis based coefficient
      level optimization. It improves the codebase compression performance:
      
      lowres 0.8%
      midres 1.0%
      hdres  1.6%
      
      Note that the current trellis optimization unit is using C code. This
      will make the cost of the overall quantization process slower. A number
      of optimizations will come up next.
      
      Change-Id: Id441dd238e4844409d0f08f82604be777f3f5282
      25ca3229
    • Sarah Parker's avatar
      Move new quant experiment from nextgen · a21afd42
      Sarah Parker authored
      This experiment implements non-uniform quantization where
      the width of the bins increases gradually to more closely
      match a laplacian distribution of the coeficcients.
      
      Performance Gain:
      derflr: 0.15%
      hevcmr: 0.675%
      
      Change-Id: I25234244e3bcd94b87c1f77cf682190b61c8ef94
      a21afd42
  25. 19 Apr, 2016 1 commit
  26. 22 Mar, 2016 1 commit
    • Yaowu Xu's avatar
      vp10/ -> av1/ · cfea7dd7
      Yaowu Xu authored
      Change-Id: Ia055d03656ad1580447eced8687949583fdf4089
      cfea7dd7
  27. 28 Jan, 2016 1 commit
  28. 21 Jan, 2016 1 commit
  29. 05 Jan, 2016 1 commit
    • Debargha Mukherjee's avatar
      Super transform - ported from nextgen branch · 3787b174
      Debargha Mukherjee authored
      Various additional changes were made to make the experiment
      compatible with misc_fixes.
      
      derflr: +0.979%
      hevcmr: +0.865%
      
      Speed-wise with --enable-supertx the encoder is only about 10%
      slower than without. Decoding impact is about 30% slowdown.
      
      Note this does not work with ext-tx or var-tx yet. That is
      a TODO.
      
      Change-Id: If25af4241a7a9efbd28f58eda3c4f044c7a7ef4b
      3787b174
  30. 11 Dec, 2015 1 commit
    • Angie Chiang's avatar
      Refactor vp10_encode_block_intra · 0919edd4
      Angie Chiang authored
      1) Add VP10_XFORM_QUANT_SKIP_QUANT mode for vp10_xform_quant
      2) Let encode_block call vp10_xform_quant so that its code flow
         is clear
      
      Change-Id: I122d5cf6a089f444ae018f3e4bf844be847e17ee
      0919edd4
  31. 03 Dec, 2015 1 commit
    • Angie Chiang's avatar
      Refactor vp10_xform_quant · 88cae8b4
      Angie Chiang authored
      1) Add facade to quantize b/fp/dc version so that their interface
         are the same.
      2) Merge vp10_xform_quant b/fp/dc version to one function so that
         the code flow in encodemb.c is clear
      
      Change-Id: Ib62d6215438fc2d07f4e7e72393f964832d6746f
      88cae8b4
  32. 25 Nov, 2015 1 commit
    • Angie Chiang's avatar
      Create hybrid_fwd_txfm.c · 96baa73e
      Angie Chiang authored
      Move txfm functions from encodemb to hybrid_twd_txfm.c
      to make encodemb's code flow clear
      
      Change-Id: If174d8ddb490d149c103e5127d30ef19adfbed13
      96baa73e
  33. 09 Nov, 2015 1 commit
    • Johann's avatar
      Release v1.5.0 · cbecf57f
      Johann authored
      Javan Whistling Duck release.
      
      Change-Id: If44c9ca16a8188b68759325fbacc771365cb4af8
      cbecf57f
  34. 23 Oct, 2015 1 commit
    • Jingning Han's avatar
      Use explicit block position in foreach_transformed_block · caeb10bf
      Jingning Han authored
      Add the row and column index to the argument list of unit functions
      called by foreach_transformed_block wrapper. This avoids the
      repeated internal parsing according to the block index.
      
      Change-Id: Ie7508acdac0b498487564639bc5cc6378a8a0df7
      caeb10bf
  35. 07 Oct, 2015 2 commits