1. 16 Dec, 2017 1 commit
    • Zoe Liu's avatar
      Support ext-skip for both low delay and high delay · 104d62e1
      Zoe Liu authored
      For both low delay and high delay scenarios, the reference pair in
      skip mode are specified as the closest fwd ref, together with the
      closest bwd ref if there is any bwd ref, otherwise with the two
      closest fwd refs.
      
      Skip mode by default uses COMPOUND_AVERAGE. When all the reference
      frames are on the same side, temporal-distance weighted compound is
      considered, and a compound index is signaled to indicate whether
      distance-weighted compound or compound-average is usd.
      
      Whether to use distance-weighted compound for skip mode is still
      under experimenting, hence a flag is temporarily added:
      SKIP_MODE_WITH_JNT_COMP.
      
      Following experimental results are obtained over 30 frames, using the
      setup of --disable-ext-partition --disable-ext-partition-types
      --disable-txmg --enable-jnt-comp --enable-mfmv --enable-ext-skip:
      
      (1) High Latency:
      For Google test sets (lowres/midres), the BDRate coding gain is ~0.2%;
      For AWCY, the coding gain is ~0.1%.
      (2) Low Latency:
      No gain has been observed over Google sets and ~0.1% gain is obtained
      only when temporal-distance weighted prediction is used.
      
      Change-Id: I8c433357adebed0126ebfdd5c4d51aa71e64be57
      104d62e1
  2. 15 Dec, 2017 7 commits
  3. 14 Dec, 2017 13 commits
    • Urvang Joshi's avatar
      Remove a number of unused macros. · de750837
      Urvang Joshi authored
      Change-Id: I3e6b13dcb8e5b5cf6ff4ba8010fe65e43336d33f
      de750837
    • Sarah Parker's avatar
      Add option for optimize_b only in final encode · 251c9dcb
      Sarah Parker authored
      This adds a third option to the optimize_coefficients speed
      feature, which turns off optimize_b in the search but uses
      it in the final encode. This option is not currently being
      used by default.
      
      Change-Id: Ic10c9fd8ef16bc453f5e232733cda34d0ddb7692
      251c9dcb
    • Jingning Han's avatar
      Fix enc/dec mismatch bewteen mfmv and obu · 923f827e
      Jingning Han authored
      BUG=aomedia:1123
      
      Change-Id: I3886bd74cf3ee266eee13020c8821aff5b59e11d
      923f827e
    • Monty's avatar
      Fix build when daala_tx and lv_map are both enabled · bca9e9ee
      Monty authored
      Daala TX removes the av1_get_tx_scale() call, which lv_map uses.
      This patch eliminates use of the call when Daala TX is enabled.
      
      Change-Id: I55ecdf630b8c5e1b30328a64252d1ca98e0c94ca
      bca9e9ee
    • Angie Chiang's avatar
      Add TXCOEFF_COST_TIMER · 4d55d76e
      Angie Chiang authored
      Measure the time spending on av1_cost_coeffs by turning on this
      flag
      
      Change-Id: Ide4171182d87bd52f00fe01abefc77cb2d730834
      4d55d76e
    • Jingning Han's avatar
      Update levels in coeff optimization · a7a6f4e1
      Jingning Han authored
      When reducing the coefficient level gives better rate-distortion
      results, update the the corresponding levels for next coefficient
      context modeling.
      
      Change-Id: Ia04e287a576f2a4afd1e8ecc9bcb311d067f02e5
      a7a6f4e1
    • Sebastien Alaiwan's avatar
      Remove dead globals, members and structs · 841c030f
      Sebastien Alaiwan authored
      Change-Id: Ic92db272a4cd2f507dc1c8d682030c801abf2793
      841c030f
    • Luc Trudeau's avatar
      [Clean Up] Remove get_y_mode() · 2eb9b845
      Luc Trudeau authored
      The get_y_mode function, is superfluous, not used consistently, and requires a
      useless block_idx parameter than gets pass around a lot inside the
      codebase for no apparent reason.
      
      The block parameter is misleading, as it could cause people to think all these
      functions actually use this value.
      
      Change-Id: I7ae0a8d1282c009b9114c83771cce10f5c2ee397
      2eb9b845
    • Linfeng Zhang's avatar
      Update get_coeff_cost() · 5f1b8cef
      Linfeng Zhang authored and James Zern's avatar James Zern committed
      Move get_nz_map_ctx() out of get_coeff_cost(), so that the coeff_ctx
      won't be recalculated in get_dist_cost_stats().
      
      Change-Id: I511d66e3e1a768c77314b290dc6bb90a123ca541
      5f1b8cef
    • Hui Su's avatar
      fix conflict between intrabc and obu · ad7536be
      Hui Su authored
      Change-Id: Ieed2451060f68fee6e67bca7d836d27bc6483c0f
      ad7536be
    • Yaowu Xu's avatar
      Revert "enable obu (HLS R19) by default" · a14de5b3
      Yaowu Xu authored
      This reverts commit 0dc0ddc0.
      
      Reason for revert: enc/dec mismatch was found and tracked down to this commit. 
      
      BUG=aomedia:1123
      
      Change-Id: I47ac289426e18d2118117d56c2cbc8930b78bda2
      a14de5b3
    • David Michael Barr's avatar
      [CFL] Reorder alpha search for early termination · f2f3156f
      David Michael Barr authored
      This prepares the way for a heuristic to truncate the search.
      
      For a given joint sign value, each plane's alpha is coded
      independently and so the alpha choice is also independent.
      Rather than iterating over all possible pairs, first choose
      for each plane separately and then merge the choices.
      Merge with RD collection and continuously update the bound.
      
      On subset1, then encoder output is identical for most sequences:
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0002 | -0.0058 | -0.0016 |   0.0020 | 0.0025 |  0.0040 |    -0.0022
      
      Change-Id: Ie7d1e1622d46eaa8cf42f50c9a6bec6e59bdbc39
      f2f3156f
    • Urvang Joshi's avatar
      Move encoder-only transform code to encoder/ · 2314566a
      Urvang Joshi authored
      Update make files, include paths etc.
      
      Change-Id: I78153b28890c7610d65c846eb72cb9dacd30bc2e
      2314566a
  4. 13 Dec, 2017 10 commits
  5. 12 Dec, 2017 9 commits
    • Hui Su's avatar
      intrabc: modify default ref dv · 2d46afcd
      Hui Su authored
      Make sure the ref dv is a valid dv.
      
      Improves compression by about 0.3% on screen_content keyframes.
      
      Change-Id: I3a20c1a04b0ebcad610276f21b410dcfc8ba4c4d
      2d46afcd
    • Hui Su's avatar
      Fix floating point number error in palette RDO · 8265d70c
      Hui Su authored
      BUG=aomedia:1112
      
      Change-Id: I130bc2087c32bd2d9087bf0dfe5919226f5fafa1
      8265d70c
    • Rupert Swarbrick's avatar
      Remove parameter from av1_loop_restoration_filter_frame · 70c399e4
      Rupert Swarbrick authored
      At both callsites, the "rsi" parameter is the rst_info field from cm,
      which is already passed.
      
      Change-Id: I837ac655a03ebf0de6fbdaece4f4910f750e4898
      70c399e4
    • Rupert Swarbrick's avatar
      Simplify prototype of av1_loop_restoration_filter_frame · 25c57d2b
      Rupert Swarbrick authored
      This is always called with all components and no destination buffer.
      
      Change-Id: I76d1a16a87e05b8ecec387288139e846e9894384
      25c57d2b
    • Rupert Swarbrick's avatar
      Fix calculation of tx_type cost for rectangular transforms · ffbff57d
      Rupert Swarbrick authored
      This patch fixes up av1_tx_type_cost to match the code in
      av1_write_tx_type. Beforehand, we wrongly assumed a 32x16 block needed
      to signal its transform size (with rect-tx-ext & rect-tx-ext-intra)
      because we were passing 16x16 to get_ext_tx_types.
      
      I've also changed av1_write_tx_type to use get_min_tx_size rather than
      inlining its body. No functional change, but it's probably better to
      use the same helper function both times.
      
      Change-Id: Iff6ee0bff2d332d5270fe0219db88c95e0b051d0
      ffbff57d
    • 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
      765e34e3
    • Jingning Han's avatar
      Simplify logics in select_tx_type_yrd · 13c42779
      Jingning Han authored
      Remove unnecessary inter / intra condition check.
      
      Change-Id: I51b776a3df6ce45b31fe3d2f43fbf6ca7b1d14fb
      13c42779
    • Rupert Swarbrick's avatar
      Fix apparent typo in av1_rd_pick_inter_mode_sb · 6f14969a
      Rupert Swarbrick authored
      We should be selecting a transform size when tx_mode is TX_MODE_SELECT
      and we're not lossless. (In lossless mode, the transform size is
      forced to be TX_4X4).
      
      Change-Id: I65b346fb2116689598e2251e97897be91f481ceb
      6f14969a
    • Rupert Swarbrick's avatar
      Use block_signals_txsize() in two more places · 8e5b39a1
      Rupert Swarbrick authored
      The change in encodeframe.c has no effect (it's the same test), but
      the change in rdopt.c fixes a miscalculated rate for (say) 8x4 blocks
      which must signal whether to use TX_8X4 or TX_4X4.
      
      Change-Id: I1dd2556bb90e86e690dd1fabaad278813ba73ea6
      8e5b39a1