1. 29 Sep, 2017 1 commit
    • Angie Chiang's avatar
      Generate scan order one frame earlier · fabbd7eb
      Angie Chiang authored
      This should relief the concern of latency incurred by generating
      scan order
      
      The performance on lowres and midres remains neutral
      
      Change-Id: If155f055540126ee834f5be1ab4b23013090ee89
      fabbd7eb
  2. 20 Sep, 2017 1 commit
    • Jingning Han's avatar
      Customize prob model control for lv-map · b3c189b9
      Jingning Han authored
      Make the probability model update system better customized for the
      level map coding scheme. This improves the level map coding
      performance by 0.2% for lowres and 0.1% for midres.
      
      Change-Id: Ib6d3abb36d50ff7485c4ceb411fe94e8fb060416
      b3c189b9
  3. 10 Sep, 2017 1 commit
    • Jingning Han's avatar
      Rework base range entropy coding in level map system · 87b01b5a
      Jingning Han authored
      Replace the truncated geometric distribution model with the grouped
      leaves structure for more efficient probability modeling.
      Each group has its own Geometric distribution
      
      This give us 0.2% gain on lowres
      
      Change-Id: If5c73dd429bd5183a8aa81042f8f56937b1d8a6a
      87b01b5a
  4. 05 Sep, 2017 1 commit
    • Timothy B. Terriberry's avatar
      Remove the EC_SMALLMUL experimental flag. · f9ef4f6b
      Timothy B. Terriberry authored
      This experiment has been fully adopted and is now an integral part
      of the draft AV1 bitstream definition.
      
      objdump -d libaom.a gives identical output before and after this
      patch.
      
      Change-Id: I6f936f4b10de23a9471e0ccadf9cf178fb62be69
      f9ef4f6b
  5. 22 Aug, 2017 1 commit
  6. 11 Jul, 2017 1 commit
    • Nathan E. Egge's avatar
      Remove the EC_ADAPT experimental flags. · 6bdc40f1
      Nathan E. Egge authored
      Removing these flags make the EC_ADAPT experiment an integral part of
       the draft AV1 bitstream definition
      This commit has no effect on metrics.
      
      Change-Id: Ice78520935e8bfa9d25cf4b8384a1b872069d09c
      6bdc40f1
  7. 25 May, 2017 1 commit
  8. 20 May, 2017 1 commit
  9. 18 Apr, 2017 1 commit
    • Timothy B. Terriberry's avatar
      ec_smallmul: Convert CDFs to iCDFs. · f6c807c5
      Timothy B. Terriberry authored
      Hoists the iCDF conversion outside of the daala code.
      We directly store 32768 - cdf[i] in each cdf, to avoid having to
      convert the whole array every time a symbol is coded.
      
      This works with ec_multisymbol, new_tokenset, and ec_adapt.
      
      Compared to Change-Id Idbbd3743e9189146cb519d5b984bdabd69e3f4c0,
      this improves decoder runtimes by 1.15% at QP=55 and 2.64% at
      QP=20.
      
      The overall slowdown of ec_smallmul is now 0.12% at QP=55 and
      0.44% at QP=20.
      
      Encoder output should not change, and all streams should remain
      decodable without decoder changes.
      
      Change-Id: I06b8b75b667bb1bc4ddffc78f895e48a09f4c578
      f6c807c5
  10. 25 Mar, 2017 1 commit
    • Jingning Han's avatar
      Fix tree to cdf index mapping · 8e67c05f
      Jingning Han authored
      This fixes the mis-aligned cdf model derived from tree based
      model. It resolves the compression performance regression in
      dual filter, intra mode, inter mode, and transform block type
      coding, when ec-multisymbol is enabled by default.
      
      With dual filter enabled, the performance regression was 3.6%
      loss for lowres. This fix brings the performance gains back to 1%
      gains.
      
      Change-Id: I80f5485386045908c152c9c11eeacbc650f1e324
      8e67c05f
  11. 20 Mar, 2017 1 commit
  12. 15 Mar, 2017 1 commit
    • Thomas Davies's avatar
      EC_ADAPT: Perform backwards updates directly on CDFs. · 028b57f5
      Thomas Davies authored
      The initial CDF for each frame is stored in
      the frame context. CDFs for actual coding are
      stored in the tile structures, and these are
      what get adapted. The initial CDF is replaced
      by an average CDF derived from these tile CDFs.
      This is carried forward to future frames when
      backward adaptation is on.
      
      CDFs are no longer set from the 8 bit probabilities
      in backwards adaptation.
      
      For now, 8 bit probabilities are maintained for
      use in the encoder and for symbols which do not
      have a CDF.
      
      Change-Id: I106b30510bfad1fa57d077f7702acc1864378a09
      028b57f5
  13. 01 Mar, 2017 1 commit
    • James Zern's avatar
      get_prob(): rationalize int types · 5f8361a7
      James Zern authored
      promote the unsigned int calculation to uint64_t rather than int64_t for
      type consistency
      
      cherry-picked from libvpx:
      47d6f16a0 get_prob(): rationalize int types
      
      Change-Id: Ic34dee1dc707d9faf6a3ae250bfe39b60bef3438
      5f8361a7
  14. 24 Feb, 2017 4 commits
  15. 16 Feb, 2017 1 commit
  16. 02 Feb, 2017 2 commits
  17. 13 Jan, 2017 1 commit
  18. 01 Nov, 2016 1 commit
  19. 30 Oct, 2016 2 commits
    • Thomas Davies's avatar
      EC_ADAPT: improved symbol adaptation. · f6c04aca
      Thomas Davies authored
      Place a floor under symbol probabilities and
      modify adaptation rate.
      
      Change-Id: Ic9cf6d9fadfc3bf1f3027bc3d2bb198526441591
      f6c04aca
    • Alex Converse's avatar
      Add ec_multisymbol for common daala_ec and rans code · aca9feba
      Alex Converse authored
      The new ec_multisymbol experiment supersedes the rans experiment and is
      used for multisymbol features that can be backed by either daala_ec or
      rans.
      
      This experiment is automatically enabled by ec_adapt and will try to
      enable daala_ec or ans (in that order).
      
      Change-Id: Ie75b4002b7a9d7f5f7b4d130c1aacb3dbe97e54f
      aca9feba
  20. 29 Oct, 2016 1 commit
    • Thomas's avatar
      Add EC_ADAPT experiment for symbol-adaptive entropy coding. · 9ac5508f
      Thomas authored
      This experiment performs symbol-by-symbol statistics
      adaptation for non-binary symbols. It requires DAALA_EC or
      RANS and ANS to be enabled. The adaptation is currently
      based on a simple recursive filter and is taken from
      Daala. It has an adaptation rate dependent on alphabet size,
      taken from Daala. It applies wherever non-binary symbols
      are encoded using Cumulative Probability Functions rather
      than trees.
      
      Where symbols are adapted, forward updates in the compressed
      header are removed.
      
      In the case of RANS coefficient token values are adapted,
      with the exception of the zero token which remains a
      binary symbol. In the case of DAALA_EC other values
      such as inter and intra modes are adapted as CDFs are
      provided in those cases.
      
      The experiment is configured with:
      
      ./configure --enable-experimental --enable-daala-ec --enable-ec-adapt
      
      or
      
      ./configure --enable-experimental --enable-ans --enable-rans \
          --enable-ec-adapt
      
      EC_ADAPT is not currently compatible with tiles.
      
      BDR results on Objective-1-fast give a small loss:
      
      PSNR YCbCr:      0.51%      0.49%      0.48%
      PSNRHVS:      0.50%
      SSIM:      0.50%
      MSSSIM:      0.51%
      CIEDE2000:      0.50%
      
      Change-Id: I3888718e42616f3fd87144de7f125228446ac984
      9ac5508f
  21. 27 Oct, 2016 1 commit
  22. 21 Oct, 2016 1 commit
  23. 20 Oct, 2016 1 commit
    • Alex Converse's avatar
      Add ec_multisymbol for common daala_ec and rans code · f2753c34
      Alex Converse authored
      The new ec_multisymbol experiment supersedes the rans experiment and is
      used for multisymbol features that can be backed by either daala_ec or
      rans.
      
      This experiment is automatically enabled by ec_adapt and will try to
      enable daala_ec or ans (in that order).
      
      Change-Id: Ie75b4002b7a9d7f5f7b4d130c1aacb3dbe97e54f
      f2753c34
  24. 18 Oct, 2016 1 commit
  25. 14 Oct, 2016 4 commits
    • Nathan E. Egge's avatar
      Move av1_indices_from_tree() to common code space. · 8abf8673
      Nathan E. Egge authored
      Move the av1_indices_from_tree() function from av1/encoder/treewriter.c
       to aom_dsp/prob.c so that it can be used by both the encoder and
       the decoder.
      
      Change-Id: Ie43c599f425c3503b1ff93f0c77b5033a05b1bb4
      8abf8673
    • Nathan E. Egge's avatar
      Fix bug in av1_tree_to_cdf_2D() macro. · 439c5025
      Nathan E. Egge authored
      Change-Id: Ic04e180b09745fab2230d05985770c41deea4fad
      439c5025
    • Nathan E. Egge's avatar
      Add macro to build a simple cdf table. · e2ed4118
      Nathan E. Egge authored
      Add the av1_tree_to_cdf() macro which takes a aom_tree_index tree and
       associated aom_prob probabilities and constructs a daala uint16_t cdf.
      The av1_tree_to_cdf_1D() and av1_tree_to_cdf_2D() apply av1_tree_to_cdf()
       across 1D and 2D arrays respectively.
      
      Change-Id: If79fa5ae034263f279d7d0842493570885272fb2
      e2ed4118
    • Nathan E. Egge's avatar
      Use Daala entropy coder to code trees. · 43acafde
      Nathan E. Egge authored
      When building with --enable-daala_ec, calls to aom_write_tree() and
       aom_read_tree() will convert a aom_tree_index structure with associated
       aom_prob probabilities into a CDF on the fly for use with the
       od_ec_encode_cdf_q15().
      The number of symbols in the CDF is capped at 16, and trees that contain
       more than 16 leaf nodes are handled by splitting the most likely, e.g.,
       highest probability symbols, first and coding multiple symbols if
       necessary.
      
      ntt-short-1:
      
               MEDIUM (%) HIGH (%)
          PSNR 0.000227   0.000213
       PSNRHVS 0.000215   0.000205
          SSIM 0.000229   0.000209
      FASTSSIM 0.000229   0.000214
      
      subset1:
      
                RATE (%)  DSNR (dB)
          PSNR -0.00026   0.00002
       PSNRHVS -0.00026   0.00002
          SSIM -0.00026   0.00001
      FASTSSIM -0.00026   0.00001
      
      Change-Id: Icb1a8cb854fd81fdd88fbe4bc6761c7eb4757dfe
      43acafde
  26. 13 Oct, 2016 1 commit
  27. 06 Oct, 2016 1 commit
  28. 04 Oct, 2016 1 commit
    • Thomas's avatar
      Add EC_ADAPT experiment for symbol-adaptive entropy coding. · b0112dfd
      Thomas authored
      This experiment performs symbol-by-symbol statistics
      adaptation for non-binary symbols. It requires DAALA_EC or
      RANS and ANS to be enabled. The adaptation is currently
      based on a simple recursive filter and is taken from
      Daala. It has an adaptation rate dependent on alphabet size,
      taken from Daala. It applies wherever non-binary symbols
      are encoded using Cumulative Probability Functions rather
      than trees.
      
      Where symbols are adapted, forward updates in the compressed
      header are removed.
      
      In the case of RANS coefficient token values are adapted,
      with the exception of the zero token which remains a
      binary symbol. In the case of DAALA_EC other values
      such as inter and intra modes are adapted as CDFs are
      provided in those cases.
      
      The experiment is configured with:
      
      ./configure --enable-experimental --enable-daala-ec --enable-ec-adapt
      
      or
      
      ./configure --enable-experimental --enable-ans --enable-rans \
          --enable-ec-adapt
      
      EC_ADAPT is not currently compatible with tiles.
      
      BDR results on Objective-1-fast give a small loss:
      
      PSNR YCbCr:      0.51%      0.49%      0.48%
      PSNRHVS:      0.50%
      SSIM:      0.50%
      MSSSIM:      0.51%
      CIEDE2000:      0.50%
      
      Change-Id: I3888718e42616f3fd87144de7f125228446ac984
      b0112dfd
  29. 02 Sep, 2016 1 commit
  30. 01 Sep, 2016 2 commits
  31. 10 Aug, 2016 1 commit