1. 26 Dec, 2017 2 commits
    • Zoe Liu's avatar
      Remove unused code for comp ref setup · ba33d4ce
      Zoe Liu authored
      Change-Id: I40232b965ba28b4dcef7ebfe8697679f6b0ffc96
      ba33d4ce
    • Zoe Liu's avatar
      Not signal reference_mode if one ref avaialble · c67d98c6
      Zoe Liu authored
      Use the frame ID that indicates the frame display order to identify
      whether two different reference frames exist for inter-coded frames.
      If there is only one unique reference valid in the reference buffer,
      there is no need to signal reference_mode. Instead, the decoder may
      identify such scenario and set reference_mode to SINGLE_REFERENCE.
      
      Change-Id: If7d374f5355f153c50b408be5a9956a833c976c3
      c67d98c6
  2. 25 Dec, 2017 3 commits
    • Debargha Mukherjee's avatar
      Use and adjust rectangular txfm stage ranges · 901d5148
      Debargha Mukherjee authored
      Adjusst txfm stage ranges so that Cfg tests pass, however
      tests with --enable-coefficient-range-checking are still
      failing. Those are to be addressed subsequently.
      
      Change-Id: I1b15406a525a78322211e69a0d3a796823bb645e
      901d5148
    • Angie Chiang's avatar
      Avoid changing motion_mode after rd search · 6f90fb29
      Angie Chiang authored
      Check if the global motion undergoes non-translation mode. If that
      is the case, do not force a newmv mode into globalmv mode.
      
      This will resolve a mismatch bug of txk_sel.
      
      Change-Id: I589f1619427f02045f8cf49bdea05f348f076236
      6f90fb29
    • Jingning Han's avatar
      Make translation global motion condition consistent · 19d05210
      Jingning Han authored
      Make the translation global motion condition on block size
      consistent to support 4x16 and 16x4 coding block sizes.
      
      Change-Id: I23a0d04ca6cc08e8f29055c2c37f11b6ca204fec
      19d05210
  3. 24 Dec, 2017 2 commits
  4. 23 Dec, 2017 8 commits
    • Yunqing Wang's avatar
      Add optimized convolve functions for single reference case · 94e3fe3b
      Yunqing Wang authored
      Added optimized convolve functions for single reference case, so that no
      separate post rounding is needed and the result is written to the
      destination buffer directly. Duplicate code will be cleaned up later.
      
      Change-Id: Iffc0cc6e135b8b6f45a95c314d63368f5aa35f34
      94e3fe3b
    • Yue Chen's avatar
      Remove unused binary-symbol coding and tree-based coding · b101935f
      Yue Chen authored
      Change-Id: I70ebb6ada7ec4a975a8984a2e1ea2fa51664a786
      b101935f
    • Zoe Liu's avatar
      Add encoder support to fwd-kf · b499120e
      Zoe Liu authored
      Encoder now writes the binary symbol for show_existing_frame to
      indicate the value of reset_decoder_state. The default value now
      is set as zero regardless. This enables the bitstream match with
      the decoder.
      
      With this patch when fwd-kf is enabled, one additional bit is
      signaled at the frame header for show_existing_frame, but without
      any coding performance impact.
      
      Change-Id: Ib0137e6a513011c0ac9506837d32e9ad405508af
      b499120e
    • Jingning Han's avatar
      Reduce the ref mv search region for sub8x8 blocks · 818b0064
      Jingning Han authored
      Reduce the reference motion vector search region over the spatial
      neighbor blocks for sub8x8 block sizes, in order to reduce the
      worst case context model parsing latency.
      
      Change-Id: I77a2a25483836cc02cf1784c93566fa7cff40fc8
      818b0064
    • Sarah Parker's avatar
      Merge FINAL_PASS_TRELLIS_OPT with DISABLE_TRELLISQ_SEARCH · 792c2ec4
      Sarah Parker authored
      The speed feature FINAL_PASS_TRELLIS_OPT is meant to disable
      optimize_b during the transform search but allow it for the
      final encode of blocks. There was a previously existing macro
      called DISABLE_TRELLISQ_SEARCH, which does the same thing. This
      patch merges the functionality so the macro serves only to enable
      the speed feature.
      
      Change-Id: Ieee70f97f817998b7ca275f6e4647cc89a330ad6
      792c2ec4
    • Urvang Joshi's avatar
      av1_fwd_txfm1d_test: Fix when TX64X64 is off. · 22fba1ff
      Urvang Joshi authored
      Change-Id: I4658238c32ed419736cd5db2dd4fc26e9d8e50c5
      22fba1ff
    • Debargha Mukherjee's avatar
      Add stage range configurations for inv transforms · f5a5987f
      Debargha Mukherjee authored
      Only the col transforms are needed since the inverse transform
      is designed to do row first and then col. So the row
      transform can reuse the same configuration as the row transform of
      a square transform of the same size.
      
      Change-Id: I55e0bd6fca2765679be90364a65393e1787f42fe
      f5a5987f
    • Sarah Parker's avatar
      Replace hbd adst4 with lbd adst4 · 95f52605
      Sarah Parker authored
      0.05% drop in performance for 10 bit
      0.03% drop in performance for 12 bit
      
      Updated relevant tests:
      - Use the fadst4 function from VP9 as the reference.
      - Update some max/avg error thresholds
      
      Change-Id: Ic8c5b591eea3309427d2bb42828d44e640f718a1
      95f52605
  5. 22 Dec, 2017 22 commits
    • Hui Su's avatar
      Palette: enable all partitions no larger than 64x64 · 8b618f62
      Hui Su authored
      Enable palette mode for
      4x4, 4x8, 8x4, 4x16, 16x4, 8x32, 32x8, 16x64, 64x16
      
      0.8% gain on screen_content keyframe coding.
      
      Change-Id: Ic3c089b74171ace9082a0d3ad9e27c8a27553789
      8b618f62
    • Debargha Mukherjee's avatar
      Add stage range configurations for fwd transforms · b31ff9b2
      Debargha Mukherjee authored
      Only the row transforms are needed since the forward transform
      is designed to do col first and then row. So the col transform
      can reuse the same configuration as the col transform of a
      square block of the same size.
      
      Change-Id: I35d88146d8f8afeb685e958cb8df447f4d2b7aa1
      b31ff9b2
    • Luc Trudeau's avatar
      [CFL] Code cleaning and Fix for TXK_SEL · 439ba638
      Luc Trudeau authored
      Small code cleaning and partially resolves issue 1171. I can't confirm
      that it's a complete fix because the code asserts further a long
      
      aomenc: ../av1/common/blockd.h:1064: av1_get_tx_type:
        Assertion `tx_type < TX_TYPES' failed.
      
      BUG=aomedia:1171
      
      Change-Id: I3f1c91d751e937dd8e07f7e2f786a75eba4b6891
      439ba638
    • Sarah Parker's avatar
      Use new-quant lookup table in lv-map optimization · 3d75209a
      Sarah Parker authored
      Currently, optimize_txb does not use the new-quant
      lookup table when it updates the coefficients. This
      fixes the function to avoid a mismatch.
      
      With this patch, new-quant adds 0.28% gains on top of
      lv-map-multi on 40 frames of lowres.
      
      Change-Id: Ic4e76c28c7e4e007d277fe92b9030e078768bab3
      3d75209a
    • Zoe Liu's avatar
      Enable ext_skip by default · c70f6616
      Zoe Liu authored
      Change-Id: If84cd6da3f2ad9d989baac713e7bd1c50470acf1
      c70f6616
    • Sebastien Alaiwan's avatar
      decodeframe.c: simplify control flow · 86da7eba
      Sebastien Alaiwan authored
      Change-Id: I3faecc70004747a10cd51df9dbcb27b7c2d56703
      86da7eba
    • Yaowu Xu's avatar
      Make obu default again · 42659162
      Yaowu Xu authored
      This reverts commit b1bf64d5.
      
      Since the root cause of #1143 has been fixed.
      
      Change-Id: I067de02a0d8843e496613559adea126fc218d4dd
      42659162
    • Linfeng Zhang's avatar
      Add av1_get_nz_map_contexts_sse2() · 0ba23e86
      Linfeng Zhang authored
      10x - 50x faster than C code.
      
      av1_cost_coeffs_txb() is about 6% faster.
      
      av1_cost_coeffs() is about 3% faster.
      
      Change-Id: Ib9cbed02a65b9cb0c5deb7a5d99c95d0d8ba32c0
      0ba23e86
    • Linfeng Zhang's avatar
      Add av1_get_nz_map_contexts() · d67c13f8
      Linfeng Zhang authored
      Change-Id: I9228a10fb0c50010a64aeb2761771522f378f33e
      d67c13f8
    • Linfeng Zhang's avatar
      Skip av1_cost_coeffs_txb() when eob is 0 · c02b4112
      Linfeng Zhang authored
      Tested with 720p encoding and av1_cost_coeffs() saves 12% time.
      Tried inline av1_cost_coeffs_txb() first but has no help.
      
      Change-Id: Idb59de8563010be6f39e9c803ee2d5137c5160f7
      c02b4112
    • Debargha Mukherjee's avatar
      Make chroma loopfiltering tx_sizes consistent · 8aec7f30
      Debargha Mukherjee authored
      Removes existing inconsistencies between chroma tx_sizes
      used for chroma loopfiltering.
      Includes various refactoring to remove the uv_txsize_lookup
      array eventually.
      
      BUG=aomedia:1090
      
      Change-Id: Ib74299b41280ca3ebeaf9a9293242d531d68ad28
      8aec7f30
    • Debargha Mukherjee's avatar
      Option to disable small tx size for intra chroma · 80592c72
      Debargha Mukherjee authored
      This is essentially an implementation of Mozilla's big_chorma_tx
      proposal, and CFL is already using this.
      
      The option is turned on by default.
      Also includes some associated refactoring.
      
      AWCY Subset1 results:
      PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0136 | -1.0317 | -1.3525 |  -0.0140 | -0.0188 | -0.0156 | -0.4665
      Link:
      https://beta.arewecompressedyet.com/?job=debargha-base-lvmap%402017-12-21T06%3A08%3A35.079Z&job=debargha-nosmltxi-lvmap%402017-12-21T06%3A10%3A57.767Z
      
      Also resolves the bug below:
      
      BUG=aomedia:1158
      
      Change-Id: I9b806b57c008b7a9bb79357f0bc44dbb091e5278
      80592c72
    • Ralph Giles's avatar
      Don't force inlining for msvc targets. · 1b63eb33
      Ralph Giles authored
      INLINE is defined as __forceinline for vs* configs, but is the
      normal, compiler-discretion inline for gcc/clang configs. This
      makes many functions very large when building for windows targets,
      much larger than they are elsewhere.
      
      Use '__inline' as a consistent definition to get consistent function
      sizes. Thanks to David Major for the diagnosis.
      
      Change-Id: Ibb4f7e3a58d65b844d65cbd2e487d9f9f4cedc91
      1b63eb33
    • Yunqing Wang's avatar
      Set AV1 convolve function pointers in JNT_COMP · 26b75145
      Yunqing Wang authored
      Set function pointers for AV1 convolve functions in JNT_COMP.
      
      Change-Id: I9042b09c7c0222660b18b3a9ebb1379fd05b52c8
      26b75145
    • Yue Chen's avatar
      Check tx_size before trying filter_intra in speed 3 setting · 4a8ea37b
      Yue Chen authored
      Bug=aomedia:1170
      
      Change-Id: I26a816c3d379ce0428967f2631c5c9282bf8f278
      4a8ea37b
    • Jingning Han's avatar
      Take out drl index control from opt-ref-mv · b4fc74da
      Jingning Han authored
      Removing the drl dependency on the candidate list length appears
      to incur more than 0.3% compression performance loss. Hence remove
      this option from opt-ref-mv to allow better latency vs compression
      performance trade off.
      
      Change-Id: I6edaeb2d437996082b7bdd6cda7351426c5584b9
      b4fc74da
    • Sebastien Alaiwan's avatar
      Move obu high-level to a dedicated file · e9644bee
      Sebastien Alaiwan authored
      Change-Id: I4630d402fccb645ae49da017aa56f5af56e25a11
      e9644bee
    • Cheng Chen's avatar
      Remove lpf_sb · 07365c9a
      Cheng Chen authored
      As loopfilter is not needed for intrabc, clean up related code.
      
      Change-Id: If89d4969a7795cd8993e6add8fd03ef1296699ef
      07365c9a
    • Zoe Liu's avatar
      Add the syntax/decoder support for fwd-kf · a7c1b196
      Zoe Liu authored
      Forward-coded KEY_FRAME, served as a backward reference frame, is
      coded as intra-only. The show_existing_frame to show the buffered
      forward KEY_FRAME needs to reset the frame context as well as reset
      the reference frame buffer.
      
      One binary symbol, namely reset_decoder_state, is added to the frame
      header. Whenever a frame is a show_existing_frame, it reads out this
      binary symbol value from the bitstream. When this binary symbol is
      1, it indicates that the existing frame to show shall be an intra
      coded frame and will serve as a KEY_FRAME. The frame context is set
      to default and the reference buffer is updated the same way as a
      normal KEY_FRAME.
      
      Change-Id: I8b641220689459a104d2f5a03bbdb6820af8f990
      a7c1b196
    • Debargha Mukherjee's avatar
      Make space for range config for 2D transforms · 867f3120
      Debargha Mukherjee authored
      Change-Id: I62117adde6f403c02667903a31454b2e3cfea4aa
      867f3120
    • Yunqing Wang's avatar
      Set AV1 convolve function pointers · d790c809
      Yunqing Wang authored
      Set function pointers for AV1 convolve functions.
      
      Change-Id: I9241ef31fcd060a6b76e0cac8e2452b0207df929
      d790c809
    • Jingning Han's avatar
      Fix potential integer overflow in coeff dequant · 4e0b43e0
      Jingning Han authored
      This solves a potential integer overflow issue in the coefficient
      dequantization. It fixes an enc/dec mismatch issue.
      
      BUG=aomedia:1174
      
      Change-Id: Iea80f7fc2011ed35d2a44e360acd59cd8e85cf42
      4e0b43e0
  6. 21 Dec, 2017 3 commits
    • Urvang Joshi's avatar
      Swap new size 8 and 16 fwd/inv transforms for ADST · 4d5cf537
      Urvang Joshi authored
      This is to make them similar to the ones in VP9.
      
      Change-Id: Iaebf625f2dce4f159b8a8615f37003d773ee6450
      4d5cf537
    • Hui Su's avatar
      intrabc: enable 16x4 and 4x16 blocks · eb2fd5c5
      Hui Su authored
      0.15% gain on the screen_content testset.
      
      BUG=aomedia:998
      
      Change-Id: Ia6484a90b92a00bb0073ecf988b5c164fe8ba84c
      eb2fd5c5
    • Luc Trudeau's avatar
      [CFL] SSE2/AVX2 versions of subtract_average · b4faea73
      Luc Trudeau authored
      Includes unit tests for conformance and speed.
      
      SSE2/CFLAverageSpeedTest:
      4x4: C time = 499 us, SIMD time = 156 us (~3.2x)
      8x8: C time = 1124 us, SIMD time = 221 us (~5.1x)
      16x16: C time = 4228 us, SIMD time = 620 us (~6.8x)
      32x32: C time = 8743 us, SIMD time = 2236 us (~3.9x)
      
      AVX2/CFLAverageSpeedTest:
      4x4: C time = 482 us, SIMD time = 180 us (~2.7x)
      8x8: C time = 1007 us, SIMD time = 227 us (~4.4x)
      16x16: C time = 3471 us, SIMD time = 324 us (~11x)
      32x32: C time = 8758 us, SIMD time = 1443 us (~6.1x)
      
      Change-Id: Id5ae80142a9764f388c0770ebcff4e46fa3a4dad
      b4faea73