1. 05 Oct, 2016 3 commits
  2. 04 Oct, 2016 5 commits
    • Thomas's avatar
      Add EC_ADAPT experiment for symbol-adaptive entropy coding. · b0112dfd
      Thomas authored
      This experiment performs symbol-by-symbol statistics
      adaptation for non-binary symbols. It requires DAALA_EC or
      RANS and ANS to be enabled. The adaptation is currently
      based on a simple recursive filter and is taken from
      Daala. It has an adaptation rate dependent on alphabet size,
      taken from Daala. It applies wherever non-binary symbols
      are encoded using Cumulative Probability Functions rather
      than trees.
      Where symbols are adapted, forward updates in the compressed
      header are removed.
      In the case of RANS coefficient token values are adapted,
      with the exception of the zero token which remains a
      binary symbol. In the case of DAALA_EC other values
      such as inter and intra modes are adapted as CDFs are
      provided in those cases.
      The experiment is configured with:
      ./configure --enable-experimental --enable-daala-ec --enable-ec-adapt
      ./configure --enable-experimental --enable-ans --enable-rans \
      EC_ADAPT is not currently compatible with tiles.
      BDR results on Objective-1-fast give a small loss:
      PSNR YCbCr:      0.51%      0.49%      0.48%
      PSNRHVS:      0.50%
      SSIM:      0.50%
      MSSSIM:      0.51%
      CIEDE2000:      0.50%
      Change-Id: I3888718e42616f3fd87144de7f125228446ac984
    • Steinar Midtskogen's avatar
      Move CLPF block signals from frame to SB level. · 85437b21
      Steinar Midtskogen authored
      These signals were in the uncompressed frame header (as a temporary
      hack), which caused two problems:
      * We don't want that header to be duplicated in the slice header
      * It was necessary to signal the number of bits to transmit up front
      However, the filter size can be 128x128 which is greater than the SB
      size, and a decoder wouldn't be able to know whether to read a bit or
      not until the final SB of that 128x128 block has been decoded
      (depending on whether the 128x128 is all skip or not).  Therefore the
      signalling was changed for 128x128 blocks so that every top left SB of
      a 128x128 filter block contains a signal regardless of whether the
      block is all skip or not.  Also, all the MB's of 128x128 block are
      filtered even if they are skip MB's.  This gives the signal a purpose
      even when the 128x128 block is all skip, and it also gives a slight
      coding gain as it leaves a way to filter skip blocks, which was
      previously forbidden.
      Low latency:
      PSNR YCbCr:     -0.19%     -0.14%     -0.06%
         PSNRHVS:     -0.15%
            SSIM:     -0.13%
          MSSSIM:     -0.15%
       CIEDE2000:     -0.19%
      High latency:
      PSNR YCbCr:     -0.03%     -0.01%     -0.09%
         PSNRHVS:      0.04%
            SSIM:      0.00%
          MSSSIM:      0.02%
       CIEDE2000:     -0.02%
      Change-Id: I69ba7144d07d388b4f0968f6a53558f480979171
    • Steinar Midtskogen's avatar
      On x86 use _mm_set_epi32 when _mm_cvtsi64_si128 isn't available · f041c0ff
      Steinar Midtskogen authored
      Change-Id: Ibdbd720d4f68892da6164a9849e212e759305005
    • James Zern's avatar
      configure: remove old visual studio support (<2010) · c834d019
      James Zern authored
      Change-Id: If08ce6ca352f377ac4db6b9b1909b507bba6d872
      (cherry picked from commit 078dff72ca7bff079cb3c56d98c588c6ea6d2814)
      (cherry picked from commit 046226376533b610ddc700f14409f195aa6abd51)
    • Yaowu Xu's avatar
      remove visual studio < 2010 workarounds · 3c631f9c
      Yaowu Xu authored
      Change-Id: Iafd05637eb65f4da54a9c857e79204a77646858a
      (cherry picked from commit c125f4a594815ad63b50e4b684ada4b44c545932)
  3. 03 Oct, 2016 3 commits
    • hui su's avatar
      cosmetic: add matching brackets · 7f060fb1
      hui su authored
      Change-Id: Iccb75d5204f0f52f2c7d6e18d1f8223ce10f68ba
    • James Zern's avatar
      tests: remove redundant round() definition · 52b806b9
      James Zern authored
      use aom_ports/msvc.h for compatibility
      Change-Id: I9433d8586cd0b790e7f4d697304298feafe801f1
      (cherry picked from commit 0a64929f19cc1ce89f993aa5c9d61a29679eb961)
    • Yaowu Xu's avatar
      apply clang-format · 2b3baa80
      Yaowu Xu authored
      Change-Id: I30039510a1b19075269e80893af36e880b1f5212
  4. 30 Sep, 2016 15 commits
  5. 29 Sep, 2016 8 commits
  6. 28 Sep, 2016 6 commits
    • Guillaume Martres's avatar
      Remove no longer necessary intra block reencode · a94997aa
      Guillaume Martres authored
      Now that `rd_variance_adjustment` has been removed, we can remove this
      reencode without affecting anything.
      Change-Id: Id2e055fe2f00bd5c1e59daa44fce4c264b730116
    • Guillaume Martres's avatar
      Remove rd_variance_adjustment · b6425127
      Guillaume Martres authored
      This function is called after `super_block_yrd` and assumes that the dst
      buffer is correct but that is no longer always the case after
      daf841b4 since we don't call
      `txfm_rd_in_plane` after the RDO loop in `choose_tx_size_from_rd`.
      We could fix this by always saving and restoring the dst buffer but
      removing `rd_variance_adjustment` is a better solution:
      - Getting the dst buffer always right is tricky as demonstrated by the
        fact that it is wrong now, even if we fix it now we could break it later
        and not notice
      - Perceptual weighting is a good idea but `rd_variance_adjustment` is the
        wrong approach as it weights both the rate and the distortion:
        to get meaningful units you should only weight the distortion,
        weighting rate means that we pretend some bits cost less than other
        bits, this is not the case. The distortion weighting approach is
        implemented by Daala in `od_compute_dist` and we plan to experiment
        with this in AV1 too.
      - Removing `rd_variance_adjustment` improves coding efficiency on all
        metrics, here are the results for objective-1-fast using the Low
        Latency settings:
            PSNR Y:     -0.14%
           PSNRHVS:     -0.17%
              SSIM:     -0.12%
            MSSSIM:     -0.12%
         CIEDE2000:     -0.07%
      Change-Id: I74b26b568ee65f56521646b8f30dd53bcd29fce3
    • Steinar Midtskogen's avatar
      Improve v128 and v64 8 bit shifts for x86 · 6a9922c0
      Steinar Midtskogen authored
      Change-Id: I25dc61bab46895d425ce49f89fceb164bee36906
    • Yaowu Xu's avatar
      misc-fix: make render_size referencable · 013212c9
      Yaowu Xu authored
      This commit merges the fix of making render size referencable in
      Related tracking issue:
      Original libvpx commit:
      Change-Id: I24f1d2f019ad41985905608e2847b06221c19338
    • Yaowu Xu's avatar
      misc-fix: colorspace/profile bits for intra-only · a20943c5
      Yaowu Xu authored
      This commit merges the fix of adding colorspace and profile related
      bits in intra-only frames.
      Related tracking issue:
      Original libvpx commit:
      Change-Id: I9c4fc4efcb5ebdecd6bb15e804dbcc7cc1dfbe58
    • Yaowu Xu's avatar
      misc-fixes: correct motion vector clamping · 27c67ac0
      Yaowu Xu authored
      This commit merges the fix of motion vector clamping correction.
      Related tracking issue:
      Original libvpx commit:
      Change-Id: If3bc4ddccd5d25d8cc40d273cf0ab14aeefbcfe3