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
    • 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
    • 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.
      Change-Id: I42ba19c03d909286af12ba3149910693a12249e8
    • 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
    • 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
    • James Zern's avatar
      cosmetics,*rtcd*.pl: reindent · 1512fa97
      James Zern authored
      Change-Id: I612517c6218c561ee94888c8c14298964851484a
    • Cheng Chen's avatar
      Fix a potential assertion failure · 7e21ef2c
      Cheng Chen authored
      Change-Id: I24d129aceb66e00388bedf98bc8e46524c0812eb
    • 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
    • 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
    • Angie Chiang's avatar
      Add cmake dependency for ext_comp_refs · 6a710b6b
      Angie Chiang authored
      Change-Id: I8080a860c32d465810a960bf25f4299c40122937
    • 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
    • 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
    • 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
    • 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.
      Change-Id: I2f4c5434d8c4ef722ac885a1ffd2d253863ae6d9
    • 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.
      Change-Id: Iecd5add418590119f59a51acd7208eb08cb17042
    • 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
    • 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
      Change-Id: I8c6d4f71ec0e6e3923e254d79b83127b3734699e
    • 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
      Change-Id: I6e89eac6496f7c36e46364c9223fbcbca6759032
    • 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
    • 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
    • Sebastien Alaiwan's avatar
      Fix typo in comment · c4559cad
      Sebastien Alaiwan authored
      Change-Id: Id6f588876b1adf68abd8c17d7eef2223d552e457
    • Jonathan Matthews's avatar
      palette_delta_encoding: clamp y and u colors · dc0e1126
      Jonathan Matthews authored
      Change-Id: I635d620fc6d350391ecb7885cc119eaef0af39bc
    • 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
    • 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
      Change-Id: I6f26377591f3e93f7c068e4aa4279ae9bc2c9522
    • 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
      Change-Id: I84bfe60e25a4a665f686d6b18789395a50318a9b
  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:
      Change-Id: I771ba6e08259e1c43cb06ebe6436dafe07fdf1d5
    • 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.
      Change-Id: Ib14172c89dd3934dbf475bbfc581d017acdba2d8
    • Sebastien Alaiwan's avatar
      Coding path sync test: fix picture comparison · a85a2b9f
      Sebastien Alaiwan authored
      Change-Id: Iee4957038d61c14cf8fa3f9c094b579c82c20603
    • 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
    • Yushin Cho's avatar
      Fix ASAN warnings with PVQ · ead552a9
      Yushin Cho authored
      Change-Id: I4d6912f3a0df0bdb3f435cc8057b63fbaa3aaa6d
    • 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
      Change-Id: I70ea2c01859b6c55d7c3eb9680d492c0bfc2aad4
    • 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
    • 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
    • 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.
      Change-Id: Iaa0203214bbe6fc6775e05fe4b6e976d568f54b3
    • 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