1. 31 Mar, 2017 4 commits
    • Debargha Mukherjee's avatar
      Refactoring related to shear parameter computation · 3b6c5447
      Debargha Mukherjee authored
      Shear parameters for global motion are now computed once
      when the parameters are determined.
      Change-Id: Idfd53410079a81a81ddd4728f173a0d0ec60230b
    • Urvang Joshi's avatar
      RTCD defs: Remove empty specialize statements once and for all. · 5ddac0aa
      Urvang Joshi authored
      A similar cleanup happened before, but the empty statements have since
      reappeared. I added a check in 'specialize' subroutine to die whenever
      such an empty specialize call is found, so that config+make would fail.
      Change-Id: I300ca0f0b077c0aeca8096d6460d8fb1c364d9b9
    • David Barker's avatar
      Allow NEAR_NEARMV and NEW_NEWMV modes to use ref_mv_idx · 404b2e87
      David Barker authored
      When ext-inter and ref-mv are both enabled, this patch
      allows the NEAR_NEARMV and NEW_NEWMV modes to pick from
      the extended reference mv list, just like the NEARMV and
      NEWMV modes can.
      Change-Id: Ibcc9e19dba7779422c1c9589d5498159e83bf61e
    • Alex Converse's avatar
      Crop distortion to visible MIs · 61f37b87
      Alex Converse authored
      Ported from VP9 with some heavy modifications
      bsize_dist@2017-03-29T23:18:27.564Z -> bcropped_dist@2017-03-29T23:21:00.200Z
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0966 | -0.0922 |  0.0032 |  -0.0618 | -0.0579 | -0.0441 |  -0.0959
      Change-Id: Icdfcf47a9017fd3180e7fbc963196a43c5376c4e
  2. 30 Mar, 2017 8 commits
    • Yi Luo's avatar
      Add SSE2 av1_fht32x32 · 9a3d29ea
      Yi Luo authored
      Change-Id: I27a7a230bbc701920a996d1e22ae4d22ca8cfead
    • Jean-Marc Valin's avatar
      Prevent PVQ SSE search from putting pulses beyond n-1 · 133a9878
      Jean-Marc Valin authored
      Change-Id: Ib9fec5f2e00ecd73006a603a61d3fddee5229cf8
    • Yunqing Wang's avatar
      Enable/disable unit tests correctly in decoder-only build case · 80360585
      Yunqing Wang authored
      While building the decoder-only AV1, the unit tests need to be the ones
      that only call decoder functions.
      Change-Id: Iac7b464aa222a177c06b2e037faa6717305cd59d
    • Debargha Mukherjee's avatar
      A few fixes for global motion · 11f0e40d
      Debargha Mukherjee authored
      Handles a rare divisin by 0 case.
      Also adds a check on global motion parameters to disable
      if the parameters obtained are outside the range that the
      shear supports. This fixes a rare assert failure.
      Also changes the recode loop threshold somewhat.
      Change-Id: I4c6e74b914ac653cd9caa0563d78b0a19a2a8627
    • Alex Converse's avatar
      Make aom_sum_squares_2d_i16 take width and height parameters. · 4c5b0204
      Alex Converse authored
      SSE2 may be needed for nx4 and 4xn.
      Change-Id: I3c10112447fdb5fe51a68bc2c6e2f2641b102723
    • Jean-Marc Valin's avatar
      SSIM-like contrast term for CDEF distortion function · 2d5c2016
      Jean-Marc Valin authored
      high-latency, cpu=0:
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      0.0378 |  0.1946 |  0.1385 |  -0.1159 | -0.2058 | -0.2085 |     0.1353
      low-latency, cpu=0:
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      0.2388 |  0.2234 |  0.3290 |   0.0623 | -0.1716 | -0.1704 |     0.2542
      low-latency, cpu=4:
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      0.4089 |  0.3477 |  0.6132 |   0.1729 | -0.1905 | -0.1610 |     0.5522
      Change-Id: I35b8596667d82a127847b209416ad83e3b839a9a
    • Steinar Midtskogen's avatar
      Optimise od_dir_find8() for SSE4.1 · 40fbd217
      Steinar Midtskogen authored
      Change-Id: I56a35b0d3d76294cc7b3d601770f7dcef12a8bc9
    • Yue Chen's avatar
      Restrict # of neighbors in obmc blending · 1bd42be6
      Yue Chen authored
      Only blend with the first N neighbors at each side. If the size of
      one dimenstion is 8/16/32/64, the max # of neighbors to overlap
      with is 1/2/3/4.
      Previously we disable obmc mode if there are too many neighbors.
      Change of performance in AWCY, compared to disabling obmc if
      at any side there are more than 2 overlappable neighbors.
      HL improved by 0.02%
      LL improved by 0.09%
      Change-Id: I93d9a65c6c4aabf0b4a4946e2253d3e2ef21a662
  3. 29 Mar, 2017 8 commits
  4. 28 Mar, 2017 11 commits
    • Joe Young's avatar
      Fix compile error if ref_mv is disabled. · 1bf75bca
      Joe Young authored
      Change-Id: I2290eea6dc0b57f8bd3416ceae52ed75c24dd6ab
    • Jingning Han's avatar
      Refactor pick cdef to support cb4x4 · 31d044d3
      Jingning Han authored
      Replace hard coded numbers to support the 4x4 coding block
      Change-Id: I3602e09c8cfae9765069848828b534d177a75774
    • Yaowu Xu's avatar
      fix calls to av1_tx_block_rd_b() · 481af670
      Yaowu Xu authored
      Fix the calls to be compatible with the new interface introduced in a
      previous commit#77368af8.
      Change-Id: I6944c189d2d53978250df9dee460a2ba9b8ccc83
    • hui su's avatar
      Add av1_ prefix to fwd_txfm() · f11fb882
      hui su authored
      Change-Id: Ie18fd2b8a3caf3948748ee353fe41e37f5803ba3
    • Steinar Midtskogen's avatar
      Move dering strength mapping to od_dering() · 233ef947
      Steinar Midtskogen authored
      This patch also makes it easier to tune the mapping later.
      Change-Id: I69f49b9dd1fddb306931599a354526abe0232eb8
    • Alex Converse's avatar
      ext_partition_types: Uncopy-paste update_ext_partition_context · ffabff35
      Alex Converse authored
      Change-Id: I8cd35f4697bc5ee90cfcb1fd37042770d6b5a544
    • Thomas Davies's avatar
      NEW_MULTISYMBOL: Code extra_bits using multi-symbols. · 9b8393fd
      Thomas Davies authored
      Code the extra_bits using up to 5 non-adaptive symbols,
      starting from the LSB. The number of skipped bits is
      truncated to fit into the multi-symbol groups.
      Change-Id: I147b5b0c3815bd39c338ee9a4779638ae75d7ab5
    • Steinar Midtskogen's avatar
      Let od_dering() handle 16 to 8 bit conversion · 302d2c18
      Steinar Midtskogen authored
      Change-Id: Ief5df3d5b1b81f09190d34022a3cb7d500992da2
    • Jingning Han's avatar
      Refactor read_partition() · 5fe79db3
      Jingning Han authored
      Replace multiple calls for partition_cdf with a unified variable
      in ec-multisymbol. This siliences a compiler warning in the
      Change-Id: I56b07579e89e8fba565c4960d081817c86bc0097
    • Jingning Han's avatar
      Explicitly use block size to determine partition info · cd95976b
      Jingning Han authored
      Replace the use of num_4x4_log2 with the actual block size as the
      condition to check if a block is partitionable. This avoids conflict
      issues when multiple experiments are turned on.
      Change-Id: I666d52458590a6f88c3995a140d20b0d66d27bfb
    • Fergus Simpson's avatar
      frame_superres: Add scale to uncompressed header · e7508413
      Fergus Simpson authored
      A bit and a three bit literal have been added to the uncompressed frame
      header for use by the frame superres experiment.
      The bit is true if scaling is to be used, and is immediately followed by
      a three bit literal that encodes the scale to use. If the first bit is
      false, scaling is disabled and the scale factor numerator is set to the
      denominator (ie. 1:1 scaling). No literal follows if scaling is
      The denominator has been defined as a constant 16. The literal is biased
      by a defined constant of 8 - allowing fractions from 1/2 to 15/16
      scaling in steps of 1/16 when scaling is used. Experimentation will be
      needed to discover which of these are useful.
      The bit and literal are immediately after the optional render_width and
      render_height, so that the superres parameters can be written and read
      just after the regular width and height, without interfering with the
      render_size parameters.
      This patch also adds an arbitrary write to make the scale 1:1, so as to
      not trigger any scaling until it's ready.
      Accompanying encode and decode helper functions are added.
      Change-Id: I8caa6247c73f5c7f84ef1fde1e80eb9b20bde0e3
  5. 27 Mar, 2017 9 commits
    • Jean-Marc Valin's avatar
      Don't run cdef when cm->mi_grid_visible[]==NULL · b37226e4
      Jean-Marc Valin authored
      Change-Id: Id2bcdad731c27a71cca29205d37c781a3f99bb3d
    • Jingning Han's avatar
      Fix compiler warnings in av1_loopfilter · afeb9219
      Jingning Han authored
      Change-Id: Ieec83d0b067ec36c35878aee02eeba436ede14a5
    • hui su's avatar
      rect-tx/ext-tx: fix an assertion fail · ff5e2098
      hui su authored
      Fix an assertion fail in rd_pick_intra_sub_8x8_y_subblock_mode().
      Change-Id: I22d4aaea0566336605230e09d9590bc235719685
    • Angie Chiang's avatar
      Add const to rate in cost_coeffs_b · 4d8b8f49
      Angie Chiang authored
      Change-Id: I9780e4e4f736b92b676f8a03a445a88749d4022e
    • Angie Chiang's avatar
      Use txb_entropy_ctx to store entropy ctx of lv_map · 74e2307b
      Angie Chiang authored
      1) Add txb_entropy_ctx into MACROBLOCK_PLANE and PICK_MODE_CONTEXT
      2) Add av1_get_txb_entropy_context() to compute the entropy context
      3) Compute and sore the entropy context before av1_xform_quant()
      Change-Id: Ia2170523af3163b9456f7c6a305c1e77ad2b23be
    • Angie Chiang's avatar
      Compute lv_map's coeff cost in av1_cost_coeffs() · 47e4b369
      Angie Chiang authored
      1) move the original implementation in av1_cost_coeffs() to
      cost_coeffs() and let av1_cost_coeffs become a switch for
      choosing original coeff cost or lv_map's coeff cost
      2) change get_txb_ctx's naming. Use plane_bsize instead of
      bsize to make the intention clear.
      3) remove txb context computing in get_txb_ctx
      Change-Id: I17e3d39d796e051d1c90f0a0c5d7d0888b9ca292
    • Debargha Mukherjee's avatar
      Adds binary code lib for coding various symbols · 47748b56
      Debargha Mukherjee authored
      Adds a variable length binary code library for
      coding various symbols for typical use in headers.
      The main codes implemented are:
      1. Coding a symbol from an n-ary alphabet using a
      quasi-uniform code.
      2. A bilevel code for coding symbols from an n-ary
      alphabet based on a reference value for the symbol
      also taken from the same alphabet.
      The code has two steps. If the symbol is close to
      the reference a shorter code is used, while if it is
      farther away a longer code is used.
      3. A finite (terminated) subexponential code that codes
      a symbol from an n-ary alphabet using subexp parameter k.
      4. A finite (terminated) subexponential code that codes
      a symbol from an n-ary alphabet using subexp parameter k,
      based on a given reference also taken from the same
      alphabet. This code essentially reorders the values
      before using the same code as 3.
      Also adds corresponding encoder side functions to count
      the number of bits used.
      These codes will be subsequently used for more efficient
      encoding of loop-restoration parameters and global motion
      Change-Id: I28c82b611925c1ab17f544c48c4b1287930764b7
    • Jean-Marc Valin's avatar
      CDEF: Fix allocation of row_dering · e84eaf03
      Jean-Marc Valin authored
      Change-Id: Ic4c4f0ff7cf4063e2a0366af05442858b4b7fcca
    • Yushin Cho's avatar
      Remove av1 coeff context setting when PVQ is used · 6341f5c5
      Yushin Cho authored
      Entropy context of above and left block is not used
      when PVQ is turned on.
      Change-Id: I50c908bba800382438a48f7cc83f8b0f177393a1