1. 26 Jul, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] UV_PREDICTION_MODE · d6d9eeeb
      Luc Trudeau authored
      A separate prediction mode struct is added to allow
      for uv-only modes (like CfL). Note: CfL will be
      added as a separate mode in an upcoming commit.
      
      Results on Subset1 (Compared to 4266a7ed with CfL enabled)
        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: Ie80711c641c97f745daac899eadce6201ed97fcc
      d6d9eeeb
  2. 20 Jul, 2017 3 commits
    • Zoe Liu's avatar
      Add support to the experiment of altref2 · 97ad058e
      Zoe Liu authored
      This CL adds an extra alt-ref reference frame, namely ALTREF2_FRAME,
      and designs the contexts for ALTREF2_FRAME.
      
      Change-Id: I12fe8629b868aebf6c2b54260fca5abc38f90ae6
      97ad058e
    • Cheng Chen's avatar
      Directional deblocking filter · 9050c9da
      Cheng Chen authored
      New deblocking filter that smooths block boundaries in an estimated
      direction of object orientation.
      
      1. Select the proper direction for deblocking filtering.
      Compute abs gradient line by line for the block.
      Select the direction with least sum of abs gradient.
      
      2. Apply deblocking filtering for a block along this direction.
      Apply directional filtering for Y, U, V planes.
      
      Coding gain on Google test set:
      
      %	  	avg_psnr   ovr_psnr  ssim
      lowres  	-0.129 	  -0.136    -0.277
      midres  	-0.103    -0.127    -0.188
      hdres	  	-0.159    -0.158    -0.173
      screen_content  -0.408    -0.397    -0.695
      
      Change-Id: Ie8646dcc163ace5d8faf5e502b38342d885efc30
      9050c9da
    • Sarah Parker's avatar
      Add new MRC_DCT tx type · 53f93dbd
      Sarah Parker authored
      This adds the new transform to the list of possible transforms.
      The impact on performance is in the noise range because the transform
      implementation currently performs DCT as a placeholder. This transform
      will initially only have an implementation for TX_32X32 and it is
      skipped in the tx search for smaller transform sizes.
      
      Change-Id: Iab2faddc525b478ca06972a753428a4f4ef53ac6
      53f93dbd
  3. 14 Jul, 2017 1 commit
    • Yunqing Wang's avatar
      Make EXT_TILE compatible with TILE_GROUPS · eeb08a9b
      Yunqing Wang authored
      Added a 1-bit flag 'large_scale_tile'. If it is 0 that is the default value,
      use normal tile coding in TILE_GROUPS. If it is 1, use large-scale tile
      coding in EXT_TILE.
      
      At large_scale_tile=1 case, if single-tile-decoding is required, then the
      loopfilter is disabled.
      
      Related API and unit tests were modified.
      
      Change-Id: I3ba12dc3d80ccf1ab21543ab3b16c02282c34e3b
      eeb08a9b
  4. 12 Jul, 2017 2 commits
    • Rupert Swarbrick's avatar
      ext-partition-types: Add 4:1 partitions · 93c39e91
      Rupert Swarbrick authored
      This patch adds support for 4:1 rectangular blocks to various common
      data arrays, and adds new partition types to the EXT_PARTITION_TYPES
      experiment which will use them.
      
      This patch has the following restrictions, which can be lifted in
      future patches:
      
        * ext-partition-types is incompatible with fp_mb_stats and supertx
          for the moment
      
        * Currently only 32x32 superblocks can use the new partition types
      
      There's a slightly odd restriction about when we allow
      PARTITION_HORZ_4 or PARTITION_VERT_4. Since these both live in the
      EXT_PARTITION_TYPES CDF, read_partition() can only return them if both
      has_rows and has_cols is true. This means that at least half of the
      width and height of the block must be visible. It might be nice to
      relax that restriction but that would imply a change to how we encode
      partition types, which seems already to be in a state of flux, so
      maybe it's better to wait until that has settled down.
      
      Change-Id: Id7fc3fd0f762f35f63b3d3e3bf4e07c245c7b4fa
      93c39e91
    • Zoe Liu's avatar
      Further work on ext-comp-refs for ref frame coding · fcf5fa27
      Zoe Liu authored
      (1) Work with var-refs to remove redundant bits in ref frame
          coding;
      (2) Add a new uni-directional compound reference pair:
          (LAST_FRAME, LAST3_FRAME);
      (3) Redesign the contexts for encoding uni-directional reference frame
          pairs;
      (4) Use aom_entropy_optimizer to collect stats for all the default
          probability setups related to the coding of reference frames.
      
      Compared against the baseline (default enabled tools excluding ext-tx
      and global-motion for encoder speed concern) with one-sided-compound,
      the coding gain of ext-comp-refs + var-refs - one-sided-compound is:
      
      lowres: avg_psnr -0.385%; ovr_psnr -0.378% ssim -0.344%
      midres: avg_psnr -0.466%; ovr_psnr -0.447% ssim -0.513%
      
      AWCY - High Latency:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.2758 | -0.1526 | -0.0965 |  -0.2581 | -0.2492 | -0.2534 |    -0.2118
      
      AWCY - Low Latency:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -1.0467 | -1.4500 | -0.9732 |  -0.9928 | -1.0407 | -1.0180 |    -1.0049
      
      Compared against the baseline (default enabled tools excluding ext-tx
      and global-motion for encoder speed concern) without
      one-sided-compound, the coding gain of
      ext-comp-refs + var-refs - one-sided-compound is:
      
      lowres: avg_psnr -0.875%; ovr_psnr -0.877% ssim -0.895%
      midres: avg_psnr -0.824%; ovr_psnr -0.802% ssim -0.843%
      
      Change-Id: I8de774c9a74c20632ea93ccb0c17779fa94431cb
      fcf5fa27
  5. 08 Jul, 2017 1 commit
    • Debargha Mukherjee's avatar
      Changed scaling of MVs to use higher precision. · 15836145
      Debargha Mukherjee authored
      This is intended to be a no-op when scaling is not
      enabled, but is expected to result in more accurate
      prediction when references need to be scaled.
      
      However note all xs, yx, subpel_x and subpel_y values
      are now at higher than 1/16th precision.
      
      Change-Id: I4b22573ea290a31fc58ead980bb0d5e5a9e89243
      15836145
  6. 06 Jul, 2017 1 commit
    • hui su's avatar
      Re-order intra modes during RD search · 8a516a8f
      hui su authored
      Prioritize modes that are more likely to be picked. Impact on
      compression is neutral. Keyframe encoding speed increases by about 5%.
      
      Change-Id: I57f7481a42b833203e4cfb84806fe755ec37d615
      8a516a8f
  7. 28 Jun, 2017 1 commit
  8. 27 Jun, 2017 1 commit
    • Wei-Ting Lin's avatar
      ncobmc_adapt_weight: Add bitstream syntax · 85a8f70c
      Wei-Ting Lin authored
      Define the syntax and entropy coding templates for
      NCOBMC_ADAPT_WEIGHT. The actual values of the default
      probabilities and the index tree structure need to
      be fine tuned.
      
      In this experiment all mv's in a superblock are sent
      first as in the ncobmc case.
      
      Change-Id: I68d50d3d27346c2847ea449a1168c6a99fbb4d3d
      85a8f70c
  9. 21 Jun, 2017 1 commit
    • Timothy B. Terriberry's avatar
      cb4x4: Move sub-4X4 block sizes behind chroma flags. · 81ec2619
      Timothy B. Terriberry authored
      cb4x4 itself should not require these sizes.
      
      This simplifies compatibility with other experiments, since we can
      first make them work with cb4x4 (which is now on by default), and
      then worry about chroma_sub8x8 and chroma_2x2 (which is not) in
      separate steps.
      
      Encoder and decoder output should remain unchanged.
      
      Change-Id: Iff2a5494cab3b7d96f881e8bd9cd4bf18c817cfa
      81ec2619
  10. 19 Jun, 2017 1 commit
    • Zoe Liu's avatar
      Add new coding tool of ext-comp-refs · c082bbcb
      Zoe Liu authored
      The tool of ext-comp-refs adds the uni-directional compound reference
      prediction. In details, 3 pairs of uni-direcitonal compound references
      are added for the comp ref prediction:
      (LAST_FRAME, LAST2_FRAME),
      (LAST_FRAME, GOLDEN_FRAME), and
      (BWDREF_FRAME, ALTREF_FRAME).
      
      This new tool of ext-comp-refs will eventually overwrite
      one-side-compound and have the two coding tools to merge to one.
      
      It achieves -0.35 ~ -0.55% coding gains in BDRate, compared against
      AV1 baseline with the default experiments on, but without
      one-sided-compound. It achieves -0.2% ~ -0.3% coding gains when
      one-sided-compound is on. It achieves larger gains on higher
      resolution.
      
      Change-Id: Icbdb16e97b96aaebaf2213f5f72d5331e2e358eb
      c082bbcb
  11. 16 Jun, 2017 1 commit
    • Fergus Simpson's avatar
      Unify resize and superres denominator constants · bfbf6a59
      Fergus Simpson authored
      RESIZE_SCALE_DENOMINATOR and SUPERRES_SCALE_DENOMINATOR were two
      constants with the same value that did essentially the same thing.
      
      This patch merges the two into SCALE_DENOMINATOR for simplicity's sake.
      
      Change-Id: I252a9b7f89f10d77bdb0c3cf2d67d31d337afa4b
      bfbf6a59
  12. 15 Jun, 2017 2 commits
    • Debargha Mukherjee's avatar
      Unify and clean up resize arguments · 29e40a65
      Debargha Mukherjee authored
      Unifies the command line arguments for resize and superes.
      Removes resize arguments that are currently unused.
      
      Change-Id: I1362dffceb8257cee539f92679d1e8d79df08e66
      29e40a65
    • Fergus Simpson's avatar
      frame_superres: Add aomenc argument · c4e78942
      Fergus Simpson authored
      Adds "superres-mode" and "superres-numerator" arguments to configure
      superres scaling.
      
      There are only two modes right now: SUPERRES_FIXED and SUPERRES_DYNAMIC.
      0 sets the fixed mode and 1 sets the dynamic mode.
      
      For the fixed mode superres will scale to the provided numerator where
      possible. The cumulative scale change over resizing and superres is
      limited to 1/2, so it may have to back off.
      
      For the dynamic mode, the provided numerator will be used as the initial
      numerator. Asides from that it's just random for now.
      
      Change-Id: Ibae01c77abba2599fbf51096459d09ddca458d4f
      c4e78942
  13. 13 Jun, 2017 2 commits
    • Thomas Davies's avatar
      AOM_QM: Fix bug with applying QMs to 1D and identity transforms. · be44e512
      Thomas Davies authored
      Only apply quantisation matrices when the transform is 2D.
      
      Change-Id: Iae9ac910c11199f7944a80d10d334db3b711059d
      be44e512
    • Zoe Liu's avatar
      Add encoder/decoder pipeline to support single ref comp modes · 85b66463
      Zoe Liu authored
      Now the single ref comp mode should work with WEDGE and
      COMPOUND_SEGMENT. For motion_var, the OBMC_CAUSAL mode uses the 2nd
      predictor if the neighboring block is single ref comp mode predicted.
      
      This patch removes the mode of SR_NEAREST_NEWMV and leaves four
      single ref comp modes in total:
      
      SR_NEAREST_NEARMV
      SR_NEAR_NEWMV
      SR_ZERO_NEWMV
      SR_NEW_NEWMV
      
      Change-Id: If6140455771f0f1a3b947766eccf82f23cc6b67a
      85b66463
  14. 05 Jun, 2017 1 commit
    • Urvang Joshi's avatar
      is_directional_mode: Check for directional modes directly. · 875a6675
      Urvang Joshi authored
      Earlier, the condition was negating all non-directional modes to check
      if a mode is directional. This was error-prone, e.g. when a new
      non-directional mode is added.
      
      By checking for directional modes directly, we avoid such errors.
      
      Change-Id: Ia4a62e278cd73078c53ed5096db646eff77f054e
      875a6675
  15. 01 Jun, 2017 1 commit
    • Timothy B. Terriberry's avatar
      cb4x4: Move sub-4X4 TX sizes behind CONFIG_CHROMA_2X2. · fe67ed6a
      Timothy B. Terriberry authored
      cb4x4 itself should not require these sizes.
      
      This simplifies compatibility with other experiments, since we can
      first make them work with cb4x4 (which is now on by default), and
      then worry about chroma_2x2 (which is not) in separate steps.
      
      Encoder and decoder output should remain unchanged.
      
      Change-Id: I4e9fcdae49f238b5099a3c74a398fe993c2545f8
      fe67ed6a
  16. 24 May, 2017 1 commit
  17. 21 May, 2017 2 commits
    • Timothy B. Terriberry's avatar
      cb4x4: Don't assume TX units are half MI_SIZE in skip context indexing. · 5e81643d
      Timothy B. Terriberry authored
      Currently the "transform units" used to measure transform sizes
      in some parts of the code are based on the smallest defined
      transform size.
      
      cb4x4 currently defines a 2x2 transform size, even when chroma_2x2
      is not enabled, which means that the scale of the transform units
      was always double that of MODEINFO units.
      
      Several areas of the code were hard-coding this assumption instead
      of converting from one to the other using appropriate constants.
      
      Change-Id: Ibc55671aa5bc3ad272cb8a036f9c4f9621df85ab
      5e81643d
    • Timothy B. Terriberry's avatar
      cb4x4: Fix indexing of tx_size counts. · fe0fb1d9
      Timothy B. Terriberry authored
      Create named constants for the minimum TX_SIZE used in the luma
      plane, as well as the minimum allowed TX_SIZE for which we have to
      explicitly code a selection (i.e., one larger than the minimum luma
      TX_SIZE).
      
      Then, use these constants consistently with tx_size_to_depth() to
      index the tx_size counts in FRAME_COUNTS, and also consistently use
      TX_SIZE named constants to index the tx_size_implied counts.
      
      Failing to index these counts correctly can, e.g., cause tx_mode to
      be chosen incorrectly.
      
      Change-Id: I706a62a33e2282e67c97a68bade87fb8023ec13b
      fe0fb1d9
  18. 19 May, 2017 1 commit
  19. 18 May, 2017 2 commits
  20. 11 May, 2017 1 commit
    • Yue Chen's avatar
      Add CONFIG_INTERINTRA flags and reduce # of interintra modes to 4 · 4d26acb4
      Yue Chen authored
      Use CONFIG_INTERINTRA to properly separate interintra from the basic
      ext_inter experiment.
      When macro REDUCE_INTERINTRA_MODES is 1, only 4 ii modes are enabled
      so as to reduce the complexity overhead.
      (Right now the flag is off)
      
      Change-Id: Iec6f36a1000f181adbb822ad66c7d5b2625e9cc7
      4d26acb4
  21. 09 May, 2017 1 commit
  22. 08 May, 2017 1 commit
    • Urvang Joshi's avatar
      Add a new experiment SMOOTH_HV. · e6ca8e83
      Urvang Joshi authored
      This experiment extends ALT_INTRA by adding two new modes:
      smooth horizontal and smooth vertical.
      
      Improvement on *intra frames* in BDRate (PSNR):
      ===============================================
      
      AWCY (high latency): -0.46%
      (Also, -1.0% or more on PSNR Cb,Cr and APSNR Cb,Cr).
      
      AWCY (low latency): -0.43%
      (Also, -0.88% to -0.94% on PSNR Cb,Cr and APSNR Cb,Cr).
      
      Google sets:
      lowres: -0.454
      midres: -0.484
      hdres:  -0.525
      
      Improvement on *video overall* in BDRate (PSNR):
      ================================================
      
      AWCY (high latency): -0.15%
      
      Google sets:
      lowres: -0.085
      midres: -0.079
      
      Change-Id: I9f4e7c1b8ded1fe244c72838f336103ccc715d50
      e6ca8e83
  23. 05 May, 2017 4 commits
    • Yue Chen's avatar
      Add SMOOTH_PRED to interintra mode list · 18679578
      Yue Chen authored
      Change-Id: Id490c57df5dca13c59a62b0a542779784842944c
      18679578
    • hui su's avatar
      Fix a conflict between ext-intra and alt-intra · 9cc10654
      hui su authored
      The angle estimation in ext-intra didn't account for
      alt-intra.
      
      Also use c99 variable declaration style.
      
      BUG=aomedia:444
      
      Change-Id: I001b0278eb8cf560975c873a423de024c10d08b4
      9cc10654
    • Luc Trudeau's avatar
      [CFL] Alpha signaling · f533400a
      Luc Trudeau authored
      Writes and reads alpha to and from the bitstream.
      
      A special case is needed on the encoder side to handle prediction block
      skips. Since whether or not a prediction block is skipped during CfL, a
      rollback is required if the block was skipped and the alpha index was
      not zero. The advantage of this is that no signaling is required when
      the prediction block is skipped as it is assumed tha the alpha index is
      zero.
      
      A encode facade is added to the intra prediction facade as CfL requires
      special encoder side operations.
      
      Change-Id: Ic3b11d0fdbd51389d862112eb09d8785127a6b06
      f533400a
    • Sebastien Alaiwan's avatar
      Merge ref-mv into codebase · e140c508
      Sebastien Alaiwan authored
      Change-Id: I96e386678f6227f3ca735c9be2725cb9795b3296
      e140c508
  24. 03 May, 2017 1 commit
    • Fergus Simpson's avatar
      frame_superres: Make frame_superres independent of loop_restoration · d91c8c9a
      Fergus Simpson authored
      The frame superresolution experiment currently makes no use of the
      features of the loop restoration experiment. While this is planned for
      the future, there is no reason to continue having frame superresolution
      depend on loop restoration for now.
      
      Frame superresolution was made dependent by having every preproccesor if
      containing its config flag also depend on the loop restoration config
      flag. Those if's are modified to only check the frame superresolution
      flag by this patch.
      
      Change-Id: Ieef47de29125af8d080739ffeac5c55a1fa99e23
      d91c8c9a
  25. 27 Apr, 2017 2 commits
  26. 26 Apr, 2017 3 commits
  27. 25 Apr, 2017 1 commit
    • Fangwen Fu's avatar
      Extend delta q to have delta lf · 231fe424
      Fangwen Fu authored
      This is the second patch.
      * Add delta loop filter level at super block level.
      * Add symbol coding for delta lf syntax
      * Allow delta lf to work with segments
      
      Change-Id: I393a021a875d03c6e113127cbb3543fc077308e4
      231fe424