1. 27 Jul, 2017 1 commit
  2. 26 Jul, 2017 13 commits
    • Jingning Han's avatar
      Reduce best rdcost value in transform partition search · 16a9df75
      Jingning Han authored
      Adaptively reduce the best rate-distortion cost value in the
      recursive transform block partition search. For bus CIF at 1000 kbps
      this reduces the encoding time from 1864 seconds to 1756 seconds,
      about 6% speed up.
      
      Change-Id: I5433a1825c0f8b13fcc5ab7e19713a98969d53fc
      16a9df75
    • Yue Chen's avatar
      rect_tx_ext: work with var_tx · d6bdd46b
      Yue Chen authored
      Change-Id: Ie2c34490dc50cb242bcd701308e6b55243883b15
      d6bdd46b
    • Angie Chiang's avatar
      Add some todo for convolve_round exp · 748d570e
      Angie Chiang authored
      1) Integrate it with supertx
      2) Integrate it with chroma_sub8x8
      
      Change-Id: If4bb906d442d15bae3741192029ec851c48d3948
      748d570e
    • Luc Trudeau's avatar
      [CFL] UV_PREDICTION_MODE · d6d9eeeb
      Luc Trudeau authored
      A separate prediction mode struct is added to allow
      for uv-only modes (like CfL). Note: CfL will be
      added as a separate mode in an upcoming commit.
      
      Results on Subset1 (Compared to 4266a7ed with CfL enabled)
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0000 |  0.0000 |  0.0000 |   0.0000 | 0.0000 |  0.0000 |     0.0000
      
      Change-Id: Ie80711c641c97f745daac899eadce6201ed97fcc
      d6d9eeeb
    • Sarah Parker's avatar
      Add txfm functions corresponding to MRC_DCT · 5b8e6d2d
      Sarah Parker authored
      MRC_DCT uses a mask based on the prediction signal to modify the
      residual before applying DCT_DCT. This adds all necessary functions
      to perform this transform and makes the prediction signal available
      to the 32x32 txfm functions so the mask can be created. I am still
      experimenting with different types of mask generation functions and
      so this patch contains a placeholder. This patch has no impact on
      performance.
      
      Change-Id: Ie3772f528e82103187a85c91cf00bb291dba328a
      5b8e6d2d
    • Angie Chiang's avatar
      Integrate hbd convolve_round and compound_segment · 0c604285
      Angie Chiang authored
      When convolve_round is turned on, both lbd/hbd use use 32-bit buf
      Therefore, they use the same mask/blending functions
      
      Change-Id: Icfc6db818c0a53216108e42161acac07303e6c1c
      0c604285
    • Angie Chiang's avatar
      Use ADAPT_SCAN_PROB_PRECISION to init prob · 963b86d3
      Angie Chiang authored
      Change-Id: I94d66c65d78235e1025703caf79ccca43208d604
      963b86d3
    • hui su's avatar
      Palette: use CDF to encode palette size and color indices · 466ae062
      hui su authored
      Around 0.9% improvement on screen_content set (encoding 30 frames).
      
      Change-Id: Ic4c9333c9af5993bc41e513b9e766450b3a951eb
      466ae062
    • Yaowu Xu's avatar
      use frame_type for key frame check · 1b4ffc44
      Yaowu Xu authored
      Change-Id: I416a7f99e292a6304bc24d93ab580650768d5e21
      1b4ffc44
    • Jingning Han's avatar
      Optimize transform block rate-distortion search · 3bce7547
      Jingning Han authored
      The soft coefficient optimization process would monotonically
      increase the transform block distortion and decrease the
      coefficient rate cost. Such observation provides a lower bound
      on the rate-distortion cost for the given transform block. This
      commit compares this lower bound against the best available
      rate-distortion cost value and skips unnecessary optimization
      process. It speeds up the baseline encoding process by 15%.
      
      Change-Id: Ida8098a2820cef60d59ec1e72f0bbb1acbd98165
      3bce7547
    • Di Chen's avatar
      Disable extra altref and bwdref for still gf group · 53a04f66
      Di Chen authored
      Use three metrics to identify the still gf group.
      Performance:
      lowres: pamphlet_cif -1.395; bowing_cif -0.989;
              others remain same. Overall -0.064
      midres: snow_mnt_480p -0.827. others remain same.
              Overall -0.028
      
      Change-Id: I22a6429c7ebdad2c36ec73c7a69cabc07e8208b7
      53a04f66
    • David Barker's avatar
      Avoid reading uninitialized data in decodemv.c · 0d7c4b05
      David Barker authored
      The existing code has a case where we set a variable to equal
      xd->ref_mv_stack[mbmi->ref_frame[0]][1 + mbmi->ref_mv_idx]
      even for compound blocks. However, the range of allowable
      values for mbmi->ref_mv_idx is determined by the ref_mv_count
      for the *combined* ref frame, not for the first single ref frame.
      
      This means that, if we have more ref-mv candidates for the combined
      ref frame than for the first single ref frame, then we can sometimes
      fetch uninitialized data.
      In every case where this happens, we immediately overwrite
      the destination with the correct mv, but it is still preferable
      to avoid reading uninitialized data.
      
      This patch moves the code block to avoid this bug. In addition,
      the variable (nearmv[0]) is only used when the mode equals NEARMV,
      so the condition on its assignment is changed to reflect that.
      
      Change-Id: I3bd268dc80d8065d5189999232b8a0f826d40a95
      0d7c4b05
    • Monty Montgomery's avatar
      Add CONFIG_DAALA_DCT8 experiment. · cf18fe4e
      Monty Montgomery authored
      This experiment replaces the 8-point Type-II DCT and 8-point Type-IV DST
       scaling vp9 transforms with the 8-point orthonormal Daala transforms.
      These have reduced complexity and are perfect reconstruction at the cost
       of a slightly worse coding performance.
      This is because the Daala transforms expect the input to be shifted by 4
       bits but the output scale of the vp9 transforms is only 3 bits.
      
      subset-1:
      
      monty-square-baseline-subset1 ->
        monty-square-dct8-subset1@2017-07-17T21:37:44.281Z
      
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0019 | -0.0011 | -0.0585 |  -0.0111 | 0.0305 |  0.0317 |     0.0187
      
      objective-1-fast:
      
      monty-square-baseline-o1f ->
        monty-square-dct8-o1f@2017-07-17T21:37:15.735Z
      
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0285 |  0.0129 | -0.5080 |   0.0529 | 0.0345 |  0.0441 |     0.0054
      
      Change-Id: I2b775495398fb717204a295397c3c5e3ca938183
      cf18fe4e
  3. 25 Jul, 2017 5 commits
    • Yushin Cho's avatar
      Fix that matching { and } can be searched in inter mode decision · 67dda51a
      Yushin Cho authored
      Because #if ... #else ... put the '{' on the same line, dangling { or } occurs,
      which causes automatic syntax analyzer, such as 'Ctrl-Shifht-P' in Eclipse
      or '%' of vi, fail to find matching { and }.
      
      For some developers, this can make quick reading and/or understaning blocks of code
      almost impossible.
      
      Three function or blocks are repaird.
      1. av1_rd_pick_inter_mode_sb() {...}
      
      2. for (midx = 0; midx < MAX_MODES; ++midx) {...}
         in av1_rd_pick_inter_mode_sb()
      
      3. handle_inter_mode() {...}
      
      Change-Id: Ib5ac63b8c7f9870a491fac337ae3f58c57ce5e46
      67dda51a
    • Jingning Han's avatar
      Account for the 64x64 proc block constrain in obmc masking · 440d4254
      Jingning Han authored
      Make the codec account for the 64x64 processing unit constraint
      when producing the mask for overlapped filter.
      
      Change-Id: I3e596492ae522abe678369b0c9710441549e817e
      440d4254
    • Jingning Han's avatar
      Make maximum obmc process unit 64x64 · 501294ce
      Jingning Han authored
      For 128x128 level blocks, process the overlapped prediction in
      the unit of 64x64. This allows hardware design to reuse the 64x64
      processing unit in 128x128 level block coding.
      
      Change-Id: I3967b8e3c1c697f96a50e59a0957fc69b67e6f8e
      501294ce
    • Luc Trudeau's avatar
      [CFL] Average alpha CDF · 4266a7ed
      Luc Trudeau authored
      Change-Id: Id556e8d77c5871ddae338baa1abfb93b7aa207e9
      4266a7ed
    • Luc Trudeau's avatar
      [CFL] Fix warnings when chroma_sub8x8 is disabled · 96b31516
      Luc Trudeau authored
      This change does not alter the bitstream
      
      Resuls on Subset1 (compared to 70a80a81 with cfl)
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0000 |  0.0000 |  0.0000 |   0.0000 | 0.0000 |  0.0000 |     0.0000
      
      Change-Id: I7672eb4cde3c649ebba32610f7e56500e378c062
      96b31516
  4. 24 Jul, 2017 9 commits
    • Angie Chiang's avatar
      Let adapt_scan's prob precision be adjustable · 70a80a81
      Angie Chiang authored
      Change-Id: Ie1f5db74d3b22a46abd09e0207770935622074a5
      70a80a81
    • Angie Chiang's avatar
      Turn off adapt_scan for IDTX/1D txfms · d39f6b33
      Angie Chiang authored
      The performance stay the same compared to turn on adpat_scan for
      all txfms
      
      The  performance of adapt_scan on top of ext_tx are
      lowres: 0.517%
      midres: 0.484%
      hdres:  0.639%
      
      Change-Id: Ic148dbe9c0af4554bbbe3f7012625f389f997289
      d39f6b33
    • Angie Chiang's avatar
      Fix compiler error when lv_map adapt_scan both on · 57127c52
      Angie Chiang authored
      Change-Id: Ibd0bda593717aab2894c36dd59925a0bcf654113
      57127c52
    • Urvang Joshi's avatar
      filter-intra: Support rectangular blocks. · 6a99691d
      Urvang Joshi authored
      - Use 'tx_size' in function signatures.
      - filter_intra_taps_3 and filter_intra_taps_4 updated to support
        TX_SIZES_ALL (thanks to yuec@)
      
      With these changes, filter-intra works correctly with rect-intra-pred.
      So, we remove the temporary workaround for this.
      
      Change-Id: Ide0f593419c21a74c08c61859f8dad918ca169fa
      6a99691d
    • Tristan Matthews's avatar
      aomenc: assume IVF for .ivf output files unless --webm is given · ed858d63
      Tristan Matthews authored
      Change-Id: I894ab72f529a598ae4534e0bd982e08863d75fcb
      ed858d63
    • Urvang Joshi's avatar
      Workaround for filter-intra + rect-intra-pred mismatch. · d0b7cf94
      Urvang Joshi authored
      This workaround is temporary, until filter-intra can work with rectangular
      blocks.
      
      Tested OK:
      make clean; ../../configure --disable-install-docs --enable-unit-tests
      --enable-debug --enable-aom-highbitdepth --enable-experimental
      --enable-adapt-scan --enable-dual-filter --enable-ext-inter
      --enable-ext-intra --enable-ext-refs --enable-ext-tx
      --enable-filter-intra --enable-loop-restoration --enable-rect-tx
      --enable-compound-segment --enable-interintra --enable-wedge
      make -j
      ./test_libaom
      
      Change-Id: I4554d1f25de9448b22465e93a7616df0c206e298
      d0b7cf94
    • Thomas Davies's avatar
      NEW_MULTISYMBOL: adapt binary MV values. · 599395ee
      Thomas Davies authored
      Change-Id: I00f98e0e03a44aa894566b7a47bb0f32b56da766
      599395ee
    • Luc Trudeau's avatar
      [CFL] Fix rare overflow in distortion computation · 4c5df105
      Luc Trudeau authored
      Worst case SSE for a 12-bit 64x64 block requires 48 bits
      (2*(12+log(64)+log(64))). As such, the dist variable must
      be int64.
      
      Results on Subset1 (compared to 19b5c8fa with CfL enabled)
      
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0030 |  0.0001 |  0.0100 |   0.0026 | 0.0024 | -0.0008 |     0.0028
      
      Change-Id: I1364c089c223b96daed942175a915fed0f6f1023
      4c5df105
    • Todd Nguyen's avatar
      Add temporal filtering/interpolation to bgsprite · 8493f916
      Todd Nguyen authored
      - Modified temporal filter to take extra buffer parameter
      - Added bilinear interpolation, can be turned on by setting
      BGSPRITE_INTERPOLATION define to 1.
      - Added mean filter to bgsprite for blending modes
      - Bilinear interpolation is turned OFF by default
      - Mean filtering turned ON by default (was previously median filtering)
      - Allow for multiple references for alt_ref in encodeframe
      
      Change-Id: Icfe9054049339d353b4befff11e96c12ca73ed4e
      8493f916
  5. 23 Jul, 2017 1 commit
  6. 21 Jul, 2017 11 commits