1. 04 Oct, 2017 15 commits
    • 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
    • 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
    • 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
    • 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.
      Change-Id: I39a371bd38f53413187a64de1067f9ab8f00b833
    • Debargha Mukherjee's avatar
      Fix 64-length inverse transform scale · 3ed2d23f
      Debargha Mukherjee authored
      Change-Id: Ibd284df85365a65ab76af71df14efb1d79ca0c30
    • Debargha Mukherjee's avatar
      Fix rd scales for transforms larger than 32x32 · b02d2f39
      Debargha Mukherjee authored
      Change-Id: I1ddec0cf3513e2bd7568393e5ed5d52c25014ab4
    • 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
      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
    • 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
      Change-Id: I6b24a61bac3e4b220d8d46d0b27cfe865dcfba81
    • 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
    • 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.
      Change-Id: I4f23115b15ab9e2ea5a54ff0c6a9e1dc1a6d4d13
    • 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
    • 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
    • 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
      Change-Id: I7d12b28408bbfecc762108cbcf186b2a6ea07253
    • 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
      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
      Change-Id: I6f9d127470adc708f547fff3cf5009997bac4c36
    • 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
      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
  2. 03 Oct, 2017 17 commits
    • Sebastien Alaiwan's avatar
      test.mk: re-enable some ext_inter-specific tests · dbaa18cb
      Sebastien Alaiwan authored and James Zern's avatar James Zern committed
      Disabled by mistake when removing the ext_inter experiment flag.
      Change-Id: I0ff5681f6b77571871f611144975437534f50698
    • 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
    • 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
    • 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
    • Thomas Davies's avatar
      Remove filter_7bit experimental flag. · a2253ce9
      Thomas Davies authored
      Change-Id: I22aed63c6659a7301bccaa994b7374af548db5d1
    • Debargha Mukherjee's avatar
      Misc fixes for 32x64 and 64x32 transforms · 570423cf
      Debargha Mukherjee authored
      Change-Id: Ic843e99bd9b79cb9a0a26b95e3a48717ff2ec2a5
    • 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.
      Change-Id: I4bb6c7a222aeddfb6d3737a39d10782d32ee2eee
    • 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
    • Ryan's avatar
      soft enable CDEF-singlepass · b1d3eda9
      Ryan authored
      enable single pass CDEF by default since it has been adopted.
      Change-Id: I5d19dc49126f6b9bbe490466c853405e100773ad
    • 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.
      Change-Id: I1e7c2fc3d22621075cf9420b799ddc8c778c1564
    • Cheng Chen's avatar
      Make LOOPFILTER_LEVEL support EXT_DELTA_Q · a97394f7
      Cheng Chen authored
      Before LOOPFILTER_LEVEL, there's one filter level,
      now we have four filter levels for y plane vertical,
      y plane horizontal, u plane and v plane.
      This patch enables experiment LOOPFILTER_LEVEL to support per
      superblock loop filter level update.
      Change-Id: Ib11a1564471eb3076c26e73e5cdf7b5a3045ef97
    • Tom Finegan's avatar
      Disable chroma_sub8x8 with chroma_2x2. · e36b028e
      Tom Finegan authored
      Resolves mismatch between CMake and configure build configs.
      Change-Id: I0ffbbec04a2a1b39d70f16e9509bd0cf7618ee88
    • Tom Finegan's avatar
      Enable restrict_compressed_hdr with new_multisymbol. · 7e9ed3ca
      Tom Finegan authored
      Resolves mismatch between CMake and configure build configs.
      Change-Id: Iab9b9b503d45c06a9610cf415b2f2b3c5f14148c
    • Tom Finegan's avatar
      Allow ncobmc experiments with warped_motion. · 8f3692b7
      Tom Finegan authored
      CMake build updates:
      - The conflict with warped_motion has been resolved.
      - This also resolves a configure build mismatch with
        ncobmc_adapt_weight: warped_motion forcing it to off
        caused the mismatch.
      Change-Id: Ida2f68676c8a25a63c631dbfe101041409dcafe6
    • Tom Finegan's avatar
      Support ncobmc_adapt_weight in CMake build. · 2fd51837
      Tom Finegan authored
      Change-Id: I62791bfa1c1b1dba63999ee496d4358fbd247584
    • Tom Finegan's avatar
      Sync CONFIG_PVQ CMake build with configure. · 34634d89
      Tom Finegan authored
      Change-Id: I053d50850fa892f40876b4862ddd530358ff590d
    • Angie Chiang's avatar
      Fix memory leak incurred by av1_alloc_txb_buf() · 9367e3ec
      Angie Chiang authored
      Since alloc_compressor_data() may be called multiple times before
      dealloc_compressor_data() is called
      The av1_alloc_txb_buf() called by alloc_compressor_data() should
      free the txb_buf before allocating new txb_buf
      Change-Id: I0fe15de771e0669ec3521e5aac322f5cedfd67a9
  3. 02 Oct, 2017 8 commits