1. 13 Oct, 2010 - 1 commit
  2. 12 Oct, 2010 - 6 commits
    • Fritz Koenig's avatar
      GCC inline restrictions were not adequate. · e50f5d40
      Fritz Koenig authored
      =r was not restrictive enough and the compiler was not returning
      ebx correctly.
      
      Change-Id: I7606e384067bd5fb69189802f1ff64ccc5aa02d6
      e50f5d40
    • John Koleszar's avatar
      Centralize mb skip state calculation · 13685747
      John Koleszar authored
      This patch moves the scattered updates to the mb skip state
      (mode_info_context->mbmi.mb_skip_coeff) to vp8_tokenize_mb. Recent
      changes to the quantizer exposed a bug where if a macroblock
      could be coded as a skip but isn't, the encoder would run the
      loopfilter but the decoder wouldn't, causing a reference buffer
      mismatch.
      
      The loopfilter is controlled by a flag called dc_diff. The decoder
      looks at the number of decoded coefficients when setting this flag.
      The encoder sets this flag based on the skip state, since any
      skippable macroblock should be transmitted as a skip. The coefficient
      optimization pass (vp8_optimize_b()) could change the coefficients
      such that a block that was not a skip becomes one. The encoder was
      not updating the skip state in this situation for intra coded blocks.
      
      The underlying issue predates it, but this bug was recently triggered
      by enabling trellis quantization on the Y2 block in commit dcd29e36,
      and by changing the quantizer range control in c...
      13685747
    • John Koleszar's avatar
      acff1627
    • Timothy B. Terriberry's avatar
      Add const qualifiers to variance/SAD functions. · f4a85944
      Timothy B. Terriberry authored
      These functions should never change their input, and there's no
       reason not to declare that.
      This allows them to be passed static const data.
      
      Change-Id: Ia49fe4b01e80e9afcb24b4844817694d4da5995c
      f4a85944
    • John Koleszar's avatar
    • John Koleszar's avatar
  3. 11 Oct, 2010 - 5 commits
  4. 07 Oct, 2010 - 3 commits
    • Johann's avatar
      configure is not in src · a31a58d1
      Johann authored
      one comment in the README said the configure script was in src.
      it's not. pointed out by Aaron Sherman
      
      Change-Id: Ife0b53e096856d46669a99eefd71ac23d0351f65
      a31a58d1
    • Yunqing Wang's avatar
      Remove unused file in encoder · 7e6f7b57
      Yunqing Wang authored
      Remove vp8/encoder/x86/csystemdependent.c
      
      Change-Id: I7c590dcd07b68704d463a1452f62f29ffb1402f4
      7e6f7b57
    • Scott LaVarnway's avatar
      Added vp8_fast_quantize_b_sse2 · d860f685
      Scott LaVarnway authored
      Moved vp8_fast_quantize_b_sse from quantize_mmx.asm into
      quantize_sse2.asm and renamed.  Updated the assembly code to
      match the C version.
      
      Change-Id: I1766d9e1ca60e173f65badc0ca0c160c2b51b200
      d860f685
  5. 06 Oct, 2010 - 1 commit
    • Yaowu Xu's avatar
      optimize fast_quantizer c version · d338d14c
      Yaowu Xu authored
      As the zbin and rounding constants are normalized, rounding effectively
      does the zbinning, therefore the zbin operation can be removed. In
      addition, the memset on the two arrays are no longer necessary.
      
      Change-Id: If39c353c42d7e052296cb65322e5218810b5cc4c
      d338d14c
  6. 05 Oct, 2010 - 3 commits
  7. 04 Oct, 2010 - 4 commits
    • Jan Kratochvil's avatar
      nasm: avoid relative include paths · fc2b06c6
      Jan Kratochvil authored
      nasm does not automatically assume the source's directory also for its
      include files.
      
      Provide nasm compatibility.  No binary change by this patch with yasm on
      {x86_64,i686}-fedora13-linux-gnu.  Few longer opcodes with nasm on
      {x86_64,i686}-fedora13-linux-gnu have been checked as safe.
      
      Change-Id:	I386efa0cca5d401193416c11bd7363a283541645
      fc2b06c6
    • Jan Kratochvil's avatar
      nasm: address labels 'rel label' vice 'wrt rip' · 5cdc3a4c
      Jan Kratochvil authored
      nasm does not support `label wrt rip', it requires `rel label'. It is
      still fully compatible with yasm.
      
      Provide nasm compatibility. No binary change by this patch with yasm on
      {x86_64,i686}-fedora13-linux-gnu. Few longer opcodes with nasm on
      {x86_64,i686}-fedora13-linux-gnu have been checked as safe.
      
      Change-Id: I488773a4e930a56e43b0cc72d867ee5291215f50
      5cdc3a4c
    • Jan Kratochvil's avatar
      nasm: match instruction length (movd/movq) to parameters · e114f699
      Jan Kratochvil authored
      nasm requires the instruction length (movd/movq) to match to its
      parameters. I find it more clear to really use 64bit instructions when
      we use 64bit registers in the assembly.
      
      Provide nasm compatibility. No binary change by this patch with yasm on
      {x86_64,i686}-fedora13-linux-gnu. Few longer opcodes with nasm on
      {x86_64,i686}-fedora13-linux-gnu have been checked as safe.
      
      Change-Id: Id9b1a5cdfb1bc05697e523c317a296df43d42a91
      e114f699
    • Yaowu Xu's avatar
      2d4ef375
  8. 02 Oct, 2010 - 2 commits
    • Paul Wilkins's avatar
      Tune effect of motion on KF/GF boost in two pass; · 788c0eb5
      Paul Wilkins authored
      This code adjust the impact of the amount and speed of motion
      on GF and KF boost.
      
      Sections with lots of slow motion will tend to have a
      somewhat bigger boost and sections with fast motion may
      have less.
      
      There is a knock on effect to the selection of the active
      quantizer range.
      
      This will likely require further tuning but helps with a couple
      of particularly bad edge cases.
      
      Change-Id: Ic2449cda7305672b69acf42fc0a845b77ac98d40
      788c0eb5
    • Yaowu Xu's avatar
      enable trellis quantization for 2nd order blocks · dcd29e36
      Yaowu Xu authored
      Experimented with different value for Y2_RD_MULT ranging f[1, 32],
      without adapting the value to MB coding mode/frame type/Q value,
      4 works out best among all values, providing overall 0.1% coding
      gain on the test set.
      
      Change-Id: I6b2583a8aa5db5e7e5c65c646301909c0c58f876
      dcd29e36
  9. 01 Oct, 2010 - 3 commits
  10. 30 Sep, 2010 - 3 commits
  11. 29 Sep, 2010 - 7 commits
    • John Koleszar's avatar
      Rename mode_ref_lf_test_function · 7e5e3151
      John Koleszar authored
      This function graduated from being a test func to something that's on
      by default. Rename it and remove some spurious comments that confuse
      its status.
      
      Change-Id: I689695a3ad29c35e9a72a43ec93766733ac6c20b
      7e5e3151
    • Fritz Koenig's avatar
      Merge "Optimizations on the loopfilters." · 439b2ecd
      Fritz Koenig authored
      439b2ecd
    • John Koleszar's avatar
      Fix loopfilter delta zero transitions · b9be7a46
      John Koleszar authored
      Loopfilter deltas are initialized to zero on keyframes in the decoder.
      The values then persist from the previous frame unless an update bit
      is set in the bitstream. This data is not included in the entropy
      data saved by the 'refresh entropy' bit in the bitstream, so it is
      effectively an additional contextual element beyond the 3 ref-frames
      and the entropy data.
      
      The encoder was treating this delta update bit as update-if-nonzero,
      meaning that the value would be refreshed even if it hadn't changed,
      and more significantly, if the correct value for the delta changed
      to zero, the update wouldn't be sent, and the decoder would preserve
      the last (presumably non-zero) value.
      
      This patch updates the encoder to send an update only if the value
      has changed from the previously transmitted value. It also forces the
      value to be transmitted in error resilient mode, to account for lost
      context in the event of lost frames.
      
      Change-Id: I56671d5b42965d0166ac226765dbfce3e5301868
      b9be7a46
    • Paul Wilkins's avatar
      Change to coefficient optimization rules. · 7288cdf7
      Paul Wilkins authored
      Allow coefficient optimization for good quality speed 0.
      
      Change-Id: Id0cb363df6823c6798671584fbba097916a7df2c
      7288cdf7
    • Adrian Grange's avatar
    • Adrian Grange's avatar
      Moved row-specific computation of MV bounds out of col loop · 0e7c45b3
      Adrian Grange authored
      Moved the bounds computation on vertical MV component out
      of the loop that processes MBs within a MB row.
      0e7c45b3
    • Paul Wilkins's avatar
      Control of active min quantizer for two pass. · ff3068d6
      Paul Wilkins authored
      Create  look up tables for controlling the active quantizer range.
      Some initial tuning to improve quality circa 0.5% on test set.
      Clean up of some stats output code
      
      Change-Id: Ia698a8525f8b8129a503cadace3ee73fe888f543
      ff3068d6
  12. 28 Sep, 2010 - 2 commits
    • Fritz Koenig's avatar
      Optimizations on the loopfilters. · 0964ef0e
      Fritz Koenig authored
      - Scheduling for Atom processors
      - Combining of macros to allow for better interleaving
      - Change from multiplies to adds for main filter
      - Use of movhps/movlps to fill xmm registers without
        shifting and orring
      
      Change-Id: I0b3500a5f58abf7085253ec92d64c8a96723040b
      0964ef0e
    • Adrian Grange's avatar
      Enabled AltRef motion map creation · 47fc8f26
      Adrian Grange authored
      Enabled the first-pass encode to output the
      map of macroblock coding modes required by
      the AltRef filter.
      47fc8f26