1. 18 Oct, 2008 1 commit
  2. 03 Oct, 2008 1 commit
    • Fiona Glaser's avatar
      Resolve quality regression in r996 · be4be30f
      Fiona Glaser authored
      Accidentally removed the wrong line of code.  I think this classifies as a "10l".
      Thanks to techouse for initial bug report and skystrife for helping me find it.
  3. 02 Oct, 2008 1 commit
    • Fiona Glaser's avatar
      Rework subme system, add RD refinement in B-frames · 60455fff
      Fiona Glaser authored
      The new system is as follows: subme6 is RD in I/P frames, subme7 is RD in all frames, subme8 is RD refinement in I/P frames, and subme9 is RD refinement in all frames.
      subme6 == old subme6, subme7 == old subme6+brdo, subme8 == old subme7+brdo, subme9 == no equivalent
      --b-rdo has, accordingly, been removed.  --bime has also been removed, and instead enabled automatically at subme >= 5.
      RD refinement in B-frames (subme9) includes both qpel-RD and an RD version of bime.
  4. 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.
  5. 22 Sep, 2008 1 commit
    • Fiona Glaser's avatar
      Fix deblocking + threads + AQ bug · cd591912
      Fiona Glaser authored
      At low QPs, with threads and deblocking on, deblocking could be improperly disabled.
      Revision in which this bug was introduced is unknown; it may be as old as b_variable_qp in x264 itself.
  6. 21 Sep, 2008 2 commits
  7. 20 Sep, 2008 3 commits
  8. 19 Sep, 2008 1 commit
  9. 17 Sep, 2008 1 commit
  10. 16 Sep, 2008 3 commits
    • Gabriel Bouvigne's avatar
      Correct misprediction of bitrate in threaded mode · d8163ffd
      Gabriel Bouvigne authored
      Improves bitrate accuracy in cases with large numbers of threads.
      Loosely based on a patch by BugMaster.
    • Gabriel Bouvigne's avatar
      Fix a case in which VBV underflows can occur · 08e737d1
      Gabriel Bouvigne authored
      Fix a potential case where a frame might be initially allocated too low a QP, which would then have to be raised a low during row-based ratecontrol.
      In some cases, this could even produce VBV underflows in 2pass mode.
    • Fiona Glaser's avatar
      Cache motion vectors in lowres lookahead · c299b7d8
      Fiona Glaser authored
      This vastly speeds up b-adapt 2, especially at large bframes values.
      This changes output because now MV prediction in lookahead only uses L0/L1 MVs, not bidir.  This isn't a problem, since the bidir prediction wasn't really correct to begin with, so the change in output is neither positive nor negative.
      This also allowed the removal of some unnecessary memsets, which should also give a small speed boost.
      Finally, this allows the use of the lowres motion vectors for predictors in some future patch.
  11. 15 Sep, 2008 4 commits
    • Fiona Glaser's avatar
    • Loren Merritt's avatar
      hadamard_ac for psy-rd · a8cb7662
      Loren Merritt authored
      c version is 1.7x faster than satd+sa8d+sad
      ssse3 version is 2.3x faster than satd+sa8d+sad
    • 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.
    • 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).
  12. 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!
  13. 10 Sep, 2008 1 commit
  14. 05 Sep, 2008 3 commits
  15. 01 Sep, 2008 1 commit
  16. 30 Aug, 2008 2 commits
  17. 27 Aug, 2008 2 commits
  18. 25 Aug, 2008 1 commit
    • Gabriel Bouvigne's avatar
      Improve VBV accuracy · 59de6938
      Gabriel Bouvigne authored
      Don't use the previous frame's row SATD as a predictor if it is too different from this frame's row SATD.
  19. 21 Aug, 2008 3 commits
  20. 16 Aug, 2008 2 commits
  21. 09 Aug, 2008 2 commits
  22. 30 Jul, 2008 3 commits