1. 18 Feb, 2017 1 commit
  2. 16 Feb, 2017 1 commit
  3. 13 Feb, 2017 1 commit
  4. 04 Feb, 2017 1 commit
  5. 31 Jan, 2017 1 commit
    • Urvang Joshi's avatar
      Fix segmentation fault when encoding all keyframes (kf-max-dist=0). · d803cb96
      Urvang Joshi authored
      The issue was that:
      - We call av1_setup_pre_planes() when this is not an intra-only frame,
      but,
      - But, we do motion vector search for any frame other than first frame
      Doing both of these only when this is not an intra-only frames makes
      logical sense and fixes the crash too.
      
      This also avoids doing motion search for intra-only frames in the first
      pass.
      
      Verified that there is no change in compression performance for video,
      as well as when forcing all keyframes.
      
      BUG=aomedia:133
      
      Change-Id: I7b18c0568eaa29c6c97f31f226243e5a9dbaecf1
      d803cb96
  6. 23 Jan, 2017 1 commit
    • Emil Keyder's avatar
      Rename NONE to NONE_FRAME. · 01770b3e
      Emil Keyder authored
      This follows the naming for the other frame types, and allows libaom
      to be compiled against other libraries that also #define NONE.
      
      Change-Id: Ic2e2814587bbc5ea67385a9af775396d29b7dde0
      01770b3e
  7. 05 Jan, 2017 1 commit
    • Nathan E. Egge's avatar
      Replace od_ec_enc with aom_writer in daala_enc_ctx. · 6675be0a
      Nathan E. Egge authored
      Use the generic AOM entropy encoder in the daala_enc_ctx struct.
      This is done in preparation for migrating other entropy coder calls to
       use the more generic entropy coding API.
      
      Change-Id: Id627d12402a397bcb21d48d896c0de249d4d8657
      6675be0a
  8. 14 Dec, 2016 1 commit
  9. 07 Dec, 2016 2 commits
    • Jingning Han's avatar
      Refactor set_plane_n4() · faad0e12
      Jingning Han authored
      Make the block size and mode_info size scalable to mode_info unit
      size.
      
      Change-Id: I38c49bad118e0565a104cb6edfc3e3266519f9ee
      faad0e12
    • Jingning Han's avatar
      Separate num_8x8 table use case from mode_info table · c709e1f8
      Jingning Han authored
      Separate the use cases of number of 8x8 blocks from those of
      mode_info array. This allows the mode_info array processing to be
      scaled to 4x4 resolution.
      
      Change-Id: Iab78f2540355ce7658d9ea21e902a86f71148d8f
      c709e1f8
  10. 06 Dec, 2016 1 commit
    • David Barker's avatar
      Improve rdopt decisions for ext-inter · ac37fa3d
      David Barker authored
      Relative to previous ext-inter:
      lowres: -0.177%
           or -0.029% (with USE_RECT_INTERINTRA = 0)
      
      * When predicting interintra modes, the previous code did not provide
        the intra predictor with the correct context during rdopt. Add an
        explicit 'ctx' parameter to the relevant functions, to provide this
        context.
        This fixes a nondeterminism bug, which was causing test failures in
        *EncoderThreadTest*
      
      * For rectangular blocks, build_intra_predictors_for_interintra needs
        to overwrite part of the context buffer in order to set up the
        correct context for intra prediction. We now restore the original
        contents afterwards.
      
      * Add a flag to enable/disable rectangular interintra prediction;
        disabling improves encoding speed but reduces BDRATE improvement.
      
      Change-Id: I7458c036c7f94df9ab1ba0c7efa79aeaa7e17118
      ac37fa3d
  11. 29 Nov, 2016 1 commit
    • Angie Chiang's avatar
      Add av1_convolve_init() · e067de00
      Angie Chiang authored
      Generate simd filter structure in av1_convolve_init()
      This will provide flexibility of changing filter coefficients.
      
      Change-Id: If79f84c56483aa08c894d6b12e2b6ce10147f0ce
      e067de00
  12. 08 Nov, 2016 2 commits
  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. 25 Oct, 2016 1 commit
    • Angie Chiang's avatar
      adapt_scan experiment · ed8cd9a9
      Angie Chiang authored
      Performance improvement
              BDRate
      lowres  0.921%
      midres  0.730%
      hdres   1.019%
      
      Change-Id: I26208d6c0531937bff44de505b4ea355c7852802
      ed8cd9a9
  16. 24 Oct, 2016 2 commits
    • 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
  17. 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
  18. 20 Oct, 2016 1 commit
    • Zoe Liu's avatar
      Sync with aom branch for ext-refs · 6cfaff95
      Zoe Liu authored
      Plus a small code clean up. The experiment of EXT_REFS, compared against
      the baseline, using Overall PSNR, now obtains a gain on lowres as:
      Avg: -5.818; BDRate: -5.653
      
      Compared against the previous EXT_REFS results on lowres, a tiny gain is
      obtained as:
      Avg: -0.047, BDRate: -0.063
      
      (1) 780952 Add encoder first pass support to bi-prediction in EXT_REFS
      (2) f91498 Add pred prob handling for new references in EXT_REFS
      (3) e91472 Add decoder support for bi-direct prediction in EXT_REFS
      (4) 0dbac9 Add encoder support to new references in EXT_REFS
      (5) ad70cc Remove hard-coded number for EXT_REFS
      (6) 9c1e2f Add the use of new reference frames at encoder in EXT_REFS
      (7) 6d4fde Add the experiment flag of EXT_REFS
      
      Change-Id: I26f7ca45b9ede7579fdb9d0d6a1a91f4334599bd
      6cfaff95
  19. 19 Oct, 2016 1 commit
  20. 14 Oct, 2016 1 commit
  21. 13 Oct, 2016 1 commit
    • Zoe Liu's avatar
      Clean code a bit and fix a couple of small bugs in ext-refs · f0e4669e
      Zoe Liu authored
      Currently the patch does not have any impact on the RD performance. The
      fix could however potentially help on the next step of work, especially
      when the extra altref frames allow non-zero temporal filtering strength
      and their corresponding OVERLAY frames, i.e. the INTNL_OVERLAY frames
      are being added.
      
      Change-Id: I2e07fb3d0aa547a0b5dd05bb4ba865cd46309076
      f0e4669e
  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. 21 Sep, 2016 2 commits
    • Angie Chiang's avatar
      Turn on adaptive scan order · 380fecd6
      Angie Chiang authored
      Change-Id: I43b3ce9bdee07107cbb5bc4b1ab216b3f0c5295d
      380fecd6
    • 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
  24. 02 Sep, 2016 1 commit
  25. 01 Sep, 2016 2 commits
  26. 24 Aug, 2016 1 commit
  27. 23 Aug, 2016 2 commits
    • Yue Chen's avatar
      Make rectangular txfm in EXT_TX work with VAR_TX · e57b1a5e
      Yue Chen authored
      Adapt rectangular txfm experiment to syntax/tokenization/loopfilter
      framework of VAR_TX
      
      Change-Id: Idcb005ecf5b3712de3e1cccb0d811ca16d87af24
      e57b1a5e
    • Wei-ting Lin's avatar
      Allow LF_UPDATE type of frames to use BWDREF · 4e8acca9
      Wei-ting Lin authored
      Originally, only bi-pred type of frames can use BWDREF. When
      extra alt-refs are inserted in a gf group, the closest alt-ref
      serves as ALTREF for the frames within the corresponding
      subgroup. Therefore, the original alt-ref can be used as BWDREF
      for the LF_UPDATE type of frames.
      
      This patch further swaps the virtual indices of BWDREF and ALTREF
      for those frames whose BWDREF is farther than ALTREF. As a result,
      the BWDREF is always the closet backward reference frame, and the
      ALTREF is the farther one.
      
      It improves the average RD performance by
      
      0.132% in lowres, and
      0.030% in midres.
      
      The overall gains for the ext-refs compared to the baseline are
      
      5.486% in lowres, and
      4.666% in midres.
      
      Change-Id: I22e4e5f378f19c4c89196a0a5e9214adb46c3428
      4e8acca9
  28. 22 Aug, 2016 1 commit
  29. 19 Aug, 2016 1 commit
    • Wei-ting Lin's avatar
      Insert extra ARFs' in a gf group · 41d5d52d
      Wei-ting Lin authored
      Insert multiple arfs in a gf group to emulate multi-layer backward
      reference frames structure. At maximum, two extra ARF's are inserted
      in a gf group.
      
      It improves the RD performance by 0.317% in Avg in lowres dataset.
      
      Change-Id: I62c32e1b0f25b978484dd113b319bebcd959bf60
      41d5d52d
  30. 16 Aug, 2016 1 commit
    • Wei-ting Lin's avatar
      Change the B-frame coding structure. · b20d0777
      Wei-ting Lin authored
      Originally we can have a BRF right before an overlay frame (in
      display order), which might be unnecessary since we already has a
      quality backward reference frame (ARF).
      This patch avoids such a coding structure and improves the RD
      performance by 0.086% in Avg in the lowres dataset, and 0.153 in
      Avg in the midres dataset.
      
      In the lowres dataset, significant gains are obtained for the
      following sequences:
      
      mobisode2_240p: 0.563%
      keiba_240p: 0.440%
      bus_cif: 0.336%
      soccer_cif: 0.333%
      
      And the performance drops only in the following four video sequences:
      
      motherdaughter_cif: 0.028%
      bqsquare_240p: 0.017%
      basketballpass_240p: 0.015%
      bowing_cif: 0.006%
      
      Change-Id: Ic94f648ba8e52eb0014933d484fb247610a9ae05
      b20d0777
  31. 12 Aug, 2016 1 commit
  32. 29 Jul, 2016 1 commit
  33. 19 Jul, 2016 1 commit
    • Wei-ting Lin's avatar
      Allow OVERLAY frames to use the show_exsiting_frame flag · ccc9e7cf
      Wei-ting Lin authored
      ARF with zero strength temporal filter can be reused by setting the
      show_existing_frame = 1, and in this case, there is no need to
      refresh the reference frame buffer. However, we used the flag
      "refresh_golden_frame" as the identifier for the starting point of a gf
      group.
      
      A new flags "is_arf_filter_off" is used to record if the filter with
      strengrh zero is used.
      
      Change-Id: I25971a760f6e1638d5147fe30488c48125512b1a
      ccc9e7cf