1. 18 Jan, 2017 1 commit
    • Alex Converse's avatar
      Add unpoison_partition_ctx experiment · 55c6bdeb
      Alex Converse authored
      At the edges of the picture only a subset of partitions are legal. Add
      new contexts for these borders so they don't distort the probabilities of
      the interior of the image where all partitions are legal.
      Only include one context for each block size of each border direction
      because so few blocks fall into these contexts to begin with.
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0294 | -0.0911 | -0.2382 |  -0.0481 | -0.0441 | -0.0450 |    -0.0454
      derf144: -0.135
      lowres: -0.124
      midres: -0.076
      hdres: -0.078
      Change-Id: I909b98eebb7e49273cde90154c8408febe334158
  2. 17 Jan, 2017 2 commits
  3. 14 Jan, 2017 3 commits
    • Angie Chiang's avatar
      Refactor av1_update_neighbors · 0cfaeeaf
      Angie Chiang authored
      Beside above and left positions, additional above-left,
      above-right, and bottom-left positions are added as
      neighbor candidates.
      In av1_update_neighbors, two available positions will be picked as
      context neighbors.
      The picking priority is
      above -> left -> above-left -> above->right -> bottom->left
      Change-Id: I82eaf0b23d0189caaea008ecc86776492886a05b
    • Angie Chiang's avatar
      Use default scan order as a tie breaker · fe2a959e
      Angie Chiang authored
      Change-Id: I85f059b6e2c48bcdf2edd3b7bf896fdccbaaa703
    • Yi Luo's avatar
      Fix 4x4 hybrid transform accuracy check tests · 8f315b19
      Yi Luo authored
      - Adjust the accuracy value and fix,
        C/Trans4x4HT.AccuracyCheck/5,6,7 as CONFIG_AOM_HIGHBITDEPTH = 1.
      Change-Id: I2f8d97b2e2c1ee45bfae613657ca01b5666d76ee
  4. 13 Jan, 2017 11 commits
  5. 12 Jan, 2017 11 commits
    • Yue Chen's avatar
      Refactor write_modes_b() and decode_block() · 64550b6a
      Yue Chen authored
      In order to reduce the code complexity for handling parameter
      coding and recon separately for each 64x64 in non-causal obmc
      experiment, we break them down to two steps calling separate
      functions, one for params, the other dealing with coefficients
      and recon(decoder side).
      Note: actually the non-causal prediction can use the original
      syntax, but right now in the decoder coeff detoken and recon are
      heavily nested.
      Change-Id: I72d9c42ab8f38b57850d6b0481551893f1702822
    • David Barker's avatar
      Add SSE2 vectorized warp filter for lowbd · d5dfa96e
      David Barker authored
      End-to-end speed improvements: (measured on tempete_cif.y4m,
      20 frames for encoder and all 260 frames for decoder)
      * GLOBAL_MOTION encoder: ~10% faster
      * GLOBAL_MOTION decoder: 100-200% faster depending on bitrate
      * WARPED_MOTION encoder: ~2.5% faster
      * WARPED_MOTION decoder: ~20-40% faster depending on bitrate
      The improvement in the GLOBAL_MOTION decoder is particularly
      large because its runtime is dominated by calls to warp_plane().
      This introduces minor changes to the output of the warp filter,
      but these should be rare.
      Change-Id: I5813ab9e90311e27587045153c32d400b6b9eb92
    • Yi Luo's avatar
      High bit depth 32x32 inverse DCT_DCT transform, AVX2 · 3bd83775
      Yi Luo authored
      - Witness the follow user-level speedup on AV1 baseline:
       Encoding time reduction: 4.26%
       Decoding time reduction: 25.35%
      Change-Id: Ideaf3cd473ad45ed9256c80d5a5daed0a6e098cf
    • Yue Chen's avatar
      Add NCOBMC experimental flag · b2d26453
      Yue Chen authored
      NCOBMC (non-causal obmc) allows overlapped prediction that takes
      mvs from blocks at positions with non-causal relation (e.g. at the
      bottom, or to the right) to the current block.
      This experiment will be a sub-experiment of MOTION_VAR, so will only
      be effective when MOTION_VAR is on.
      Change-Id: Ie3aa9591e1c15f5cc251664ea3c146210a5010cf
    • Jingning Han's avatar
      Make av1_update_txb_coeff_cost() check condition support cb4x4 · 904fd182
      Jingning Han authored
      Replace hard coded numbers with macro defs.
      Change-Id: I125ef4e4c8c3aead182c583522450626b730bbb3
    • Jingning Han's avatar
      Make rd_debug aligned to var-tx · c7ea761f
      Jingning Han authored
      Fix the corner case and use the right rate cost udpate for rd_debug.
      This would make the var-tx pass rd_debug test.
      Change-Id: Ib0fbd2d73030c0d150222c6b7c2dfffc0c6af085
    • Jingning Han's avatar
      Make txfm block partition context support rectangular blocks · 0c70a80f
      Jingning Han authored
      Make the transform block partition context model support the
      rectangular transform block size partition. The coding gains
      from cb4x4 and var-tx are:
                cb4x4 + var-tx
      lowres         4.3%
      midres         2.6%
      Change-Id: I6cc1413fbf6d7707ca7fd24300623a3f0118be7c
    • Nathan E. Egge's avatar
      Move from Daala accounting to AOM accounting. · cefb4094
      Nathan E. Egge authored
      Replace all instances of Daala's OD_ACCOUNTING with those specified by
      Change-Id: Ibb59fc5df0ce4b0528b15296bf2f14029c414bc0
    • Nathan E. Egge's avatar
      Don't include Daala EC headers directly. · cceac33a
      Nathan E. Egge authored
      The generic coder now uses the AOM entropy coder API and no longer
       needs to include the entenc.h and entdec.h headers.
      Change-Id: I213acb5b6bd8a3fe60dc096b83d76ae72315e9de
    • Nathan E. Egge's avatar
      Use aom_reader / aom_writer API to code rest. · 25007c88
      Nathan E. Egge authored
      The functions aom_encode_pvq_split() and aom_decode_pvq_split() code
       the rest value as raw bits using the od_ec_enc_bits() and
       od_ec_dec_bits() functions.
      These code bits in the reverse order as the aom_write_literal() and
       aom_read_literal() functions, so both the encoder and decoder must
       be changed at the same time.
      This commit has no impact on metrics but is a bitstream change.
      Change-Id: Iee79777f35aebbb23043a7efa7fe439af70348ba
    • Nathan E. Egge's avatar
      Use aom_reader / aom_writer API to code raw bits. · f1e2fbdc
      Nathan E. Egge authored
      The functions aom_laplace_encode_special() and
       aom_laplace_decode_special() code the rest value as raw bits using the
       od_ec_enc_bits() and od_ec_dec_bits() functions.
      These code bits in the reverse order as the aom_write_literal() and
       aom_read_literal() functions, so both the encoder and decoder must
       be changed at the same time.
      This commit has no impact on metrics but is a bitstream change.
      Change-Id: I428d5a83dd108c3a54f3c1dbae2c7fd5e59f5726
  6. 11 Jan, 2017 6 commits
  7. 10 Jan, 2017 6 commits
    • Yaowu Xu's avatar
      Change md5 used in test · 66ca5977
      Yaowu Xu authored
      A previous commit 8e1d0f70 changed
      the bitstreams due to change of scale of transforms. While the
      change is expected, md5 for "decode_to_md5_av1" test needs to be
      updated to reflected the change to avoid nightly test failures.
      Change-Id: I57e0318c081c7c0609fe7d5ee97543239ce162d0
    • Yaowu Xu's avatar
      add a minor clarification in comment · a98ceea7
      Yaowu Xu authored
      Change-Id: I7320074ff7bd95d833cba8afb04fcc0730392f1e
    • Urvang Joshi's avatar
      Palette: use insertion sort for sorting neighbors' scores. · f1c06a73
      Urvang Joshi authored
      While sorting, preserving the order of the rest of the list when moving
      an element to the top of list makes hardware implementation much simpler.
      The compression performance is roughly same: overall, avg performance on
      screen-content set is 0.137% better than before in fact.
      Change-Id: Id1aa1e90254b44eae9133b47bca8f853f6a62c6b
    • Angie Chiang's avatar
      Fix RunAccuracyCheck failure · e6aece86
      Angie Chiang authored
      Measure the accuracy of each transform in terms of per coefficient basis.
      Set up a accuracy limit corresponding to current transform
      Change-Id: Ib7db9680c963427e94e728bf453b66180ce30b89
    • Sarah Parker's avatar
      Refactor compound_segment to try different segmentation masks · b9f757c7
      Sarah Parker authored
      Change-Id: I7c992c9aae895aebcfb5c147cb179cf665c0ac10
    • Yushin Cho's avatar
      Rename encode_inter_mb_segment() · ab44fd14
      Yushin Cho authored
      Rename encode_inter_mb_segment() so that it tells readers
      that the function is only used for sub8x8 case.
      Change-Id: I2d86d9efaf0e1e96446d9e2dec8a8d97772489a7