1. 13 Sep, 2017 1 commit
    • David Michael Barr's avatar
      [CFL] Fix typedef-redefinition compiler warnings · 5b2021ea
      David Michael Barr authored
      Instead of forward-declaring AV1_COMMON and MACROBLOCKD,
      move the dependent struct and function prototype closer
      to where they are used and after these types are defined.
      
      Change-Id: I75f005b46ef322a6fcbc01377b8dded1637c5f73
      5b2021ea
  2. 31 Aug, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] Asserts for chroma_sub8x8 · c84c21c4
      Luc Trudeau authored
      When Chroma from Luma is combined with chroma_sub8x8, the prediction
      used for sub8x8 blocks originates from multiple luma blocks. Extra
      asserts are added to validate that the prediction buffer contains all
      the required information.
      
      Change-Id: I305c46ce9b8292697e1d5b181d123461026da11c
      c84c21c4
  3. 30 Aug, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] Fixed negative rounding in scaled_luma · 9c0e9eac
      Luc Trudeau authored
      Since the scaled luma can be negative, ROUND_POWER_OF_TWO_SIGNED must be used.
      This changes the behavior from rounding toward -infinity to rounding towards 0.
      
      Results for Subset1 (compared with 35545dd5 with CfL enabled)
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      0.0082 | -0.1061 | -0.0119 |  -0.0126 | -0.0011 | -0.0121 |     0.0094
      
      Change-Id: Ie7258a17a199368339d4794fba6b5916e607c95b
      9c0e9eac
  4. 28 Aug, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] Move store flag to CFL_CTX · fcca37a4
      Luc Trudeau authored
      With recent changes, it is now possible to store the storage
      flag inside the CFL_CTX. This simplifies the implementation
      and will allow reuse in the decoder.
      
      This change does not alter the bitstream.
      
      Change-Id: Ibb8aebdd3d06f8765d40248ece8a038892e87032
      fcca37a4
  5. 17 Aug, 2017 1 commit
    • David Michael Barr's avatar
      [CFL] Move CFL cost table to struct macroblock · 38e560cc
      David Michael Barr authored
      Also, move body of update_cfl_costs() to av1_fill_mode_rates().
      
      Results on Subset1 (Compared to 1cfe474b 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
      
      No change in bitstream, for an average encode speed-up of 2.3%.
      
      Change-Id: I3948abcd70cfecad8086edfe4c45552b576ae06f
      38e560cc
  6. 29 Jul, 2017 1 commit
    • David Michael Barr's avatar
      [CFL] Uniform Q3 alpha grid with extent [-2, 2] · f6eaa159
      David Michael Barr authored
      Expand the range of alpha to [-2, 2] in Q3.
      Jointly signal the signs, including zeros.
      Use the signs to give context for each quadrant
      and half-axis. The (0, 0) point is excluded.
      Symmetry in alpha_u == alpha_v yields 6 contexts.
      
      Results on Subset1 (Compared to 9136ab7d
      
       with CFL enabled)
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0792 | -0.7535 | -0.7574 |  -0.0639 | -0.0843 | -0.0665 |    -0.3324
      
      Change-Id: I250369692e92a91d9c8d174a203d441217d15063
      Signed-off-by: default avatarDavid Michael Barr <b@rr-dav.id.au>
      f6eaa159
  7. 28 Jul, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] New UV_PREDICTION_MODE for CFL · 6e1cd787
      Luc Trudeau authored
      CfL is now an independent mode.
      
      Results on Subset1 (Compared to 4266a7ed with CFL enabled)
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.1645 | -0.4017 |  0.2475 |  -0.1851 | -0.2179 | -0.2338 |    -0.2897
      
      Change-Id: I2e86e7ea7bfc12bb1d763e70a136ca992d57a3c5
      6e1cd787
  8. 11 Jul, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] Convert cfl_alpha to q3 · 4e81d929
      Luc Trudeau authored
      Alpha's biggest fraction is 1/8, so Q3 does not change the bitstream.
      
      Results on Subset1 (compared to 503aca74 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: I1fe5b2ace97179d5f950d7406a4f3d391924f89d
      4e81d929
  9. 10 Jul, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] Q0 DC_Pred · 7651b739
      Luc Trudeau authored
      The block level DC_PRED computed by CfL goes down from Q6 to Q0. This
      will allow to reuse existing assembly for DC_PRED and also reduce the
      requirements on the multilpy required to scale the reconstructed luma
      values
      
      Results on Subset1 (compared to f9684d222 with CfL enabled)
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0347 |  0.0229 | -0.1326 |  -0.0420 | -0.0057 | -0.0072 |    -0.0644
      
      Change-Id: I6ba82cc9e04fa4ab7c8ec40a7856deb273881748
      7651b739
  10. 06 Jul, 2017 4 commits
    • Luc Trudeau's avatar
      [CFL] Fewer bits for fixed point · 475fc9df
      Luc Trudeau authored
      Since alpha is Q3, we reduce y_average from Q10 to Q3. As such, the
      prediction is reduced from Q13 to Q6. Chroma dc_pred is reduced from Q7
      to Q6 in order to match with the prediction.
      
      Results on Subset1 (compared to 209de2e5b with CfL enabled)
      
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0010 |  0.0176 | -0.0538 |  -0.0043 | 0.0027 | -0.0097 |    -0.0018
      
      Change-Id: Ib7dd3968a764e0380ddc0ad2333ebacf1e9699cd
      475fc9df
    • Luc Trudeau's avatar
      [CFL] Convert dc_pred to fixed point · 2e6cb7e7
      Luc Trudeau authored
      The dc_pred values stored in the CfL context are in Q8.7 (Worst case
      division will be of 1/128).
      
      Results on Subset1 (compared to f9684d222 with CfL enabled)
      
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0118 | -0.0181 | -0.0109 |   0.0086 | 0.0086 |  0.0196 |     0.0018
      
      Change-Id: I0701e04fb76f03eff12ed01fd5fda675fbb15e32
      2e6cb7e7
    • Luc Trudeau's avatar
      [CFL] Fixed point implementation for tx average · bfe2827b
      Luc Trudeau authored
      This change does not impact the bitstream as no loss is incured by using
      a fixed point value for the transform size average.
      
      For low bit depth, the transform size average is stored using Q8.10
      fixed point format. Worst case, smallest fraction is 1/1024.
      
      Results on Subset1 (Compared to 366b74 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: Ia5b046b92a0e4c40e413b16af3394bdc0a8c8cd9
      bfe2827b
    • Luc Trudeau's avatar
      [CFL] Compute Average Over TX Block Instead of Pred Block · 03678940
      Luc Trudeau authored
      When computing alpha, multiple averages are computed, one for each
      transform block. The CfL prediction now uses the transform block average
      instead of partition block average.
      
      This allows the decoder to build the CfL prediction by using only the
      collocated reconstructed luma values for the current transform size and
      not the entire partition.
      
      Results on Subset 1 (Compared to 0e81b97c with CfL)
      
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0180 |  0.2627 |  0.2274 |   0.0233 | 0.0301 |  0.0312 |     0.1506
      
      A small regression is expected, this change was made to simplify
      hardware implementations.
      
      Change-Id: Ib2ce2a3053b85300c5c62ef0e3270af489568a38
      03678940
  11. 03 Jul, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] Adjust Pixel Buffer for Chroma Sub8x8 · 780d249d
      Luc Trudeau authored
      Adjust row and col offset for sub8x8 blocks to allow the CfL prediction
      to use all available reconstructed luma pixels.
      
      Results on Subset 1 (Compared to b03c2f44 with CfL)
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.1355 | -0.8517 | -0.4481 |  -0.0579 | -0.0237 | -0.0203 |    -0.2765
      
      Change-Id: Ia91f0a078f0ff4f28bb2d272b096f579e0d04dac
      780d249d
  12. 29 Jun, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] Better encapsulation · 3dc55e0f
      Luc Trudeau authored
      The function cfl_compute_parameters is added and contains the logic
      related to building the CfL context parameters. As such, many cfl
      functions can now be encapsulated inside of cfl.c and not exposed to the
      rest of AV1.
      
      This also allows for supplemental asserts that validate that the CfL
      context is properly built.
      
      Results on Subset1 (compared to 9c6f8547 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: I6d14a426416b3af5491bdc145db7281b5e988cae
      3dc55e0f
  13. 20 Jun, 2017 2 commits
  14. 19 Jun, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] Compute Luma Average Over Partition Unit · 3e18e4ae
      Luc Trudeau authored
      Extract the compution of the luma reconstructed average out of cfl_load
      and into cfl_compute_average. The reconstructed luma average is stored
      in the CFL_CONTEXT to avoid computing it for each transform block and
      for each plane.
      
      Results on subset1 (compared to 803bea26 with CfL)
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0474 | -0.1486 | -0.2931 |  -0.0358 | -0.0397 | -0.0127 |    -0.1162
      
      Change-Id: I9e34af0fe5961ce8dbe70cb80aea2a16221d0d92
      3e18e4ae
  15. 14 Jun, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] Fix always use partition size to compute DC_PRED · 803bea26
      Luc Trudeau authored
      plane_bsize is now computed properly. This also includes support for the
      special case of blocks < 4X4
      
      Results on subset1 (compared to 8e689e4b with CfL)
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0218 | -0.2328 | -0.2555 |  -0.0230 | -0.0379 | -0.0723 |    -0.1205
      
      Change-Id: I6ec87d818d8df6a40ecf3bb1b86954e59c952930
      803bea26
  16. 06 Jun, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] Get subsampling from AV1 common · dac5e391
      Luc Trudeau authored
      This change does not impact the bitstream
        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: I6e131e91bad5efa345ed2542ae970eb6122eff51
      dac5e391
  17. 24 May, 2017 1 commit
  18. 18 May, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] Add cfl_update_cost function · 1a47430b
      Luc Trudeau authored
      Encapsulates the logic to update the rate of each CfL codeword.
      The if statements are removed from the loop and the arrays are
      stored in CFL_CTX instead of being declared every time.
      
      Change-Id: I0cb208b14e6c6a888210dd33c5e8fe8d74dd87f4
      1a47430b
  19. 12 May, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] move cfl_idx_to_alpha to header · 04120190
      Luc Trudeau authored
      Move cfl_idx_to_alpha in the header to facilitate inlining.
      Remove the forward MB_MODE_INFO forward declaration
      
      Change-Id: Id33fb0228d88b6285252843e2345a0d3ae875cd2
      04120190
  20. 09 May, 2017 1 commit
  21. 08 May, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] Change cfl_load to use width and height · 30596fb2
      Luc Trudeau authored
      Since the size used with cfl_load can either be based on the transform
      block size and the prediction block size, width and height are used as
      parameters instead of TX_SIZE.
      
      This resolves a problem where cfl_compute_alpha_ind was reading
      uninitialized memory.
      
      Change-Id: I187dbdd5b2e8bd85e82bb77eb74859bee2cd3f1e
      30596fb2
  22. 05 May, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] Alpha signaling · f533400a
      Luc Trudeau authored
      Writes and reads alpha to and from the bitstream.
      
      A special case is needed on the encoder side to handle prediction block
      skips. Since whether or not a prediction block is skipped during CfL, a
      rollback is required if the block was skipped and the alpha index was
      not zero. The advantage of this is that no signaling is required when
      the prediction block is skipped as it is assumed tha the alpha index is
      zero.
      
      A encode facade is added to the intra prediction facade as CfL requires
      special encoder side operations.
      
      Change-Id: Ic3b11d0fdbd51389d862112eb09d8785127a6b06
      f533400a
  23. 29 Apr, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] Load luma as prediction for chroma · baeb3758
      Luc Trudeau authored
      Loads the stored reconstructed luma pixels for each trasnform block
      inside a prediction block. Supports 4:4:4 and 4:2:0 chroma subsampling
      modes.
      
      The CFL_CTX struct is now in cfl.h with appropriate forward declarations
      
      Change-Id: I44c117899414a10a8318d14ecaed402f803de97d
      baeb3758
  24. 27 Apr, 2017 2 commits
    • Luc Trudeau's avatar
      [CFL] Store luma as prediction for chroma · e3980281
      Luc Trudeau authored
      Stores the reconstructed luma pixels for each transform block inside a
      prediction block. Rectangular transform blocks are supported.
      
      As for RDO, after all the modes have been tested for luma, an extra
      encoding is perform in order to store the reconstructed pixel values of
      the best mode. These values are then used for RDO on the chromatic
      planes.
      
      Change-Id: I354d9827e32fd41065f1b2ce02832d943a6fa156
      e3980281
    • Luc Trudeau's avatar
      [CFL] Removing excessive consts · 72d55e2c
      Luc Trudeau authored
      Change-Id: Ia97bc1c8b13f73b6dcdd40079535dba0b786c0c6
      72d55e2c
  25. 24 Apr, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] Custom block-level DC_PRED · f8164157
      Luc Trudeau authored
      Adds the CfL experiment flag and computes a block-level DC_PRED that is
      required by CfL in order to compute alpha_cb and alpha_cr.
      
      The rate-distorsion impact of computing DC_PRED at the prediction block level
      for chroma planes is rather small
      
      Subset 1:
      master_no_cdef@2017-04-18T20:37:05.712Z
        -> block_DCPRED_no_cdef@2017-04-18T20:38:07.381
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0712 |  0.0337 | -0.1692 |   0.0693 | 0.0814 |  0.0710 |    -0.0063
      Note: CDEF was disabled because of problematic asserts.
      
      Change-Id: I44d1cde8605b108366f4bd4cedbf5159dbbb5880
      f8164157
  26. 02 Sep, 2016 1 commit
  27. 01 Sep, 2016 1 commit
  28. 10 Aug, 2016 1 commit
  29. 29 Mar, 2016 1 commit
  30. 24 Mar, 2016 1 commit
  31. 28 Jan, 2016 1 commit
  32. 06 Feb, 2014 1 commit
    • Dmitry Kovalev's avatar
      Adding video reader/writer APIs. · 37e6fd3d
      Dmitry Kovalev authored
      Right now only IVF format is supported which is enough for example code.
      Other formats like y4m, webm, raw yuv will be supported later.
      
      Change-Id: I34c6f20731c1851947587ca5c589d7856b675164
      37e6fd3d
  33. 24 Jan, 2014 1 commit
  34. 13 Jan, 2014 1 commit
  35. 17 Dec, 2013 1 commit