1. 23 Apr, 2014 4 commits
  2. 22 Apr, 2014 5 commits
  3. 21 Apr, 2014 4 commits
    • Yaowu Xu's avatar
      Allow full RD TX size search for GF/ALT at speed 2 · d928b34e
      Yaowu Xu authored
      For speed 3 and above, such search is only allowed at speed 3.
      The change helped cif and stdhd set by 1.2% and .7% in compression,
      but increased the encoding time by around 5%.
      
      Change-Id: Ifa4832327f1c1bef3decb032ceb769cbf50e059f
      d928b34e
    • Deb Mukherjee's avatar
      Adds test code for supplemental superframe data · 26210c67
      Deb Mukherjee authored
      Adds test code to verify that supplemental superframe information
      that precedes the normal superframe information will not break
      decoding.
      
      Change-Id: Ia252b887d7ee138f51dc9a778376ff739402c455
      26210c67
    • Paul Wilkins's avatar
      Change naming of end_usage parameter. · 4c7af859
      Paul Wilkins authored
      The end_useage parameter  is confusingly named since it
      now actually defines the rate control method used.
      
      Change-Id: I98912caabfe556b7af0b939a645d1336409e4d71
      4c7af859
    • 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
  4. 20 Apr, 2014 1 commit
  5. 19 Apr, 2014 2 commits
  6. 18 Apr, 2014 6 commits
  7. 17 Apr, 2014 12 commits
    • Jingning Han's avatar
      Fix broken encoding process at sub8x8 block size · a7c69a71
      Jingning Han authored
      Use the correct buffer to update the coding mode decision for
      sub8x8 blocks.
      
      Change-Id: I091ef27d2047eeb8b73ceb7c2c7c45b38ba8c6d5
      a7c69a71
    • Dmitry Kovalev's avatar
      Adding get_pass() function. · 219a006b
      Dmitry Kovalev authored
      Change-Id: I43de248615b79828d5164b670e7358b8a520d075
      219a006b
    • Dmitry Kovalev's avatar
      Adding is_best_mode() function. · 52549b4e
      Dmitry Kovalev authored
      Change-Id: Idca7c1cd8a12df465c58b6ba064a99404b3b4bce
      52549b4e
    • Dmitry Kovalev's avatar
      Removing cq_target_quality from VP9_COMP. · 53dbc7f9
      Dmitry Kovalev authored
      Use cq_level (which is identical) from VP9_CONFIG instead.
      
      Change-Id: I1aaf2fcef3d2dbd4577f613d27693ff8a68989fd
      53dbc7f9
    • Jim Bankoski's avatar
      rename labels2mode because it was a terrible name. · d3ccf556
      Jim Bankoski authored
      Change-Id: I2d577d11966fcc5ffaaf0896bf51d18078ad1e9c
      d3ccf556
    • Paul Wilkins's avatar
      Merge two new VBR adjustment schemes. · 02e5bde3
      Paul Wilkins authored
      To make direct side by side testing this patch combines two
      VBR corrections schemes to allow more direct side by side testing.
      (The other patch was by Debargha chg id I0cd1f7...)
      
      Change-Id: I271c45e5c4ccf8de8305589000218b80d9dc3a25
      02e5bde3
    • Jingning Han's avatar
      Skip fetching original frame pointers for UV in background check · 42c1f6db
      Jingning Han authored
      The background detection only tracks luma component. This commits
      removes the frame buffer pointer retrieval for chroma components.
      
      Change-Id: I098bd2950f5e5829ed5dc2b48568167248da7fad
      42c1f6db
    • Jim Bankoski's avatar
      renamed pick_best_mbsegmentation and remove rd_check_segment_txsize · fba9b09f
      Jim Bankoski authored
      Change-Id: Ia7d33bc3eb595965bccf4b2231df1e3b2a0243c6
      fba9b09f
    • Jim Bankoski's avatar
      rename mode_index to ref index in vp9_rd_pick_inter_mode_sub_8x8 · 5c28d1a1
      Jim Bankoski authored
      Change-Id: I00bceb9de2009963c91e5102564c05c31ac1ad78
      5c28d1a1
    • 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
    • Dmitry Kovalev's avatar
      Replacing cpu_used with speed in VP9_CONFIG. · 2c8c1f53
      Dmitry Kovalev authored
      Change-Id: I86b85b5c11388e84a48f8936330c0d920df5d1f0
      2c8c1f53
    • Jingning Han's avatar
      Remove redundant buffer initialization and mode_info assignments · b6ec6930
      Jingning Han authored
      There is no need to initialize source/dst frame buffers at frame
      level. These will be done at block coding stage. This commit hence
      removes the redundant operations.
      
      Change-Id: I11d9f2556058c6205c8e58ed53e31f78622c41b7
      b6ec6930
  8. 16 Apr, 2014 6 commits
    • Paul Wilkins's avatar
      Add experimental VBR adaptation method. · 085f76e5
      Paul Wilkins authored
      Add code to monitor over and under spend and
      apply limited correction to the data rate of subsequent
      frames. To prevent the problem of starvation or overspend
      on individual frames (especially near the end of a clip) the
      maximum adjustment on a single frame is limited to a %
      of its un-modified allocation.
      
      Change-Id: I6e1ca035ab8afb0c98eac4392115d0752d9cbd7f
      085f76e5
    • Dmitry Kovalev's avatar
      Cleaning up vp9_init_second_pass(). · 961594c9
      Dmitry Kovalev authored
      Change-Id: Ibf360fe0728e07de448e77e3841c49eb25d3ba2d
      961594c9
    • Jingning Han's avatar
      Enable more precise background detection for partition decision · e88a2805
      Jingning Han authored
      This commit compares the current original frame to the previous
      original frame at 64x64 block level and decides if the entire
      block belongs to background area. If it is in the background area,
      skip non-RD partition search and copy the partition types of the
      collocated block in the previous frame.
      
      For vidyo1 in the rtc set, this makes the speed -5 coding speed
      about 8% faster. The overall compression performance is down by
      1.37% for rtc set.
      
      Change-Id: Iccf920562fcc88f21d377fb6a44c547c8689b7ea
      e88a2805
    • 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
    • Alex Converse's avatar
      Unfork rd_thresh sub8x8. · 0d8e4f91
      Alex Converse authored
      Remove duplicate rd_thresh code introduced when vp9_rd_pick_inter_mode_sub8x8()
      was forked from vp9_rd_pick_inter_mode_sb().
      
      Change-Id: I3c9b7143d182e1f28b29c16518eaca81dc2ecfed
      0d8e4f91
    • Paul Wilkins's avatar
      Fix rate control bug. · 658daf36
      Paul Wilkins authored
      Fix rate control bug whereby the rate factor heuristics
      were being updated on arf overlays causing a rate surge
      for a few frames followed by a corrective drop.
      
      This fix eliminates many of the overshoot problems that
      we were seeing on hard clips (even without applying
      stricter vbr rate control) and also helps quality on
      almost all clips with some hard clips improving by >5%.
      
      Overall quality results measured at speed 2.
      Derf  +1.78% opsnr , +2.44% SSIM
      Stdhd +2.41% opsnr, +2.85% SSIM
      
      Change-Id: I2369df6295c2705963fa6307877f6acb304bcc39
      658daf36