1. 31 Oct, 2017 7 commits
  2. 30 Oct, 2017 11 commits
    • Jingning Han's avatar
      Reset current_video_frame in key frame · d8a15a66
      Jingning Han authored
      Reset the frame index tracking to 0 when key frame is inserted in
      the frame sequence.
      
      Change-Id: Ib80313004fc000e7127a9797af5afe9029c0cb45
      d8a15a66
    • Yaowu Xu's avatar
      Revert "Temporarily disable simple_bwd_adapt" · 6656a552
      Yaowu Xu authored
      This reverts commit c002bdf6.
      
      Now the issue has been tracked down to what is described in:
      https://aomedia-review.googlesource.com/#/c/aom/+/29761/
      
      Change-Id: I49fe8395781e1fea8095dbdc6c00d36b90dc7575
      6656a552
    • Debargha Mukherjee's avatar
      Remove compound-segment/wedge config flags · 371968cd
      Debargha Mukherjee authored
      Change-Id: I39cfbb135add0553cadf64481b13786831fbdddd
      371968cd
    • Urvang Joshi's avatar
      Remove an obsolete comment · 78c229b4
      Urvang Joshi authored
      Change-Id: I9b1351263286041d718a1b54735c17aeb5f8a0a7
      78c229b4
    • Rupert Swarbrick's avatar
      Correct scaling in av1_loop_restoration_corners_in_sb · 34f2b74d
      Rupert Swarbrick authored
      I'd got the scaling backwards. This gets it right and adds a comment
      explaining the calculation.
      
      Change-Id: Ife2913700cc73996c09b702b394832799c449a8c
      34f2b74d
    • Jingning Han's avatar
      Speed up inter frame rate-distortion optimization · cf842ad2
      Jingning Han authored
      The frame marker system supports one to map the reference frame
      index into the natural order. It allows direct checking on the
      efficacy of the reference frames given their relative locations
      with respect to the current coding frame.
      
      This commit uses such property to filter out reference frames
      less likely to contribute coding gains from the rate-distortion
      optimization process. For example, it takes out the check on
      last2 / 3 frames, when their actual location is further away
      from the golden frame.
      
      The AWCY results show 0.6% performance regression. The encoding
      speed gets doubled.
      
      To use the speed up, one needs to turn on frame-marker experiment
      before we turn it on by default, and enable selective_ref_frame
      entry in the speed feature.
      
      Change-Id: Ifb03ed90acd980bbc7ff1c2e17982e21e68d2588
      cf842ad2
    • Sebastien Alaiwan's avatar
      Remove experimental flag of GLOBAL_MOTION · 48795807
      Sebastien Alaiwan authored
      This experiment has been adopted, we can simplify the code
      by dropping the associated preprocessor conditionals.
      
      Change-Id: I9c9d6ef5317798cbf237307a9754fe7e03bdda47
      48795807
    • Luc Trudeau's avatar
      [CFL] Sub8x8 Validation Code Rewrite · c7af36d4
      Luc Trudeau authored
      Sub8x8 Validation code is changed to be more robust. The scope of the
      validation is narrowed to validating that all of the required content in
      the storage buffer was stored between CfL predictions. The early
      termination used in the current mode decision code does not allow to
      validate more than that.
      
      This change does not change encoder output
      
      BUG=aomedia:925
      
      Change-Id: I7f1ed84da5037dcfaaf5da9cf33b4b8d664d2352
      c7af36d4
    • Rupert Swarbrick's avatar
      Stop backward adaptation if EXT_TILE + cm->large_scale_tile · 84b05ac1
      Rupert Swarbrick authored
      Backwards adaptation doesn't really make sense in this context,
      because ext-tile means the decoder might not decode every tile in the
      frame, in which case it can't work out how to adapt probabilities.
      
      It turns out that the tests in the tree were passing when
      SIMPLE_BWD_ADAPT was disabled because (presumably) all of them
      happened to decode every tile, so backward adaptation worked as you'd
      expect. With SIMPLE_BWD_ADAPT, there's some code in get_tile_buffers
      to figure out which is the largest tile. This wasn't mirrored in
      get_ls_tile_buffers, which caused the encoder and decoder to get out
      of sync because they ended up with different CDFs. You also can't
      easily fix things in get_ls_tile_buffers because that code is careful
      not to calculate the size of tiles it doesn't need.
      
      BUG=aomedia:917
      
      Change-Id: Ia926692f86ca1466252108e09da3de590d45f048
      84b05ac1
    • Debargha Mukherjee's avatar
      Remove experimental flag for rect-tx · 11812967
      Debargha Mukherjee authored
      Change-Id: I0cc53a03f07a11a6f7ea0570ff4ee8cf7c18c5aa
      11812967
    • David Barker's avatar
      loop-restoration: Remove special case in Wiener filter · 3acd3b5c
      David Barker authored
      Remove the special case handling for the topmost/bottommost
      rows in each processing unit. This causes slightly different
      effects depending on whether striped-loop-restoration is enabled.
      
      With striped-loop-restoration:
        Now that we explicitly fill out 3 rows of above/below pixels
        for each stripe, we don't need to use stepdown_wiener_kernel.
        Instead, the duplication of the topmost/bottommost pixels
        accomplishes the same task, while making the code much cleaner.
      
        This patch should not cause a change in output, except in a
        couple of cases which were already questionable. In particular,
        it fixes bug #953, where the Wiener filter could not handle
        small processing units (<4 rows high)
      
      Without striped-loop-restoration:
        The Wiener filter returns to using a full 3 pixels above/below
        the processing unit. In order to make sure there are enough
        pixels, we need to expand WIENER_BORDER_VERT to 3 pixels.
      
        This will result in a slight change in output, but should be
        fairly minor.
      
      BUG=aomedia:953
      
      Change-Id: I9530ef55909246f7ba488b7ecfd92d59e776b2f9
      3acd3b5c
  3. 28 Oct, 2017 6 commits
    • Sebastien Alaiwan's avatar
      decodeframe.c: fix include guards · ee7a1d56
      Sebastien Alaiwan authored
      Change-Id: I69d1c4b63960b46affb3f907fe8a1385f0de8948
      ee7a1d56
    • Yaowu Xu's avatar
      Only test defined functions · b59064e7
      Yaowu Xu authored
      Move #if CONFIG_EXT_TX in av1_fht32x32_test.c to be consistent as in
      dct.c
      
      BUG=aomedia:964
      
      Change-Id: I0e7a777588f76a9088ce05ec8598f6ffa7c19e48
      b59064e7
    • Nathan E. Egge's avatar
      Add new 4-point Type-VII DST to daala_tx. · 14a9cb1f
      Nathan E. Egge authored
      Replaces the lifting based orthonormal 4-point Type-IV DST with an
       orthonormal 4-point Type-VII DST that has no iterative multiplies.
      
      Change-Id: I0a1f1a8d8cecce1c8002b7891baea601bc088690
      14a9cb1f
    • Jingning Han's avatar
      Extend the eob context model · 35deaa73
      Jingning Han authored
      Account for 1-D/2-D transform kernels for the eob modeling. To
      maintain a smaller context cardinality, set the two 1-D transform
      kernels in the same category. The difference in directions should
      be largely covered by the scan order.
      
      This and the previous CLs on nz_map context modeling together
      improve the compression performance of level-map coefficient coding
      system by 0.4% for lowres.
      
      Change-Id: I8c4f03ca01ce3d248950d04bd1266f445b4227a0
      35deaa73
    • Jingning Han's avatar
      Account for rectangular transform block sizes in lv-map ctx · a24a6900
      Jingning Han authored
      Account for the rectangular transform block sizes in the non-zero
      map context model.
      
      Change-Id: I16cf21a4120c10c213df10950aeb4ef0ea40c477
      a24a6900
    • Cheng Chen's avatar
      JNT_COMP: 6. support wedge · bdd6ca81
      Cheng Chen authored
      Support compound_segment and wedge.
      JNT_COMP is a competitor to compound_segment and wedge. They are
      mutually exclusive.
      
      Change-Id: Id93c36de44a69008182424f40325e42e699bedcd
      bdd6ca81
  4. 27 Oct, 2017 16 commits
    • Joe Young's avatar
      Ext-intra modification/tuning · 3ca43bf0
      Joe Young authored
      For ext-intra direcation intra modes:
      
      1. Use neighbor block modes to modify edge filtering strength
         Coding gain (lowres/midres/hdres):
           (8 keyframes)
           PSNR: -0.19 -0.22 -0.10
           SSIM: -0.29 -0.27 -0.13
      
      2. Use context-based cdf to code angle_delta syntax
           (8 keyframes)
           PSNR: -0.20 -0.24 -0.27
           SSIM: -0.29 -0.33 -0.37
      
      3. Filter corner sample:
           (8 keyframes)
           PSNR: -0.01 -0.02 -0.05
           SSIM: -0.03 -0.04 -0.05
      
      Combined Bd-rate improvement for 8 keyframes
           PSNR: -0.40 -0.47 -0.40
           SSIM: -0.57 -0.60 -0.51
      
      Change-Id: Id47ac17b6bf91cd810b70cacfc5b457341f417f3
      3ca43bf0
    • Ola Hugosson's avatar
      Enable deblock_13tap · 88f0dd64
      Ola Hugosson authored
      Change-Id: Ia8916ac9ae2dc7f086057510cb239d1796f60801
      88f0dd64
    • Urvang Joshi's avatar
      Superres: Fix writing/reading of denominator. · 8301018d
      Urvang Joshi authored
      Range is 9 to 16, and not 8 to 15.
      
      BUG=aomedia:972
      
      Change-Id: I7de6cea16a6377d9cd3b2af73efc841b42dad1fa
      8301018d
    • Urvang Joshi's avatar
      64X64: Keep top-left 32x32 only (other code path). · 693ae522
      Urvang Joshi authored
      Change-Id: Ib4faac1e7da40a351ec3abfe1f636a94c92ef0a3
      693ae522
    • Rupert Swarbrick's avatar
      Fix ext-tile encoding when not using compressed header · 53685900
      Rupert Swarbrick authored
      The compressed header size is now sometimes not signalled and the
      encoder code hadn't been updated to match.
      
      Note: This mistake caused the failing test tracked in bug 917 to fail,
            but fixing it doesn't fix the test: the decoder now staggers on
            a little further before getting out of sync.
      
      BUG=aomedia:917
      
      Change-Id: Ic0de99ede778844c4dbdd34dba3fba9c1fa2d95f
      53685900
    • Rupert Swarbrick's avatar
      Reset restoration info at start of large_scale_tiles too · 7546b304
      Rupert Swarbrick authored
      Since commit 6c545216, loop restoration coefficients are written inside
      tiles data. Since the Wiener and Sgrproj coefficients are
      delta-encoded (and tiles must be decoded independently) this means we
      must call set_default_wiener and set_default_sgrproj at the start of
      encoding and decoding each tile. That patch missed doing so when
      encoding large scale tiles (part of the EXT_TILE experiment). This
      adds the missing lines.
      
      Note: This caused AV1/AVxEncoderThreadLSTest.EncoderResultTest/3 to
            fail with --enable-ext-tile, which is tracked in bug
            917. Unfortunately, there's something else going wrong that
            means the test is still failing: I'll address that in a separate
            patch.
      
      BUG=aomedia:917
      
      Change-Id: I5bd8e9d7f7a2abd60779abf170185a1c5b090474
      7546b304
    • Hui Su's avatar
      Resolve an issue between palette and delta-q · efb755cd
      Hui Su authored
      Avoid resetting current_q_index.
      
      Change-Id: I76d27605b6a8c0cd6b1032e24ea5ca8561115e5a
      efb755cd
    • Urvang Joshi's avatar
      Encoder: Reduce max resident set size by 23% · 5a69cd2d
      Urvang Joshi authored
      We reduce max stack size from 16 to 8.
      
      Memory reduction:
      - peak usage for 1080p video: 2.328 GB → 1.788 GB
      - sizeof ref_mv_stack: 6144 → 3072
      - sizeof(MB_MODE_INFO_EXT): 6456 → 3384
      - sizeof(PICK_MODE_CONTEXT):8056 → 5000
      - sizeof(PC_TREE): 201440 → 125040
      
      Compression performance is roughly neutral:
      - AWCY objective-1-fast: +0.03
      - Google lowres: 0.0
      - Google midres: -0.006
      
      BUG=aomedia:940
      
      Change-Id: Ifd38359c58e40b1c94552c5034618da8ce510f62
      5a69cd2d
    • Cheng Chen's avatar
      Clamp loop filter levels · aff479fa
      Cheng Chen authored
      Clamp in range [-MAX_LOOP_FILTER, MAX_LOOP_FILTER], for experiment LOOPFILTER_LEVELS.
      
      BUG=aomedia:970
      
      Change-Id: Ica52242e969dcea49565f118155de5eef32a4cc4
      aff479fa
    • Cheng Chen's avatar
      JNT_COMP: 5. Support compound_segment · 3392c436
      Cheng Chen authored
      Let jnt_comp work with compound_segment. When frame distance weights
      are used, compound_segment blending is turned off. When normal compound
      mode is used, compound_segment blending is searched. The rdcost should
      select between {frame distance weights, normal compound,
      compound_segment blending}.
      
      Change-Id: I162d1d204ba6a5976538357d9dbc71fc5b1aa8d5
      3392c436
    • Cheng Chen's avatar
      JNT_COMP: 4. add context and entropy read/write · 0a7f2f51
      Cheng Chen authored
      Change-Id: I0e6f7ab981e31f7120105515f6204568b6dc82d3
      0a7f2f51
    • Cheng Chen's avatar
      JNT_COMP: 3. rd select the best weight · ca6958c6
      Cheng Chen authored
      Select the best compound_idx in rd.
      The rate/cost for compound_idx and their ctx will be in patch 4.
      
      But there's a bug for now if we don't encode one more time using the
      selected compound_idx. It remains a issue to be solved in the future.
      
      Change-Id: I5e1ba51da2b6ab5bacd8aba752dda43bd2257014
      ca6958c6
    • Ola Hugosson's avatar
      Disable wide filter unit tests in deblock_13tap mode · bda536a4
      Ola Hugosson authored
      The 13-tap versions of the wide filters are not ported to SIMD yet
      Also add #if to hide a few unused static functions
      
      Change-Id: I1accb2ebf3774a64529d08d667cbebd608d37d39
      bda536a4
    • Rupert Swarbrick's avatar
      Fix CONFIG_EXT_TILE + CONFIG_LOOPFILTER_LEVEL decoding · 566155fe
      Rupert Swarbrick authored
      This (correctly) triggered a compiler warning. The patch is very
      simple, and tries to match the equivalent logic in
      loopfilter_frame (in encoder.c)
      
      Change-Id: I62ca11dffe0f5c21f81c1db2e2dcafdb08cef83c
      566155fe
    • Zhijie Yang's avatar
      Add short_filter experiment · f02f8aef
      Zhijie Yang authored
      Reduce the motion interpolation filter taps for inter prediction
      blocks with widths or heights smaller than or equal to 4 to alleviate the memory
      bandwidth increase.
      
      AWCY HL: 0.01% Y, -0.20% U, -0.29% V (positive number means loss)
      
      Change-Id: Ic454340e20aea2f1aae622336990f24a9e5b54d8
      f02f8aef
    • Rupert Swarbrick's avatar
      Fix build with --enable-obu · 70f0eb33
      Rupert Swarbrick authored
      It seems that the change in commit 28444be6 missed this line (which
      only fails to compile with --enable-debug because it's in an assert)
      
      BUG=aomedia:952
      
      Change-Id: Ibe6200b2928d198c73f3e9c9f0badcbdaffcac49
      70f0eb33