1. 21 Apr, 2014 3 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
    • 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
    • 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
  2. 19 Apr, 2014 1 commit
  3. 18 Apr, 2014 5 commits
  4. 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
    • Dmitry Kovalev's avatar
      Adding get_pass() function. · 219a006b
      Dmitry Kovalev authored
      Change-Id: I43de248615b79828d5164b670e7358b8a520d075
    • Dmitry Kovalev's avatar
      Adding is_best_mode() function. · 52549b4e
      Dmitry Kovalev authored
      Change-Id: Idca7c1cd8a12df465c58b6ba064a99404b3b4bce
    • 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
    • Jim Bankoski's avatar
      rename labels2mode because it was a terrible name. · d3ccf556
      Jim Bankoski authored
      Change-Id: I2d577d11966fcc5ffaaf0896bf51d18078ad1e9c
    • 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
    • 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
    • Jim Bankoski's avatar
      renamed pick_best_mbsegmentation and remove rd_check_segment_txsize · fba9b09f
      Jim Bankoski authored
      Change-Id: Ia7d33bc3eb595965bccf4b2231df1e3b2a0243c6
    • 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
    • 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[],
      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
    • Dmitry Kovalev's avatar
      Replacing cpu_used with speed in VP9_CONFIG. · 2c8c1f53
      Dmitry Kovalev authored
      Change-Id: I86b85b5c11388e84a48f8936330c0d920df5d1f0
    • 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
  5. 16 Apr, 2014 8 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
    • Dmitry Kovalev's avatar
      Cleaning up vp9_init_second_pass(). · 961594c9
      Dmitry Kovalev authored
      Change-Id: Ibf360fe0728e07de448e77e3841c49eb25d3ba2d
    • 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
    • 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
    • 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
    • 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
    • Dmitry Kovalev's avatar
      Renaming av_per_frame_bandwidth to avg_frame_bandwidth. · 4e9529cb
      Dmitry Kovalev authored
      Just to be consistent with min_frame_bandwidth & max_frame_bandwidth names.
      Change-Id: I36702c708cba9ad1a5c36393f37758a2edeadb90
    • Dmitry Kovalev's avatar
      Adding sad function generation macros. · 7a85ba8a
      Dmitry Kovalev authored
      Change-Id: If6f013835b69ae61b0a0c6006fe0955303f579a5
  6. 15 Apr, 2014 4 commits
  7. 14 Apr, 2014 7 commits