1. 15 Dec, 2017 1 commit
  2. 14 Dec, 2017 3 commits
    • Urvang Joshi's avatar
      Remove a number of unused macros. · de750837
      Urvang Joshi authored
      Change-Id: I3e6b13dcb8e5b5cf6ff4ba8010fe65e43336d33f
      de750837
    • Sarah Parker's avatar
      Add option for optimize_b only in final encode · 251c9dcb
      Sarah Parker authored
      This adds a third option to the optimize_coefficients speed
      feature, which turns off optimize_b in the search but uses
      it in the final encode. This option is not currently being
      used by default.
      
      Change-Id: Ic10c9fd8ef16bc453f5e232733cda34d0ddb7692
      251c9dcb
    • Luc Trudeau's avatar
      [Clean Up] Remove get_y_mode() · 2eb9b845
      Luc Trudeau authored
      The get_y_mode function, is superfluous, not used consistently, and requires a
      useless block_idx parameter than gets pass around a lot inside the
      codebase for no apparent reason.
      
      The block parameter is misleading, as it could cause people to think all these
      functions actually use this value.
      
      Change-Id: I7ae0a8d1282c009b9114c83771cce10f5c2ee397
      2eb9b845
  3. 13 Dec, 2017 2 commits
  4. 12 Dec, 2017 2 commits
    • Cheng Chen's avatar
      Make lpf_sb work with loopfilter_level · 765e34e3
      Cheng Chen authored
      Make lpf_sb compatible with loopfilter_level, when USE_GUESS_LEVEL = 1.
      
      Filter levels will be selected based on q index and applied for
      filtering on Y, U, V planes separately.
      
      Current model only allows to guess one filter level.
      Now Y_vert = Y_horz = U = V. In the future, we need to retrain the
      model and get filter levels for Y_vert, Y_horz, U and V separately.
      
      When USE_GUESS_LEVEL = 0, lpf_sb can't work with loopfilter_level yet.
      
      Change-Id: Icd774a147c07a4035cf8204a8754b2a99668bbfd
      765e34e3
    • Rupert Swarbrick's avatar
      Use block_signals_txsize() in two more places · 8e5b39a1
      Rupert Swarbrick authored
      The change in encodeframe.c has no effect (it's the same test), but
      the change in rdopt.c fixes a miscalculated rate for (say) 8x4 blocks
      which must signal whether to use TX_8X4 or TX_4X4.
      
      Change-Id: I1dd2556bb90e86e690dd1fabaad278813ba73ea6
      8e5b39a1
  5. 11 Dec, 2017 5 commits
  6. 10 Dec, 2017 2 commits
    • Yushin Cho's avatar
      [dist-8x8] Fix for other chroma formats than 4:2:0 · ecab98b5
      Yushin Cho authored
      Instead of applying different offsets for each of quadri-split, horizontal split,
      vertical split, store the start addresses of src and dst 8x8 blocks in each of
      YUV palnes then pass it to distortion compute function for dist-8x8, dist_8x8_yuv().
      
      Also, don't save decoded pixels for 8x8 block in additinal buffer but directly
      access the xd->dst buffer. Thus removed the decoded-8x8[8x8] buffer in struct macroblock.
      
      However, this patch does NOT fix the case where dist-8x8's assert fails with
      CfL enabled.
      
      Fix part of issue (i.e. 4:4:4 chroma iput) in
      BUG=aomedia:1094
      
      Change-Id: I6399d0eef3e17cacc9ec6467480a7959c85d419b
      ecab98b5
    • Debargha Mukherjee's avatar
      Make set_txfm_ctx aware of 4:1 transforms · 59eaa51d
      Debargha Mukherjee authored
      This change was missing before.
      
      Change-Id: Ie8aecb8d51284b32a02d76f6f3de5f1c77a5f692
      59eaa51d
  7. 09 Dec, 2017 2 commits
    • Debargha Mukherjee's avatar
      Enable 4:1 -> 2:1 -> 1:1 splits for 4:1 transforms · e4e18fcc
      Debargha Mukherjee authored
      Also, splits the sub_tx_size_map array into inter and intra
      in order to enable the new 4:1 transforms for inter and
      intra separately.
      Includes refactoring such as removing the intra_tx_size_cat_lookup
      array since it is unnecessary, and consolidating the
      max_txsize_rect_lookup array for convenience.
      
      Change-Id: I112553bab612dafb973611c87f36a43e1ac4be85
      e4e18fcc
    • Rostislav Pehlivanov's avatar
      Change q_segmentation to spatial_segmentation · 938710cb
      Rostislav Pehlivanov authored
      Adds spatial prediction to standard segmentation instead of a separate
      segmentation feature.
      When using temporal prediction skipped blocks are flagged as mispredicted.
      
      Change-Id: I0c32281286d3fbce66d339c9247bcc6516f37a63
      938710cb
  8. 08 Dec, 2017 3 commits
  9. 07 Dec, 2017 5 commits
  10. 06 Dec, 2017 1 commit
    • Zoe Liu's avatar
      JNT_COMP: Simplify logic on inter-inter comp modes · 5f11e915
      Zoe Liu authored
      This patch simplies the checking criteria for the two groups of
      compound modes. It also makes the encoder side cdf update inside the
      RD loop consistent with that in the bitstream.
      
      Experimental results on Google test sets (30 frames of lowres and
      midres) confirm this patch obtains identical coding performance.
      
      Change-Id: I170eea91f7d2be2170df544cfc2c692b09aa82d6
      5f11e915
  11. 05 Dec, 2017 2 commits
    • Cheng Chen's avatar
      JNT_COMP: change COMPOUND_AVERAGE in cdf · 2ef24ea2
      Cheng Chen authored
      Remove COMPOUND_AVERAGE from compound_type_cdfs since it is now grouped
      to compound_idx. However, COMPOUND_AVERAGE is still used elsewhere.
      
      Change-Id: Ie0d460aabf9252e80eb4130cfef9aaf0efc3969d
      2ef24ea2
    • Cheng Chen's avatar
      JNT_COMP: divide compound modes into two groups · 33a13d9f
      Cheng Chen authored
      Divide compound inter prediction modes into two groups:
      Group A: jnt_comp, compound_average
      Group B: interintra, compound_segment, wedge
      
      Change-Id: I1142da2e3dfadf382d6b8183a87bde95119cf1b7
      33a13d9f
  12. 04 Dec, 2017 1 commit
    • Debargha Mukherjee's avatar
      Fixes to make 4:1 rectangular intra work correctly · d2cfbefb
      Debargha Mukherjee authored
      This patch fixes and enables rectangular intra transform
      sizes for 4:1 partitions (that were turned off before).
      4:1 partitions can now use rectangular intra predictions with
      2:1 rectangular transform sizes.
      BDRATE lowres (single keyframe): -0.612%
      
      Change-Id: I6f062f7c08aae8eeb0a55d31e792c8f7e3f302a2
      d2cfbefb
  13. 02 Dec, 2017 2 commits
    • Yunqing Wang's avatar
      Modify the warped motion mode context · 3afbf3fb
      Yunqing Wang authored
      Modified the warped motion mode context based on neighbor's motion modes
      and current block's mode.
      
      Change-Id: I77ca35fab37ec640bb38661ff1799f643d5aafdc
      3afbf3fb
    • Zoe Liu's avatar
      Overwrite frame level skip mode flag if no usage · 8a5d3437
      Zoe Liu authored
      Add a block level usage flag for skip mode. If no block has chosen the
      skip mode, the frame level flag for skip mode will be set off.
      
      This patch also includes a small code cleanup, including the check on
      whether the best RD mode is aligned with skip mode, if yes, the best
      RD mode will be replaced by skip mode.
      
      This patch slightly improves the coding performance of ext-skip.
      
      Change-Id: If06092d5e32f15e63dcb5f35d32e68bc0f827c2b
      8a5d3437
  14. 30 Nov, 2017 2 commits
    • Luc Trudeau's avatar
      [CFL] Clean cfl.h include · d183b646
      Luc Trudeau authored
      cfl.h is no longer included in the onyxc_int.h. cfl.h is now included in
      each file that uses cfl functions.
      
      Change-Id: I80a2e57159217b0ee20b2562fc9711d929472b8c
      d183b646
    • 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
  15. 29 Nov, 2017 4 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
    • 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
    • Yushin Cho's avatar
      [dist-8x8] Enable assert for 8 bit input only · f986af1c
      Yushin Cho authored
      Larger than 8 bit input seems to introduce different rounding methods in
      different distortion calculation functions, which causes assertion failed
      for dist-8x8's sanity check.
      
      BUG=aomedia:1027
      
      Change-Id: I1f607f32d4017d8f9abbbe0b09d9dbb01a63fe9c
      f986af1c
  16. 27 Nov, 2017 1 commit
    • 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
  17. 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
  18. 22 Nov, 2017 1 commit