1. 27 Aug, 2009 2 commits
  2. 24 Aug, 2009 6 commits
  3. 23 Aug, 2009 1 commit
    • David Conrad's avatar
      GSOC merge part 2: ARM stack alignment · ca7da1ae
      David Conrad authored
      Neither GCC nor ARMCC support 16 byte stack alignment despite the fact that NEON loads require it.
      These macros only work for arrays, but fortunately that covers almost all instances of stack alignment in x264.
      ca7da1ae
  4. 21 Aug, 2009 1 commit
  5. 20 Aug, 2009 2 commits
  6. 19 Aug, 2009 1 commit
    • Fiona Glaser's avatar
      Add support for frame-accurate parameter changes · c83699f1
      Fiona Glaser authored
      Parameter structs can now be passed with individual frames.
      The previous method would only change the parameter of what was currently being encoded, which due to delay might be very far from an intended exact frame.
      Also add support for changing aspect ratio.  Only works in a stream with repeating headers and requires the caller to force an IDR to ensure instant effect.
      c83699f1
  7. 17 Aug, 2009 1 commit
    • Fiona Glaser's avatar
      Lookahead VBV · 30a82c75
      Fiona Glaser authored
      Use the large-scale lookahead capability introduced in MB-tree for ratecontrol purposes.
      (Does not require MB-tree, however.)
      Greatly improved quality and compliance in 1-pass VBV mode, especially in CBR; +2db OPSNR or more in some cases.
      Fix some other bugs in VBV, which should improve non-lookahead mode as well.
      Change the tolerance algorithm in row VBV to allow for more significant mispredictions when buffer is nearly full.
      Note that due to the fixing of an extremely long-standing bug (>1 year), bitrates may change by nontrivial amounts in CRF without MB-tree.
      30a82c75
  8. 13 Aug, 2009 1 commit
  9. 09 Aug, 2009 3 commits
  10. 08 Aug, 2009 1 commit
  11. 07 Aug, 2009 1 commit
    • Fiona Glaser's avatar
      Macroblock-tree ratecontrol · 835ccc3c
      Fiona Glaser authored
      On by default; can be turned off with --no-mbtree.
      Uses a large lookahead to track temporal propagation of data and weight quality accordingly.
      Requires a very large separate statsfile (2 bytes per macroblock) in multi-pass mode.
      Doesn't work with b-pyramid yet.
      Note that MB-tree inherently measures quality different from the standard qcomp method, so bitrates produced by CRF may change somewhat.
      This makes the "medium" preset a bit slower.  Accordingly, make "fast" slower as well, and introduce a new preset "faster" between "fast" and "veryfast".
      All presets "fast" and above will have MB-tree on.
      Add a new option, --rc-lookahead, to control the distance MB tree looks ahead to perform propagation analysis.
      Default is 40; larger values will be slower and require more memory but give more accurate results.
      This value will be used in the future to control ratecontrol lookahead (VBV).
      Add a new option, --no-psy, to disable all psy optimizations that don't improve PSNR or SSIM.
      This disables psy-RD/trellis, but also other more subtle internal psy optimizations that can't be controlled directly via external parameters.
      Quality improvement from MB-tree is about 2-70% depending on content.
      Strength of MB-tree adjustments can be tweaked using qcompress; higher values mean lower MB-tree strength.
      Note that MB-tree may perform slightly suboptimally on fades; this will be fixed by weighted prediction, which is coming soon.
      835ccc3c
  12. 26 Jul, 2009 2 commits
    • Fiona Glaser's avatar
      Add QPRD support as subme=10 · 4304c427
      Fiona Glaser authored
      Refactor trellis lambda selection to be done in analyse_init instead of in trellis.
      This will allow for more easy adaption of lambda later on; for now it allows constant lambda across variable QPs.
      QPRD is only available with adaptive quantization enabled and generally improves SSIM and visual quality.
      Additionally, weight the SSD values from RD based on the relative QP offset for chroma; helps visually at high QPs where chroma has a lower QP than luma.
      This fixes some visual artifacts created by QPRD at high QPs.
      Note that this generally hurts PSNR and SSIM, and so is only on when psy-RD is on.
      4304c427
    • Fiona Glaser's avatar
      SSSE3 cachesplit workaround for avg2_w16 · d68f3b07
      Fiona Glaser authored
      Palignr-based solution for the most commonly used qpel function.
      1-1.5% faster overall on Core 2 chips.
      d68f3b07
  13. 17 Jul, 2009 1 commit
  14. 10 Jul, 2009 1 commit
  15. 07 Jul, 2009 2 commits
    • Fiona Glaser's avatar
      Slightly faster dequant_flat assembly · 1be01cb3
      Fiona Glaser authored
      Eliminate some redundant shifts.
      1be01cb3
    • Fiona Glaser's avatar
      Totally new preset system for x264.c (not libx264), new defaults · 71b9d885
      Fiona Glaser authored
      Other new features include "tune" and "profile" settings; see --help for more details.
      Unlike most other settings, "preset" and "tune" act before all other options.
      However, "profile" acts afterwards, overriding all other options.
      Our defaults have also changed: new defaults are --subme 7 --bframes 3 --8x8dct --no-psnr --no-ssim --threads auto --ref 3 --mixed-refs --trellis 1 --weightb --crf 23 --progress.
      Users will hopefully find these changes to greatly improve usability.
      71b9d885
  16. 03 Jul, 2009 1 commit
    • Fiona Glaser's avatar
      Early termination for chroma encoding · 205a032c
      Fiona Glaser authored
      Faster chroma encoding by terminating early if heuristics indicate that the block will be DC-only.
      This works because the vast majority of inter chroma blocks have no coefficients at all, and those that do are almost always DC-only.
      Add two new helper DSP functions for this: dct_dc_8x8 and var2_8x8.  mmx/sse2/ssse3 versions of each.
      Early termination is disabled at very low QPs due to it not being useful there.
      Performance increase is ~1-2% without trellis, up to 5-6% with trellis=2.
      Increase is greater with lower bitrates.
      205a032c
  17. 22 Jun, 2009 1 commit
    • Fiona Glaser's avatar
      Various CABAC optimizations and cleanups · 90bec46b
      Fiona Glaser authored
      Faster CABAC CBF context calculation for inter blocks.
      Add x264_constant_p(), will probably be useful in the future as well.
      Simpler subpartition functions.
      Clean up and optimize mvd_cpn a bit more.
      Various other minor optimizations.
      90bec46b
  18. 20 Jun, 2009 1 commit
  19. 19 Jun, 2009 3 commits
  20. 11 Jun, 2009 1 commit
  21. 16 May, 2009 1 commit
  22. 14 May, 2009 1 commit
  23. 10 May, 2009 2 commits
    • Fiona Glaser's avatar
      More CABAC and CAVLC optimizations · 094a4edf
      Fiona Glaser authored
      Simplified function calling for block_residual_write_(cabac|cavlc) and improved sigmap coding.
      Tried making 0/1-bit specific versions of CABAC asm, but benefit was minimal under GCC 4.3.
      Helped a decent bit under 3.4, but you shouldn't be using such old versions anyways.
      094a4edf
    • Fiona Glaser's avatar
      Some cosmetics/cleanup · 1f572510
      Fiona Glaser authored
      Move some macros to x86util.asm that should have been there to begin with.
      Fix a typo that didn't cause any issues.
      1f572510
  24. 21 Apr, 2009 2 commits
  25. 18 Apr, 2009 1 commit
    • Fiona Glaser's avatar
      Add "coded blocks" stat to output information. · 448ea688
      Fiona Glaser authored
      This measures the total percentage of blocks, intra and inter, which have nonzero coefficients.
      "y,uvAC,uvDC" refers to luma, chroma DC, and chroma AC blocks.
      Note that skip blocks are included in this stat.
      448ea688