1. 10 Jan, 2011 1 commit
  2. 14 Dec, 2010 1 commit
  3. 07 Dec, 2010 1 commit
  4. 25 Nov, 2010 2 commits
    • Alex Wright's avatar
      Make --weightp 1 a better speed tradeoff · 7e3019a3
      Alex Wright authored
      Since fade analysis is now so fast, weightp 1 now does fade analysis but no reference duplication.
      This is the opposite of what it used to do (reference duplication but no fade analysis).
      This also gives weightp's better fade quality to faster presets (up to superfast).
      7e3019a3
    • Fiona Glaser's avatar
      Change qpmin default to 0 · ca8f00c7
      Fiona Glaser authored
      There's probably no real reason to keep it at 10 anymore, and lowering it allows AQ to pick lower quantizers in really flat areas.
      Might help on gradients at high quality levels.
      The previous value of 10 was arbitrary anyways.
      ca8f00c7
  5. 19 Nov, 2010 1 commit
  6. 17 Nov, 2010 1 commit
  7. 10 Nov, 2010 2 commits
    • Fiona Glaser's avatar
      Improve quantizer handling · 2f2ab0fa
      Fiona Glaser authored
      The default value for i_qpplus1 in x264_picture_t is now X264_QP_AUTO.  This is currently 0, but may change in the future.
      qpfiles no longer use -1 to indicate "auto"; QP is just omitted.  The old method should still work though.
      
      CRF values now make sense in high bit depth mode.
      --qp should be used for lossless mode, not --crf.
      --crf 0 will still work as expected in 8-bit mode, but won't be lossless with higher bit depths.
      Add bit depth to statsfiles.
      
      These changes are required to make the QP interface sensible in combination with high bit depth.
      2f2ab0fa
    • Loren Merritt's avatar
      Add numeric names for the presets (0==ultrafast ... 9==placebo) · 3d96daca
      Loren Merritt authored
      This mapping will of course change if new presets are added in between, but will always be ordered from fastest to slowest.
      3d96daca
  8. 10 Oct, 2010 1 commit
    • Yusuke Nakamura's avatar
      Move DTS compression from libx264 to x264cli · e4b44c2e
      Yusuke Nakamura authored
      DTS compression is an ugly stupid hack and starting to encroach on unrelated areas like VBV.
      Some people want it in the mp4 muxer for devices and/or splitters that don't support Edit Boxes.
      We just say "throw these broken devices out the window".
      DTS compression will remain as a muxer option, --dts-compress, at the user's own risk.
      This option is disabled by default.
      e4b44c2e
  9. 28 Sep, 2010 1 commit
    • Oskar Arvidsson's avatar
      Finish support for high-depth video throughout x264 · 0467589e
      Oskar Arvidsson authored
      Add support for high depth input in libx264.
      Add support for 16-bit colorspaces in the filtering system.
      Add support for input bit depths in the interval [9,16] with the raw demuxer.
      Add a depth filter to dither input to x264.
      0467589e
  10. 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
  11. 03 Sep, 2010 1 commit
    • Takashi Hirata's avatar
      Add support for level 1b · ceba5dd5
      Takashi Hirata authored
      This level is a stupid hack in the H.264 spec, so it's a stupid hack in x264 too.
      Since level is an integer, calling applications need to set level_idc=9 to use it.
      String-based option handling will accept "1b" just fine though, so CLI users don't have to worry.
      ceba5dd5
  12. 15 Jul, 2010 2 commits
    • 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
    • Fiona Glaser's avatar
      Improve scenecut detection a bit · b4217e40
      Fiona Glaser authored
      Put a minimum value on the scenecut threshold; makes x264 more likely to catch successive scenecuts (but might increase the odds of false detection).
      This also fixes scenecut detection with keyint=infinite.
      Also print keyint=infinite in the x264 SEI and statsfile correctly.
      b4217e40
  13. 04 Jul, 2010 1 commit
    • Oskar Arvidsson's avatar
      Support for 9 and 10-bit encoding · c91f43a4
      Oskar Arvidsson authored
      Output bit depth is specified on compilation time via --bit-depth.
      There is currently almost no assembly code available for high-bit-depth modes, so encoding will be very slow.
      Input is still 8-bit only; this will change in the future.
      
      Note that very few H.264 decoders support >8 bit depth currently.
      Also note that the quantizer scale differs for higher bit depth.  For example, for 10-bit, the quantizer (and crf) ranges from 0 to 63 instead of 0 to 51.
      c91f43a4
  14. 03 Jul, 2010 1 commit
    • Fiona Glaser's avatar
      Support infinite keyint (--keyint infinite). · b7789b1f
      Fiona Glaser authored
      This just means x264 won't insert non-scenecut keyframes.
      Useful for streaming when using interactive error recovery or some other mechanism that makes keyframes unnecessary.
      
      Also change POC logic to limit POC/framenum LSB size (to save bits per slice).
      Also fix a bug in the CPB underflow detection code (didn't affect the bitstream, just resulted in the failure to print certain warning messages).
      b7789b1f
  15. 25 Jun, 2010 4 commits
    • Fiona Glaser's avatar
      Interactive encoder control: error resilience · edc1135e
      Fiona Glaser authored
      In low-latency streaming with few clients, it is often feasible to modify encoder behavior in some fashion based on feedback from clients.
      One possible application of this is error resilience: if a packet is lost, mark the associated frame (and any referenced from it) as lost.
      This allows quick recovery from errors with minimal expense bit-wise.
      
      The new i_dpb_size parameter allows a calling application to tell x264 to use a larger DPB size than required by the number of reference frames.
      This lets x264 and the client keep a large buffer of old references to fall back to in case of lost frames.
      If no recovery is possible even with the available buffer, x264 will force a keyframe.
      
      This initial version does not support B-frames or intra refresh.
      Recommended usage is to set keyint to a very large value, so that keyframes do not occur except as necessary for extreme error recovery.
      
      Full documentation is in x264.h.
      
      Move DTS/PTS calculation to before encoding each frame instead of after.
      Improve documentation of x264_encoder_intra_refresh.
      edc1135e
    • Fiona Glaser's avatar
      Lookaheadless MB-tree support · 669cc1de
      Fiona Glaser authored
      Uses past motion information instead of future data from the lookahead.
      Not as accurate, but better than nothing in zero-latency compression when a lookahead isn't available.
      Currently resets on keyframes, so only available if intra-refresh is set, to avoid pops on non-scenecut keyframes.
      Not on by default with any preset/tune combination; must be enabled explicitly if --tune zerolatency is used.
      
      Also slightly modify encoding presets: disable rc-lookahead in the fastest presets.
      Enable MB-tree in "veryfast", albeit with a very short lookahead.
      669cc1de
    • Lamont Alston's avatar
      Open-GOP support · d020c427
      Lamont Alston authored
      Allows B-frames immediately prior to keyframes (in display order).
      This helps reduce keyframe popping and improve compression with short keyframe intervals.
      Due to a staggering display of braindamage in the Blu-ray spec, two open-GOP modes are available.
      The two modes calculate keyframe interval differently: one based on coded distance and one based on display distance.
      The latter is superior compression-wise, but for no comprehensible reason, Blu-ray requires the former if open-GOP is used.
      d020c427
    • Fiona Glaser's avatar
      Improve HRD accuracy · 5a57688f
      Fiona Glaser authored
      In a staggering display of brain damage, the spec requires all HRD math to be done in infinite precision despite the output being of quite limited precision.
      Accordingly, convert buffer management to work in units of timescale.
      These accumulating rounding errors probably didn't cause any real problems, but might in theory cause issues in very picky muxers on extremely long-running streams.
      5a57688f
  16. 14 Jun, 2010 2 commits
  17. 09 Jun, 2010 2 commits
  18. 02 Jun, 2010 3 commits
    • Fiona Glaser's avatar
      Add API function to fix x264_picture_t initialization · 36bbd4d2
      Fiona Glaser authored
      Calling applications that do not use x264_picture_alloc need to use x264_picture_init to initialize x264_picture_t structures.
      Previously, if the calling application didn't zero x264_picture_t, Bad Things could happen.
      36bbd4d2
    • Fiona Glaser's avatar
      Add API tool to apply arbitrary quantizer offsets · 7adf25b1
      Fiona Glaser authored
      The calling application can now pass a "map" of quantizer offsets to apply to each frame.
      An optional callback to free the map can also be included.
      This allows all kinds of flexible region-of-interest coding and similar.
      7adf25b1
    • Fiona Glaser's avatar
      x86 assembly code for NAL escaping · 6589ad6d
      Fiona Glaser authored
      Up to ~10x faster than C depending on CPU.
      Helps the most at very high bitrates (e.g. lossless).
      Also make the C code faster and simpler.
      6589ad6d
  19. 31 May, 2010 1 commit
  20. 21 May, 2010 1 commit
    • Kieran Kunhya's avatar
      Add "Fake interlaced" option · 2b61248f
      Kieran Kunhya authored
      This encodes all frames progressively yet flags the stream as interlaced.
      This makes it possible to encode valid 25p and 30p Blu-Ray streams.
      Also put the pulldown help section in a more appropriate place.
      2b61248f
  21. 17 May, 2010 1 commit
  22. 06 May, 2010 2 commits
    • Fiona Glaser's avatar
      Deduplicate asm constants, automate name prefixing · 311c4bb1
      Fiona Glaser authored
      Auto-prefix global constants with x264_ in cextern.
      Eliminate x264_ prefix from asm files; automate it in cglobal.
      Deduplicate asm constants wherever possible to save data cache (move them to a new const-a.asm).
      Remove x264_emms() entirely on non-x86 (don't even call an empty function).
      Add cextern_naked for a non-prefixed cextern (used in checkasm).
      311c4bb1
    • Fiona Glaser's avatar
      Make options SEI use weight* instead of wpred* · c490e416
      Fiona Glaser authored
      More intuitive and maps more reasonably to the CLI options.
      Breaks statsfile backwards-compatibility.
      c490e416
  23. 23 Apr, 2010 1 commit
    • Fiona Glaser's avatar
      Fix issues with extremely large timebases · d48c3809
      Fiona Glaser authored
      With timebase denominators >= 2^30 , x264 would silently overflow and cause odd issues.
      Now x264 will explicitly fail with timebase denominators >= 2^31 and work with timebase denominators 2^31 > x >= 2^30.
      d48c3809
  24. 14 Apr, 2010 1 commit
  25. 11 Apr, 2010 1 commit
  26. 05 Apr, 2010 2 commits
  27. 31 Mar, 2010 1 commit
  28. 27 Mar, 2010 1 commit
    • Fiona Glaser's avatar
      New "superfast" preset, much faster intra analysis · 0b720fee
      Fiona Glaser authored
      Especially at the fastest settings, intra analysis was taking up the majority of MB analysis time.
      This patch takes a ton more shortcuts at the fastest encoding settings, decreasing compression 0.5-5% but improving speed greatly.
      Also rearrange the fastest presets a bit: now we have ultrafast, superfast, veryfast, faster.
      superfast is the old veryfast (but much faster due to this patch).
      veryfast is between the old veryfast and faster.
      faster is the same as before except with MB-tree on.
      
      Encoding with subme >= 5 should be unaffected by this patch.
      0b720fee