1. 29 Jun, 2017 1 commit
  2. 27 Jun, 2017 1 commit
    • Yi Luo's avatar
      Fix inv txfm low/high bitdepth selection logic · 51281095
      Yi Luo authored
      We are going to have several commits to setup new low/high
      bitdepth data path selection logic. This patch is for inverse
      transform. Let me summarize the ideas as following.
      
      - For low/high bitdepth selection, encoder depends on
        input configuration, e.g., video sequence bitdepth,
        profile. Decoder depends on input bitstream. This has
        nothing to do with compiler/build  configuration.
      
      - Typical encoder usage for sampling format 4:2:0.
        1) 8-bit video sequence:
         a) --profile=0
         Fastest encoding/decoding pipeline on speedup.
      
         b) --profile=2 --bit-depth=10
         Image pixels are left shifted by 2 bits. It
         employs 16-bit reference frame buffer and has high
         calculation precision. It usually enjoys higher
         compression performance.
      
        2) 10/12-bit video sequence (HDR):
         --profile=2 --bit-depth=10/12
      
      - Transform coefficient type:
        Lowbitdepth:  int16_t
        Highbitdepth: int32_t
      
      - The type, tran_low_t is still used in codebase,
        Which is int32_t, defining the data path capacity.
        Naturally, it is high bitdepth.
      
      Eventually we shall remove the configuration flags,
      CONFIG_HIGHBITDEPTH/CONFIG_LOWBITDEPTH, and seperate
      low and high bitdepth data path. Two data paths co-exist
      in the same build environment.
      
      Change-Id: I35c06d4d4f19ebf80d909168fdddbae57c3cc884
      51281095
  3. 26 Jun, 2017 1 commit
    • Lester Lu's avatar
      New experiment: LGT · ad8290b8
      Lester Lu authored
      In previous ADSTs, DST-7 and DST-4 are used for length 4 and length
      8/16/32, respectively. In this LGT experiment we explore transforms
      between DST-4 and DST-7. When CONFIG_LGT flag is on, adst4 and adst8
      are replaced by lgt4 and lgt8, the intermediate transforms with
      pre-chosen parameters.
      
      The LGTs applied here are lgt4_160 and lgt8_170, where the numbers
      mean the self-loop weights times 100. The associated values for DST-7
      and DST-4 are 100 and 200.
      
      ovr_psnr:
      lowres: -0.140
      midres: -0.131
      hdres: -0.078
      
      These changes are not applied to the highbd scenario in the
      current version.
      
      Change-Id: I20600456da8766528b2b6b11aa28801e70af498e
      ad8290b8
  4. 12 Jun, 2017 1 commit
    • Sarah Parker's avatar
      Clean up hbd transform code · 30dfa883
      Sarah Parker authored
      Responding to some left over cosmetic comments from
      2b5cdb1cf87c933331a16cc0221455d0a8c255e1
      
      Change-Id: I42e126593526cedd6675adf35b9c1df78e1ddf54
      30dfa883
  5. 08 Jun, 2017 1 commit
    • Sarah Parker's avatar
      Remove deprecated high-bitdepth functions · 31c66502
      Sarah Parker authored
      This unifies the codepath for high-bitdepth transforms and deletes
      all calls to the old deprecated versions. This required reworking
      the way 1d configurations are combined in order to support rectangular
      transforms.
      
      There is one remaining codepath that calls the deprecated 4x4 hbd
      transform from encoder/encodemb.c. I need to take a closer look
      at what is happening there and will leave that for a followup
      since this change has already gotten so large.
      
      lowres 10 bit: -0.035%
      lowres 12 bit: 0.021%
      
      BUG=aomedia:524
      
      Change-Id: I34cdeaed2461ed7942364147cef10d7d21e3779c
      31c66502
  6. 01 Jun, 2017 1 commit
    • Timothy B. Terriberry's avatar
      cb4x4: Move sub-4X4 TX sizes behind CONFIG_CHROMA_2X2. · fe67ed6a
      Timothy B. Terriberry authored
      cb4x4 itself should not require these sizes.
      
      This simplifies compatibility with other experiments, since we can
      first make them work with cb4x4 (which is now on by default), and
      then worry about chroma_2x2 (which is not) in separate steps.
      
      Encoder and decoder output should remain unchanged.
      
      Change-Id: I4e9fcdae49f238b5099a3c74a398fe993c2545f8
      fe67ed6a
  7. 20 May, 2017 1 commit
    • hui su's avatar
      DPCM intra coding experiment · b8a6fd6b
      hui su authored
      Encode a block line by line, horizontally or vertically. In the vertical
      mode, each row is predicted by the reconsturcted row above;
      in the horizontal mode, each column is predicted by the reconstructed
      column to the left.
      
      The DPCM modes are enabled automatically for blocks with horizontal or
      vertical prediction mode, and 1D transform types (ext-tx).
      
      Change-Id: I133ab6b537fa24a6e314ee1ef1d2fe9bd9d56c13
      b8a6fd6b
  8. 19 May, 2017 3 commits
    • Jonathan Matthews's avatar
      Fix highbd DCT and ADST data overwriting issue · 362d0c7b
      Jonathan Matthews authored
      Exposed by Change-Id: I048c6e9cc790520247cc21ae9b92a9c8d84d00a7
      
      BUG=aomedia:525
      
      Change-Id: Ia83f8a8efcf0eac4912f247f38887c0dd533da85
      362d0c7b
    • Sarah Parker's avatar
      Add configurations for hbd identity transform · 3eed4175
      Sarah Parker authored
      This adds the proper cfgs to av1_{inv/fwd}_txfm1d_cfg for
      the identity transform so all hbd transforms can use
      the same codepath. This has no impact on performance
      since the new identity transforms that correspond with
      the cfgs are not yet being called. Once this is checked in,
      we should be able to delete all deprecated transform functions
      and have a single code flow for all hbd transforms.
      
      BUG=aomedia:524
      
      Change-Id: I3d1bfbc8bc29b367e8ddf7dcd27525af0bd31067
      3eed4175
    • Yue Chen's avatar
      Enable 1:4/4:1 transform for 8x16 and 16x8 luma blocks · 56e226e3
      Yue Chen authored
      It gives 0.1% gain on lowres and midres
      
      Change-Id: I555a492a68571c525713840d73aa5614fe80a87d
      56e226e3
  9. 18 May, 2017 1 commit
    • Sarah Parker's avatar
      Refactor hbd txfm configurations to be 1D · eec47e65
      Sarah Parker authored
      The hbd transform configurations were originally written for all possible
      2d transforms. Now that there are many more possible 2d transforms
      due to EXT_TX and RECT_TX, it is simpler to write the cfg for the
      4 1D transform types and compose them to make all new possible transform
      types. This will allow for an easier integration of the identity transform
      for EXT_TX and rectangular transforms for RECT_TX into the current
      hbd transform codepath and facilitate the removal of obsolete transforms.
      This has no impact on performance.
      
      BUG=aomedia:524
      
      Change-Id: I1e217bcd217fd637b1df94fae62d9c59a0523c1a
      eec47e65
  10. 15 May, 2017 2 commits
  11. 11 May, 2017 1 commit
    • Yi Luo's avatar
      Partial IDCT 32x32 avx2 · 40f22ef8
      Yi Luo authored
      - Function level improvement (ms):
      Functions       ssse3  avx2   Percentage
      idct32x32_1024  794    374    52.9%
      idct32x32_135   354    169    52.2%
      idct32x32_34    197    142    27.9%
      idct32x32_1     n/a     26    n/a
      
      - Integrating in default scan order.
      
      Change-Id: I84815112b26b8a8cb800281a1cfb1706342af57d
      40f22ef8
  12. 08 May, 2017 1 commit
    • Yi Luo's avatar
      Partial IDCT 16x16 avx2 · f6176abb
      Yi Luo authored
      - Function level improvement:
      functions      sse2  avx2  percentage
      idct16x16_256  365   226   38%
      idct16x16_38   n/a   136   n/a
      idct16x16_10   171   110   35%
      idct16x16_1     34    26   23%
      
      - Integrated in AV1 for default scan order.
      
      Change-Id: Ieb1a8e730bea9c371ebc0e5f4a748640d8f5e921
      f6176abb
  13. 04 May, 2017 1 commit
  14. 02 May, 2017 1 commit
  15. 01 May, 2017 1 commit
  16. 28 Apr, 2017 1 commit
  17. 25 Apr, 2017 1 commit
  18. 18 Apr, 2017 1 commit
  19. 12 Apr, 2017 1 commit
  20. 11 Apr, 2017 1 commit
  21. 04 Apr, 2017 1 commit
  22. 03 Apr, 2017 1 commit
    • Angie Chiang's avatar
      Add av1_inverse_transform_block · d92d4bf4
      Angie Chiang authored
      Move most of the code of inverse_transform_block to
      av1_inverse_transform_block such that encoder can use the
      function as well.
      
      Use av1_inverse_transform_block in av1_encoder_block_intra.
      This will make the code cleaner.
      
      Change-Id: I84dbeef2c65e252910606dbea446ce43165d504c
      d92d4bf4
  23. 24 Mar, 2017 1 commit
  24. 20 Mar, 2017 1 commit
  25. 01 Feb, 2017 1 commit
  26. 21 Dec, 2016 1 commit
    • Jingning Han's avatar
      Fix 2x2 high bit-depth transform setups · 443c38d3
      Jingning Han authored
      This commit fixes the 2x2 transform system setups for high bit-
      depth setting. It enables the cb4x4 mode to support high bit-depth
      process. The coding performance is improved over high bit-depth +
      ref-mv:
      
      lowres  2.5%
      midres  1.2%
      
      Change-Id: I351f9d72bdc7e15b2bd00e94286b98966a295e6d
      443c38d3
  27. 20 Dec, 2016 1 commit
  28. 14 Dec, 2016 1 commit
  29. 30 Nov, 2016 2 commits
  30. 09 Nov, 2016 1 commit
  31. 03 Nov, 2016 1 commit
  32. 02 Nov, 2016 3 commits
  33. 01 Nov, 2016 1 commit
    • Yi Luo's avatar
      Hybrid inverse transforms 16x16 AVX2 optimization · 73172000
      Yi Luo authored
      - Add unit tests to verify the bit-exact result.
      - User level time reduction (EXT_TX):
          encoder: 3.63%
          decoder: 2.36%
      - Also add tx_type=V_DCT...H_FLIPADST SSE2 for 16x16 inv txfm.
      
      Change-Id: Idc6d9e8254aa536e5f18a87fa0d37c6bd551c083
      73172000
  34. 27 Oct, 2016 1 commit