1. 10 Jul, 2011 2 commits
  2. 15 Jun, 2011 2 commits
  3. 12 May, 2011 5 commits
  4. 25 Jan, 2011 1 commit
  5. 10 Jan, 2011 2 commits
  6. 19 Nov, 2010 1 commit
  7. 10 Nov, 2010 1 commit
    • 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
  8. 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
  9. 19 Sep, 2010 2 commits
  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. 16 Jul, 2010 1 commit
    • Loren Merritt's avatar
      Prevent some cases of cache aliasing. · b9dd9cfb
      Loren Merritt authored
      Avoid cases where image strides were a large power of 2.
      Core 2: +3% speed at widths 898..960, +6% at widths 1922..1984, most other resolutions unaffected.
      Nehalem and AMD: similar amount of speedup, but fewer resolutions affected.
      b9dd9cfb
  12. 15 Jul, 2010 3 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
    • Steven Walters's avatar
      Add video filtering system to x264cli · c58954cc
      Steven Walters authored
      Similar to mplayer's -vf system.
      Supports some basic operations like resizing and cropping.  Will support more in the future.
      See the help for more details.
      c58954cc
    • Fiona Glaser's avatar
      Eliminate edge cases for MV predictors · da978ebe
      Fiona Glaser authored
      Saves a few clocks in mv pred.
      da978ebe
  13. 25 Jun, 2010 2 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
    • Steven Walters's avatar
      Use threadpools to avoid unnecessary thread creation · 81cada8e
      Steven Walters authored
      Tiny performance improvement with fast settings and lots of threads.
      May help more on some OSs with slow thread creation, like OS X.
      Unify inconsistent synchronized abbreviations to sync.
      81cada8e
  14. 09 Jun, 2010 3 commits
  15. 02 Jun, 2010 1 commit
  16. 06 May, 2010 3 commits
    • Fiona Glaser's avatar
      Don't force row QPs to integer values with VBV · 9ce27834
      Fiona Glaser authored
      VBV should no longer raise the bitrate of the video.  That is, at a given quality level or average bitrate, turning on VBV should only lower the bitrate.
      This isn't quite true if adaptive quant is off, but nobody should be doing that anyways.
      Also may result in slightly more accurate per-row VBV ratecontrol.
      9ce27834
    • Fiona Glaser's avatar
      Improve temporal MV prediction · 94123d65
      Fiona Glaser authored
      Predict based on the results of p16x16 search, not final MVs.
      This lets us get predictions even if mode decision chose intra.
      Also improves cache coherency.
      94123d65
    • Fiona Glaser's avatar
      Error out on invalid input stride · 15c02c2d
      Fiona Glaser authored
      Might catch some crashes due to buggy calling applications.
      15c02c2d
  17. 29 Apr, 2010 1 commit
  18. 23 Apr, 2010 3 commits
  19. 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
  20. 27 Mar, 2010 2 commits
    • Henrik Gramner's avatar
      Pad non-mod16 resolutions using the correct field · 774dbb47
      Henrik Gramner authored
      Improves compression of interlaced videos with non-mod16 heights.
      774dbb47
    • Kieran Kunhya's avatar
      Blu-ray support: NAL-HRD, VFR ratecontrol, filler, pulldown · bb9b16b4
      Kieran Kunhya authored
      x264 can now generate Blu-ray-compliant streams for authoring Blu-ray Discs!
      Compliance tested using Sony BD-ROM Verifier 1.21.
      Thanks to The Criterion Collection for sponsoring compliance testing!
      
      An example command, using constant quality mode, for 1080p24 content:
      x264 --crf 16 --preset veryslow --tune film --weightp 0 --bframes 3 --nal-hrd vbr --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 24 --b-pyramid strict --slices 4 --aud --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 <input> -o <output>
      
      This command is much more complicated than usual due to the very complicated restrictions the Blu-ray spec has.
      Most options after "tune" are required by the spec.
      --weightp 0 is not, but there are known bugged Blu-ray player chipsets (Mediatek, notably) that will decode video with --weightp 1 or 2 incorrectly.
      Furthermore, note the Blu-ray spec has very strict limitations on allowed resolution/fps combinations.
      Examples include 1080p @ 24000/1001fps (NTSC FILM) and 720p @ 60000/1001fps.
      
      Detailed features introduced in this patch:
      
      Full NAL-HRD compliance, with both VBR (no filler) and CBR (filler) modes.
      Can be enabled with --nal-hrd vbr/cbr.
      libx264 now returns HRD timing information to the caller in the form of an x264_hrd_t.
      x264cli doesn't currently use it, but this information is critical for compliant TS muxing.
      
      Full VFR ratecontrol support: VBV, 1-pass ABR, and 2-pass modes.
      This means that, even without knowing the average framerate, x264 can achieve a correct bitrate in target bitrate modes.
      Note that this changes the statsfile format; first pass encodes make before this patch will have to be re-run.
      
      Pulldown support: libx264 allows the calling application to specify a pulldown mode for each frame.
      This is similar to the way that RFFs (Repeat Field Flags) work in MPEG-2.
      Note that libx264 does not modify timestamps: it assumes the calling application has set timestamps correctly for pulldown!
      x264cli contains an example implementation of caller-side pulldown code.
      
      Pic_struct support: necessary for pulldown and allows interlaced signalling.
      Also signal TFF vs BFF with delta_poc_bottom: should significantly improve interlaced compression.
      --tff and --bff should be preferred to the old --interlaced in order to tell x264 what field order to use.
      
      Huge thanks to Alex Giladi and Lamont Alston for their work on code that eventually became part of this patch.
      bb9b16b4
  21. 25 Feb, 2010 1 commit
  22. 23 Feb, 2010 1 commit