1. 30 Nov, 2017 4 commits
    • Luc Trudeau's avatar
      [CFL] CfL Initialization Simplification · 1e84af52
      Luc Trudeau authored
      The CfL context is now stored inside MACROBLOCKD instead of
      MACROBLOCKD only storing a pointer to the CfL context.
      The intent is to avoid race conditions as MACROBLOCKD is stored
      inside ThreadData. This change also simplifies CfL Initialization.
      
      Change-Id: I991503716b21fc9aca60caddb2008b8bff397e6d
      1e84af52
    • Jingning Han's avatar
      Make adaptive scan order support multi-threading · 0bd3bf69
      Jingning Han authored
      Count the non-zero appearance per tile and update per frame. This
      resolves an enc/dec mismatch in multi-threading coding.
      
      BUG=aomedia:1073
      
      Change-Id: I474f05913e6c3f75ca3fa1057bd4809ef51af164
      0bd3bf69
    • Hui Su's avatar
      Make the signaling of allow_screen_content_tools consistent · df89ee3a
      Hui Su authored
      in keyframe and all-intra frame.
      
      Change-Id: I09d6f83efd3c4fe3f9a464d6a0e22e2e68220a8d
      df89ee3a
    • Debargha Mukherjee's avatar
      Refactor/Change the entropy context for transforms · b3eda2f4
      Debargha Mukherjee authored
      The change makes the entropy context for transforms use
      the same mechanism as with and without lv_map.
      For the non-lv-map case the context is now based on the
      the larger transform dim for 2:1 rect transforms. The context
      is now the average for 4:1 rect transforms for both lv-map and
      non-lv-map cases.
      There is one small fix for level map for getting the correct
      rate when skip is set.
      
      BDRATE: lowres, 30 frames, speed 1: -0.15% gain for the
      non-lv-map case on the baseline.
      
      Change-Id: I06a583d33bef68202d72a88e077f8d31cc5e7fe4
      b3eda2f4
  2. 29 Nov, 2017 5 commits
    • Zoe Liu's avatar
      Unify binary symbol design for LAST/LAST2 · 8781828b
      Zoe Liu authored
      Current encoding of single ref assigns bit 0 to LAST_FRAME and bit 1
      to LAST2_frame, whereas the encoding of compound ref assigns bit 1 to
      LAST_FRAME and bit 0 to LAST_FRAME. This patch unifies the design and
      makes the binary symbol assignment for LAST/LAST2 consistent
      regardless of the single/compound ref scenarios.
      
      This patch incurs a small syntax change but should not have noticeable
      coding performance impact. Once BUG 973 is fully addressed, default
      cdfs for reference frame coding will be updated.
      
      BUG=aomedia:973
      
      Change-Id: I1f3027965c0bb2d343bc8ad873f7c0015123f151
      8781828b
    • Luc Trudeau's avatar
      Remove TileWorkerData · fc851cbb
      Luc Trudeau authored
      This struct does not appear to be used.
      
      Change-Id: I964362e783a7f9ab6cf6ccc98bc7a279876075b4
      fc851cbb
    • Linfeng Zhang's avatar
      Update av1_read_coeffs_txb(), keep update position · 530bee20
      Linfeng Zhang authored
      Change-Id: I3acd24acbd121c93e89817f865a54327d5e8e92e
      530bee20
    • Peter de Rivaz's avatar
      Unconditionally use LAST_FRAME for prev_frame. · f33e01d7
      Peter de Rivaz authored
      BUG=aomedia:78
      
      Change-Id: Id85cf22302317d33b593345fd31090a6620f4101
      f33e01d7
    • Sebastien Alaiwan's avatar
      Remove MRC_TX experiment · 9f001f35
      Sebastien Alaiwan authored
      This experiment has been abandonned for AV1.
      
      Change-Id: Ib9a8eea6b0ad5580dc81836be8fc5e898bb9bb45
      9f001f35
  3. 28 Nov, 2017 1 commit
    • Debargha Mukherjee's avatar
      Enhance option to handle chroma tx-size for vartx · 19619886
      Debargha Mukherjee authored
      Adds an option to split chroma tx size by one level if the luma
      transform size is split at least one level. Otherwise use the
      largest transform size for chroma.
      This option is enabled with DISABLE_VARTX_FOR_CHROMA set as 2,
      but is currently turned off until we finish testing.
      
      Change-Id: Ie048c4e33193e0cc7e1bbee37e4ccc085834433c
      19619886
  4. 27 Nov, 2017 3 commits
    • Jingning Han's avatar
      Use sub-frame statistics for adaptive scan order update · 025c6c41
      Jingning Han authored
      Skip the last SB row counting for per frame adaptive scan order.
      This allows enough time window for HW decoder to process the
      scan order update for next frame decoding.
      
      Change-Id: I8a3b48fe452c68c921d55dc76cc787f0a8e00e29
      025c6c41
    • Debargha Mukherjee's avatar
      Add option to disable split partitions for chroma · 891a8774
      Debargha Mukherjee authored
      When the flag DISABLE_VARTX_FOR_CHROMA is on chroma is
      constrained to always use the largest transform size
      for the prediction unit size.
      This is meant to simnplify the logic for transform size
      selection for chroma with hopefully no loss.
      
      Results:
      lowres 30 frames, speed 1: -0.038% (a slight improvement).
      lowres 30 frames, speed 0: 0.000% (noise level difference).
      
      Change-Id: I14dd5b1983d908bd98e59b7d252e11f5755c97e6
      891a8774
    • Debargha Mukherjee's avatar
      Add chroma bsize modifications correctly · 3aa28111
      Debargha Mukherjee authored
      Change-Id: I807dc86489bc9219a24801841e66b555a2d7a51f
      3aa28111
  5. 24 Nov, 2017 1 commit
    • Rupert Swarbrick's avatar
      Disallow 4:1/1:4 partitions for BLOCK_128x128 · eb123933
      Rupert Swarbrick authored
      The change can be temporarily reverted by setting ALLOW_128X32_BLOCKS
      to 1 (for easy "is this better?" testing: we'll get rid of the option
      once it's clear what we're doing).
      
      Since this means we have to modify the "num_partition_types"
      calculation in functions like read_partition, we move it into a helper
      function called partition_cdf_length(). Doing this makes the bodies of
      read_partition and write_partition somewhat simpler than they were.
      
      Change-Id: I3573f62f71dc3344aed2dcb3e423e034eb56a7c5
      eb123933
  6. 23 Nov, 2017 2 commits
  7. 22 Nov, 2017 3 commits
  8. 21 Nov, 2017 4 commits
  9. 20 Nov, 2017 3 commits
    • Monty Montgomery's avatar
      Remove use of av1_get_tx_scale in Daala TX · 27d1b373
      Monty Montgomery authored
      Daala TX does not scale coefficients based on TX size.  Although
      previous patches force av1_get_tx_scale() to always return zero when
      CONFIG_DAALA_TX is true, this patch removes the call entirely.  This
      represents no functional change.
      
      subset-1:
      monty-rest-of-stack-Q3-s1@2017-11-13T14:39:52.160Z ->
       monty-rest-of-stack-rmscale-s1@2017-11-13T14:40:20.646Z
      
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0000 |     N/A |  0.0000 |   0.0000 | 0.0000 |  0.0000 |     0.0000
      
      Change-Id: I5757282153c291c59510b17b5f71b3e0a56382ca
      27d1b373
    • Dake He's avatar
      [lv_map_multi] Base level alphabet adjustment · 3fe369c8
      Dake He authored
      At eob-1, coefficient must be non-zero. As such, this CL changes the
      alphabet for base levels at eob-1 from size 4 to size 3. Minor
      performance improvement is observed. In addition, changes in 33462 made
      by Ola Hugosson were also incorporated.
      
      Now with trained initial probability distributions.
      
      Change-Id: Id6b5d0908b5ff186ed88ab0733ce7cc0c4a468d5
      3fe369c8
    • Monty Montgomery's avatar
      Add Daala TX fixed-coeff-depth capability to quantization · 60f2a229
      Monty Montgomery authored
      This patch completes the work to add fixed-depth TX domain support to
      the quantization and dequantization code.  At present, it is active but
      configured to behave identically to current AV1 master as RDO and TX
      have not yet been updated to also support this functionality.
      
      subset-1:
      monty-rest-of-stack-noshift-s1@2017-11-13T14:37:42.541Z ->
       monty-rest-of-stack-quant-s1@2017-11-13T14:38:43.774Z
      
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0000 |  0.0000 |  0.0000 |   0.0000 | 0.0000 |  0.0000 |     0.0000
      
      objective-1-fast --limit=4:
      monty-rest-of-stack-noshift-o1f4@2017-11-13T14:37:16.992Z ->
       monty-rest-of-stack-quant-o1f4@2017-11-13T14:38:28.828Z
      
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0000 |  0.0000 |  0.0000 |   0.0000 | 0.0000 |  0.0000 |     0.0000
      
      Change-Id: I3773a1fc128136c9fea227f4b547576a8aa6efa3
      60f2a229
  10. 19 Nov, 2017 2 commits
  11. 18 Nov, 2017 5 commits
    • Jingning Han's avatar
      Remove unneeded memset on sign array · ea636197
      Jingning Han authored
      Change-Id: I21213ad3a8b9bd018927582ffa7eeab372aa7f9c
      ea636197
    • Jingning Han's avatar
      Reconstruct dqcoeff inline with coeff decoding · cf3a0824
      Jingning Han authored
      Reconstruct dqcoeff inline with transform coefficient level
      decoding process. This saves one pass through 0 to eob scan. The
      txb coeff decoding speed is up by 5%.
      
      Change-Id: Icd88a9dca4595a180d514ce4b067ecf9dd90a609
      cf3a0824
    • Zoe Liu's avatar
      Add motion selection to ext_skip · f40a9577
      Zoe Liu authored
      A new block mode, referred to as skip_mode is added. If a block is
      coded as skip_mode, it will be inter-coded, with its references and
      motion vectors derived from its neighboring blocks with zero-residue.
      Otherwise, the block can be coded in the current intra or inter mode.
      
      The computational load on skip_mode evaluation at the encoder should
      be kept minimum. No transform size / type evaluations are needed.
      
      Change-Id: I5aef0159c7d5ecd64258510835903375d6c536d6
      f40a9577
    • Jingning Han's avatar
      Properly update eob state in first pass coeff decode · 8682cd91
      Jingning Han authored
      Update the last coefficient position whose level is above
      NUM_BASE_LEVELS in the first pass decoding. This increases the
      lv-map txb decode speed by 10%.
      
      Change-Id: Ib35409a1d374c1e171ee45ac805a3a318793935e
      8682cd91
    • David Barker's avatar
      Fix render size with !CONFIG_FRAME_SUPERRES · 6e5ade98
      David Barker authored
      If CONFIG_FRAME_SUPERRES is disabled, and we don't explicitly signal
      a render size for a frame, then the render size would be set to the
      crop size of the *previous* frame (or 0 for the first frame in a video).
      
      Return to using the VP9 behaviour in this case (albeit coded slightly
      differently to help support superres) - ie, use the crop size of the
      current frame if an explicit render size is not provided.
      
      We do this by moving the calls to resize_context_buffers() (which sets
      up cm->width and cm->height) before the calls to setup_render_size
      (which might use those values). Because resize_context_buffers() does not
      read any data, the bitstream format should not be affected, aside from
      the intended bugfix.
      
      BUG=aomedia:1044
      
      Change-Id: I4fc71b9aea36cc06e10408715c205d9674f87fc2
      6e5ade98
  12. 17 Nov, 2017 7 commits
    • Zoe Liu's avatar
      Clean up decoder on NEWMV handling · 2854fe70
      Zoe Liu authored
      Change-Id: Idc72cff4ab9ba1691a7f5c72366a61be9569d370
      2854fe70
    • Yunqing Wang's avatar
      Reuse neighbor's warped motion parameters · 876a8b0b
      Yunqing Wang authored
      If a block's motion_mode is WARPED_CAUSAL and its mode is NEARESTMV, search
      its immediate above and left neighbors to get the set of neighbor blocks
      using WARPED_CAUSAL motion mode, pick the one with largest block size, and
      use that neighbor's warped motion parameters directly for the current block.
      If none of the neighbors uses WARPED_CAUSAL motion mode, we estimate the
      current block's warped motion parameters.
      
      Before this patch, for every block, we estimate its warped motion parameters.
      With this patch, we reduce the number of blocks doing parameter estimation.
      Here are results by testing on clips with camera motions.
                          WARPED_CAUSAL blocks   blocks reusing parameters
      station2_240p(30f):     3857                    1678
      netflix_arieal(30f):     692                     223
      
      No noticable changes in coding gain. Borg test result showed a PSNR
      change of +0.006% on cam_lowres set, and -0.014% on lowres set.
      
      Change-Id: If12387ad0ca8a1996ea4c3f1bedcb269ebf78c6c
      876a8b0b
    • Hui Su's avatar
      Remove prob table entries and counters for new mv · 21b67229
      Hui Su authored
      Change-Id: Ifa2cdc2d2230dfa11396ee3e547653180f96b795
      21b67229
    • Jingning Han's avatar
      Simplify tx size access in read_coeffs_txb · 4b9892d5
      Jingning Han authored
      Change-Id: I482f95ee0e466d14a893152fdd03d0cfe368a7e1
      4b9892d5
    • Jingning Han's avatar
      Skip unnecessary memset operation in lv-map decoding · 3925aae0
      Jingning Han authored
      Speed up the lv-map txb decoding process by 5%.
      
      Change-Id: I5c87666b353a27f7fc67cc55322a30bb417435a3
      3925aae0
    • Thomas Davies's avatar
      LV_MAP_MULTI: use reduced probability in EC. · 736ddef5
      Thomas Davies authored
      Do not round the lv_map probabilities but instead
      reduce the precision of the entropy coder to 9 bits
      for all CDFs, and modify operation so that the EC
      interval is never 0.
      
      Change-Id: I1b4e51019613106ae3b68519b20637bc0d7b51be
      736ddef5
    • Jingning Han's avatar
      Set up txb coeff processing timer · 53c08960
      Jingning Han authored
      Allow the codec to time the average transform block coefficient
      processing for sw speed check.
      
      Change-Id: Ibdaf15ab5b7f1ea8264604cc00ef45e3ae3114c7
      53c08960