1. 29 Jul, 2015 1 commit
  2. 29 Jun, 2015 1 commit
  3. 04 Feb, 2015 1 commit
    • Jingning Han's avatar
      Account for chroma component costs in RTC mode decision · 0c6d3a03
      Jingning Han authored
      This commit allows the encoder to account for additional chroma
      plane costs in the mode decision process, if the current block
      potentially contains significant color change. It improves the
      visual quality at very low bit-rates.
      
      The compression performance of dark720p is improved by 12.39% in
      speed 6. For jimred at 150 kbps, the PSNR of V component (red)
      increased by 0.2 dB, at the expense of about 5% increase in
      encoding time. Note that for sequences where the chroma components
      are fairly consistent, the encoding time increase is negligible.
      
      On average the rtc set compression performance is improved by
      1.172% in PSNR and 1.920% in SSIM.
      
      Change-Id: Ia55b24ef23a25304f7ec9958fbf07fd6e658505c
      0c6d3a03
  4. 22 Dec, 2014 1 commit
  5. 19 Dec, 2014 1 commit
  6. 18 Dec, 2014 1 commit
  7. 20 Nov, 2014 1 commit
    • Yunqing Wang's avatar
      vp9_ethread: move max/min partition size to mb struct · ad7586a9
      Yunqing Wang authored
      The max_partition_size and max_partition_size are set at the
      beginning while setting speed features, and then adjusted at
      SB level. Moving them to mb struct ensures there is a local
      copy for each thread.
      
      Change-Id: I7dd08dc918d9f772fcd718bbd6533e0787720ad4
      ad7586a9
  8. 06 Nov, 2014 1 commit
    • Jingning Han's avatar
      Rework cut-off decisions in cyclic refresh aq mode · caaf63b2
      Jingning Han authored
      This commit removes the cyclic aq mode dependency on
      in_static_area and reworks the corresponding cut-off thresholds.
      It improves the compression performance of speed -5 by 1.47% in
      PSNR and 2.07% in SSIM, and the compression performance of speed
      -6 by 3.10% in PSNR and 5.25% in SSIM. Speed wise, about 1% faster
      in both settings at high bit-rates.
      
      Change-Id: I1ffc775afdc047964448d9dff5751491ba4ff4a9
      caaf63b2
  9. 09 Oct, 2014 1 commit
  10. 01 Oct, 2014 1 commit
  11. 12 Sep, 2014 1 commit
    • Deb Mukherjee's avatar
      Adds high bitdepth transform functions and tests · 10783d4f
      Deb Mukherjee authored
      Adds various high bitdepth transform functions and tests.
      Much of the changes are related to using typedefs tran_low_t
      and tran_high_t for the final transform cofficients and intermediate
      stages of the transform computation respectively rather than fixed
      types int16_t/int. When vp9_highbitdepth configure flag is off,
      these map tp int16_t/int32_t, but when the flag is on, they map
      to int32_t/int64_t to make space for needed extra precision.
      
      Change-Id: I3c56de79e15b904d6f655b62ffae170729befdd8
      10783d4f
  12. 03 Sep, 2014 1 commit
    • Jingning Han's avatar
      Speed up compound inter prediction mode check · d62d804e
      Jingning Han authored
      This commit allows the encoder to store outcomes of single reference
      frame modes and compares them to decide if the inter prediction
      filter, forward transform, and quantization can be skipped.
      
      The compression performance of speed 3 is down
      derf  -0.364%
      stdhd -0.198%
      
      For test sequences, the speed 3 runtime is reduced
      highway CIF 100 kbps, 51976 ms -> 45033 ms, 13% speed-up
      stockholm 720p 1000 kbps, 71826 ms -> 67838 ms, 5.5% speed-up
      pedestrian 1080p 2000 kbps, 154924 ms -> 150702 ms, 2.6% speed-up
      
      Change-Id: I5aa26f918d2b4b5197a2c0afa2779319f1c88e44
      d62d804e
  13. 29 Aug, 2014 1 commit
  14. 22 Aug, 2014 1 commit
    • Jingning Han's avatar
      Move mv cost table to VP9_COMP · 2b1c6eac
      Jingning Han authored
      The mv cost table set is maintained at frame level, hence moved to
      VP9_COMP.
      
      Change-Id: Icb3d0185d47443590bd11357de729aa4ba5c5e5e
      2b1c6eac
  15. 08 Aug, 2014 1 commit
  16. 05 Aug, 2014 1 commit
  17. 04 Aug, 2014 1 commit
  18. 02 Jul, 2014 1 commit
    • Jingning Han's avatar
      Re-design quantization process · 9ac2f663
      Jingning Han authored
      This commit re-designs the quantization process for transform
      coefficient blocks of size 4x4 to 16x16. It improves compression
      performance for speed 7 by 3.85%. The SSSE3 version for the
      new quantization process is included.
      
      The average runtime of the 8x8 block quantization is reduced
      from 285 cycles -> 255 cycles, i.e., over 10% faster.
      
      Change-Id: I61278aa02efc70599b962d3314671db5b0446a50
      9ac2f663
  19. 30 Jun, 2014 1 commit
    • Yunqing Wang's avatar
      Decide the partitioning threshold from the variance histogram · 9d41313e
      Yunqing Wang authored
      Before encoding a frame, calculate and store each 16x16 block's
      variance of source difference between last and current frame.
      Find partitioning threshold T for the frame from its variance
      histogram, and then use T to make partition decisions.
      
      Comparing with fixed 16x16 partitioning, rtc set test showed an
      overall psnr gain of 3.242%, and ssim gain of 3.751%. The best
      psnr gain is 8.653%.
      
      The overall encoding speed didn't change much. It got faster for
      some clips(for example, 12% speedup for vidyo1), and a little
      slower for others.
      
      Also, a minor modification was made in datarate unit test.
      
      Change-Id: Ie290743aa3814e83607b93831b667a2a49d0932c
      9d41313e
  20. 20 Jun, 2014 1 commit
  21. 12 Jun, 2014 2 commits
    • Dmitry Kovalev's avatar
      Replacing txfm_size with tx_size. · 4345d12d
      Dmitry Kovalev authored
      Change-Id: Ifa6374e9db5919322733b656e0865f5f19ee6f2c
      4345d12d
    • Jingning Han's avatar
      Fast computation path for forward transform and quantization · ccba289f
      Jingning Han authored
      This commit enables a fast path computational flow for forward
      transformation. It checks the sse and variance of prediction
      residuals and decides if the quantized coefficients are all
      zero, dc only, or more. It then selects the corresponding coding
      path in the forward transformation and quantization stage.
      
      It is currently enabled in rtc coding mode. Will do it for rd
      coding mode next.
      
      In speed -6, the runtime for pedestrian_area 1080p at 1000 kbps
      goes down from 14234 ms to 13704 ms, i.e., about 4% speed-up.
      Overall coding performance for rtc set is changed by -0.18%.
      
      Change-Id: I0452da1786d59bc8bcbe0a35fdae9f623d1d44e1
      ccba289f
  22. 21 May, 2014 1 commit
  23. 19 May, 2014 1 commit
  24. 16 May, 2014 1 commit
  25. 01 May, 2014 1 commit
  26. 29 Apr, 2014 1 commit
  27. 21 Apr, 2014 1 commit
    • Jingning Han's avatar
      Enable background detection for adaptive quantizer control · 80a4f559
      Jingning Han authored
      This commit enables a background detection approach for adaptive
      quantizer control. It combines the cyclic refresh pattern and the
      background information to determine the segment id for adaptive
      quantizer selection, prior to the non-RD mode decision process.
      It hence allows proper quantization information update for a more
      precise rate-distortion modeling in the non-RD mode decision.
      
      The compression performance of speed -5 for rtc set is improved
      by 2.5%, at no speed change.
      
      Change-Id: Ic3713e8ed9185b403b5b1679d19dabd57506d452
      80a4f559
  28. 17 Apr, 2014 1 commit
    • Jim Bankoski's avatar
      add a context tree structure to encoder · e890c257
      Jim Bankoski authored
      This patch sets up a quad_tree structure (pc_tree) for holding all of
      pick_mode_context data we use at any square block size during encoding
      or picking modes.  That includes contexts for 2 horizontal and 2 vertical
      splits, one none, and pointers to 4 sub pc_tree nodes corresponding
      to split.  It also includes a pointer to the current chosen partitioning.
      
      This replaces code that held an index for every level in the pick
      modes array including:  sb_index, mb_index,
      b_index, ab_index.
      
      These were used as stateful indexes that pointed to the current pick mode
      contexts you had at each level stored in the following arrays
      
      array ab4x4_context[][][],
      sb8x4_context[][][], sb4x8_context[][][], sb8x8_context[][][],
      sb8x16_context[][][], sb16x8_context[][][], mb_context[][], sb32x16[][],
      sb16x32[],  sb32_context[], sb32x64_context[], sb64x32_context[],
      sb64_context
      
      and the partitioning that had been stored in the following:
      b_partitioning, mb_partitioning, sb_partitioning, and sb64_partitioning.
      
      Prior to this patch before doing an encode you had to set the appropriate
      index for your block size ( switch statement),  update it ( up to 3
      lookups for the index array value) and then make your call into a recursive
      function at which point you'd have to call get_context which then
      had to do a switch statement based on the blocksize,  and then up to 3
      lookups based upon the block size to find the context to use.
      
      With the new code the context for the block size is passed around directly
      avoiding the extraneous switch statements and multi dimensional array
      look ups that were listed above.   At any level in the search all of the
      contexts are local to the pc_tree you are working on (in?).
      
      In addition in most places code that used to call sub functions and
      then check if the block size was 4x4 and index was > 0 and return
      now don't preferring instead to call the right none function on the inside.
      
      
      
      Change-Id: I06e39318269d9af2ce37961b3f95e181b57f5ed9
      e890c257
  29. 16 Apr, 2014 1 commit
    • Paul Wilkins's avatar
      Remove old activity masking code. · e434d08f
      Paul Wilkins authored
      Delete code relating to the old VP8_TUNE_SSIM flag
      as this code does not currently work and is largely made
      redundant in VP9 by the various AQ modes.
      
      Change-Id: I71f28e1f680573d296422254489000678552b17b
      e434d08f
  30. 24 Mar, 2014 1 commit
  31. 21 Mar, 2014 1 commit
  32. 20 Mar, 2014 1 commit
  33. 10 Mar, 2014 1 commit
  34. 06 Mar, 2014 1 commit
  35. 05 Mar, 2014 1 commit
  36. 21 Feb, 2014 1 commit
    • Alex Converse's avatar
      vp9_rd_pick_inter_mode_sb() reorganization · 463ba705
      Alex Converse authored
      * Reduce the number of short cirtcuit checks by pre-computing and combining like checks.
      * Postpone non-trivial initializations until after the shortcircuits are evaluated.
      * Add some consts and const pointers.
      
      No change to the actual results of the call or output of the encoder.
      
      Change-Id: Ie44c4702aec6e08cfe0b8b0ba3cd6b57206478d1
      463ba705
  37. 12 Feb, 2014 1 commit
  38. 31 Jan, 2014 1 commit
    • Alex Converse's avatar
      Cleanup block_rd_txfm. · e78c174e
      Alex Converse authored
      * Avoid unnecessary type erasure
      * Prune unused/duplicate fields from struct rdcost_block_args
      * Make struct rdcost_block_args a local
      
      Change-Id: I4f1fd4837ccd028bbfe727191ee8d69f0463b7e5
      e78c174e
  39. 24 Jan, 2014 1 commit
    • Dmitry Kovalev's avatar
      Renaming INTERPOLATION_TYPE to INTERP_FILTER. · 4264c938
      Dmitry Kovalev authored
      Corresponding renames:
        subpel_kernel              => interp_kernel
        vp9_get_filter_kernel()    => vp9_get_interp_kernel()
        pred_filter_type           => pred_interp_filter
        adaptive_pred_filter_type  => adaptive_pred_interp_filter
        mcomp_filter_type          => interp_filter
        read_interp_filter_type()  => read_interp_filter()
        write_interp_filter_type() => write_interp_filter()
        fix_mcomp_filter_type()    => fix_interp_filter()
      
      Change-Id: I1fa61fa1dc81ebbf043457c3ee2d8d4515bee6d3
      4264c938