1. 29 Sep, 2017 17 commits
  2. 28 Sep, 2017 23 commits
    • Cheng Chen's avatar
      Make LOOPFILTER_LVL support segment · d8184dae
      Cheng Chen authored
      Experiment LOOPFILTER_LVL has 4 deblocking filter levels for:
      y plane horizontal, y plane vertical, u plane, and v plane.
      
      The patch supports segment updates for each of the four filter levels.
      
      Change-Id: I494e8d9ab67e37c5f6234b8d9db8e3e3abf70d52
      d8184dae
    • Rupert Swarbrick's avatar
      Don't work in TX64X64 blocks on a subsampled chroma plane · 4e7b7d6f
      Rupert Swarbrick authored
      With ext-partition and tx64x64 enabled, the encoder could choose
      TX_64X64 to encode the transform for a subsampled plane of a
      BLOCK_128X128 block. This broke an assumption in the nested loop in
      write_tokens_b and also caused bug 827 (with a rather cryptic
      failure).
      
      This patch changes get_vartx_max_txsize to ensure that the encoder and
      decoder don't think they can use TX_64X64 in this situation. It also
      adds a couple of assertions to the loop mentioned above so that if
      something comes unstuck it'll be much more obvious what went wrong.
      
      BUG=aomedia:827
      
      Change-Id: Ie093f2f20f6242949d68e950c8f95b100867ee17
      4e7b7d6f
    • Ryan's avatar
      fix one bug in the decoder header initization · dd8df163
      Ryan authored
      1. seg->temporal_update flag is only read when seg->update_map flag is
      set to 1 in the bit stream. in case update_map flag is different from frame
      to frame, the temporal_update flag will not be reset to 0 when
      update_map flag changed from 1 to 0. i.e, the previous temporal_update
      flag will be used in the later process. in the read_inter_segment_id
      function, temporal_update flag is used to read the segment id. it will
      cause bit stream parsing error.
      
      Change-Id: I663975bc84bbed7409d4f5dd1c1005480b2fbcf8
      dd8df163
    • Thomas Davies's avatar
      Fix a typo in default CDFs for TX_64X64 · d38d5d20
      Thomas Davies authored
      Change-Id: Ief98301e44a63faacd5f8725f89ef4e0c596a591
      d38d5d20
    • Angie Chiang's avatar
      Do interpolation when up sample scan count · fc414a37
      Angie Chiang authored
      Change-Id: I15bd90245adc85d17ef8429b9c5f3e41e26b0904
      fc414a37
    • Angie Chiang's avatar
      Allow one-sided scan count down sampling · 231cba45
      Angie Chiang authored
      Change-Id: I164add43e9d75af82312b464a176cdf0045ef9e1
      231cba45
    • Angie Chiang's avatar
      Refactor av1_down_sample_scan_count · 1a4bae1f
      Angie Chiang authored
      Change-Id: I18de826d8b8bdec6f57d108906ee5df959243f90
      1a4bae1f
    • Angie Chiang's avatar
      Add av1_up_sample_scan_count() · 1c904831
      Angie Chiang authored
      Change-Id: I25030297e0333f326d39f6c5b64cb2e4f3906852
      1c904831
    • Sebastien Alaiwan's avatar
      Remove dead function 'clamp_block' · 36967373
      Sebastien Alaiwan authored
      And reduce scope of 'get_max_bit',
      which is only used by the test code.
      
      Change-Id: I9af7be426f7bec6958419ca02957db87e7963f50
      36967373
    • Thomas Daede's avatar
      Remove unused bytes from uncompressed header. · 3e22da3d
      Thomas Daede authored
      Although they are called "sync codes", nothing is synchronized
      using them.
      
      Change-Id: I2dbd67daf9f4822438323212bb96cac489c38c5d
      3e22da3d
    • Angie Chiang's avatar
      Customize coding scheme for 1D transform · f12cc4a4
      Angie Chiang authored
      Observe 0.1% gain on lowres wo optimize_b before rebase
      
      Change-Id: I0cb5b5e4be2563093efb2f6dfbefdce9b554e910
      f12cc4a4
    • Ryan's avatar
      Fix enc/dec mismatch related delta_lf · 2d3d0cd2
      Ryan authored
      AV1 encoder's logic for handling current_delta_lf_from_base value has
      a hole, which could cause enc/dec mismatch due to deblocking filter
      level mismatch.
      
      On the encoder side, when delta_lf is used. current_delta_lf_from_base
      value is only written into the bit stream when the following condition
      is true:
      
      ((bsize != BLOCK_LARGEST || skip == 0) && super_block_upper_left)
      
      i.e., it is only written into the bit stream when current mi is the top
      left corner of a super block, and it is not skipped or block size is not
      64x64. this is applied to both INTRA and INTER blocks in write_mbmi_b().
      
      And the following code is used to handle the case when the above condition
      is not true.
      
      if (!dry_run) {
          mbmi = &xd->mi[0]->mbmi;
          if (bsize == BLOCK_64X64 && mbmi->skip == 1 && is_inter_block(mbmi) &&
              cpi->common.delta_lf_present_flag) {
            mbmi->current_delta_lf_from_base = xd->prev_delta_lf_from_base;
          }
      
      The idea is that if the above condition is not true, then the
      current_delta_lf_from_base should be reset to the previous delta lf,
      which is prev_delta_lf_frame_base.
      
      However, there is a hole in this logic. For INTRA 64x64 blocks, even it
      is skipped, the current_delta_lf_frame_base is not reset back to the
      previous delta_lf. So, in this case, decoder side won't receive any new
      delta_lf from bit stream, so it will use previous delta_lf. encoder side
      will use the new delta_lf value. this mismatch will cause final loop
      filter level calculation inconsistent in the deblocking stage and thus
      cause encoder and decoder mismatch.
      
      BUG=aomedia:826
      
      Change-Id: I90c1dcca5da106e4f3e0bcba1ed539c1cd99c370
      2d3d0cd2
    • Ola Hugosson's avatar
      Add striped_loop_restoration experiment · 1e7f2d0c
      Ola Hugosson authored
      This experiment offset the filter tile grid 8 pixels upwards.
      Deblocked pixels (rather than CDEFed pixels) are used for the
      2 lines above and below the filter processing unit. The 8 pixel
      offset is the offset produced by deblock/cdef. This way the
      loop_restoration does not need additional line buffers in a
      single pass hardware implementation.
      
      Change-Id: I89e0831dc28413a5d3e02d7a426ce2885ab629d7
      1e7f2d0c
    • Monty Montgomery's avatar
      Remove dead av1_dct8x8_quant_xxxx functions · 7f7dd08a
      Monty Montgomery authored
      They're unused, disabled in the prototype setup, but still built and
      complicating the already convoluted ifdef mess in TX experiment
      configuration.
      
      Don't leave dead code in the sourcebase.  That's what SCM is for.
      
      Change-Id: Idb2adf597ac064c7b5027df8af1cf65054984aa4
      7f7dd08a
    • Yi Luo's avatar
      Lowbd rectangle V/H intra pred sse2 optimization · 0c0fd1e5
      Yi Luo authored
      Function speedup sse2 v. C
      Predictor  V_PRED  H_PRED
      4x8        ~1.7x   ~1.8x
      8x4        ~1.8x   ~2.2x
      8x16       ~1.5x   ~1.4x
      16x8       ~1.9x   ~1.3x
      16x32      ~1.6x   ~1.4x
      32x16      ~2.0x   ~1.9x
      
      This patch disables speed tests to save Jenkins build
      time. Developer can manually enable them by using,
      --gtest_also_run_disabled_test flag in test command line.
      
      Change-Id: I81eaee5e8afc55275c7507c99774f78cc9e49f9a
      0c0fd1e5
    • Tom Finegan's avatar
      Add Debugging section to README.md. · fe809bd1
      Tom Finegan authored
      Change-Id: I6d75d3955bd8dd2218fb07b36c10361e032eb66e
      fe809bd1
    • Tom Finegan's avatar
      Fix aom.pc generation. · 40b2a979
      Tom Finegan authored
      $GIT_EXECUTABLE was being passed as the
      value of CMAKE_INSTALL_PREFIX to pkg_config.cmake. Pass
      $CMAKE_INSTALL_PREFIX as intended.
      
      BUG=aomedia:814
      
      Change-Id: I86126f472447eaa6a2196dca3a8c68fb4de9415a
      40b2a979
    • Luc Trudeau's avatar
      [CFL] Extract build_prediction from predict_block · 67914b56
      Luc Trudeau authored
      To facilitate HBD support, we extract the loop that builds the
      prediction from cfl_predict_block.
      
      This change does not alter the bitstream.
      
      Change-Id: Ie88d1c5872a90303b7fa0692fed8c2855e1d315f
      67914b56
    • Luc Trudeau's avatar
      [CFL] Move Subsampling in Store · 4e26d667
      Luc Trudeau authored
      Pixels are subsampled when they are stored in the CfL prediction
      buffer. This allows to avoid having two buffers. No impact on the
      bitstream.
      
      Results on subset1 (Compared to parent)
      
        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-avg-on-fly%402017-09-23T21%3A38%3A04.440Z&job=cfl-Sub-On-Store%402017-09-24T15%3A01%3A41.161Z
      
      Change-Id: If051e34d6d7078d77609542305a2afebef5cb177
      4e26d667
    • Rupert Swarbrick's avatar
      Move tile_cols/tile_rows calculation into common function · 5a010aac
      Rupert Swarbrick authored
      This is just a code cleanup, moving the calculation of cm->tile_rows
      and cm->tile_cols into get_tile_size, which is already calculating
      cm->tile_width and cm->tile_height. The patch also gets rid of a
      spurious AOMMIN and replaces it with an assertion.
      
      Change-Id: I46666c4a197ac26d4b3746d9ea6575dc4af0d570
      5a010aac
    • Rupert Swarbrick's avatar
      Make yv12_buffer_config more uniform · 82529d22
      Rupert Swarbrick authored
      This patch slightly reorders the fields in yv12_buffer_config and then
      uses anonymous unions in order to make it possible to write code that
      iterates uniformly over planes.
      
      The patch also ports some code (mostly in yv12extend.c and
      aom_scale.c) to show how this can make things more concise.
      
      This should make no difference to the coded results. I think it's
      unlikely to have any significant performance impact (the reordered
      fields in a yv12_buffer_config only come to 17*4 = 68 bytes in total,
      so almost fit in a normal sized cache line).
      
      Change-Id: Iebb46344500b9df82915f34cfd193e189d712062
      82529d22
    • Jonathan Matthews's avatar
      Reset intra_filter in case it isn't read · 67c9ab0b
      Jonathan Matthews authored
      BUG:aomedia:824
      Change-Id: I67bfd16a9ba994055ccbaf624c58117c7939d5c8
      67c9ab0b
    • Thomas Davies's avatar
      Remove unused switchable filter probs and remove remapping. · ec92c113
      Thomas Davies authored
      CDFs are used for coding and costs, so there is no need to
      base the CDF on the obsolete tree and remap filter indices.
      
      No change to common test conditions BDR.
      
      Change-Id: I441dd21b127bc07ba33eef8ddcfd147eef21d0d4
      ec92c113