1. 18 Sep, 2017 2 commits
    • David Barker's avatar
      Save global motion params even in error-resilient-mode · cba7da74
      David Barker authored
      The error-resilient-mode flag is currently set per frame,
      so we can encode a non-error-resilient frame immediately
      after an error-resilient frame.
      
      As of https://aomedia-review.googlesource.com/c/21783 , this
      case causes the decoder to read uninitialized memory. This
      happens because the error-resilient frame no longer sets up
      cm->cur_frame->global_motion. Then, on the non-error-resilient
      frame, that is renamed to cm->prev_frame->global_motion and we
      try to use it as a reference for delta encoding.
      
      Fix this by always writing cm->cur_frame->global_motion.
      
      Change-Id: I0d4f13bf413ca15da210e06d5ce1780331c005da
      cba7da74
    • Thomas Davies's avatar
      NEW_MULTISYMBOL: support EXT_COMP_REFS signaling. · 0fbd2b79
      Thomas Davies authored
      Change-Id: Ic29bac4cd00a009e4a5a607ecc5596fa53bb1c1f
      0fbd2b79
  2. 16 Sep, 2017 11 commits
    • Tom Finegan's avatar
      Remove the itrans DSPR2 sources. · 77f792f0
      Tom Finegan authored
      These files define functions that are unused. Update CMake
      and configure builds to remove references and delete the
      source files. These files defined the DSPR2 specializations
      of high bit depth versions of the following functions:
      
      - av1_iht16x16_256_add
      - av1_iht8x8_64_add
      - av1_iht4x4_16_add
      
      Change-Id: Ie3ef2592efe1519589a735b0d0db2806eec83e59
      77f792f0
    • Hui Su's avatar
      intrabc: consider mode cost in RD selection · 8dc0092f
      Hui Su authored
      Should take the overhead into consideration when intrabc is not
      being used. Did not see much coding gain with this patch though.
      
      Change-Id: Ie997c1a7284159252d5f663171957c044d3e0a03
      8dc0092f
    • Hui Su's avatar
      intrabc: replace prob with cdf · 6c8584f6
      Hui Su authored
      Improves keyframe coding by 0.1% on the screen_content testset.
      
      Change-Id: I5793a67eaae21010ef200038af99ebb9029fc770
      6c8584f6
    • Jingning Han's avatar
      Properly count the rate cost in base range coding · 772dee37
      Jingning Han authored
      Properly count the base range coefficient coding in the rate
      distortion optimization and soft quantization process.
      
      Change-Id: I860001f51c4a9d0021d08b85b8ccdb097121b287
      772dee37
    • Joe Young's avatar
      [intra-edge] Vectorize edge filtering functions · 89d321f7
      Joe Young authored
      Add sse4_1 functions for Intra-edge experiment:
        av1_filter_intra_edge_sse4_1()
        av1_filter_intra_edge_high_sse4_1()
      
      Approx cycle reduction at qp 20, 1 kf:
        Enc (lbd) 1.4% to 0.3%
        Dec (lbd) 0.4% to 0.1%
        Enc (hbd) 1.1% to 0.2%
        Dec (hbd) 0.6% to 0.1%
      
      No change to bitstream
      
      Change-Id: I176b2d125424d7d226114c807915c33dde5c3720
      89d321f7
    • Angie Chiang's avatar
      Consider 4 neighbors in try_level_down() · e80957ff
      Angie Chiang authored
      This will let the coding performance drop by 0.1%,
      but it will speed up encoder by 40%
      
      The change is under the flag FAST_OPTIMIZE_TXB
      
      Change-Id: I07dea24e818123e27c4347189aaec59deb42903c
      e80957ff
    • Tom Finegan's avatar
      Add test executables to AOM_APP_TARGETS list in the CMake build. · 140dcd57
      Tom Finegan authored
      Change-Id: Ia4ec99ce8f3dd0098764571777e78adac21b6e67
      140dcd57
    • Tom Finegan's avatar
      Add missing CMake include guard in x86-linux.cmake. · f7a80485
      Tom Finegan authored
      Change-Id: Iaf93f37d8b6e2e8d256f8ff5a408d45802a2ae57
      f7a80485
    • Tom Finegan's avatar
      Fix CMake mips32 build with DSPR2 enabled. · db724cf0
      Tom Finegan authored
      - Add aom_scale dspr2 sources to the correct target (aom).
      - Fix an inverted high bit depth condition.
      - Remove claims that dspr2 variants of av1_iht16x16_256_add_dspr2,
        av1_iht8x8_64_add_dspr2, av1_iht4x4_16_add_dspr2 from
        av1_rtcd_defs.pl exist in low bit depth configs.
      
      Change-Id: Ibdd42e475b81c2491f02ba10ca0d461f7ff15bc5
      db724cf0
    • Tom Finegan's avatar
      Fix mips32 dspr2 build warnings. · 3b411360
      Tom Finegan authored
      Change-Id: Iadbb91ca1905318f094fdfae95f2c4db87943842
      3b411360
    • Debargha Mukherjee's avatar
      Add a q index based frame superres mode · 7166f22a
      Debargha Mukherjee authored
      Refactors and adds superres-mode 3 and associated
      paramters --superres-qthresh and --superres-kf-qthresh
      that are used to trigger superres mode when the qindex
      for any frame exceeds the thresholds provided for non-key
      and key-frames respenctively. The superres scale factor
      numerator is progressively reduced from 16 starting from
      that q threshold following a fixed slope.
      
      Change-Id: If1c782993667a6fbaaa01bbde77c4924008c0d28
      7166f22a
  3. 15 Sep, 2017 15 commits
    • Nathan E. Egge's avatar
      Force C implementation of 16-point Daala TX's. · 34e1201a
      Nathan E. Egge authored
      This patch fixes a regression introduced in 1d190950 where the encoder
       was using the 16x16 VP9/AV1 transforms for RDO, but then used the Daala
       transforms for encoding.
      
      subset1:
      
      master-daala_dct16@2017-09-13T12:05:18.013Z ->
        master_daala_dct16_use_c@2017-09-13T13:05:02.252Z
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.3654 | -0.7634 | -0.7407 |  -0.4884 | -0.4699 | -0.4945 |    -0.5104
      
      master-no_rect_tx-no_var_tx@2017-09-12T00:23:18.153Z ->
        master_daala_dct16_use_c@2017-09-13T13:05:02.252Z
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0133 |  0.1040 | -0.0440 |  -0.0492 | -0.0151 | -0.0120 |     0.0699
      
      Change-Id: Id1830d0975db4bd0320a47fdf45b4bca20881cfb
      34e1201a
    • Nathan E. Egge's avatar
      Remove tabs in configure. · 22fe4a13
      Nathan E. Egge authored
      Change-Id: I0b6a1781ab3bf8e32874fe71e24a4cb8c9943357
      22fe4a13
    • Nathan E. Egge's avatar
      Add the DAALA_TX experiment. · 4e884047
      Nathan E. Egge authored
      Change-Id: I408dbcf69b3f680e5de570e080ce39aeacbf618d
      4e884047
    • Yi Luo's avatar
      Enhance intra pred speed test to include highbd pred · f5d71a69
      Yi Luo authored
      This is a manual merge from libvpx's commit:
      "05ee24149 Add high bitdepth intra prediction
      optimization speed test". Credit goes to Linfeng Zhang.
      
      Change-Id: Ie254593aa9b601889ecb95eca900365055d46a03
      f5d71a69
    • Yi Luo's avatar
      Fix a baseline build error · 2e6a9ab9
      Yi Luo authored
      Change-Id: I9b92caa9d65a3b062762c270c89018c8e08eba0f
      2e6a9ab9
    • Angie Chiang's avatar
      Turn off TestResizeCspWorks under conditions · 1ff7d9ab
      Angie Chiang authored
      DISABLE_TRELLISQ_SEARCH will incur failure of TestResizeCspWorks
      BUG=aomedia:734
      
      Change-Id: I70d51b9a490b251ebd7743faf831da54b94e48c7
      1ff7d9ab
    • Luc Trudeau's avatar
      Fix Dead Store in rdopt.c · 1f7c4114
      Luc Trudeau authored
      Change-Id: Iad6a16d3ab819405de037d5100060710e0636176
      1f7c4114
    • Nathan E. Egge's avatar
      Disable daala_dct64 if tx64x64 is not enabled. · 72e0f783
      Nathan E. Egge authored
      Change-Id: Ib19d9431124b2416abe4a217138ec8bdb029f73c
      72e0f783
    • Nathan E. Egge's avatar
      Fix highbd_iht_test with 4, 8, and 16 daala_tx. · 71b0513b
      Nathan E. Egge authored
      This change fixes a compile error when all three of --enable-daala_dct4,
       --enable-daala_dct8 and --enable-daala_dct16 are enabled at once.
      
      Change-Id: I4942e09fb887afbda2eda6aaacec727b5cbf6f50
      71b0513b
    • Yushin Cho's avatar
      Enable 'dist_8x8' experiment by default · 255ff990
      Yushin Cho authored
      This experiment has been agreed to remove its flag in
      Sep 12 AOMedia Codec WG meeting.
      We first soft-enable it until it gets stable.
      
      The provided encoder option "--tune=[cdef-dist | daala-dist]" is turned
      off by default, hence there is no change in bd-rate.
      
      Change-Id: Ib4553125bbaeff5a98542b39cba942496337f901
      255ff990
    • Yushin Cho's avatar
      Fix a static analyzer warning · ee810273
      Yushin Cho authored
      Also fix asan warnings.
      
      Change-Id: I21fe3150635540abacb5b1b8928c6470db605035
      ee810273
    • Angie Chiang's avatar
      register_state_check: simplify Check() methods · 74acf004
      Angie Chiang authored
      - make Check() void as the EXPECT's are sufficient to document failure
      
      cumulatively this has the effect of avoiding reporting incorrect Check()
      failures due to earlier test failures.
      
      This CL is ported over from
      f8c27d164 register_state_check: simplify Check() methods
      
      Change-Id: I1b65aa769c69c2a52b2e0b363f1c4432965ee89f
      74acf004
    • Yi Luo's avatar
      Enhance intra pred unit test to verify rectangular pred · da9e4afe
      Yi Luo authored
      Add a macro to improve the readibility of test case. The
      coming test cases varying on mode/size would expand the
      list too large.
      
      Change-Id: I74171344098820b21090dd9b857229bdf2e77248
      da9e4afe
    • Zoe Liu's avatar
      Add encoder support for multi-layer GF 16 · 8dd1c980
      Zoe Liu authored
      Currently the use of the new multi-layer GF group of 16 is guarded by
      the macro USE_GF16_MULTI_LAYER, which is turned off. Hence this CL
      does not change any of the encoder behavior.
      
      Change-Id: I588cd34e19388337a2ecb0a0cb3f796a37647e24
      8dd1c980
    • Yunqing Wang's avatar
      Further refactor setup_ref_mv_list · d1121fa3
      Yunqing Wang authored
      This patch follows the previous refactoring patch, and further reduces
      the number of calls made to scan_row_mbmi and scan_col_mbmi by going
      through partition blocks instead of mi blocks. This patch doesn't change
      bitstream, which was proven by Borg test result.
      
      The baseline decoder speed test on 1080p clip showed that the average
      decoder speedup was 1.1%.(fps: 32.626 --> 32.994)
      
      Change-Id: Ic375ae5d682c7454e2f2a2fcf8baa6b4b438d9a6
      d1121fa3
  4. 14 Sep, 2017 1 commit
  5. 13 Sep, 2017 9 commits
    • Sarah Parker's avatar
      Use default reference gm params in error resilient mode · f289f9f5
      Sarah Parker authored
      This allows gm parameters to be written when error resilient mode
      is enabled but avoids depending on stored parameters from the
      previous frame.
      
      BUG=aomedia:741
      
      Change-Id: Iae455a346e0eebb18e2bcfadc8826c75aedfee99
      f289f9f5
    • David Michael Barr's avatar
      [CFL] Fix typedef-redefinition compiler warnings · 5b2021ea
      David Michael Barr authored
      Instead of forward-declaring AV1_COMMON and MACROBLOCKD,
      move the dependent struct and function prototype closer
      to where they are used and after these types are defined.
      
      Change-Id: I75f005b46ef322a6fcbc01377b8dded1637c5f73
      5b2021ea
    • Rupert Swarbrick's avatar
      Teach inspector about 4:1 block sizes · a5263757
      Rupert Swarbrick authored
      Change-Id: I5d60cc74233bf7ddf56bcd0c3e8b8d012a6e5a63
      a5263757
    • Rupert Swarbrick's avatar
      Hide repeated arguments in calls to count_segs in count_segs_sb · 114e81a3
      Rupert Swarbrick authored
      The calls to count_segs appear very different from each other, but
      this is really just because of line wrapping (enforced by the
      clang-format linter). This patch produces equivalent code but the
      results are far easier to read.
      
      Change-Id: I9d548a4988d4ef23f71fbd8afc855eb8a43f7bd5
      114e81a3
    • Rupert Swarbrick's avatar
      Simplify get_partition() implementation · 136d5c17
      Rupert Swarbrick authored
      This function is given a bsize and an mi array and has to figure out
      what partition to use to divide the given bsize in the direction of
      the sizes it finds in the mi array. (Since each block size can be
      reached by only one sequence of partitions, this can be done
      unambiguously)
      
      The previous version was correct, working by looking up entries in the
      partition_lookup array. Unfortunately, that lookup isn't quite enough
      when CONFIG_EXT_PARTITION_TYPES is true, so it then had to do some
      slightly confusing computations to fix things up after the fact.
      
      The new version should be more self-explanatory and doesn't work by
      looking things up in a magic array. It looks up the width and height
      corresponding to bsize and compares them with the width and height
      corresponding to the sb_type at mi_row,mi_col in the mi array. When
      CONFIG_EXT_PARTITION_TYPES is false, this is all you need, and the
      four corresponding cases can be found by a lookup in an array of 4
      elements.
      
      With extended partition types and a sufficiently large block, you have
      to do a bit more searching. For example, if bsize is BLOCK_16X16 and
      the subsize is BLOCK_8X8, the partition might be PARTITION_SPLIT, but
      it might be one of PARTITION_HORZ_A or PARTITION_VERT_A instead. The
      new code adds some comments to explain what's going on.
      
      A nice side-effect of rewriting get_partition in this way is that it
      lets us completely dispense with the partition_lookup array.
      
      The patch also fixes comments for the A/B extended partitions in
      enums.h, which were slightly backwards (a "horizontal split means two
      blocks vertically above one another)
      
      Change-Id: I4b48189103aa63e1859f25a15d7690d53ca7baf5
      136d5c17
    • David Barker's avatar
      aom-qm: Fix overflow in quantizer calculation · 568b7c7e
      David Barker authored
      By using a combination of a small qmlevel and large qindex,
      it is possible for the quantizer 'dqv' to end up > 2^15.
      This currently causes dqv to overflow, so widen its type
      to avoid that.
      
      Note that this is certainly an extreme case, but not entirely
      useless - if using a 32x32 transform, the dequantized value
      can be as small as dqv/2, which may still fit in 16 bits.
      
      Change-Id: I0451e70ba6b17620d94386a98d873f0a8c615635
      568b7c7e
    • Rupert Swarbrick's avatar
      Report a proper error when bitstream wrongly requests prev_frame_mvs · bdfb4a6f
      Rupert Swarbrick authored
      Using an assert (which was compiled out) meant we got to a
      use-after-free in bug 729.
      
      BUG=aomedia:729
      
      Change-Id: I4d0fa5e80322c395f94565c76e2285782c328505
      bdfb4a6f
    • Debargha Mukherjee's avatar
      Change/refactor compound mode handling for sub8x8 · 0f248c46
      Debargha Mukherjee authored
      Turn off compound modes as long as one of the dimensions
      is less than 8.
      
      Imapct on AWCY (0.05% increase in BDRATE)
      https://arewecompressedyet.com/?job=debargha-nocdef-sub8c8nc-0907%402017-09-07T20%3A28%3A38.251Z&job=debargha-nocdef-0907%402017-09-07T14%3A42%3A17.170Z
      
      Change-Id: I4a70890c04149246a50e60990dede21cb8052fad
      0f248c46
    • Yushin Cho's avatar
      Fix compile error when both of dist_8x8 and pvq are enabled · 39086c0b
      Yushin Cho authored
      Remove mistakenly leftover code from commit
      e30a47ca.
      
      Note that this change force-disables activity masking in PVQ until we can add some
      bitstream signaling for it.
      
      Change-Id: I5279f82e7977733ebc40f5aed844ecec1279992a
      39086c0b
  6. 12 Sep, 2017 2 commits