1. 24 May, 2017 11 commits
    • Tom Finegan's avatar
      Remove CONFIG_{DE,EN}CODERS from the build system. · 378d652f
      Tom Finegan authored
      Use CONFIG_AV1_DECODER and CONFIG_AV1_ENCODER instead.
      
      Change-Id: I33d83aa6d31067d0db7a972d36927dc49c420f81
      378d652f
    • Thomas Davies's avatar
      AOM_QM: modify low QM levels. · 8f286984
      Thomas Davies authored
      Use a more aggressive tail to simulate larger viewing
      distances better for low value QM levels.
      
      This does not change default QM coding (qmlevel >= 5)
      or non-QM coding.
      
      Change-Id: Ifb6fa6faf8ce9b77177c97798e08418788c53fbd
      8f286984
    • David Michael Barr's avatar
      [CFL] Calculate SSE for distinct alpha before RDO · 84a44dbe
      David Michael Barr authored
      Separate the codes into a table of distinct values
      and an index into that table.
      Pull the SSE calculation of the RDO loop and avoid
      repeating for the same alpha values.
      
      Change-Id: I8c4bd7eab6f8000e6aca9687d9190abc3e270c37
      Signed-off-by: default avatarDavid Michael Barr <b@rr-dav.id.au>
      84a44dbe
    • Thomas Davies's avatar
      AOM_QM: redesign matrices and support CB_4X4 and RECT-TX. · 6675adff
      Thomas Davies authored
      All matrices are derived by subsampling 32x32 and 32x16 matrices.
      Inter and intra matrices now use the same matrix set.
      
      BUG=aomedia:520
      
      AWCY results for default setting (qm-min=5, qm-max=9):
      
        PSNR  | PSNR Cb | PSNR Cr | PSNR HVS | SSIM  | MS SSIM | CIEDE 2000
         2.75 |  7.98   |    -    |  -3.52   |  0.73 |   -2.21 |   4.22
      
      Change-Id: I8414d19eaf50cfe80d4fe2290da6cdf4ebb406cb
      6675adff
    • Jingning Han's avatar
      Enable chroma-sub8x8 by default · c9c193d9
      Jingning Han authored
      Change-Id: I3f73ccdb82261d13580697c162b7f5c877616f32
      c9c193d9
    • Jingning Han's avatar
      Set mi pointer before setting the skip flag · 9a80e7c4
      Jingning Han authored
      This resolves a potential race issue in multi-threading test when
      chroma-sub8x8 is enabled.
      
      Change-Id: I443f4af10e55046b04d6d739f7594dd8bda5c830
      9a80e7c4
    • Jingning Han's avatar
      Fix set_skip_context logic · f65b89ab
      Jingning Han authored
      Properly reset mi_row and mi_col values per plane.
      
      Change-Id: Ic624f286c8ee2521403557bc1d685752166b1947
      f65b89ab
    • Jingning Han's avatar
      Fix chroma-sub8x8 for non-420 format · bdcee1e7
      Jingning Han authored
      The chroma-sub8x8 is mainly designed for YUV420 format. When the
      format is YUV444, it falls back to regular block size behavior.
      
      Change-Id: Ibedc4f1d59e7bf717384ede9423f22678d54c0fa
      bdcee1e7
    • Nathan E. Egge's avatar
      Fix EC_ADAPT bug introduced in ad66b816. · 9e9682fa
      Nathan E. Egge authored
      When merging NEW_TOKENSET into EC_MULTISYMBOL a bug was introduced when
       EC_MULTISYMBOL == 1 and EC_ADAPT == 0.
      This patch reverts that change and replaces CONFIG_EC_MULTISYMBOL with
       the equivalent flag (CONFIG_DAALA_EC || CONFIG_ANS).
      
      BUG=aomedia:550
      
      Change-Id: I164df42121ca0959247af34e65287b1d230346f7
      9e9682fa
    • Yue Chen's avatar
      Fix assertion failure in var_tx+rect_tx-ext_tx · 3ca7dd98
      Yue Chen authored
      BUG=aomedia:560
      
      Change-Id: Ie399d61162ab33e35fa0cb04206904e3af1bbb2d
      3ca7dd98
    • David Barker's avatar
      ext-inter: Further cleanup · f19f35f7
      David Barker authored
      * Rename the 'masked_compound_*' functions to just 'masked_*'.
        The previous names were intended to be temporary, to distinguish
        the old and new masked motion search pipelines. But now that the
        old pipeline has been removed, we can reuse the old names.
      
      * Simplify the new ext-inter compound motion search pipeline
        a bit.
      
      * Harmonize names: Rename
        aom_highbd_masked_compound_sub_pixel_variance* to
        aom_highbd_8_masked_sub_pixel_variance*, to match the naming of
        the corresponding non-masked functions
      
      Change-Id: I988768ffe2f42a942405b7d8e93a2757a012dca3
      f19f35f7
  2. 23 May, 2017 7 commits
  3. 22 May, 2017 10 commits
  4. 21 May, 2017 10 commits
    • Timothy B. Terriberry's avatar
      cb4x4: Elide special cases cb4x4 doesn't need · 9edb72c9
      Timothy B. Terriberry authored
      These conditions in has_top_right() are never true when cb4x4 is
      enabled.
      
      The corresponding check in has_bottom_left() is already behind a
      similar #if.
      
      This is needed by a subsequent patch to move sub-4x4 block sizes
      behind their own configuration flag, since that changes the value
      of bw_unit, which might cause the condition to become true when it
      should not be.
      
      Encoder and decoder output should remain unchanged.
      
      Change-Id: I648654dfc265f911d83668d94dc927ebc0c70771
      9edb72c9
    • Timothy B. Terriberry's avatar
      cb4x4: Don't assume TX units are half MI_SIZE in has_bottom_left() · 47de4660
      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: Iff437425f2c5abd02a82ff1c7c8002aefc2f75a6
      47de4660
    • 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: Don't assume TX units are half MI_SIZE in predict_square_intra_block() · 31bc29f6
      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: I86057b85b7d4cd810d87da28f5eedc5b27597e29
      31bc29f6
    • Timothy B. Terriberry's avatar
      cb4x4: Fix reset_skip_context() without chroma_2x2 · a2d5cdef
      Timothy B. Terriberry authored
      reset_skip_context() was always clearing the entropy contexts for
      all three color planes, using a block size that corresponded with
      the luma plane.
      
      However, when chroma_2x2 is disabled, then for sub-8x8 luma block
      sizes, the corresponding chroma block size is always 4x4, and the
      skip flag only affects the chroma blocks corresponding to the
      upper-left luma block.
      
      This patch makes reset_skip_context() reset the contexts that
      actually correspond to the chroma blocks that are skipped (if any).
      It also moves reset_skip_context() to av1_reset_skip_context() in
      blockd.c, because blockd.h gets included before onyx_int.h, which
      declares the required is_chroma_reference() function.
      reset_skip_context() was too large and used in too many places to
      be a reasonable candidate for inlining, anyway.
      
      AWCY results on objective-1-fast:
      
      cb4x4-fix-base@2017-05-11T06:26:50.159Z -> cb4x4-fix-reset_skip@2017-05-11T06:28:45.482Z
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0301 |  0.1068 |  0.1463 |   0.0359 | 0.0260 |  0.0347 |     0.0479
      
      A regression (near the noise range), but without this fix, the line
      buffer size required by the entropy contexts will be doubled.
      
      Change-Id: I12fa6e60d9c1c7c85927742775a346ea22b3193f
      a2d5cdef
    • 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
    • Jingning Han's avatar
      Silent clang warnings on variable init value assignment · 2af277a4
      Jingning Han authored
      Clear the clang warnings when var-tx is enabled.
      
      Change-Id: I6b005124159b0607ec3284cc2e5ba287745a2541
      2af277a4
    • hui su's avatar
      filter-intra: fix memory overflow · 9ef435ac
      hui su authored
      BUG=aomedia:545
      
      Change-Id: I8beacce0f87b52dfd614bcd8c88426839c4ba51d
      9ef435ac
    • Debargha Mukherjee's avatar
      Cleans ups and refactoring · d48f573d
      Debargha Mukherjee authored
      Unifies the chroma and luma paths for estimation of the
      restoration parameters.
      
      No change in bit-stream or results.
      
      Change-Id: I9998c269cc00ded8b94d0e660b5441a4f9b94848
      d48f573d
    • Jingning Han's avatar
      Support level map coeffs in var-tx encoding · 4fe5f67f
      Jingning Han authored
      Use recursive transform block coding order.
      
      Change-Id: I6d4671fe669e8a1897e034973de181078272cbfd
      4fe5f67f
  5. 20 May, 2017 2 commits
    • hui su's avatar
      DPCM intra coding experiment · b8a6fd6b
      hui su authored
      Encode a block line by line, horizontally or vertically. In the vertical
      mode, each row is predicted by the reconsturcted row above;
      in the horizontal mode, each column is predicted by the reconstructed
      column to the left.
      
      The DPCM modes are enabled automatically for blocks with horizontal or
      vertical prediction mode, and 1D transform types (ext-tx).
      
      Change-Id: I133ab6b537fa24a6e314ee1ef1d2fe9bd9d56c13
      b8a6fd6b
    • Timothy B. Terriberry's avatar
      new_tokenset: Add missing blockzero_probs for cb4x4. · 90ed98f9
      Timothy B. Terriberry authored
      cb4x4 adds a new TX_2X2 to the TX_SIZES enum, which offsets the
      indexing of blockzero_probs. Add a set of default probabilities for
      this case (simply copied from the TX_4X4 probabilities).
      
      These will only be used if chroma_2x2 is enabled (though moving the
      other probabilities back to their correct offset will affect all
      other sizes).
      
      This is an encoder-only change.
      
      AWCY results on objective-1-fast:
      
      cb4x4-fix-reset_skip@2017-05-11T06:28:45.482Z -> cb4x4-fix-blockzero_probs@2017-05-11T06:29:26.242Z
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.1520 | -0.2682 | -0.0972 |  -0.2342 | -0.1638 | -0.1701 |    -0.3278
      
      Change-Id: I5594f19af2935c8a8d43105a27ad33f6222ed7f2
      90ed98f9