1. 10 Jan, 2017 7 commits
    • Sarah Parker's avatar
      Refactor compound_segment to try different segmentation masks · b9f757c7
      Sarah Parker authored
      Change-Id: I7c992c9aae895aebcfb5c147cb179cf665c0ac10
      b9f757c7
    • 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
      ab44fd14
    • Yushin Cho's avatar
      Correct the misleading codes in encode_inter_mb_segment() · ee0af212
      Yushin Cho authored
      In encode_inter_mb_segment(), when BLOCK_8X4 or BLOCK_4X8 is
      passed, the nested loop inside it iterates always twice.
      (For BLOCK_4X4, loop iterates only once because encode_inter_mb_segment()
      is called for each of 4X4 block.)
      Then, the k for 1st iteration is always zero, and the k for 2nd
      iteration is always (idy * 2 + idx) with either idy == 1 or idx == 1
      depending on the sb_type.
      
      Using "+=" there could mislead readers expecting that
      the # of iterations is more.
      And probably using simple assignment would be more proper here.
      
      Change-Id: I7a11255eca13403bc090ba4f0cd4785db9f0e541
      ee0af212
    • Yushin Cho's avatar
      Fix wrong stride of dst buffer in intra4x4 · 1a2df5e2
      Yushin Cho authored
      Change-Id: Icbd238c73323d11d60ca4da755b52c83cb11b8b5
      1a2df5e2
    • Nathan E. Egge's avatar
      Use aom_reader with od_decode_cdf_adapt(). · f25bae44
      Nathan E. Egge authored
      Change the od_decode_cdf_adapt() function to take an aom_reader
       struct instead of an od_ec_dec struct.
      Rename od_decode_cdf_adapt() to aom_decode_cdf_adapt().
      
      Change-Id: I0713d2f56acfea3f67f1b4087c0feee77c2e25cb
      f25bae44
    • Nathan E. Egge's avatar
      Use aom_reader with laplace_decode_special(). · b97f1c47
      Nathan E. Egge authored
      Change the laplace_decode_special() function to take an aom_reader
       struct instead of an od_ec_dec struct.
      Rename laplace_decode_special() to aom_laplace_decode_special().
      
      Change-Id: I137ae9a4df3fb0fd0b54dea09f787f70a7d287f5
      b97f1c47
    • Nathan E. Egge's avatar
      Replace OD_ACC_STR with __func__. · 984b2327
      Nathan E. Egge authored
      Replace the passed in bit accounting string from OD_ACCOUNTING with the
       current function name as ACCT_STR in preparation for the migration to
       CONFIG_ACCOUNTING.
      
      Change-Id: Ib9946232b37cacfd88f6ff914b99e91c3d7b650e
      984b2327
  2. 09 Jan, 2017 17 commits
  3. 08 Jan, 2017 1 commit
    • Yushin Cho's avatar
      Rename the function rd_pick_best_sub8x8_mode() · 482016d0
      Yushin Cho authored
      This large function is solely used for the RDO search for
      inter prediction mode. It would be helpful for readers if its name
      tells that whole function is used for inter mode decision only.
      
      Change-Id: Ida366b142b7129bf89498227d186c54341c3af5e
      482016d0
  4. 07 Jan, 2017 9 commits
    • David Barker's avatar
      Fix new warp filter in the case wmmat[2] == 0 · fa19516f
      David Barker authored
      In this case, calculating the shear parameters fails
      with a divide-by-zero error. So disable the new filter
      in this case.
      
      We also temporarily remove the asserts blocking use
      of the old filter with debugging enabled.
      
      Change-Id: I788ff51c3bc1d841eab1099881cc3b55038ae342
      fa19516f
    • David Barker's avatar
      Optimize Wiener filter selection · 33f3bfde
      David Barker authored
      * Change the behaviour of search_wiener at borders to match
        the behaviour of the Wiener filter itself
      * Reorder the calculation in compute_stats, saving ~5% of
        encode time at low bitrates (tested on bus_cif.y4m at 200kbps)
      
      Change-Id: I5f649d77fd66584451aaf37697ce9c9af69524e4
      33f3bfde
    • David Barker's avatar
      Various loop-restoration optimizations · 6928a5d2
      David Barker authored
      * Optimize the self-guided and domaintxfmrf filters
      * Save 576KiB of buffers in the encoder and decoder
      * Disable self-guided filter for videos whose width or
        height is < 5, in order to help simplify the filter.
      
      This results in an overall 30-40% improvement in decoder
      speed with loop-restoration enabled (depending on source
      and bitate), with no effect on video quality, *except* for
      videos with width or height < 5 pixels.
      
      Change-Id: Ide9181118ec3a63a0335338f316505b08df2d831
      6928a5d2
    • Debargha Mukherjee's avatar
      A mismatch fix in loop restoration · 09ad6d85
      Debargha Mukherjee authored
      Change-Id: Icfc4645ff97d4fd6849f149f4c5296a53c204cf4
      09ad6d85
    • Steinar Midtskogen's avatar
      Fix typos in comments · 83307f33
      Steinar Midtskogen authored
      Change-Id: Id70b49e2a77c6837da75c684d622ddfe60f3d97e
      83307f33
    • Steinar Midtskogen's avatar
      Disable unsupported SIMD optimisations for CLPF for 32 bit VS targets · d954f2d7
      Steinar Midtskogen authored
      VS compiling for 32 bit targets does not support vector types in
      structs as arguments, which makes the v256 type of the intrinsics hard
      to support, so optimizations for this target are disabled.
      
      Change-Id: I675394cf1aed0cb18a48f21216470867031b30ce
      d954f2d7
    • Steinar Midtskogen's avatar
      Add framework for testing intrinsics · fb1425fa
      Steinar Midtskogen authored
      Change-Id: I8eff699c037ad99e380ffe82809eb4c8cb4807af
      fb1425fa
    • Angie Chiang's avatar
      Remove ext_interp experiment flag · 61444274
      Angie Chiang authored
      Change-Id: I8dcf7b4284da391c63ae5afc4b7637394b862cd8
      61444274
    • Angie Chiang's avatar
      Merge ext_interp and dual_filter · 1733f6b7
      Angie Chiang authored
      Change-Id: I0ebd6951d2b42869ae872b33f63a07db03e99c62
      1733f6b7
  5. 06 Jan, 2017 6 commits
    • Jingning Han's avatar
      Fix frame header tx_size syntax setting · 4be1a4d4
      Jingning Han authored
      Fix an intricacy due to interactions between cb4x4 and var-tx that
      sets frame header away from tx_mode_select. This resolves a rare
      enc/dec mismatch issue.
      
      Change-Id: I6981f21f7e6f04f2a47ef32f744f83a8fd34355b
      4be1a4d4
    • Nathan E. Egge's avatar
      Fix --enable-accounting with --enable-pvq. · 8324fa85
      Nathan E. Egge authored
      The bit accounting was broken when refactor portions of PVQ to use the
       aom_reader / aom_writer API because the daala_ec calls were using
       OD_ACCOUNTING instead of CONFIG_ACCOUNTING.
      This fixes them so that bit accounting will still work with pvq while
       the full port to --enable-accounting is in review.
      
      Change-Id: I99e6b6debc716f1a6780116d5602085f7a2bb827
      8324fa85
    • Jingning Han's avatar
      Rework the txfm partition context to support cb4x4 mode · 581d1697
      Jingning Han authored
      This commit reworks the transform block partition context update
      to support cb4x4 mode in the recursive transform block partition.
      It resolves the remaining enc/dec mismatch issue when both cb4x4
      and var-tx are turned on.
      
      Change-Id: I850d121204fe4c68e81488f1d2848c570d9d08b9
      581d1697
    • Jingning Han's avatar
      Fix av1_iht8x4_32_add_sse2() implementation · 030f651f
      Jingning Han authored
      Fix the 8x4 inverse transform for ADST row process.
      
      Change-Id: Iceff4ab356a51218a952b53b1134606548832eac
      030f651f
    • Jingning Han's avatar
      Refactor var-tx pipeline to support cb4x4 mode · 9ca05b7e
      Jingning Han authored
      Replace hard coded 4x4 transform block step size assumption with
      scalable table access.
      
      Change-Id: Ib1cc555c2641e5634acdd91ca33217f00aeb0b89
      9ca05b7e
    • Debargha Mukherjee's avatar
      Add UV wiener loop restoration · a43a2d98
      Debargha Mukherjee authored
      Enables Wiener based loop restoration only for the UV
      frames. The selfguided and domaintranform filters do not
      work very well for UV components, hence they are disabled.
      For each UV frame a single set of wiener parameters are
      sent. They are applied tile-wise, but all tiles use the
      same parameters.
      
      BDRATE (Global PSNR) results:
      -----------------------------
      lowres: -1.266% (up from -0.666%, good improvement)
      midres: -1.815% (up from -1.792%, tiny improvement)
      
      Tiling on UV components will be explored subsequently.
      
      Change-Id: Ib5be93121c4e88e05edf3c36c46488df3cfcd1e2
      a43a2d98