1. 09 Jan, 2017 15 commits
  2. 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
  3. 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
    • 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
    • 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
    • Debargha Mukherjee's avatar
      A mismatch fix in loop restoration · 09ad6d85
      Debargha Mukherjee authored
      Change-Id: Icfc4645ff97d4fd6849f149f4c5296a53c204cf4
    • Steinar Midtskogen's avatar
      Fix typos in comments · 83307f33
      Steinar Midtskogen authored
      Change-Id: Id70b49e2a77c6837da75c684d622ddfe60f3d97e
    • 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
    • Steinar Midtskogen's avatar
      Add framework for testing intrinsics · fb1425fa
      Steinar Midtskogen authored
      Change-Id: I8eff699c037ad99e380ffe82809eb4c8cb4807af
    • Angie Chiang's avatar
      Remove ext_interp experiment flag · 61444274
      Angie Chiang authored
      Change-Id: I8dcf7b4284da391c63ae5afc4b7637394b862cd8
    • Angie Chiang's avatar
      Merge ext_interp and dual_filter · 1733f6b7
      Angie Chiang authored
      Change-Id: I0ebd6951d2b42869ae872b33f63a07db03e99c62
  4. 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
    • 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
      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
    • 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
    • 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
    • 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
    • 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
  5. 05 Jan, 2017 9 commits
    • Nathan E. Egge's avatar
      Use aom_reader / aom_writer API to code lsb. · 8fcfcc57
      Nathan E. Egge authored
      The functions generic_encode() and generic_decode() code the lsb values
       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: I83546e2d4b73c28a7f269ddc850742df53d227ce
    • Nathan E. Egge's avatar
      Delete unused laplace decoder functions. · d998a007
      Nathan E. Egge authored
      Delete the unused od_laplace_decode(), od_laplace_decode_vector(), and
       laplace_decode_vector_delta() functions.
      Change-Id: Iec581e8cdb0bc9cac9199c09486891500c707c03
    • Nathan E. Egge's avatar
      Use aom_reader with od_decode_band_pvq_splits(). · 5c7acc9e
      Nathan E. Egge authored
      Change the od_decode_band_pvq_splits() and od_decode_pvq_split()
       functions to take an aom_reader struct instead of an od_ec_dec struct.
      Rename od_decode_band_pvq_splits() to aom_decode_band_pvq_splits() and
       od_decode_pvq_split() to aom_decode_pvq_split().
      Change-Id: I5979b32977377e1541c609a13242852e5cfab233
    • Nathan E. Egge's avatar
      Use aom_reader with od_decode_pvq_codeword(). · 0bccd5dc
      Nathan E. Egge authored
      Change the od_decode_pvq_codeword() function to take an aom_reader
       struct instead of an od_ec_dec struct.
      Rename od_decode_pvq_codeword() to aom_decode_pvq_codeword().
      Change-Id: I9fc2dda28a6169cb04410e822070991f3bcbc25a
    • Nathan E. Egge's avatar
      Use aom_reader with generic_decode(). · 89f5876f
      Nathan E. Egge authored
      Change the generic_decode() function to take an aom_reader struct
       instead of an od_ec_dec struct.
      Change-Id: Ifa19ab1dbdd9fa1af19e6740839708b27ab4a44b
    • Nathan E. Egge's avatar
      Use aom_reader with pvq_decode_partition(). · e1308619
      Nathan E. Egge authored
      Change the pvq_decode_partition() function to take an aom_reader struct
       instead of an od_ec_dec struct.
      Change-Id: I7247aaa0be3eedd336371ba677dc2d9f16f27d20
    • Nathan E. Egge's avatar
      Replace od_ec_dec with aom_reader in daala_dec_ctx. · ab08397c
      Nathan E. Egge authored
      Use the generic AOM entropy decoder in the daala_dec_ctx struct.
      This is done in preparation for migrating other entropy coder calls to
       use the more generic entropy coding API.
      Change-Id: I473a278174195401bcf35730fb5db7eb368b097a
    • Nathan E. Egge's avatar
      Use aom_write_bit() instead of od_ec_enc_bits(). · e335fb7b
      Nathan E. Egge authored
      Change-Id: Ied21efe93b2508e052087d84deebaf46c61e9c3d
    • Nathan E. Egge's avatar
      Use aom_writer with od_encode_band_pvq_splits(). · 9e96f79a
      Nathan E. Egge authored
      Change the od_encode_band_pvq_splits() and od_encode_pvq_split()
       functions to take an aom_writer struct instead of an od_ec_enc struct.
      Rename od_encode_band_pvq_splits() to aom_encode_band_pvq_splits() and
       od_encode_pvq_split() to aom_encode_pvq_split().
      Change-Id: I72e6684e032f4c8f9f9133c6102f870830001712