1. 28 Sep, 2017 5 commits
  2. 27 Sep, 2017 25 commits
    • Angie Chiang's avatar
      Only use fast optimize_b in rd loop for lv_map · 25645b74
      Angie Chiang authored
      Change-Id: Ia33e9962fce962e4f45281537d3e90b4d88543a5
      25645b74
    • Rupert Swarbrick's avatar
      Fix typo in previous patch (av1_make_masked_inter_predictor) · 9a6015d7
      Rupert Swarbrick authored
      With convolve round, tmp_buf32 should be set to tmp_buf rather than
      tmp_dst because we want the actual pointer value rather than the funky
      rescaled one when the frame is high bit depth.
      
      Change-Id: I614ca1ebb4b6db8c4957fdced9dc2009a7ac107e
      9a6015d7
    • Pavel Frolov's avatar
      Init cm->prev_frame before decoding gm params · 57c36e18
      Pavel Frolov authored
      This fixes global motion read/write mismatch.
      Minimal test case would be 3 encoded frames with:
          1) frame0: KEY frame
          2) frame1: INTER frame with refresh_frame_flags not 0x00 and
      not 0xFF, say 0x01 (refresh first slot)
          3) frame2: INTER frame with all reference indices equal to 3
      (i.e. no reference to frame1)
      
      When decoding frame2 decoder will use cm->prev_frame=frame1
      for gm params decoding, then switch to cm->prev_frame=frame0
      for the rest of the frame.
      This makes frame2 dependent on frame1 which is not used as reference.
      And also it is different from what encoder does.
      
      BUG=aomedia:750
      
      Change-Id: I42ba19c03d909286af12ba3149910693a12249e8
      57c36e18
    • Luc Trudeau's avatar
      Replace DC_PRED with UV_DC_PRED for chroma · 91357ee9
      Luc Trudeau authored
      When using uv_mode the corresponding enum is the UV_PREDICTION_MODE not
      the PREDICTION_MODE enum.
      
      Change-Id: I44b19e4db5947a2d44281430b34ed61b82f999eb
      91357ee9
    • Luc Trudeau's avatar
      [CFL] Avoid Padding Multiple times · 6a11a680
      Luc Trudeau authored
      The buffer width and height are updated after adding to padding data to
      the CfL buffer. This way, padding is not repeated. This change does not
      alter the bitstream
      
      Change-Id: I7e709fc4e18b03a516b1345099b334c9d33d71aa
      6a11a680
    • James Zern's avatar
      cosmetics,*rtcd*.pl: reindent · 1512fa97
      James Zern authored
      Change-Id: I612517c6218c561ee94888c8c14298964851484a
      1512fa97
    • Cheng Chen's avatar
      Fix a potential assertion failure · 7e21ef2c
      Cheng Chen authored
      Change-Id: I24d129aceb66e00388bedf98bc8e46524c0812eb
      7e21ef2c
    • Thomas Davies's avatar
      NEW_MULTISYMBOL: remove compressed header always. · ad667d90
      Thomas Davies authored
      Enable the RESTRICT_COMPRESSED_HDR experiment when
      NEW_MULTISYMBOL is on and apply when there is no
      backward update also.
      
      Change-Id: I5f6812df2cb3f9bc32fe533b2689fd51235aedbc
      ad667d90
    • James Zern's avatar
      configure: move bitstream_debug out of the exp list · 4ac9a60c
      James Zern authored
      and to CONFIG_LIST + CMDLINE_SELECT. the experiment list should now
      match cmake
      
      Change-Id: I724d35b3a16ed5c641207525949093bc0caf4a49
      4ac9a60c
    • Angie Chiang's avatar
      Add cmake dependency for ext_comp_refs · 6a710b6b
      Angie Chiang authored
      Change-Id: I8080a860c32d465810a960bf25f4299c40122937
      6a710b6b
    • Angie Chiang's avatar
      Prevent extreme prob when count is small · dd1bae52
      Angie Chiang authored
      Add function get_binary_prob_new in aom_entropy_optimizer.c.
      This function add "+1" to both 0 and 1 counters such that it won't
      generate extreme probability when both counters are small
      
      Change-Id: I759d6e1cfedaf1c36281b523c26e7a7d1cad147c
      dd1bae52
    • David Barker's avatar
      ext-partition: Don't read not-yet-decoded values · 761b1ac8
      David Barker authored
      When deciding whether the top-right or bottom-left blocks are
      available, we currently always act as if we're using 128x128
      superblocks. This means that, when using 64x64 superblocks,
      we sometimes conclude that blocks are available when they haven't
      been decoded yet!
      
      This typically happens at, for example, mi_row=15, mi_col=16
      (for bottom left), where we're at a 64x64 boundary but not
      a 128x128 boundary.
      
      This patch fixes the issue by checking based on the signalled
      superblock size.
      
      Note: Most of this patch is just threading 'cm' through the
      intra prediction process, so that we have access to cm->sb_size
      in has_top_right() and has_bottom_left()
      
      Change-Id: I126964c510aafffc870e7cd8b3e64a46abb14b3a
      761b1ac8
    • Dominic Symes's avatar
      MAX_TILE experiment: add explicit tiles · f58f111f
      Dominic Symes authored
      This patch is designed to complete the CONFIG_MAX_TILE experiment.
      It adds the following features:
      - Explicit tiles of same width can be signalled with command line --tile_width
      - Explicit tiles of same hieght can be signalled with command line --tile_height
      - max_tile now works with the depenedent horizontal tiles experiment
      - additional checking added to ensure maximum number of rows/columns <= 64
      - one fix to the tile group code for when the number of tiles is not a power of two
      
      Change-Id: I749a68fdb3dcdd8d1ced2b3558f3817e4b832c06
      f58f111f
    • Ryan's avatar
      this change fix the bug reported in issue 819 · 84a6f201
      Ryan authored
      inside the encode_super_block function, the tx_size decision logic is
      different in the dry_run==0 and dry_run==1 case when segment is
      lossless. this change fix the inconsistence.
      
      BUG=aomedia:819
      
      Change-Id: I2f4c5434d8c4ef722ac885a1ffd2d253863ae6d9
      84a6f201
    • Pavel Frolov's avatar
      Setup sb_size when decoding intra_only frame · ea3dd3aa
      Pavel Frolov authored
      This fixes decoder's capability to start decoding
      bitstream from non-KEY intra_only frame.
      
      BUG=aomedia:816
      
      Change-Id: Iecd5add418590119f59a51acd7208eb08cb17042
      ea3dd3aa
    • Yi Luo's avatar
      Lowbd rect intrapred DC/LEFT/TOP/128 sse2 optimization · 39bdf36a
      Yi Luo authored
      Add lowbd unit test functionality to intrapred_test.cc
      Function speedup against C (i7-6700):
      Predictor   DC     LEFT   TOP    128
      4x8        ~1.4x  ~1.4x  ~1.7x  ~1.9x
      8x4        ~1.2x  ~1.6x  ~1.6x  ~2.6x
      8x16       ~1.4x  ~1.3x  ~1.4x  ~2.1x
      16x8       ~2.0x  ~1.8x  ~2.3x  ~2.1x
      16x32      ~2.0x  ~1.9x  ~1.8x  ~2.2x
      32x16      ~2.0x  ~2.0x  ~1.9x  ~2.2x
      
      Change-Id: I33db512020ca3c6853a9205a8079f3d00134f584
      39bdf36a
    • Luc Trudeau's avatar
      [CFL] No Average in 4:2:0 Subsampling · 8b80d232
      Luc Trudeau authored
      Since Subsampled values are in Q3, one does not need to take the
      average, as the sum of 4 values is the average in Q2. As such, shifting
      by 1 to the left, results in the average in Q3. By removing the
      intermediate step in Q0, rounding error is removed.
      
      Results on Subset1
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0204 | -0.1945 | -0.1474 |  -0.0170 | -0.0237 | -0.0178 |    -0.0973
      
      https://arewecompressedyet.com/?job=cfl-baseline%402017-09-06T17%3A41%3A38.041Z&job=cfl-NoAverageInSub%402017-09-06T17%3A59%3A00.035Z
      
      Change-Id: I8c6d4f71ec0e6e3923e254d79b83127b3734699e
      8b80d232
    • Luc Trudeau's avatar
      [CFL] Subsample to Q3 · a0af3b5e
      Luc Trudeau authored
      Result from luma subsampling is left-shifted by 3. This avoids having to
      do it during averaging, in alpha search and when building the
      prediction. This change does not alter the bitstream.
      
      Results on Subset1
        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
      
      https://arewecompressedyet.com/?job=cfl-baseline%402017-09-06T17%3A41%3A38.041Z&job=cfl-SubsampleQ3%402017-09-06T17%3A42%3A01.252Z
      
      Change-Id: I6e89eac6496f7c36e46364c9223fbcbca6759032
      a0af3b5e
    • Rupert Swarbrick's avatar
      Only allocate one temp buffer in av1_make_masked_inter_predictor · e41223d1
      Rupert Swarbrick authored
      Exactly one of tmp_dst/tmp_dst_/tmp_dst2 is used in a call to
      av1_make_masked_inter_predictor. Work out how many bytes are needed by
      the largest one possible and just allocate that.
      
      Change-Id: Ib8fabaf1f461ce1192c5657a3d2b5a4f7fa8d7b1
      e41223d1
    • David Barker's avatar
      Fix ext-partition + motion-var · b74b9560
      David Barker authored
      When calculating the above overlapped prediction, we adjust
      xd->mb_to_bottom_edge to have the correct value for the prediction
      we're about to make. This prediction is half the height of the
      current block - *unless* the block is 128 pixels high, in which
      case the prediction is only 32 pixels high.
      
      This patch implements the special case for 128-pixel high blocks.
      
      (all of this applies analogously for left predictions too)
      
      Change-Id: I2780e8d4a6f8a9f82f540f2c2dfde691d07298e2
      b74b9560
    • Sebastien Alaiwan's avatar
      Fix typo in comment · c4559cad
      Sebastien Alaiwan authored
      Change-Id: Id6f588876b1adf68abd8c17d7eef2223d552e457
      c4559cad
    • Jonathan Matthews's avatar
      palette_delta_encoding: clamp y and u colors · dc0e1126
      Jonathan Matthews authored
      BUG=aomedia:812
      
      Change-Id: I635d620fc6d350391ecb7885cc119eaef0af39bc
      dc0e1126
    • Cheng Chen's avatar
      Fix select filter level · 15f6b863
      Cheng Chen authored
      Only use cm->mi, instead of cm->mi_grid_visible to get filter level.
      The latter may not work for shifted grid loop filtering.
      
      Change-Id: I55ed6a42f0abb19d6814e8c0cf8d64ce79bf6abc
      15f6b863
    • Cheng Chen's avatar
      LPF_SB: add filter step and tune threshold · f89ca3e1
      Cheng Chen authored
      Set filter step = 2, such that 3 bit can represent [-14, +14] filter
      level difference.
      
      Tune threshold for reusing filter level between previous and current
      superblock.
      
      Change-Id: I6f26377591f3e93f7c068e4aa4279ae9bc2c9522
      f89ca3e1
    • Luc Trudeau's avatar
      [CFL] Extract Subsampling Functions · b81d0630
      Luc Trudeau authored
      We extract these functions in order to move them to the cfl_store in a
      subsequent commit. This change does not impact the bitstream.
      
      Results on Subset1 (compared to parent 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
      
      https://arewecompressedyet.com/?job=cfl-inter%402017-09-23T20%3A51%3A01.093Z&job=cfl-extract%402017-09-23T20%3A54%3A15.693Z
      
      Change-Id: I84bfe60e25a4a665f686d6b18789395a50318a9b
      b81d0630
  3. 26 Sep, 2017 10 commits
    • Urvang Joshi's avatar
      Update comment for frame superres scaling mode. · 93b779b4
      Urvang Joshi authored
      Based on code change in:
      https://aomedia-review.googlesource.com/c/aom/+/21140
      
      Change-Id: I771ba6e08259e1c43cb06ebe6436dafe07fdf1d5
      93b779b4
    • Tom Finegan's avatar
      CMake experiment flag clean up. · f344afbb
      Tom Finegan authored
      Alpha sort the experiments group in
      aom_config_defaults.cmake to avoid future duplication
      issues, and:
      
      - Remove ALTREF2.
      - Remove the duped CDEF line.
      
      BUG=aomedia:813
      
      Change-Id: Ib14172c89dd3934dbf475bbfc581d017acdba2d8
      f344afbb
    • Sebastien Alaiwan's avatar
      Coding path sync test: fix picture comparison · a85a2b9f
      Sebastien Alaiwan authored
      Change-Id: Iee4957038d61c14cf8fa3f9c094b579c82c20603
      a85a2b9f
    • Yushin Cho's avatar
      Disable palette coding if pvq is enabled · a8810391
      Yushin Cho authored
      PVQ has been broken again since the experiment flag for palette is removed
      in commit c6300aa1.
      
      As a fix, if PVQ is enabled then disable both of --tune-content=screen and
      automatic detection of screen and use of palette coding tool.
      
      Change-Id: Iea6bb042b4402163805c44dabfb3f4c05dfd4e23
      a8810391
    • Yushin Cho's avatar
      Fix ASAN warnings with PVQ · ead552a9
      Yushin Cho authored
      Change-Id: I4d6912f3a0df0bdb3f435cc8057b63fbaa3aaa6d
      ead552a9
    • Luc Trudeau's avatar
      [CFL] Store Reconstructed Luma for Intra In Inter · b05eeaef
      Luc Trudeau authored
      Like for intra block in intra frames, an extra call to
      txfm_rd_in_plane is added to the RDO of intra blocks in inter frames.
      This extra call is performed using the best parameters found during
      RDO and the reconstructed luma pixel are stored.
      
      Results on objective-1-fast (compared to CfL on Intra frames only)
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.2497 | -3.5526 | -3.5048 |  -0.2456 | -0.2392 | -0.2508 |    -1.4811
      
      https://arewecompressedyet.com/?job=cfl-no-inter%402017-09-13&job=cfl-inter%402017-09-13T14%3A13%3A13.918Z
      
      Change-Id: I70ea2c01859b6c55d7c3eb9680d492c0bfc2aad4
      b05eeaef
    • Rupert Swarbrick's avatar
      Simplify av1_get_rest_tile_limits · 5d2e729e
      Rupert Swarbrick authored
      The subtile and clamping features are no longer used. This patch
      removes the dead code that implemented them and the parameters to
      support them.
      
      It also changes the return format. Instead of having return type void
      and passing data out through 4 output pointers, the function now just
      returns a RestorationTileLimits structure. Since the function is
      defined inline in a header, I suspect that most callsites will
      actually compile to identical code.
      
      There should be no functional change from this patch.
      
      Change-Id: I6ebc4da66a00676bd988f939a4b4957f743e8004
      5d2e729e
    • Rupert Swarbrick's avatar
      Remove duplicated code in av1_make_masked_inter_predictor · 87fe5b96
      Rupert Swarbrick authored
      This patch basically just pushes #if CONFIG_HIGHBITDEPTH down past
      other #if/#endif blocks, letting us pull out common code instead of
      having to repeat it. There should be no functional change (indeed,
      there should be no change except whitespace after preprocessing!)
      
      Change-Id: I9bcbfbdec5ad54e42095de085df381e85bf48197
      87fe5b96
    • Thomas Davies's avatar
      Fix redundancy in delta_q signalling. · 3b93e8eb
      Thomas Davies authored
      rem_bits-1 not rem_bits should be transmitted so that
      2 cannot be coded in two ways.
      
       BUG=aomedia:811
      
      Change-Id: Iaa0203214bbe6fc6775e05fe4b6e976d568f54b3
      3b93e8eb
    • Cheng Chen's avatar
      Reorgnize loop filter range for superblock · 5589d71c
      Cheng Chen authored
      For each superblock, its filtering range is shifted up and left by
      8 pixels (half of the maximum loop filter length), such that
      estimation of deblocking filtering will not cross two superblocks.
      
      Change-Id: I82244b7c26ab8b2ac553037b3bb1fe1d82bf5704
      5589d71c