1. 05 Oct, 2017 4 commits
  2. 04 Oct, 2017 26 commits
    • Johann's avatar
      cmake flag for disabling adopted experiments · 4ceee161
      Johann authored
      Match configure behavior. Use with:
      -DENABLE_ADOPTED_EXPERIMENTS=OFF
      
      Change-Id: I5402d5b0ca65cf3013744ca28023118b7508fd2a
      4ceee161
    • Sebastien Alaiwan's avatar
      Fix warnings about dangling 'else' · 7d701684
      Sebastien Alaiwan authored
      Change-Id: Ia99815fece27c616b3f284e3b164de0fcba67232
      7d701684
    • Tom Finegan's avatar
      Sync CMake treatment of aom{dec,enc} with configure. · 9cc0cfed
      Tom Finegan authored
      Disable creation of the aomdec and aomenc targets
      when examples are disabled. This requires some changes
      to how/when utility libs are built. The common, decoder,
      and encoder app utils are now only built when one of
      CONFIG_UNIT_TESTS, ENABLE_EXAMPLES, or ENABLE_TOOLS is
      enabled.
      
      BUG=aomedia:847
      
      Change-Id: I579252e01eab1c66cd2d808863504f9571bfb3e4
      9cc0cfed
    • Sebastien Alaiwan's avatar
      Use 32-bit tran_low_t values for txmg experiment · f601f216
      Sebastien Alaiwan authored
      The generic transforms (av1_fwd_txfm1d.c) require 32-bit coeffs.
      Also, use 32-bit EXTRABIT values.
      Fixes a memory corruption when --disable-lowbitdepth.
      
      BUG=aomedia:860
      
      Change-Id: Id8a181702e5bed793b20a16a518eb8a1064f2a21
      f601f216
    • Angie Chiang's avatar
      Remove redundant computation in adapt_scan · 4d5eb938
      Angie Chiang authored
      Change-Id: Ic48adb1322d0be066cb307df2ce316b7a7f58dd5
      4d5eb938
    • Yi Luo's avatar
      Fix compiler warning when dual_filter is not enabled · 398fdbab
      Yi Luo authored
      Change-Id: I14cd3f531af4ef0ac03deb1a19808ed1199f388f
      398fdbab
    • Dominic Symes's avatar
      Fix for issue 844 · c27f5424
      Dominic Symes authored
      Change the foreach_rtile_in_tile() function to call av1_tile_set_row/col
      to calculate tile borders, rather than calculate tile borders itself.
      This will then allow variable sized tiles.
      
      Also remove some unused set tile width/height defines from aomcx.h
      
      BUG=aomedia:844
      
      Change-Id: I356c90cb4189b904ca1d6e57939582b2e92f3162
      c27f5424
    • Urvang Joshi's avatar
      txfm_func_ls: Add 32x64 and 64x32 functions. · 85742fa5
      Urvang Joshi authored
      Change-Id: Id1d615cc65b19cfa1211af53a3b6d1e2e19bbc6c
      85742fa5
    • David Barker's avatar
      Fix decoder bug in dependent-horztiles · 86438431
      David Barker authored
      Change the function av1_tile_set_tg_boundary to calculate
      whether the selected tile is on the top boundary of its containing
      tile group. This appears to be the intended behaviour, based on
      how the function is used, but it was calculating something different.
      
      BUG=aomedia:698
      
      Change-Id: Ib3eb679a20153ead00e0b266b2ebf46044e62f05
      86438431
    • Rupert Swarbrick's avatar
      Fix rate costing for small blocks with skip flag · c6cc1f5e
      Rupert Swarbrick authored
      In av1_rd_pick_intra_mode_sb, the code calculates the rate for Y and
      UV planes separately. If the transform coefficient should be zero,
      rd_pick_intra_sby_mode and rd_pick_intra_sbuv_mode return the cost of
      actually coding up the zero coefficient, but also set a flag (y_skip
      or uv_skip) saying that this could be skipped.
      
      Since the skip flag isn't per-plane, av1_rd_pick_intra_mode_sb checks
      to see whether both y_skip and uv_skip were true. In that case, it
      costs the block for setting the skip flag rather than outputting zero
      transform coefficients.
      
      If a small block (less than 8x8) has no chroma information,
      x->skip_chroma_rd is true. In that case, we don't call
      rd_pick_intra_sbuv_mode and so uv_skip is never set. However, when we
      come to write the block, it will be written using the skip flag. This
      patch gets the costing right in that case.
      
      Change-Id: Ib31b80b4b44a5c8ed9d9b3f86d782c54927345f3
      c6cc1f5e
    • Cheng Chen's avatar
      Clamp current_delta_lf_from_base in ext_delta_q · 9dccdf24
      Cheng Chen authored
      BUG=aomedia:829
      
      Change-Id: I78347e12b4efa05ebd424ba25de7767437495b42
      9dccdf24
    • Tom Finegan's avatar
      Move ext_inter test sources into encoder group. · aaf262f9
      Tom Finegan authored
      ext_inter is no longer behind a flag and is part of
      the standard encoder features. Mix the test sources
      previously guarded by CONFIG_EXT_INTER into the
      base encoder test sources list.
      
      Change-Id: I80312b669b8c8f4a0decc07b64edb6d165905261
      aaf262f9
    • Jingning Han's avatar
      Experiment probability precision for lv-map coding · 94cea4ac
      Jingning Han authored
      Experiment probability precision for binary coding in the lv-map
      coding system.
      
      Change-Id: I8d9c49eee6dc7ca7970390fa5febe25b80bfab3c
      94cea4ac
    • Yi Luo's avatar
      Lowbd TM_PRED intra pred avx2 optimization · 237cf1b2
      Yi Luo authored
      For block width >= 16, avx2 can further speedup the
      TM_PREM intra prediction.
      
      Function speedup on i7-6700:
      Predictor  avx2 v. ssse3
      16x8       ~1.6x
      16x16      ~1.8x
      16x32      ~1.9x
      32x16      ~1.9x
      32x32      ~1.9x
      
      Change-Id: I62c20bd7628f52251b0c051b99a9b738ee44f7e6
      237cf1b2
    • Rupert Swarbrick's avatar
      Catch invalid streams starting with intra-only frames · 5eb471c0
      Rupert Swarbrick authored
      This adds a check (and internal error on failure) to make sure that a
      stream that starts with an intra-only frame cannot refer to a slot
      that hasn't been written in a subsequent inter frame.
      
      BUG=aomedia:849
      
      Change-Id: I39a371bd38f53413187a64de1067f9ab8f00b833
      5eb471c0
    • Debargha Mukherjee's avatar
      Fix 64-length inverse transform scale · 3ed2d23f
      Debargha Mukherjee authored
      Change-Id: Ibd284df85365a65ab76af71df14efb1d79ca0c30
      3ed2d23f
    • Debargha Mukherjee's avatar
      Fix rd scales for transforms larger than 32x32 · b02d2f39
      Debargha Mukherjee authored
      Change-Id: I1ddec0cf3513e2bd7568393e5ed5d52c25014ab4
      b02d2f39
    • David Barker's avatar
      Harmonize OBMC prediction at tile edges · 1e2fb103
      David Barker authored
      When we have an OBMC block at the top of a tile, we don't generate
      an 'above' prediction, in order to preserve tile independence.
      However, the conditions for when to *generate* the above prediction
      and when to *use* it were different when dependent-horztiles is
      enabled.
      
      Since dependent-horztiles allows each tile to depend on the tile
      above, it seems reasonable to unify the conditions to use
      xd->above_available (and similar for left preds, for the sake
      of consistency). This allows OBMC across horizontal tile boundaries,
      but not across tile group boundaries, in line with the rest of the
      dependent-horztiles experiment.
      
      Change-Id: I86d5de132c4429106a6025e7a7a2baec974e618c
      1e2fb103
    • Rupert Swarbrick's avatar
      Pack InterpFilters into a single integer · 27e90295
      Rupert Swarbrick authored
      Before this patch, if CONFIG_DUAL_FILTER was true then an MB_MODE_INFO
      stored its filter choices as an array of four numbers, each of which
      was between 0 and 10. It also seems that elements 2 and 3 of the array
      were always the same as elements 0 and 1 when used.
      
      This patch defines a new type(def) called InterpFilters together with
      constructor and extractor functions. When CONFIG_DUAL_FILTER is zero,
      InterpFilters is a synonym for InterpFilter and the constructor and
      extractor functions should compile away to nothing. When it is
      nonzero, InterpFilters is a uint32_t which stores the x filter in the
      high part and the y filter in the low part (this looks strange, but
      matches the old numbering).
      
      Making this change allows us to get rid of lots of special case code
      that was dependent on CONFIG_DUAL_FILTER. The uniform
      extract/make/broadcast interface also actually shortens code in
      general.
      
      Change-Id: I6b24a61bac3e4b220d8d46d0b27cfe865dcfba81
      27e90295
    • Dominic Symes's avatar
      MAX_TILE: Allow list of tile widths/heights · 26ad0b22
      Dominic Symes authored
      The aomenc API is modified to allow --tile_width and --tile_height to take a list of sizes.
      For example, --tile_width=2,3 will give tiles of widths 2,3,2,3,... until the image width
      is exhausted. --tile_width=2 will still work to gives tiles of width 2.
      
      Change-Id: I2afa14d404557aa8b7341b20f7477590e03e0bdb
      26ad0b22
    • Jonathan Matthews's avatar
      intra_interp - fix dr_prediction_z1 and _z3 · 80dd4b94
      Jonathan Matthews authored
      The low bd versions should have the same functionality as the
      high bd versions.  This patch removes the incorrect optimisation,
      in order to rapidly fix the functionality.
      
      BUG=aomedia:859
      
      Change-Id: I4f23115b15ab9e2ea5a54ff0c6a9e1dc1a6d4d13
      80dd4b94
    • Urvang Joshi's avatar
      Enums: Remove unnecessary assigned values. · d0bf7d0e
      Urvang Joshi authored
      Enums starts from 0 and are incremented by 1 by default. No need to do
      this explicitly.
      
      Change-Id: I3aea5a6b9a39e76f7912f865406c44586072caea
      d0bf7d0e
    • Sebastien Alaiwan's avatar
      Remove HBD special cases · 8ce18aea
      Sebastien Alaiwan authored
      xd->bd is available here and is equal to 8 in the low-bitdepth case.
      
      Change-Id: I20760f7ec4279008fdab005345442052b1d10905
      8ce18aea
    • Zoe Liu's avatar
      Unify default probs for reference frame coding · e3c476e5
      Zoe Liu authored
      No performance change for scenario --disable-ext-comp-refs. For
      --enable-ext-comp-refs, a pretty tiny bitrate saving was resulted
      (-0.01~-0.02%).
      
      Change-Id: I7d12b28408bbfecc762108cbcf186b2a6ea07253
      e3c476e5
    • Tom Finegan's avatar
      Relocate CMake experiment conflict resolution. · e2e441df
      Tom Finegan authored
      Move it to build/cmake/aom_experiment_deps.cmake within
      the macro fix_experiment_deps() to reduce noise in
      aom_configure.cmake.
      
      Note: This patch also resolves a conflict between the
      CMake and configure build configs: rect_tx and var_tx
      conflicts with daala_dctX have been resolved. The two
      experiments are no longer disabled when daala_dctX is
      enabled.
      
      BUG=aomedia:856
      
      Change-Id: I6f9d127470adc708f547fff3cf5009997bac4c36
      e2e441df
    • Cheng Chen's avatar
      LOOPFILTER_LEVEL: add flexibility for EXT_DELTA_Q · 880166ab
      Cheng Chen authored
      When experiment LOOPFILTER_LEVEL is on, there're four base filter levels
      for each frame. This patch enables one to use one delta or four deltas
      to update corresponding filter levels for each superblock in
      EXT_DELTA_Q.
      
      1 bit per frame is sent through bitstream to select one or four deltas.
      Now, we hard code to use one delta.
      
      Change-Id: I9c61a035064fa81878b0575ad21664e2b22a6a45
      880166ab
  3. 03 Oct, 2017 10 commits
    • Sebastien Alaiwan's avatar
      test.mk: re-enable some ext_inter-specific tests · dbaa18cb
      Sebastien Alaiwan authored
      Disabled by mistake when removing the ext_inter experiment flag.
      
      Change-Id: I0ff5681f6b77571871f611144975437534f50698
      dbaa18cb
    • Hui Su's avatar
      Remove symbol mapping of intra modes · 814f41e7
      Hui Su authored
      The _ind and _inv mapping tables are not necessary. The CDF tables are
      updated with new values converted from the old tables. Performance
      impact is small and neutral.
      
      Change-Id: I65845ab3c80f88794abd9ab9e61494af56099c7c
      814f41e7
    • David Barker's avatar
      Fix global-motion + error-resilient-mode · d7c8bd51
      David Barker authored
      Patch https://aomedia-review.googlesource.com/c/21783
      changed things so that error-resilient frames use the default
      global motion parameters as a reference, rather than taking
      the reference from the previous frame.
      
      This was implemented by clearing out cm->prev_frame->global_motion
      when we have an error-resilient frame. Unfortunately, this causes
      an issue: if we have an error resilient frame which isn't stored
      into any reference slots, followed by a non-error-resilient frame,
      then both frames refer to the same prev_frame. The second frame
      then delta-codes against cm->prev_frame->global_motion, but
      this was reset to the default values by the intervening
      error-resilient frame!
      
      In order to allow the above case to work as intended, expand the
      default warp parameter set to a full WarpedMotionParams struct,
      and use that as the reference for error-resilient frames.
      
      This also allows us to remove set_default_warp_params, as we
      can now just copy directly from default_warp_params.
      
      Change-Id: I9645615db2700c1d3810e6e42f4f1da626fcd5e3
      d7c8bd51
    • Urvang Joshi's avatar
      TX_64x64: Optimized default_txfm_partion tables. · 886bfc7b
      Urvang Joshi authored
      The probabilities and CDFs were tuned using aom_entropy_optimizer tool.
      
      midres: -0.062 overall PSNR, -0.100 on SSIM
      (but significant gain on Keiba_832x480_30.y4m clip:
      -1.331 on overall PSNR and -1.903 on SSIM)
      lowres: +0.013 on overall PSNR, -0.062 on SSIM
      
      Change-Id: Ie143a3914ef45939c8744ff6b2ed9f1d0a59353e
      886bfc7b
    • Thomas Davies's avatar
      Remove filter_7bit experimental flag. · a2253ce9
      Thomas Davies authored
      Change-Id: I22aed63c6659a7301bccaa994b7374af548db5d1
      a2253ce9
    • Debargha Mukherjee's avatar
      Misc fixes for 32x64 and 64x32 transforms · 570423cf
      Debargha Mukherjee authored
      Change-Id: Ic843e99bd9b79cb9a0a26b95e3a48717ff2ec2a5
      570423cf
    • David Barker's avatar
      Deduplicate use_reference_buffer/frame_id_numbers_present_flag · 5e70a114
      David Barker authored
      These two flags serve essentially the same purpose, so we can
      simplify down to just having one flag. Since the
      frame_id_numbers_present_flag is older and listed in the
      reference-buffer design doc, this is the one we'll keep.
      
      Note that, previously, frame_id_numbers_present_flag was only
      sent when CONFIG_OBU was enabled - otherwise it was always set
      to 1. On the other hand, use_reference_buffer was always signalled
      so that allowed us to disable frame ids even without CONFIG_OBU.
      
      In order to keep the ability to disable frame IDs without
      CONFIG_OBU, we send a "real" sequence header (ie, with the same
      data as in CONFIG_OBU) in-line within the uncompressed header.
      This is sent every keyframe and every intra-only frame, just
      as the use_reference_buffer flag was before this patch.
      
      BUG=aomedia:853
      
      Change-Id: I4bb6c7a222aeddfb6d3737a39d10782d32ee2eee
      5e70a114
    • Yushin Cho's avatar
      Make braces matchable in vi for select_tx_block() · c5a1f263
      Yushin Cho authored
      For select_tx_block() in rdopt.c.
      
      Change-Id: Iaac658ab7e7c0b53597f4f781a4fd0f340e9308d
      c5a1f263
    • Ryan's avatar
      soft enable CDEF-singlepass · b1d3eda9
      Ryan authored
      enable single pass CDEF by default since it has been adopted.
      
      Change-Id: I5d19dc49126f6b9bbe490466c853405e100773ad
      b1d3eda9
    • Thomas Davies's avatar
      Fix compile error with NEW_MULTISYMBOL and RECT_TX_EXT. · e715483c
      Thomas Davies authored
      No need to read any of the compressed header.
      
      BUG=aomedia:846
      
      Change-Id: I1e7c2fc3d22621075cf9420b799ddc8c778c1564
      e715483c