1. 28 Sep, 2008 1 commit
    • Fiona Glaser's avatar
      Replace High 4:4:4 profile lossless with High 4:4:4 Predictive. · a9e86d24
      Fiona Glaser authored
      This improves lossless compression by about 4-25% depending on source.
      The benefit is generally higher for intra-only compression.
      Also add support for 8x8dct and i8x8 blocks in lossless mode; this improves compression very slightly.
      In some rare cases 8x8dct can hurt compression in lossless mode, but its usually helpful, albeit marginally.
      Note that 8x8dct is only available with CABAC as it is never useful with CAVLC.
      High 4:4:4 Predictive replaced the previous profile in a 2007 revision to the H.264 standard.
      The only known compliant decoder for this profile is the latest version of CoreAVC.
      As I write this, JM does not actually correctly decode this profile.
      Hopefully this lack of support will soon change with this commit, as x264 will be (to my knowledge) the first compliant encoder.
      a9e86d24
  2. 15 Sep, 2008 2 commits
    • Fiona Glaser's avatar
      Psychovisually optimized rate-distortion optimization and trellis · ecc9bfab
      Fiona Glaser authored
      The latter, psy-trellis, is disabled by default and is reserved as experimental; your mileage may vary.
      Default subme is raised to 6 so that psy RD is on by default.
      ecc9bfab
    • Fiona Glaser's avatar
      Add optional more optimal B-frame decision method · 95ed2720
      Fiona Glaser authored
      This method (--b-adapt 2) uses a Viterbi algorithm somewhat similar to that used in trellis quantization.
      Note that it is not fully optimized and is very slow with large --bframes values.
      It also takes into account weightb, which should improve fade detection.
      Additionally, changes were made to cache lowres intra results for each frame to avoid recalculating them.  This should improve performance in both B-frame decision methods.
      This can also be done for motion vectors, which will dramatically improve b-adapt 2 performance when it is complete.
      This patch also reads b_adapt and scenecut settings from the first pass so that the x264 header information in the output file will have correct information (since frametype decision is only done on the first pass).
      95ed2720
  3. 14 Sep, 2008 1 commit
    • Fiona Glaser's avatar
      Move adaptive quantization to before ratecontrol, eliminate qcomp bias · 80458ffc
      Fiona Glaser authored
      This change improves VBV accuracy and improves bit distribution in CRF and 2pass.
      Instead of being applied after ratecontrol, AQ becomes part of the complexity measure that ratecontrol uses.
      This allows for modularity for changes to AQ; a new AQ algorithm can be introduced simply by introducing a new aq_mode and a corresponding if in adaptive_quant_frame.
      This also allows quantizer field smoothing, since quantizers are calculated beofrehand rather during encoding.
      Since there is no more reason for it, aq_mode 1 is removed.  The new mode 1 is in a sense a merger of the old modes 1 and 2.
      WARNING: This change redefines CRF when using AQ, so output bitrate for a given CRF may be significantly different from before this change!
      80458ffc
  4. 05 Sep, 2008 2 commits
  5. 30 Aug, 2008 2 commits
  6. 21 Aug, 2008 2 commits
  7. 16 Aug, 2008 1 commit
  8. 09 Aug, 2008 1 commit
  9. 30 Jul, 2008 1 commit
  10. 26 Jul, 2008 1 commit
  11. 24 Jul, 2008 1 commit
  12. 18 Jul, 2008 1 commit
  13. 12 Jul, 2008 1 commit
  14. 11 Jul, 2008 2 commits
  15. 10 Jul, 2008 2 commits
    • Fiona Glaser's avatar
      Fix and enable I_PCM macroblock support · 6b4ad5f5
      Fiona Glaser authored
      In RD mode, always consider PCM as a macroblock mode possibility
      Fix bitstream writing for PCM blocks in CAVLC and CABAC, and a few other minor changes to make PCM work.
      PCM macroblocks improve compression at very low QPs (1-5) and in lossless mode.
      6b4ad5f5
    • Fiona Glaser's avatar
      faster bs_write · ab90da74
      Fiona Glaser authored
      ab90da74
  16. 04 Jul, 2008 1 commit
    • Fiona Glaser's avatar
      Update file headers throughout x264 · bdbd4fe7
      Fiona Glaser authored
      Update "Authors" lists based on actual authorship; highest is most important
      Update copyright notices and remove old CVS tags from file headers
      Add file headers to GTK and other sections missing them
      Update FSF address
      Other header-related cosmetics
      bdbd4fe7
  17. 24 Jun, 2008 1 commit
  18. 18 Jun, 2008 1 commit
  19. 15 Jun, 2008 1 commit
  20. 08 Jun, 2008 1 commit
    • Loren Merritt's avatar
      many changes to which asm functions are enabled on which cpus. · c0c0e1f4
      Loren Merritt authored
      with Phenom, 3dnow is no longer equivalent to "sse2 is slow", so make a new flag for that.
      some sse2 functions are useful only on Core2 and Phenom, so make a "sse2 is fast" flag for that.
      some ssse3 instructions didn't become useful until Penryn, so yet another flag.
      disable sse2 completely on Pentium M and Core1, because it's uniformly slower than mmx.
      enable some sse2 functions on Athlon64 that always were faster and we just didn't notice.
      remove mc_luma_sse3, because the only cpu that has lddqu (namely Pentium 4D) doesn't have "sse2 is fast".
      don't print mmx1, sse1, nor 3dnow in the detected cpuflags, since we don't really have any such functions. likewise don't print sse3 unless it's used (Pentium 4D).
      c0c0e1f4
  21. 03 Jun, 2008 2 commits
  22. 02 Jun, 2008 2 commits
    • Gabriel Bouvigne's avatar
      2-pass VBV support and improved VBV handling · 56f2bc89
      Gabriel Bouvigne authored
      Dramatically improves 1-pass VBV ratecontrol (especially CBR) and provides support for VBV in 2-pass mode.  This consists of a series of functions that attempts to find overflows and underflows in the VBV from the first-pass statsfile and fix them before encoding.
      1-pass VBV code partially by Fiona Glaser.
      56f2bc89
    • Alexander Strange's avatar
      Fix noise reduction in threaded mode. · 344cb169
      Alexander Strange authored
      Previously enabling noise reduction with threads had no effect.
      Note that this is not an optimal solution; each thread still tracks noise reducation separately (unlike in single-threaded mode).
      344cb169
  23. 21 May, 2008 1 commit
  24. 20 May, 2008 1 commit
  25. 14 May, 2008 1 commit
  26. 27 Apr, 2008 2 commits
  27. 21 Apr, 2008 1 commit
  28. 30 Mar, 2008 1 commit
  29. 27 Jan, 2008 3 commits