1. 30 Oct, 2015 1 commit
  2. 20 Oct, 2015 1 commit
    • Geza Lore's avatar
      Optimize vpx_quantize_{b,b_32x32} assembler. · 9cfba09a
      Geza Lore authored
      Added optimization of the 8 bit assembly quantizer routines. This makes
      these functions up to 100% faster, depending on encoding parameters.
      
      This patch maskes the encoder faster in both the high bitdepth and 8bit
      configurations. In the high bitdepth configuration, it effects profile 0
      only.
      
      Based on my profiling using 1080p input the net gain is between 1-3% for
      the 8 bit config, and around 2.5-4.5% for the high bitdepth config,
      depending on target bitrate. The difference between the 8 bit and high
      bitdepth configurations for the same encoder run is reduced by 1% in all
      cases I have profiled.
      
      Change-Id: I86714a6b7364da20cd468cd784247009663a5140
      9cfba09a
  3. 12 Oct, 2015 1 commit
    • hui su's avatar
      VP10: Add palette mode part 1 · 5d011cb2
      hui su authored
      Add palette mode for keyframe luma channel. Palette mode is enabled
      when using "--tune-content=screen" in encoding config parameters.
      
      on screen_content testset:  +6.89%
      on derlr                 :  +0.00%
      
      Design doc (WIP):
      https://goo.gl/lD4yJw
      
      Change-Id: Ib368b216bfd3ea21c6c27436934ad87afdaa6f88
      5d011cb2
  4. 13 Aug, 2015 1 commit
  5. 12 Aug, 2015 2 commits
  6. 24 Jul, 2015 1 commit
  7. 23 Jul, 2015 2 commits
  8. 25 Nov, 2014 1 commit
    • Yunqing Wang's avatar
      vp9_ethread: modify VP9_COMP structure · edbd61e1
      Yunqing Wang authored
      This patch modified struct VP9_COMP. Created a struct ThreadData
      to include data that need to be copied for each thread. In
      multiple thread case, one thread processes one tile. all threads
      share one copy of VP9_COMP,
      (refer to VP9_COMP *cpi in the code)
      but each thread has its own copy of ThreadData,
      (refer to ThreadData *td in the code).
      Therefore, within the scope of encode_tiles(), both cpi and td
      need to be passed as function parameters.
      
      In single thread case, the FRAME_COUNTS pointer in ThreadData
      points to "counts" in VP9_COMMON.
      
      Change-Id: Ib37908b2d8e2c0f4f9c18f38017df5ce60e8b13e
      edbd61e1
  9. 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
  10. 16 May, 2014 1 commit
  11. 01 May, 2014 1 commit
  12. 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