1. 05 Apr, 2017 2 commits
  2. 04 Apr, 2017 1 commit
  3. 03 Apr, 2017 2 commits
  4. 31 Mar, 2017 1 commit
    • 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
      404b2e87
  5. 29 Mar, 2017 1 commit
    • Debargha Mukherjee's avatar
      Improves/refactors rd costing for global motion · 265db6d0
      Debargha Mukherjee authored
      Improves and simplifies costing for global motion to use the
      actual bits used to communicate the global motion parameters.
      Removes some of the old hacks.
      This patch also includes necessary refactoring to incorporate
      reference based coding of the motion parameters to follow.
      
      lowres results: -1.489% (up from -1.333%)
      
      Change-Id: I994dc97046011de4261633ccb0c9d71e374f2c5a
      265db6d0
  6. 28 Mar, 2017 2 commits
    • 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
      9b8393fd
    • 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
      disabled.
      
      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
      e7508413
  7. 27 Mar, 2017 2 commits
    • 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
      parameters.
      
      Change-Id: I28c82b611925c1ab17f544c48c4b1287930764b7
      47748b56
    • Alex Converse's avatar
      deltaq: Use block size / mask macros · 68abef8c
      Alex Converse authored
      Fixes unit tests with ext-partition
      
      Change-Id: I17184c7321e27763eea5434f0d4425d928c0abcc
      68abef8c
  8. 25 Mar, 2017 1 commit
    • Jingning Han's avatar
      Fix tree to cdf index mapping · 8e67c05f
      Jingning Han authored
      This fixes the mis-aligned cdf model derived from tree based
      model. It resolves the compression performance regression in
      dual filter, intra mode, inter mode, and transform block type
      coding, when ec-multisymbol is enabled by default.
      
      With dual filter enabled, the performance regression was 3.6%
      loss for lowres. This fix brings the performance gains back to 1%
      gains.
      
      Change-Id: I80f5485386045908c152c9c11eeacbc650f1e324
      8e67c05f
  9. 24 Mar, 2017 3 commits
  10. 23 Mar, 2017 2 commits
    • David Barker's avatar
      Re-enable av1_nmv_ctx() when ext-inter is enabled · 9620bcd5
      David Barker authored
      Currently, mbmi->ref_mv_idx can be set to a nonzero value
      on the encoder side if mbmi->mode is one of NEARMV, NEWMV,
      NEAR_NEARMV, or NEW_NEWMV. But it can only be nonzero on the
      decoder side if the mode is NEARMV or NEWMV. Hence av1_nmv_ctx
      has previously been disabled when ext-inter is enabled, to
      prevent a mismatch due to this.
      
      This patch changes the encoder behaviour to match the decoder
      behaviour.
      
      Change-Id: Icfe41fb72e76731ae373fe8c6065f5e003f6414f
      9620bcd5
    • Jean-Marc Valin's avatar
      Do real chroma RDO search for CDEF · e9f77424
      Jean-Marc Valin authored
      Chroma now has a list of strenghts too, with the superblock signalling
      shared between luma and chroma.
      
      low-latency, cpu=4:
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      -0.0114 | -1.4626 | -1.4745 |  -0.0423 | 0.0430 | -0.0001 |    -0.7416
      
      Change-Id: I389c77f1d80020f810e45f8502c656ad9d397c8c
      e9f77424
  11. 22 Mar, 2017 3 commits
    • Jean-Marc Valin's avatar
      Jointly optimizing deringing and clpf · 5f5c132f
      Jean-Marc Valin authored
      We now signal joint strengths and use a greedy algorithm for the search.
      
      low-latency, cpu-used=4:
      
      ll4-cdef@2017-03-22T03:42:10.815Z -> ll4-cdef-newsearch-var-header-newlambda-refine4@2017-03-22T15:56:46.471Z
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0792 |  0.3551 |  0.4393 |  -0.0108 | -0.1338 | -0.0141 |     0.1452
      
      Change-Id: I619ae1c7c7d7ec04fe993cabc5773b07c3f5b201
      5f5c132f
    • Angie Chiang's avatar
      Add forward probability update for lv_map · 800df032
      Angie Chiang authored
      The feature is implemented in the following two functions.
      av1_write_txb_probs
      av1_read_txb_probs
      
      Change-Id: I0b646e17ec54d7a10a77a6853439217091455af1
      800df032
    • Arild Fuldseth (arilfuld)'s avatar
      Disallow cm->delta_q_present_flag=1 when cm->base_qindex=0. · 54de7d60
      Arild Fuldseth (arilfuld) authored
      Delta quant doesn't make sense if the intent is to encode
      the frame in lossless mode.
      
      BUG=aomedia:393
      
      Change-Id: Ic26e30267dd3a061d7ee5e980b6950366f06b32f
      54de7d60
  12. 21 Mar, 2017 1 commit
    • Thomas Davies's avatar
      Align EXT_TX with EC_MULTISYMBOL and EC_ADAPT. · b1bedf5f
      Thomas Davies authored
      Do multisymbol coding for transform type.
      Load default cdf probabilities directly.
      Use CDF frame update mechanism when EC_ADAPT is
      enabled.
      
      Change-Id: Id23c927e81587b560e9df8b9bc56c0e2e3bb6f03
      b1bedf5f
  13. 20 Mar, 2017 3 commits
    • 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
    • Angie Chiang's avatar
      Turn off token related check for lv_map experiment · 1dca126c
      Angie Chiang authored
      lv_map is not using token list anymore
      
      Change-Id: Ief4f743975815c889d83703cc42b019fce517a69
      1dca126c
    • 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
  14. 17 Mar, 2017 4 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
    • Angie Chiang's avatar
      Add av1_write_coeffs_mb · c8af6112
      Angie Chiang authored
      This function go through each transform block in the
      prediction block and call av1_write_coeffs_txb to
      pack coefficients into the bitstream
      
      Change-Id: I6dedebef6cf8957f9173241a7de60e9936bc0be8
      c8af6112
  15. 16 Mar, 2017 2 commits
  16. 15 Mar, 2017 4 commits
    • 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
    • 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
  17. 13 Mar, 2017 2 commits
  18. 10 Mar, 2017 1 commit
    • Luc Trudeau's avatar
      Uniform way of accessing mbmi in write_tokens_b · 3e32f1ab
      Luc Trudeau authored
      Cosmetic change that moves the declaration of mbmi at the beginning of
      the function. This simplifies access and removes the need for
      (void)mbmi.
      
      Change-Id: Id0f7e1113696200ae6fb98bcc639d1cbdba05a9e
      3e32f1ab
  19. 09 Mar, 2017 3 commits