1. 15 Apr, 2017 1 commit
  2. 14 Apr, 2017 17 commits
    • Yi Luo's avatar
      Fix EOB threshold array size · d4e3c21a
      Yi Luo authored
      - TX_SIZES_ALL is the correct macro to cover all txfm sizes.
      Change-Id: I035a8395a78982e5b19857a3ba5f9d9f657b7902
    • Debargha Mukherjee's avatar
      Reduce array sizes for Wiener update steps · 6ae588f6
      Debargha Mukherjee authored
      Change-Id: Iff0cb1d492c7a8c2035b9bd752b1d00260135672
    • Timothy B. Terriberry's avatar
      pvq: Remove non-dyadic CDF initialization. · 5b4a7264
      Timothy B. Terriberry authored
      This was still being used for CDFs whose size might not match the
      declared array size. We replace it with an intialization macro
      intended explicitly for this purpose.
      Change-Id: I65d9a3c871e1d1bdd906f20ff3a264f58d8e5620
    • Timothy B. Terriberry's avatar
      daala_ec: Remove non-dyadic functions. · 033e5368
      Timothy B. Terriberry authored
      Encoder output should not change, and all streams should remain
      decodable without decoder changes.
      Change-Id: Id1f1b0f2f02c3b46f150a93c451bf48abd0782ca
    • Ryan Lei's avatar
      update parallel_deblocking experiment with more filter tap options · dd6fa06a
      Ryan Lei authored
      this change adds the following filter tap options:
      1. add options to replace 15 tap filter with 9 or 11 tap filter
      2. force chroma plane to only use maximum 7 tap filter
      above options are disabled by default
      Change-Id: Iab90a613210c1adaf4475976e9ed7e78ac30803b
    • Zoe Liu's avatar
      Adjust encoder rate allocations for ext-refs · c3571bc8
      Zoe Liu authored
      This CL is targeted to improve the objective/subjective quality of the
      "ext-refs" coding tool.
      Tuned the frame rate factors as follows:
      (1) BRF_UPDATE:
          Decreased from INTER_HIGH (1.5) to GF_ARF_LOW (1.25);
          Increased from INTER_LOW (0.80) to INTER_NORMAL (1.00)
      , which is to reduce the bits allocated to the BWEDREF frame whereas
      to increase the bits allocated to the bi-directionally predicted
      Obtained a coding gain in overall PSNR as follows, compared against
      the original ext-refs:
      lowres: BDRate -0.181%
      midres: BDRate -0.090%
      hdres:  BDRate -0.701%
      Change-Id: Id001f3b124d833da9f80eba4cdec2ca3f6ba9d82
    • Sarah Parker's avatar
      Refactor gm/wm/obmc for cleaner warping interactions · 4c10a3c2
      Sarah Parker authored
      This creates a central function which defines when a
      block should be warped. It also refactors the
      WARPED_MOTION code so that all calls to av1_warp_plane
      happen in the same location.
      No change in performance.
      Change-Id: Icaf9ec7700d34523809258594bb9843bb2975f46
    • Dake He's avatar
      [optimize-b] Use a greedy search method · 97f56645
      Dake He authored
      The greedy search method improves the BD-rate over the baseline by
      more than 0.2% for lowres test set. Larger gain 0.55% is observed for hdres test set.
      [2017.04.06] Cleanup to remove redundant computation. On a local linux
      machine, the greedy method is now faster than the trellis method in
      encoding the first 100 frames of foreman_cif. However, the BD-rate seems
      to become smaller due to the recent changes to the codebase.
      [2017.04.06-2] Style changes to meet the requirements.
      remove "greedy-optimize-b" in configure
      [2017.04.10] Move the changes under the macro USE_GREEDY_OPTIMIZE_B
      [2017.04.11] Adjust rdmult to accommodate CpuSpeedTest
      [2017.04.12] Set USE_GREEDY_OPTIMIZE_B to 0 at the request of debargha@.
      [2017.04.13] Move greedy implementation of optimize_b into a separate
      function with the same name (selected by USE_GREEDY_OPTIMIZE_B, default
      is 0)
      Change-Id: Ic15534f8d696d5f02e8f2e3e9f08b52e41e9efd2
    • Sebastien Alaiwan's avatar
      Simplify coefficient range checking · e5728a95
      Sebastien Alaiwan authored
      Deduplicate implementations of check_range, and deduplicate the call
      to aom_read_bit.
      Change-Id: I63b023758248717125e4df6d1c382d4c517bae84
    • Angie Chiang's avatar
      Modify av1_read_tx_type for lv_map exp · a9f9a31c
      Angie Chiang authored
      Change-Id: I422dfd9d7afe9f7baa04a962e19c8a92d5c12eeb
    • Angie Chiang's avatar
      Write/update tx_type per txb in lv_map exp · 1628fccb
      Angie Chiang authored
      Change-Id: I052721017cddd57ff9995e8dd442e4b3436a0b48
    • Angie Chiang's avatar
      Add av1_update_tx_type_count() · b14b73f9
      Angie Chiang authored
      This will make the code cleaner and lv_map experiment will be able
      to reuse this function.
      Change-Id: I885336117daa0090e16f1bb7a0c3e7bb54105410
    • Angie Chiang's avatar
      Modify av1_write_tx_type for lv_map experiment · c31ea682
      Angie Chiang authored
      Change-Id: If129748d918995efcc58169d153a0950eeec5efb
    • Frederic Barbier's avatar
      Fix loop-filter in ALT_INTRA · 550a1175
      Frederic Barbier authored
      Avoid future issues by adding related sanity check on mode_lf_lut size.
      Change-Id: I689a90c07ee2b79debf838304cfca0e34783e5bf
    • Jean-Marc Valin's avatar
      Only filter the blocks we need to filter (rather than use threshold=0) · 70f0e5eb
      Jean-Marc Valin authored
      Change-Id: Iddb2103452817e9624a28794cab923f00c3e9924
    • Yaowu Xu's avatar
      Use int16_t for warp parameters · 29f1568e
      Yaowu Xu authored
      This is to fix compiling issues with aom-highbitdepth.
      Change-Id: I66ee73e014a028536747e55209f20be81e906267
    • Tom Finegan's avatar
      Fix CONFIG_FILTER_INTRA in the cmake build. · 18c66343
      Tom Finegan authored
      Properly guard usage of av1_filter_intra_taps_4 in
      Change-Id: I74d589342e4669765d0d4700c329c5f3eced9530
  3. 13 Apr, 2017 10 commits
    • Angie Chiang's avatar
      Add breaking rule in the while loop of read_golomb · f1880e1c
      Angie Chiang authored
      The while loop may become infinite loop due to bitstream error.
      Therefore, we add a breaking rule to avoid that.
      Change-Id: I5bcda7dea846e280b59abc97c42baf334bca2603
    • Angie Chiang's avatar
      Use max_block_wide/high in av1_write_coeffs_mb · 8d6bc80b
      Angie Chiang authored
      This fix the invalid tx_type error happened when mb_to_right_edge
      is negative
      The invalid tx_type error will cause bitstream error and then
      let the decoder hang in the while loop of read_golomb()
      Change-Id: Ide6c3497cdd5b69b20b4b093241ed89ccc1b0f00
    • Yue Chen's avatar
      Reduce the bandwidth requirement of sub8x8 chroma obmc · 85c7e906
      Yue Chen authored
      HW does not support < 4x4 prediction. To limit the bandwidth
      requirement, for small blocks, only blend with neighbors from one
      side. If block-size of current plane is 4x4 or 8x4, the above
      neighbor will be skipped. If it is 4x8, the left neighbor (dir = 1)
      will be skipped.
      This change will keep the bandwidth requirement of OBMC not more
      than what is required by normal compound inter modes.
      Loss of gain (PSNR-Y/PSNR-Cb/PSNR-Cr/CIEDE2000)
      AWCY HL: 0.05/0.09/0.14/0.04
      AWCY LL: 0.06/0.07/0.10/0.12
      Change-Id: I3854afc69c3014da99bde4b19bb726e4c077d59e
    • Tom Finegan's avatar
      Add mips32 support to the cmake build. · d148c963
      Tom Finegan authored
      Requires use of new cmake toolchain file:
      $ cmake path/to/aom -DCMAKE_TOOLCHAIN_FILE=path/to/aom/build/cmake/toolchains/mips32-linux-gcc.cmake
      DSPR2 and MSA are supported via addition of -DENABLE_DSPR2=1 and
      -DENABLE_MSA=1 respectively. Note that the latter requires the addition
      of -DMIPS_CPU=p5600.
      Change-Id: Idf7d7f2daecf18cc45b834166eaf34ee9f414d49
    • Debargha Mukherjee's avatar
      Adds option to use 1/32 subpel precision for gm/wm · 16056f5b
      Debargha Mukherjee authored
      Adds filters for 1/32 subpel precision for warping.
      To use 1/32 subpel precision make WARPEDPIXEL_PREC_BITS 5.
      By default, WARPEDPIXEL_PREC_BITS is set as 6 in common/mv.h,
      which uses 1/64 subpel precision.
      If 1/32 precision is used, BDRATE drops:
      on lowres:
      -1.101 (vs. -1.186% with 1/64) w/warped-motion
      -1.587 (vs. -1.650% with 1/64) w/global-motion
      on cam_lowres:
      -2.638 (vs. -2.707% with 1/64) w/warped-motion
      -3.396 (vs. -3.453% with 1/64) w/global-motion
      Change-Id: I82fbfddaad9bd9be658fe382401d212833c7ceef
    • Yi Luo's avatar
      Add EOB threshold calculation for ADAPT_SCAN · cfe0fede
      Yi Luo authored
      Change-Id: I0c58fb5ee2a77ae15f6243b1c645dbe601171e67
    • Jingning Han's avatar
      Align frame_context to 16 bytes in TileData · 9f07be16
      Jingning Han authored
      Change-Id: Ide94ffbf5ed0f25ac64892f02364b67cefa5fd15
    • Steinar Midtskogen's avatar
      CDEF: Optionally filter 8x8 skip blocks · 7b069a57
      Steinar Midtskogen authored
      Optionaly filter 8x8 skip blocks, but still leave superblocks that are
      completely skipped unchanged.  Use one bit in the dering level to
      signal replacing the signal for dering damping.
      This works better with cb4x4 that now is enabled by default.
      Low latency, used-cpu=4 change:
      -0.6260|-0.3263|-0.3797| -0.3574|-0.7072|-0.4828|   -0.6584
      Change-Id: I42c4290b52a50779770884fbabb020fdb1034ff7
    • Jean-Marc Valin's avatar
      Can't skip deringing on threshold=0 because chroma needs direction · 87c24a1d
      Jean-Marc Valin authored
      Change-Id: I7481fe139e1c9454c73948de3d8b8fefaf37e79a
    • Sarah Parker's avatar
      Disable neighbor warping for gm + obmc · a036d86f
      Sarah Parker authored
      Adds an option to disable warp when obmc is used with a
      global motion neighbor.
      Change in BDRATE on cam_lowres
      gm + obmc enabled: 0.035%
      gm + obmc + wm enabled: -0.005%
      Change-Id: I1d6de75c7ead325cec31ed3748b5532f3658d8a7
  4. 12 Apr, 2017 12 commits
    • Zoe Liu's avatar
      A temporary fix on the RAM issue for upsampled referencing · c670e82f
      Zoe Liu authored
      When ext-refs is on, the encoding of HD videos, e.g. 1080p sequences
      will cause the failure to allocate up-sampled frame buffers. This CL
      temporarily turn off the use of upsampled references when ext-refs is
      on for any video resolution larger than 720 in either dimension. A
      more effective scheme for up-sampled referencing should be later
      With the fix, the AWCY performance gains of ext-refs, vs baseline are:
      PSNR Y
      Average -2.55%
      1080p   -2.81%
      360p    -2.38%
      720p    -3.10%
      Change-Id: Ica5e75d82190cd68e64c536503e3559f1cfdbdd1
    • Sebastien Alaiwan's avatar
      Homogenize configuration option name. · 71e87847
      Sebastien Alaiwan authored and James Zern's avatar James Zern committed
      Rename '--enable-aom-highbitdepth' to '--enable-highbitdepth'
      Change-Id: I1de13c3508c30c552532993419d8ace326142ab6
    • Jingning Han's avatar
      Properly release the memory space in encode_frame_to_data_rate() · f6214b96
      Jingning Han authored
      Explicitly release the locally allocated memory space in
      encode_frame_to_data_rate(). This resolves an memory space leak
      Change-Id: I46f4b38b46ed951d42c622e88ce00afc566e7eae
    • hui su's avatar
      rdopt.c,cosmetics: fix comments for av1_dist_block() · d2f12ba5
      hui su authored
      Change-Id: I7a75947cdc4fcfe5b84ea702fa44ee51d7e406de
    • Jingning Han's avatar
      Fix cross tile buffer access in encoder process · 65113f38
      Jingning Han authored
      Change-Id: I9aef9ae0df86f7574342fc8e7424869d9b2fa1d2
    • Angie Chiang's avatar
      Avoid redundant tx_type search · 00491e0d
      Angie Chiang authored
      allow_txk_type doesn't contains all the logic of using pre
      assigned tx_type or doing the tx_type search.
      Here we use get_tx_type to avoid redundant tx_type search.
      Change-Id: I09b6bcc60fbe15f0d78689b22d834f95b62bd99a
    • Angie Chiang's avatar
      Calculate coeff cost in av1_search_txk_type · 65a39bb4
      Angie Chiang authored
      Change-Id: Ie388218b2202ee2f63b90c67a059cbfe54fd4a4e
    • Timothy B. Terriberry's avatar
      pvq: Remove support for disabling nodesync. · 44bb6d06
      Timothy B. Terriberry authored
      This was broken by commit 1238137c.
      When calling the generic coder with a max, it truncates the CDF, but
      then tries to encode/decode with the Q15 entropy coder functions
      with built-in adaptation. That causes assertion failures, because the
      total probability isn't 32768.
      We could fix it by re-scaling the CDF, and then doing adaptation
      assuming there was no max, but that requires several special-case
      code paths.
      Instead, since non-robust streams were the only thing that still
      required calling the generic coder with a max, and since the gain
      from them is very small (and they require doing more DSP just to be
      able to parse the stream), we simply remove the option and force
      the use of robust streams all the time.
      With robust streams enabled, encoder output should not change, and
      all streams should remain decodable without decoder changes.
      Thanks to Nathan Egge for reporting the problem.
      Change-Id: I6c81481abb796688bf703d68f164d208e6a69f20
    • Yaowu Xu's avatar
      Avoid out of bound read · 281def73
      Yaowu Xu authored
      Change-Id: I1620ee72fa212c958cb061706c440ba407c805c0
    • Yaowu Xu's avatar
      Avoid out of bound read · c8ab0bcd
      Yaowu Xu authored
      BLOCK_Z_TOKEN is defined "255", this commit change the order of operations
      to avoid read  av1_extra_bits[255]. av1_extra_bits is defined with size of
      Change-Id: I59c35136bb064391139579bce591d1963e722611
    • Jingning Han's avatar
      Fix out-of-bound access in filter intra · 4330e1bd
      Jingning Han authored
      Change-Id: Ic7b0f6850d7685f4aff0e51154f8777c9ef72c17
    • hui su's avatar
      Fix a bug for high-bit-depth in av1_dist_block() · b1cc1f9d
      hui su authored
      Change-Id: I246b0de3bd25863853643bdb238899bf8e5847be