1. 20 Mar, 2017 3 commits
    • 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
    • Alex Converse's avatar
      Port optimize_b cache optimizations to AV1. · c9d2fcc2
      Alex Converse authored
      Bring the following libvpx commits to aom:
      e446ffd Cache optimizations in optimize_b()
      50d3629 Repack vp9_token_state
      
      Saves 24600 bytes of stack in the default configuration.
      
      Change-Id: If9d6506cf3fe1c34ab639dedb3ef62a996293781
      c9d2fcc2
  2. 19 Mar, 2017 6 commits
  3. 18 Mar, 2017 1 commit
  4. 17 Mar, 2017 12 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
      Disable intrinsics unit tests if optimisations are disabled · c16e044c
      Steinar Midtskogen authored
      This fix was motivated by a code generation bug in g++ on arm, but it
      seems a good idea generally to disable these unit tests if we're not
      compiling with optimisations, since the code tested is only intended
      to be used as inlined functions, and while it's possible to compile
      without optimisations, the tests become somewhat half-hearted since
      there are workarounds when there's no inlining (such as for
      instrinsics requiring immediate values), so the tests would partly
      test code that wont be used anyway.
      
      BUG=aomedia:377
      
      Change-Id: I9a0515c96a7ed2f4636820dfc03fbb92323ca8ee
      c16e044c
    • Steinar Midtskogen's avatar
      Fix -fsanitize=integer warnings in v64_intrinsics_c.h · 95f1c2ab
      Steinar Midtskogen authored
      Change-Id: I8134c0ac4bd18478b266a0058e00bc6b1e6f8e9e
      95f1c2ab
    • Steinar Midtskogen's avatar
      Fix ubsan warnings · 6c795765
      Steinar Midtskogen authored
      BUG=aomedia:376
      
      Change-Id: Ief69f220ec5b6cf15443f872ad2f9a63336c185d
      6c795765
    • 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
    • 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
    • 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
    • Tom Finegan's avatar
      Add armv7s-ios cmake toolchain. · c45213ce
      Tom Finegan authored
      This is used at cmake generation time via a command line like this:
      $ cmake path/to/aom -DCMAKE_TOOLCHAIN_FILE=path/to/aom/build/cmake/toolchain/armv7-ios.cmake
      
      BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76
      
      Change-Id: Iadacc32c43bc23e0f670b88e3c1563c44319945c
      c45213ce
    • Tom Finegan's avatar
      Expand cmake assembler support. · 285dedba
      Tom Finegan authored
      - Stop acting as if Yasm is the only assembler.
      - Kill generation and report error when yasm is not found for x86
        and x86_64 (remove the generic fallback).
      - Use $AOM_AS_FLAGS to pass assembler specific flags.
      - Add include guard in aom_optimization.cmake.
      
      BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76
      
      Change-Id: Ic68d6c81071c24a8ceb6806d04ab8959be97d876
      285dedba
  5. 16 Mar, 2017 5 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
    • Rostislav Pehlivanov's avatar
      Implement twopass support for the xiphrc system · 74021a5a
      Rostislav Pehlivanov authored
      This commit implements support for twopass encoding using the xiphrc
      experimental rate control system. Most of the code and logic comes
      from the theora project encoder.
      
      Currently support is limited to the bitrate targeting mode of the
      rate control system and while it does visibly improve quality and does
      bring rate closer to the target than the one pass mode there's still
      tuning and bug fixing to be done.
      
      Change-Id: Iae0d65bbce5ddfbb95b436e2238a43d6100a23b3
      74021a5a
    • Angie Chiang's avatar
      Add frame level buffer to store txfm coeffs · f0fbf9d9
      Angie Chiang authored
      Doing tokenize in the last step of RD loop and then doing packing
      tokens in bitstream packing phase is hard for debugging.
      
      Therefore, we create a frame-level buffer to store the txfm coeffs
      from the reconstruction in RD loop and then in bitstream packing
      phase, we can code the txfm coeffs directly.
      
      Change-Id: I999470eef6e038317a91585df2bdfc20aca3573e
      f0fbf9d9
    • 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
  6. 15 Mar, 2017 10 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
    • Thomas Davies's avatar
      Remove decoder coefficient counts for NEW_TOKENSET + EC_ADAPT. · a134e2dc
      Thomas Davies authored
      These are no longer used in probability updates.
      
      Change-Id: Idf5037f769d43972434b5ecbff3550b3f97be21a
      a134e2dc
    • Sarah Parker's avatar
      Enable rect-tx by default · 81915f5d
      Sarah Parker authored
      Change-Id: I51f31083988d7d5c574067c1a3aa98b7949adcee
      81915f5d
    • 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
    • Fergus Simpson's avatar
      frame_superres: Add experimental flag · 6ee201db
      Fergus Simpson authored
      Frame Super-Resolution is an experiment currently under development.
      This commit just adds an experimental flag for it.
      
      The goal of the experiment is to compress a downsampled version of a
      frame instead of the full resolution one when bandwidth is limited. The
      decoder will need to upsample and filter the frame it recieves after
      decoding. It is thought that this will result in a visually superior
      result in low bandwidth scenarios.
      
      Change-Id: Ia8af8692cffd133db3838693fd85ded2442b078c
      6ee201db
    • 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
      NEW_TOKENSET: improve RDO. · 10525758
      Thomas Davies authored
      Modify av1_coef_cost to reflect that EOB values are sent
      with each non-zero coefficient, and modify chroma weight
      to preserve original chroma balance.
      
      AWCY, objective-1-fast, new_token+ec_adapt vs ec_multisymbol:
      
      PSNR YCbCr:     -0.43%      -0.52%      -0.58%
      PSNRHVS:        -0.81%
      SSIM:           -0.73%
      MSSSIM:         -0.93%
      CIEDE2000:      -0.36%
      
      This change:
      
      PSNR YCbCr:     -0.15%      0.83%      0.77%
      PSNRHVS:        -0.24%
      SSIM:           -0.23%
      MSSSIM:         -0.24%
      CIEDE2000:       0.24%
      
      Change-Id: I7f2dd9f3cd24bb64eb4131cba94dda466b9691b0
      10525758
    • 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
  7. 14 Mar, 2017 3 commits