1. 12 May, 2011 1 commit
  2. 24 Mar, 2011 1 commit
  3. 18 Feb, 2011 1 commit
  4. 25 Jan, 2011 2 commits
    • Fiona Glaser's avatar
      VBV emergency mode · e6025413
      Fiona Glaser authored
      Allow ratecontrol to select "quantizers" above the maximum.
      These "quantizers" progressively decimate the source to avoid VBV underflow.
      x264 is now VBV compliant even with input as evil as /dev/random.
      e6025413
    • Sean McGovern's avatar
      Bump dates to 2011 · ee9bc136
      Sean McGovern authored
      ee9bc136
  5. 10 Oct, 2010 1 commit
  6. 18 Sep, 2010 1 commit
    • Fiona Glaser's avatar
      Update source file headers · 213a99d0
      Fiona Glaser authored
      Update dates, improve file descriptions, make things more consistent.
      Also add information about commercial licensing.
      213a99d0
  7. 24 Aug, 2010 1 commit
    • Fiona Glaser's avatar
      CAVLC "trellis" · 26861893
      Fiona Glaser authored
      ~3-10% improved compression with CAVLC.
      --trellis is now a valid option with CAVLC.
      Perhaps more importantly, this means psy-trellis now works with CAVLC.
      
      This isn't a real trellis; it's actually just a simplified QNS.
      But it takes enough shortcuts that it's still roughly as fast as a trellis; just not quite optimal.
      Thus the name is a bit of a misnomer, but we're reusing the option name because it does the same thing.
      A real trellis would be better, but CAVLC is much harder to trellis than CABAC.
      I'm not aware of any published polynomial-time solutions that are significantly close to optimal.
      26861893
  8. 15 Jul, 2010 1 commit
    • Loren Merritt's avatar
      Convert x264 to use NV12 pixel format internally · 387828ed
      Loren Merritt authored
      ~1% faster overall on Conroe, mostly due to improved cache locality.
      Also allows improved SIMD on some chroma functions (e.g. deblock).
      This change also extends the API to allow direct NV12 input, which should be a bit faster than YV12.
      This isn't currently used in the x264cli, as swscale does not have fast NV12 conversion routines, but it might be useful for other applications.
      
      Note this patch disables the chroma SIMD code for PPC and ARM until new versions are written.
      387828ed
  9. 02 Jun, 2010 2 commits
  10. 31 May, 2010 1 commit
  11. 26 May, 2010 3 commits
  12. 29 Apr, 2010 1 commit
  13. 23 Apr, 2010 2 commits
  14. 05 Apr, 2010 1 commit
    • Fiona Glaser's avatar
      Massive cosmetic and syntax cleanup · 58d2349d
      Fiona Glaser authored
      Convert all applicable loops to use C99 loop index syntax.
      Clean up most inconsistent syntax in ratecontrol.c, visualize, ppc, etc.
      Replace log(x)/log(2) constructs with log2, and similar with log10.
      Fix all -Wshadow violations.
      Fix visualize support.
      58d2349d
  15. 27 Mar, 2010 3 commits
  16. 24 Mar, 2010 1 commit
  17. 24 Feb, 2010 1 commit
  18. 23 Feb, 2010 1 commit
    • Fiona Glaser's avatar
      Faster probe_skip, 2x2 DC transform handling · d43e46cf
      Fiona Glaser authored
      Move the 2x2 DC DCT into the dct_dc asm function to avoid some store-to-load forwarding penalties and extra register loads.
      Use dct_dc as part of the early termination in probe_skip.
      x86 asm partially by Holger Lubitz.
      ARM NEON asm by David Conrad.
      d43e46cf
  19. 15 Feb, 2010 2 commits
  20. 05 Dec, 2009 1 commit
    • Fiona Glaser's avatar
      Significantly faster qpel-RD · 4aa33d65
      Fiona Glaser authored
      Cache the results of MC, like in bidir-RD.
      Slightly changes output due to the necessary reordering of satd/RD calls.
      5-10% faster qpel-RD.
      4aa33d65
  21. 12 Nov, 2009 1 commit
    • Fiona Glaser's avatar
      Fix all aliasing violations · 03cb8c09
      Fiona Glaser authored
      New type-punning macros perform write/read-combining without aliasing violations per the second-to-last part of 6.5.7 in the C99 specification.
      GCC 4.4, however, doesn't seem to have read this part of the spec and still warns about the violations.
      Regardless, it seems to fix all known aliasing miscompilations, so perhaps the GCC warning generator is just broken.
      As such, add -Wno-strict-aliasing to CFLAGS.
      03cb8c09
  22. 09 Nov, 2009 1 commit
    • Dylan Yudaken's avatar
      Weighted P-frame prediction · ccac8546
      Dylan Yudaken authored
      Merge Dylan's Google Summer of Code 2009 tree.
      Detect fades and use weighted prediction to improve compression and quality.
      "Blind" mode provides a small overall quality increase by using a -1 offset without doing any analysis, as described in JVT-AB033.
      "Smart", the default mode, also performs fade detection and decides weights accordingly.
      MB-tree takes into account the effects of "smart" analysis in lookahead, even further improving quality in fades.
      If psy is on, mbtree is on, interlaced is off, and weightp is off, fade detection will still be performed.
      However, it will be used to adjust quality instead of create actual weights.
      This will improve quality in fades when encoding in Baseline profile.
      
      Doesn't add support for interlaced encoding with weightp yet.
      Only adds support for luma weights, not chroma weights.
      Internal code for chroma weights is in, but there's no analysis yet.
      Baseline profile requires that weightp be off.
      All weightp modes may cause minor breakage in non-compliant decoders that take shortcuts in deblocking reference frame checks.
      "Smart" may cause serious breakage in non-compliant decoders that take shortcuts in handling of duplicate reference frames.
      
      Thanks to Google for sponsoring our most successful Summer of Code yet!
      ccac8546
  23. 12 Oct, 2009 1 commit
    • Loren Merritt's avatar
      change all dct arrays to 1d. · 1fbba0ca
      Loren Merritt authored
      the C standard doesn't allow you to iterate 1-dimensionally over 2d arrays, and nothing other than the dsp functions themselves cares about the 2dness of dct.
      this fixes a miscompilation in x264_mb_optimize_chroma_dc.
      1fbba0ca
  24. 13 Sep, 2009 1 commit
  25. 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
  26. 28 Jul, 2009 1 commit
    • Fiona Glaser's avatar
      Faster bidir_rd plus some bugfixes · b08410d0
      Fiona Glaser authored
      Cache chroma MC during refine_bidir_rd and use both the luma and chroma caches to skip MC in macroblock_encode.
      Fix incorrect call to rd_cost_part; refine_bidir_rd output was incorrect for i8>0.
      Remove some redundant clips.
      ~12% faster refine_bidir_rd.
      b08410d0
  27. 26 Jul, 2009 1 commit
    • 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
  28. 10 Jul, 2009 1 commit
  29. 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
  30. 18 Apr, 2009 1 commit
  31. 27 Mar, 2009 1 commit
  32. 09 Feb, 2009 1 commit