1. 20 Mar, 2017 8 commits
    • Debargha Mukherjee's avatar
      Add config flags and macros to control ext-inter · 37f6fe61
      Debargha Mukherjee authored
      Adds a dependent config flag 'interintra' to turn on/off interintra
      modes altogether.
      Adds a dependent config flag 'wedge' to turn on/off wedge compound
      for both interinter and interintra.
      
      Adds another macro to change wedge predictors to use
      only 0, 1/2, or 1 weights.
      
      From now, use
      --enable-ext-inter --enable-wedge --enable-interintra to get the
      same behavior as the old --enable-ext-inter.
      
      Change-Id: I2e787e6994163b6b859a9d6431b87c4217834ddc
      37f6fe61
    • David Barker's avatar
      Fix two bugs in highbitdepth self-guided filter · 7e08ac3f
      David Barker authored
      This filter was temporarily removed due to test failures.
      This patch reintroduces the filter and fixes two bugs:
      
      * The test cases would occasionally segfault on x86, since
        the highbd filter requires its inputs to be aligned to
        16 bytes. This will always be true when used on real videos,
        so adjust the test cases to match.
      
      * The function calc_block was incorrect for bit_depth > 8,
        due to passing an incorrect argument to _mm_srl_epi32().
        This was the cause of the original test failures.
      
      BUG=aomedia:392
      
      Change-Id: Ia06b76c3e6122eebadd0995fb62f32c2fcab8b3e
      7e08ac3f
    • hui su's avatar
      Add av1 prefix to inv_txfm_add · bb9c73b0
      hui su authored
      Change-Id: Id7cbb89ba344770297ef42bf1b09a2b9ba5a1378
      bb9c73b0
    • hui su's avatar
      Make ext-intra/intra-interp work with ec-multisymbol · b4e25d2c
      hui su authored
      Use cdf to signal intra filter type.
      Skip forward update when ec-adapt is on.
      
      Change-Id: Idd446e081b8e9ea33356e60423b372bfd85a80db
      b4e25d2c
    • Alex Converse's avatar
      Disable OD_ASSERTS asserts when NDEBUG is set · 76b89631
      Alex Converse authored
      Change-Id: I3d411ef4a6a1be5e7e644f210a5296dbe18807eb
      76b89631
    • Angie Chiang's avatar
      Fix get_txb_ctx · 4af07d92
      Angie Chiang authored
      get_txb_ctx is designed under the condition that ctx is uint8_t
      Hence, we cast ctx to uint8_t before further operations
      
      Change-Id: If8423d6e5edd346034cb9631726e930c47bc682b
      4af07d92
    • Angie Chiang's avatar
      Change get_txb_skip_context to get_txb_ctx · 85901563
      Angie Chiang authored
      Generate txb_ctx which contains both txb_skip_ctx and dc_ctx
      directly
      
      Change-Id: I5058b72e0b6431a9daf0536925c71da590cf7aeb
      85901563
    • Alex Converse's avatar
      ext_partition_types: Bring into alignment with ec_multisymbol and ec_adapt · 57795a4c
      Alex Converse authored
      ec_multisymbol+ext_partition_types:
      base_ext_types@2017-03-15T18:24:38.012Z -> 8565_3_ext_types@2017-03-17T18:29:48.794Z
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0346 | -0.0343 | -0.0341 |  -0.0345 | -0.0345 | -0.0344 |    -0.0345
      
      ec_multisymbol+ec_adapt+ext_partition_types:
      base_adapt_ext_types@2017-03-15T18:27:31.704Z -> 8565_3_adapt_ext_types@2017-03-17T18:30:01.108Z
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0422 | -0.0420 |     N/A |  -0.0425 | -0.0423 | -0.0423 |    -0.0420
      
      Change-Id: Ia40f118f0faf546be13e02ec9ed584dd38529a59
      57795a4c
  2. 19 Mar, 2017 1 commit
  3. 17 Mar, 2017 6 commits
    • Sarah Parker's avatar
      Macro to disable warped/obmc_causal with global motion · 19234cc2
      Sarah Parker authored
      Enabling SEPARATE_GLOBAL_MOTION will remove the ability for
      a block that uses zeromv with global motion to pick warped_causal
      or obmc_causal as the motion mode. When this is enabled there is:
      
      0.05% drop on lowres for global + warped enabled
      0.15% drop on midres for global + warped enabled
      
      0.12% drop on lowres with global + motion var enabled
      0.07% drop on midres with global + motion var enabled
      No performance change for global, warped, or motion var individually.
      
      Change-Id: Idbfb8dd7a93da14902438504b06a08e5212e48cb
      19234cc2
    • Debargha Mukherjee's avatar
      Fix config flags among var-tx/ext-tx/rect-tx · 428bbb2b
      Debargha Mukherjee authored
      BUG=aomedia:396
      
      Change-Id: I1b7f6dddb06eac9e341518a95a0d71465e613e9e
      428bbb2b
    • Steinar Midtskogen's avatar
      Merge dering/clpf rdo and filtering · a9d41e88
      Steinar Midtskogen authored
      * Dering and clpf were merged into a single pass.
      * 32x32 and 128x128 filter block sizes for clpf were removed.
      * RDO for dering and clpf merged and improved:
        - "0" no longer required to be in the strength selection
        - Dering strength can now be 0, 1 or 2 bits per block
      
                    LL    HL
      PSNR:       -0.04 -0.01
      PSNR HVS:   -0.27 -0.18
      SSIM:       -0.15 +0.01
      CIEDE 2000: -0.11 -0.03
      APSNR:      -0.03 -0.00
      MS SSIM:    -0.18 -0.11
      
      Change-Id: I9f002a16ad218eab6007f90f1f176232443495f0
      a9d41e88
    • Alex Converse's avatar
      Fix off by one in an assert. · f5931e5e
      Alex Converse authored
      'bits' can be (less than or) equal to sizeof(av1_cat6_prob).
      
      BUG=aomedia:399
      
      Change-Id: I20ceb6fa3b61dfcc59e28605fe4f90d8bfaacc51
      f5931e5e
    • Joe Young's avatar
      Fix compile error with ref_mv disabled · 947fa979
      Joe Young authored
      Change-Id: I6c5a843df7de0e711db27ccc5cfbe9fde8d6bae4
      947fa979
    • Debargha Mukherjee's avatar
      Replace division in warped motion least squares · 082d4df7
      Debargha Mukherjee authored
      Replaces the int64 and int32 divisions in least-squares and
      gamma or delta computation with a mechanism that decomposes
      the divisor D such that 1/D = y * 2^-k where y is obtained
      from a lookup table indexed by 8 highest bits of the difference
      D - 2^floor(log2(D)). The main complexity is now only from
      computing this decomposition, which is essentially equivalent
      to finding floor(log2(D)) (position of highest
      bit in a 64-bit integer).
      
      Also includes an out of memory bug fix and some cleanups.
      
      Change-Id: I9247fdff5f6b4191175d4b4656357bfff626f02c
      082d4df7
  4. 16 Mar, 2017 3 commits
    • Angie Chiang's avatar
      Draft of av1_update_txb_context · 0397eda0
      Angie Chiang authored
      This draft version only pass compiling check, it's not working yet.
      
      The following goal is to use new coding system when doing bitstream
      packing but keep old coding system in RD loop.
      
      Change-Id: I224a1581d1cc5c67d73e71558fb77d9faf9c2470
      0397eda0
    • Alex Converse's avatar
      Account for elided extrabits during rate cost calculation. · da3d94fe
      Alex Converse authored
      Fixes some rd-debug mismatches coding cat6 tokens with tx size < 32x32.
      For these tokens the high extrabits are elided during tokenization and
      detokenization, but the rd cost was computed with the old tables from
      VP9 where these high extrabits are always coded.
      
      Change-Id: I4a9a6ea822ff821e1932c351d43a57bdb4d6d466
      da3d94fe
    • Alex Converse's avatar
      highbitdepth: deduplicate extrabits · e063e2dd
      Alex Converse authored
      Change-Id: Ib1777433c10e3b64f939c533c12a89dfc839bc6a
      e063e2dd
  5. 15 Mar, 2017 6 commits
    • Yue Chen's avatar
      Fix recon mismatches in GLOBAL_MOTION+MOTION_VAR · 74a77546
      Yue Chen authored
      The offset of neighbors is communicated to av1_make_inter_predictors
      so as to use the correct mi in gm warping
      
      Change-Id: I471bbdf2112ed678969492b11730f15d9527eb7e
      74a77546
    • Alex Converse's avatar
      ext_partition_types: Make update tree shape match · 4e18d403
      Alex Converse authored
      Update the first PARTITION_PLOFFSET (4) contexts with the four classic
      partitions. The extended partitions are only codable above 8x8, but
      there are PARTITION_PLOFFSET (4) contexts for dropping below 8x8.
      
      Change-Id: Ib3291dded6dc24103222e8f470504c20e29adb88
      4e18d403
    • Thomas Davies's avatar
      NEW_TOKENSET: Make zero block value uncodeable for AC coeffs. · 1c05c635
      Thomas Davies authored
      Change-Id: Icd7528d1ec8e117205e5e35ad9a11cfa83b08253
      1c05c635
    • Sarah Parker's avatar
      Fix broken assert when rect-tx is enabled on its own · 076437f4
      Sarah Parker authored
      The function is_rect_tx previously was only defined when
      both ext-tx and rect-tx are enabled together. This function
      needs to be defined when rect-tx is enabled alone to fix
      failing asserts.
      
      Change-Id: Ic8153a55b768cb49caac07d6aeaee109d63410a9
      076437f4
    • Thomas Davies's avatar
      NEW_TOKENSET: do not code impossible values. · 04bdd523
      Thomas Davies authored
      In the last position, No-EOB values and zero are all not
      possible.
      
      AWCY, objective-1-fast: -0.08% all metrics
      AWCY, screen content:
      
      PSNR YCbCr:    -0.42%    -0.42%    -0.43%
      PSNRHVS:       -0.40%
      SSIM:          -0.41%
      MSSSIM:        -0.41%
      CIEDE2000:     -0.42%
      
      Change-Id: Iad012abfd2a48a2c9ff27512f92b27235a5a8a4a
      04bdd523
    • Thomas Davies's avatar
      EC_ADAPT: Perform backwards updates directly on CDFs. · 028b57f5
      Thomas Davies authored
      The initial CDF for each frame is stored in
      the frame context. CDFs for actual coding are
      stored in the tile structures, and these are
      what get adapted. The initial CDF is replaced
      by an average CDF derived from these tile CDFs.
      This is carried forward to future frames when
      backward adaptation is on.
      
      CDFs are no longer set from the 8 bit probabilities
      in backwards adaptation.
      
      For now, 8 bit probabilities are maintained for
      use in the encoder and for symbols which do not
      have a CDF.
      
      Change-Id: I106b30510bfad1fa57d077f7702acc1864378a09
      028b57f5
  6. 14 Mar, 2017 1 commit
    • Sarah Parker's avatar
      Fix sub8x8 rd costing to include global motion prediction · b3ebed1c
      Sarah Parker authored
      One codepath originally skipped a function which forks between
      gm prediction and regular inter prediction. This change fixes this
      for both high bit depth and regular bit depth.
      
      Change-Id: I741d67a7c89eb6eb0cd35c02219739dc3ddb3841
      b3ebed1c
  7. 13 Mar, 2017 2 commits
    • Urvang Joshi's avatar
      Add some default CDFs when ALT_INTRA is on. · 63234547
      Urvang Joshi authored
      Generated using av1_tree_to_cdf().
      
      Note: These are currently overwritten by CDFs generated from default
      probability tables. But they will be used eventually when we remove the
      default probability tables.
      
      Change-Id: I41a6047fd13e05156a50b2d54349ffdd7e1e4c4a
      63234547
    • Yaowu Xu's avatar
      Remove a sse4_1 function · def28b24
      Yaowu Xu authored
      Function apply_selfguided_restoration_highbd_sse4_1() is producing
      mismatch to c version, it is removed for now, allowing investigation
      and fix.
      
      BUG=aomedia:392
      
      Change-Id: Ic55e7a6958112c02930b1d5f3af2e2ea089fe500
      def28b24
  8. 11 Mar, 2017 2 commits
  9. 10 Mar, 2017 6 commits
    • David Barker's avatar
      Vectorize new highpass filter for loop-restoration · eed824ef
      David Barker authored
      Change-Id: Ibe5d4933f599456cb496f636de244694bc786a4c
      eed824ef
    • Thomas Davies's avatar
      Add a symbol decode call count to accounting. · f7f87ff2
      Thomas Davies authored
      This keeps track of how many calls have been made
      to read symbols or bits. A given syntax element
      may make multiple calls to symbol decoding functions,
      and these variables keep track of the entropy
      decoding engine throughput.
      
      Change-Id: Iab3a720cbfe68f8d5ca3e4c415f7baa683b24268
      f7f87ff2
    • Debargha Mukherjee's avatar
      Replace one self guided filter with highpass · b7bb0976
      Debargha Mukherjee authored
      Adds an option controlled by a macro to replace one of
      the guided filters in the self-guided tool with a simple
      bandpass filtered version generated with a 3x3 kernel.
      By default the macro USE_HIGHPASS_IN_SGRPROJ is 0 (turned
      off), that defaults us to the dual self-guided filter.
      When the macro is turned on, the larger radius guided
      filter is replaced by a simpler filter that is much faster.
      
      Results (if USE_HIGHPASS_IN_SGRPROJ is on vs. off):
      lowres: performance drop by +0.14% (BDRATE)
      midres: performance drop by +0.27% (BDRATE)
      
      Further experiments on this variation of guided filters is
      pending.
      
      Change-Id: I7bbcfcad7ee266cd49a8dc6d96795a454feb1a94
      b7bb0976
    • Yaowu Xu's avatar
      Align a buffer for simd operation · bcf25cda
      Yaowu Xu authored
      BUG=aomedia:387
      
      Change-Id: I11fdc9dbc4b0f4484e82ab1662ac329b8b7f2d6c
      bcf25cda
    • Ryan Lei's avatar
      add 15 tap filter in the parallel_deblocking experiment · 41fc0c66
      Ryan Lei authored
      this change added back the original 15 tap filter from VP9 back into
      the parallel_deblocking experiment. when transform size of both blocks
      along the edge is greater than 16x16, 15 tap filter is used.
      
      Change-Id: Ieae0393b66b1168572292bcebabd2707058b7f1d
      41fc0c66
    • Sebastien Alaiwan's avatar
      Use correct format specifier for 64-bit integers. · 5443ff3a
      Sebastien Alaiwan authored
      Change-Id: I366160220b5f7fe4ea6adb4719c4efeef6a7d6f7
      5443ff3a
  10. 09 Mar, 2017 4 commits
    • David Barker's avatar
      Add SSE4.1 highbitdepth self-guided filter · 4d2af5db
      David Barker authored
      Performance is very similar to the lowbd path (only 4-5% slower)
      
      Change-Id: Ifdb272c3f6c0e6f41e7046cc49497c72b5a796d9
      4d2af5db
    • Debargha Mukherjee's avatar
      Clean up unused code in loop-restoration · 4bfd72ee
      Debargha Mukherjee authored
      Removes domain transform recursive filters and non-approximate
      guided filter code.
      
      Change-Id: Ib7ae7a6b6526a0908b3dc1787ab3561442da4e2d
      4bfd72ee
    • Debargha Mukherjee's avatar
      Add restoration tilesize to frame header · 1008c1e7
      Debargha Mukherjee authored
      The restoration tilesize can be now chosen as either 256, 128
      or 64 at the frame header.
      
      Change-Id: I852fc42afedc053484d657bdca522de73aaacd67
      1008c1e7
    • Fergus Simpson's avatar
      rdopt: refactor interpolation_filter_search() · de18e2b5
      Fergus Simpson authored
      The interpolation filter search used to be performed in a code block in
      handle_inter_mode(). This change breaks that code out into its own
      function to reduce the length of handle_inter_mode and ecapsulate its
      functionality, making both functions more readable.
      
      Attention has been paid to make as many arguments constants as can be.
      
      Change-Id: I3fd484137fc0d16a47dba0b18ce0e2b349d24446
      de18e2b5
  11. 08 Mar, 2017 1 commit