1. 15 Sep, 2008 1 commit
    • 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).
  2. 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!
  3. 10 Sep, 2008 2 commits
  4. 06 Sep, 2008 1 commit
    • Fiona Glaser's avatar
      Revert part of r963 · 654e5498
      Fiona Glaser authored
      In some rare (but significant) cases, the optimized nal_encode algorithm gave incorrect results.
  5. 05 Sep, 2008 7 commits
  6. 02 Sep, 2008 1 commit
    • Fiona Glaser's avatar
      Improve progress indicator · fc36067b
      Fiona Glaser authored
      Show average bitrate so far during encoding
      Decrease update interval for longer encodes (max of 10 frames encoded between updates)
  7. 01 Sep, 2008 2 commits
  8. 31 Aug, 2008 1 commit
  9. 30 Aug, 2008 2 commits
  10. 27 Aug, 2008 2 commits
  11. 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.
  12. 22 Aug, 2008 2 commits
  13. 21 Aug, 2008 6 commits
  14. 20 Aug, 2008 1 commit
  15. 19 Aug, 2008 2 commits
  16. 16 Aug, 2008 2 commits
  17. 15 Aug, 2008 1 commit
    • Fiona Glaser's avatar
      Faster deblocking · ddee314e
      Fiona Glaser authored
      Early termination for bS=0, alpha=0, beta=0
      Refactoring, various other optimizations
      About 30% faster deblocking overall.
  18. 10 Aug, 2008 4 commits
  19. 09 Aug, 2008 1 commit
    • Fiona Glaser's avatar
      Prevent VBV from lowering quantizer too much · d17f473d
      Fiona Glaser authored
      This code seemed to act up unexpectedly sometimes, creating a situation where in 1-pass VBV mode, a frame's quantizer would drop all the way to qpmin and then shoot back upwards to qpmax, causing serious visual issues.
      This change may decrease bitrate in VBV mode, but that is preferable to the artifacting produced by this code.