1. 06 Jul, 2017 3 commits
    • 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
  2. 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
  3. 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
  4. 20 Jun, 2017 2 commits
  5. 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
  6. 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
  7. 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
  8. 24 May, 2017 1 commit
  9. 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
  10. 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
  11. 09 May, 2017 1 commit
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 02 Sep, 2016 1 commit
  18. 01 Sep, 2016 1 commit
  19. 10 Aug, 2016 1 commit
  20. 29 Mar, 2016 1 commit
  21. 24 Mar, 2016 1 commit
  22. 28 Jan, 2016 1 commit
  23. 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
  24. 24 Jan, 2014 1 commit
  25. 13 Jan, 2014 1 commit
  26. 17 Dec, 2013 1 commit
  27. 15 Nov, 2013 1 commit
    • Tom Finegan's avatar
      vpx[dec|enc]: Extract IVF support from the apps. · 00a35aab
      Tom Finegan authored
      - Move IVF reading support into ivfdec.c and ivfdec.h
      - Move IVF writing support into ivfenc.c and ivfenc.h
      - Removed IVF writing code from the SVC example in favor of ivfenc.
      
      Change-Id: I70adf6240d0320fdd232d8546ed573f0f68dd793
      00a35aab
  28. 11 Oct, 2013 1 commit
    • Dmitry Kovalev's avatar
      Replacing {VP9_COEF, MODE}_UPDATE_PROB with DIFF_UPDATE_PROB. · 4a0f9478
      Dmitry Kovalev authored
      Values of MODE_UPDATE_PROB and VP9_COEF_UPDATE_PROB are equal, so replacing
      them with one constant. Inlining appropriate arguments for functions:
        vp9_cond_prob_diff_update (encoder)
        vp9_diff_update_prob (decoder)
      
      Change-Id: I1255a1cb477743b799b3bfbbcd8de6b32b067338
      4a0f9478
  29. 03 Oct, 2013 1 commit
  30. 25 Jun, 2013 1 commit
  31. 01 Nov, 2012 2 commits
  32. 31 Oct, 2012 1 commit
  33. 09 Sep, 2010 1 commit
  34. 18 Jun, 2010 1 commit
    • John Koleszar's avatar
      cosmetics: trim trailing whitespace · 94c52e4d
      John Koleszar authored
      When the license headers were updated, they accidentally contained
      trailing whitespace, so unfortunately we have to touch all the files
      again.
      
      Change-Id: I236c05fade06589e417179c0444cb39b09e4200d
      94c52e4d
  35. 04 Jun, 2010 1 commit