1. 01 Feb, 2018 2 commits
  2. 31 Jan, 2018 1 commit
    • Hui Su's avatar
      Reduce memory usage of inter_tx_size[] in MB_MODE_INFO · 1379beb7
      Hui Su authored
      Reduce the length of inter_tx_size[] from 1024 to 16.
      On a cif test sequence,
      encoder memory consumption decreases by 18% (380MB -> 312MB);
      decoder memory consumption decreases by 56% (21.4MB -> 9.4MB).
      Change-Id: Ie11dd055255d200954b704b8c2ad8ca3dff7bf5c
  3. 30 Jan, 2018 1 commit
  4. 26 Jan, 2018 3 commits
    • Maxym Dmytrychenko's avatar
      SSE2 optimizations for _6/_16 lowbd lpf functions · ae6e6bc1
      Maxym Dmytrychenko authored
      Includes vertical and horizontal implementations
      and to fix 5/13 TAPs/Parallel deblocking support.
      Re-working internals of the filters for better
      re-usage across different sizes.
      Tests are enabled.
      Performance changes, SSE2 over C:
      Horizontal methods: up to    3-4x
      Vertical   methods: up to 1.5x-2x
      Change-Id: I2e36035355d8c23c1d4b0d59d0e23f598e9d0e3f
    • Yi Luo's avatar
      Fix loopfilter function usage · 31791278
      Yi Luo authored
      Here we should use aom_lpf_horizontal_16 function instead of
      aom_lpf_horizontal_16_dual function.
      aom_lpf_horizontal_16_dual works for two horizontal blocks,
      also fixed.
      Change-Id: Icc991d3f98bb182fa30497f120021aeb17839d21
    • Yaowu Xu's avatar
      Remove const from parameter passed-by-value · 838ea62c
      Yaowu Xu authored
      This makes the usage of const consistent.
      Change-Id: I0ebf59842d8df234d0f4a91636b4bc2d6e9a6c81
  5. 23 Jan, 2018 1 commit
    • Imdad Sardharwalla's avatar
      Don't calculate chroma data in monochrome mode · af8e2648
      Imdad Sardharwalla authored
      Encoder: Prior to this patch, some chroma data was calculated and
      later discarded when in monochrome mode. This patch ensures that
      the chroma planes are left uninitialised and that chroma
      calculations are not performed.
      Decoder: Prior to this patch, some chroma calculations were still
      being performed in monochrome mode (e.g. loop filtering). This
      patch ensures that calculations are only performed on the y
      plane, with the chroma planes being set to a constant.
      Change-Id: I394c0c9fc50f884e76a65e6131bd6598b8b21b10
  6. 17 Jan, 2018 1 commit
    • Frank Bossen's avatar
      Move boundary info into separate data structure · 768d660e
      Frank Bossen authored
      Reduces cache misses in the decoder and hence reduces run time.
      Run time reduction has been measured to be about 15% for HD (1080p)
      Change-Id: Ic42de04e0943c0f89c856b61fe174dcea96af5e5
  7. 11 Jan, 2018 1 commit
    • David Barker's avatar
      Fix a bug in loopfiltering-across-tiles(-ext) · 9716af45
      David Barker authored
      Commit https://aomedia-review.googlesource.com/c/aom/+/39985
      changed the deblock filter for subsampled planes, so that
      we always look at the bottom-right mi unit in each 8x8 luma
      pixel unit. This fixed some issues around determining which
      blocks are inter/skip/etc.
      However, this introduced a different bug - the boundary info
      ("are we allowed to filter across the top/left edge of this block?")
      is stored in the *top-left* mi unit in each 8x8 luma pixel unit.
      But now we we're looking at the bottom-right unit, which always says
      it's fine to filter across the top and left boundaries! Thus the
      deblock filter effectively ignored the
      loop_filter_across_tiles_enabled flag(s).
      Fix this issue by looking up the boundary info from the top-left
      block in each unit; the other information is still taken from
      the bottom-right.
      Change-Id: I626ea3358563641a2532ee9c5968fb54bdc78e34
  8. 03 Jan, 2018 1 commit
    • Ryan's avatar
      fix a bug for chroma mi block calculation in deblocking filter · eb3be221
      Ryan authored
      for sub8x8 block, chroma prediciton mode is obtained from the
      bottom/right mi structure of the co-located 8x8 luma block. so for
      chroma plane, mi_row and mi_col should map to the bottom/right mi
      structure, i.e, both mi_row and mi_col should be odd number for chroma
      plane. the original implementaiton always map to the top/left mi
      structure of the co-located 8x8 block. this patch fixes that.
      Change-Id: Id5482c5a61828e3c13adb985bd2f0606eb05a3bd
  9. 27 Dec, 2017 1 commit
  10. 24 Dec, 2017 1 commit
  11. 22 Dec, 2017 3 commits
  12. 20 Dec, 2017 1 commit
  13. 19 Dec, 2017 1 commit
    • Lei's avatar
      add new experiment loopfiltering_across_tiles_ext · 7bb501d5
      Lei authored
      based on the latest discussion in the HW working group about how loop
      filter should be integrated with tiles, the following decisions have been
      1. two seperated flages should be added for
      loop_filter_across_tiles_enabled for horizontal tile boundary and
      vertical tile boundary.
      2. encoder and decoder should only check these two flags to determine
      whether loop filtering (including deblocking, CDEF and loop restoration)
      should cross tile boundaries (vertical and/or horizontal) or not
      regardless the horitontal depepdent tile flag.
      This change list implemented the support for two seperated
      loop_filter_across_tiles_enabled flags for vertical and horizontal tile
      boundaries. The new experiment is disabled as default before it is
      Change-Id: I814377947517f5419c08b004a3b71b950d01eadd
  14. 18 Dec, 2017 1 commit
  15. 15 Dec, 2017 1 commit
  16. 12 Dec, 2017 1 commit
    • Cheng Chen's avatar
      Make lpf_sb work with loopfilter_level · 765e34e3
      Cheng Chen authored
      Make lpf_sb compatible with loopfilter_level, when USE_GUESS_LEVEL = 1.
      Filter levels will be selected based on q index and applied for
      filtering on Y, U, V planes separately.
      Current model only allows to guess one filter level.
      Now Y_vert = Y_horz = U = V. In the future, we need to retrain the
      model and get filter levels for Y_vert, Y_horz, U and V separately.
      When USE_GUESS_LEVEL = 0, lpf_sb can't work with loopfilter_level yet.
      Change-Id: Icd774a147c07a4035cf8204a8754b2a99668bbfd
  17. 09 Dec, 2017 1 commit
    • Luc Trudeau's avatar
      Fix Static Analysis Warning · 4ae3e415
      Luc Trudeau authored
      Fix for the following static analysis warning: av1_loopfilter.c:462,
      Value stored to 'scale' during its initialization is never read
      Change-Id: I135f8b1c02a3b5040bfa65f13bf51bd4eab74dc0
  18. 02 Dec, 2017 1 commit
    • Debargha Mukherjee's avatar
      Support 64x16 / 16x64 transform tables · 3f921084
      Debargha Mukherjee authored
      Adds various tables, scan patterns etc. for 16x64 and 64x16
      Also adds scan tables for previously missing 4:1 transforms
      for intra.
      Also adds missing CDFs for filterintra with tx64x64.
      Change-Id: I8b16e749741f503f13319e7b7b9685128b723956
  19. 29 Nov, 2017 1 commit
    • James Zern's avatar
      Unify highbd loopfilter function names · 684b7bd1
      James Zern authored
      Rename aom_highbd_lpf_horizontal_edge_8() to aom_highbd_lpf_horizontal_16().
      Rename aom_highbd_lpf_horizontal_edge_16() to aom_highbd_lpf_horizontal_16_dual().
      based on the same change from libvpx:
      7f1f35183 Unify loopfilter function names
      Change-Id: I40cd587e74e0fe02bae23e6c10280c8e269df1d6
  20. 27 Nov, 2017 1 commit
    • James Zern's avatar
      Unify loopfilter function names · 1dbe80bc
      James Zern authored
      Rename aom_lpf_horizontal_edge_8() to aom_lpf_horizontal_16().
      Rename aom_lpf_horizontal_edge_16() to aom_lpf_horizontal_16_dual().
      based on the same change from libvpx:
      7f1f35183 Unify loopfilter function names
      Change-Id: I4fda7a2e3a893fc3dee0779975e2d4145c32f5d2
  21. 15 Nov, 2017 1 commit
  22. 10 Nov, 2017 1 commit
    • Urvang Joshi's avatar
      Remove smooth_hv experiment flag. · b7301cd6
      Urvang Joshi authored
      This experiment has been cleared by Tapas.
      Also, fix a couple of hash signatures in the test while we are at it.
      Change-Id: I1658bcb07913cf8bd47cfffadd729e16d5c55fc3
  23. 07 Nov, 2017 1 commit
  24. 06 Nov, 2017 1 commit
    • Yushin Cho's avatar
      [segment] Remove coding of seg->abs_delta · d728c216
      Yushin Cho authored
      Remove the option of raw data or delta when coding the
      segment data, then only use delta coding.
      Raw data coding of segment data has been nowhere used but
      the option of "raw or delta codig of seg_data" has been coded to a bitstream.
      Change-Id: Iaf8f21692452d0c9a127b958812c6151d3c5db05
  25. 01 Nov, 2017 1 commit
    • Sarah Parker's avatar
      Rename ZEROMV to GLOBALMV · 2b9ec2ea
      Sarah Parker authored
      This name better reflects the functionality of the mode.
      Change-Id: Idc2372e7c7b226f70f63fa4f272a88cb4d857089
  26. 24 Oct, 2017 2 commits
  27. 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
  28. 19 Oct, 2017 2 commits
    • David Barker's avatar
      loopfilter-level: Fix some inconsistencies · cce013cd
      David Barker authored
      * Fix a case where we would calculate the Y horizontal filter strength
        as the sum of the base Y *vertical* strength and the
        per-segment delta Y horizontal strength.
      * When using delta_lf_multi, adapt the corresponding CDFs between frames
      * Correct values in seg_feature_data_{signed,max}
      Change-Id: I1976d2024e9e16fe73258cf41d56aafe8a830957
    • David Barker's avatar
      deblock-13tap: Don't use 8-tap filter for chroma plane · b1d1f2ca
      David Barker authored
      For the chroma plane, the selected filter length was based on
      transform size as follows:
      TX_4X4 -> filter_length = 4
      TX_8X8 -> filter_length = 8
      TX_16X16 -> filter_length = 6 (this is intentionally *not* 16)
      This seems inconsistent; presumably the intention is to use the
      6-tap filter for TX_8X8 as well. This patch makes the appropriate
      change to make that be the case.
      Change-Id: I7f53d1dce4f16144bcf0c20131527b5193311603
  29. 17 Oct, 2017 1 commit
  30. 16 Oct, 2017 1 commit
  31. 13 Oct, 2017 1 commit
  32. 11 Oct, 2017 1 commit
    • Cheng Chen's avatar
      Train LPF_SB cdf · 855f0fc7
      Cheng Chen authored
      Count filter level reuse, sign, and delta. And use counts to train
      default cdfs.
      Default cdf tables updated.
      Change-Id: If4fbf3e06ec7d568d940ca7b170bbbb4b778f176
  33. 10 Oct, 2017 1 commit
    • Rupert Swarbrick's avatar
      Avoid Visual Studio compile error in loopfilter · a1befa51
      Rupert Swarbrick authored
      If you have a structure, foo_t, with an alignment request then Visual
      Studio won't allow you to declare a function
        void use_foo(foo_t x);
      The reasoning is that x might be passed on the stack, and their ABI
      doesn't allow them to guarantee that x is aligned appropriately. More
      strangely, this isn't allowed either:
       void use_some_foos(foo_t x[10]);
      This is functionally equivalent to:
       void use_windows_foos(foo_t *x);
      (except that you can't tell how long the array should be from the
      function signature).
      Since Visual Studio is supposed to allow the latter form, use that
      Change-Id: Icd449fc1058606fa7e48a6f791091bbb42a73b2c