1. 20 Dec, 2017 3 commits
    • Ryan's avatar
      clean up dead code in deblocking filter · b260f44f
      Ryan authored
      Change-Id: I0ca217b0e94b8b65fb481cda6fe361212280637b
    • Steinar Midtskogen's avatar
      Enable CDEF for chroma for 4:2:2 and 4:4:0 · ab6c9c77
      Steinar Midtskogen authored
      This enables CDEF for chroma when the horizontal and vertical
      subsampling differs.  Since the direction search is only performed in
      luma, the following corrections to the direction index are done for
      chroma to correct the distortion resulting from the subsampling:
      4:2:2:   4:4:0:
      0 -> 7   0 -> 1
      1 -> 0   1 -> 2
      2 -> 2   2 -> 2
      3 -> 4   3 -> 2
      4 -> 5   4 -> 3
      5 -> 6   5 -> 4
      6 -> 6   6 -> 6
      7 -> 6   7 -> 0
      This improves the chroma PSNR BDR by about 2% for 4:2:2 content at
      cpu-used=4, low delay configuration.  4:2:0 and 4:4:4 content is
      Change-Id: Iee92d3697bc5a6fc9b1f340a63243a334935b433
    • Frederic Barbier's avatar
      Remove EXT_PARTITION_TYPES_AB experiment · 3f53da76
      Frederic Barbier authored
      This experiment has been abandonned for AV1.
      Change-Id: Ic706b3533ecf502ab316505ba0a9a8eeeb296612
  2. 19 Dec, 2017 10 commits
    • Zoe Liu's avatar
      Exclude distance-weighted prediction for ext-skip · 5664419e
      Zoe Liu authored
      For ext-skip, the use of distance-weighted prediction has only shown
      a coding gain in the AMCY low delay scenario. It is hence not being
      considered and compound-average is used exlusively.
      Change-Id: I57439eda1246e179d6404bbec366c6c610af3a36
    • Linfeng Zhang's avatar
      Update table av1_nz_map_ctx_offset[] · 0d9e3812
      Linfeng Zhang authored
      When CONFIG_TX64X64 is ON, bwl could be 5 when real width is 64.
      Read width from tx_size_wide[] instead from 1 << bwl.
      Change-Id: If0a97a73f1dc90c3e9425ba20f7609f93eb705b9
    • 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
    • Yue Chen's avatar
      Remove filter_intra mode info for UV plane · b0571874
      Yue Chen authored
      Change-Id: I92f73b78dfd0e25a61897e8b6e9e28ff210376d5
    • Dake He's avatar
      [lv_map_multi] BR coding · e2d8f183
      Dake He authored
      1. Use separate contexts for transforms of size 32x32 and above.
      2. Initialize cdf directly
      Change-Id: I3373143788e81b2547d99e420e591892ef2641a2
    • Sebastien Alaiwan's avatar
      Remove ADAPT_SCAN experiment · 23c511e7
      Sebastien Alaiwan authored
      This experiment has been abandonned for AV1.
      Change-Id: Ib3bb07d62f2025ce50dc9bc1b3f9fc22488519a7
    • Steinar Midtskogen's avatar
      Make CDEF only do luma if monochrome · 35e53713
      Steinar Midtskogen authored
      Change-Id: I499fe2be873944e73334f681a0e8138cfccbea29
    • Yue Chen's avatar
      Clean-up abandoned options for filter_intra · 250dd963
      Yue Chen authored
      Code for the following options is removed.
      (1) Disable filter_intra in sub8x8 tx blocks
      (2) Filter intra implementaion based on 1x1, 2x2, and 4x4 unit
      Change-Id: Ie898f6e8155709beff030b0ffb876754f14fb173
    • Luc Trudeau's avatar
      [CFL] Cache DC_PRED during CfL-RDO · 467205ac
      Luc Trudeau authored
      By default, the DC_PRED is not cached (this includes
      decoding). During cfl_rd_pick_alpha(), DC_PRED caching
      is enabled, the DC_PRED is cached after the first time it
      is computed (for each plane) and then it is reused when
      testing all the other scaling parameters.
      Change-Id: Ie8ba0bb0427c4d9be8de5b44e6330e8a78b9c7d9
    • Luc Trudeau's avatar
      [CleanUp] Wrap intra_mode_to_tx_type_context · 9cea993b
      Luc Trudeau authored
      To avoid using a UV_PREDICTION_MODE with intra_mode_to_tx_type_context,
      a wrapper function is added. Using a UV_PREDICTION_MODE with
      intra_mode_to_tx_type_context is problematic with UV_CFL_PRED which
      needs to be converted to DC_PRED.
      Change-Id: I68320e34dd5e616d0f15ca2c1c951440243968cf
  3. 18 Dec, 2017 8 commits
    • Urvang Joshi's avatar
      Superres: Bypass superres funcs when scale is 1. · 26177d9e
      Urvang Joshi authored
      When superres experiment is compiled, but the frame is not
      super-resolved, we should use the same code used by full resolution
      Change-Id: I79b1d8410f66febdb51b78013375d61a8e52c8c5
    • Yaowu Xu's avatar
      Add alignment and intialization for an array · 8e3110ff
      Yaowu Xu authored
      Change-Id: Ia869042ec3cc85de077a577814f742578e9ed6af
    • Cheng Chen's avatar
      LPF_SB: make it work with seg and ext_delta_q · 5dcef7d2
      Cheng Chen authored
      Clean up unused code. Now lpf_sb works as baseline loop filter. It
      is compatible with seg feature and ext_delta_q.
      Change-Id: If5deb10d9f35cc3037463e7e8420bcd6b2b0255e
    • Cheng Chen's avatar
      JNT_COMP: highbd SIMD implemenation · a50f9f57
      Cheng Chen authored
      Add av1/common/x86/highbd_convolve_2d_sse4.c.
      Specifically, function av1_highbd_jnt_convolve_2d
      Change-Id: I1bfe0431c793bd5f78c30bc763aa7691e5d74b04
    • Luc Trudeau's avatar
      [CleanUp] Remove block from av1_mode_context_analyzer · 15a18e3d
      Luc Trudeau authored
      av1_mode_context_analyzer is always called with block == -1.
      Change-Id: Ibc9e7e87ea95f3651f7505b82674a6fd795ae985
    • Debargha Mukherjee's avatar
      Make lv-map work with 64x16/16x64 transforms · 695abd72
      Debargha Mukherjee authored
      Some refactoring done to enable reuse of code.
      Change-Id: I28cea413a1bf7e6b8ce82ee50c5b5603e8185a2a
    • Zoe Liu's avatar
      Expand skip mode support for all comp frames · 4b847e19
      Zoe Liu authored
      All compound predicted frames now have the choice to either turn on
      or off the use of the skip mode. The current encoder design only
      turns on the use of skip mode when the temporal distances of the two
      reference frames to the current frame are only different by 1.
      This patch also includes a fix on the calculating of the temporal
      distance between the two reference frames to the current frame for
      skip mode.
      Performance wise, this patch does not have noticeable impact as the
      encoder stays with the same choice with the frame-level skip mode
      Change-Id: I34f370940b3b25d2ab429b8721344133ae6288ad
    • Cheng Chen's avatar
      LPF_SB: cleanup unused functions and code path · 76224b0e
      Cheng Chen authored
      Since we've decided to use guess filter levels for lpf_sb, I remove
      unused searching functions and coding paths to make codebase clean
      and easy to manage.
      Change-Id: I3497add59fc1eaf36acdd0acb85e3bcb6486d01d
  4. 17 Dec, 2017 4 commits
    • Nathan E. Egge's avatar
      daala_tx: Flip the names on od_rotate kernels. · a25c0300
      Nathan E. Egge authored
      The od_rotate kernels were named after the trailing operation (where
       od_rotate_sub() meant that the last operation was a subtraction)
       which became less intuitive after we folded leading addition operation
       into the kernel.
      This patch simply swaps the operations and kernel labels and has no
       change to the actual transform outputs.
      Change-Id: I3d23f1d4aa9e47c78c849dcc6497f099ddcb3574
    • Nathan E. Egge's avatar
      daala_tx: Fold the addition into od_rotate kernel. · a0bec9d1
      Nathan E. Egge authored
      Move the od_add() and od_sub() calls into the od_rotate_sub() and
       od_rotate_add() kernels respectively as suggested by Frank Bossen.
      The number of kernels is reduced by introducing a flag to indicate which
       of the two versions it is (addition or subtraction).
      Additional named flags are added for the slight kernel variations such
       as the averaging or shifting steps which should be correctly inlined by
       the compiler.
      Extra defines are used to add human readable names for the kernel types.
      The named SHIFT parameter is still passed so that the orthonormal and
       asymmetric DST kernels can be combined in a later patch.
      This patch has no change to metrics.
      Change-Id: I11383b11a5e898b519fcb89d5c23bcf7934d94a2
    • Nathan E. Egge's avatar
      daala_tx: Unify the asym and ortho DST designs. · b2f82ebd
      Nathan E. Egge authored
      This patch refactors the DST transforms so that the orthonormal and
       asymmetric transforms are now nearly identical (up to multiplicaiton
       constants and an extra set of shifts).
      This means that the DST designs are now embeddable for every level
       and should address hardware concerns about gate area.
      In addition, minor changes were made to improve transform accuracy:
       - all of the transforms now have perfect reconstruction for those
          computations outside the rotations, i.e., all +/- butterfly steps
          are exactly invertible
       - two multiplication constants were reduced below < 1.0 (better for
          SIMD and gives slightly improved accuracy)
       - the averaging bias is removed which saves an extra addition for each
          of the averaging steps
      Additional averaging steps can be removed from the 8-point Type-IV DST
       giving a 68% reduction in MSE for the 32-point DCT, but has not been
       done in the event we use it in place of the 8-point Type-VII DST.
      master-daala_tx@2017-12-10T22:38:19.651Z ->
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      0.0057 | -0.0210 | -0.1821 |   0.0085 | -0.0002 |  0.0147 |    -0.0674
      Change-Id: Ib124eebf6f2e4b3c51c078d4e8f229fc5ec26171
    • Frederic Barbier's avatar
      Remove experimental flag of PALETTE_DELTA_ENCODING · e6579113
      Frederic Barbier authored
      This experiment has been adopted, we can simplify the code
      by dropping the associated preprocessor conditionals.
      Change-Id: Idec45a597398ff4fddc6a040c3d7cb3a3c0029d6
  5. 16 Dec, 2017 8 commits
    • Urvang Joshi's avatar
      Make TX64X64 work with CONFIG_TXMG=0 · dc250207
      Urvang Joshi authored
      And remove the corresponding workaround.
      Change-Id: I2b08f536afdb3434ce451b58ea392eeef634ea48
    • Urvang Joshi's avatar
      Rectangular transforms: smaller dim first always. · 15b0113b
      Urvang Joshi authored
      This is true independent of CONFIG_TXMG flag, so no need for the other
      code path.
      Change-Id: I572c5151ca866d9d430460fb353610540c9bf025
    • Cheng Chen's avatar
      Add filter delay for intraBC · 7b88ade6
      Cheng Chen authored
      Because of loop filter, the bottom 8 rows and the rightmost 8 cols
      of IntraBC area now is invalid. It is equal to let the valid region
      add an offset of the filter delay.
      Change-Id: Ia91a5b3e81279166dc97a60a7fb6fbda3f2df138
    • Jingning Han's avatar
      Remove b_mode_info structure · b8b2a0ec
      Jingning Han authored
      This structure was designed for sub8x8 blocks. It is deprecated as
      cb4x4 lands.
      Change-Id: Ied1dbc3fba4c503c00c59cb749e8ddc1ed2b580e
    • Jingning Han's avatar
      Fix joint compound mode weight assignment · ec2fbea8
      Jingning Han authored
      Fix the weighting coefficients for cases where the last reference
      frame is closer than the future reference frame.
      Change-Id: I52f7f9fc43d4887bfa085b0cd27959d9412b8714
    • Jingning Han's avatar
      Deprecate the use of bmi structure from av1 codec · 2fac8a41
      Jingning Han authored
      Change-Id: I7f5010ae3b9a014b3dca0425c9eada3b9e2c0ab3
    • 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:
      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
    • Sarah Parker's avatar
      Separate inter and intra new-quant profiles · 7640ee42
      Sarah Parker authored
      This also adds some tuning to the intra parameters. The current
      gains are 0.22% on lowres.
      Change-Id: I923134096cda608672d2fba7771c1f7a9fbc8efe
  6. 15 Dec, 2017 7 commits