1. 11 Dec, 2008 1 commit
    • Fiona Glaser's avatar
      Much faster CAVLC residual coding · 99448f6c
      Fiona Glaser authored
      Use a VLC table for common levelcodes instead of constructing them on-the-spot
      Branchless version of i_trailing calculation (2x faster on Nehalem)
      Completely remove array_non_zero_count and instead use the count calculated in level/run coding.  Note: this slightly changes output with subme > 7 due to different nonzero counts being stored during qpel RD.
      99448f6c
  2. 30 Nov, 2008 1 commit
  3. 29 Nov, 2008 1 commit
  4. 28 Nov, 2008 2 commits
    • Fiona Glaser's avatar
      10L in r1041 · df72b08c
      Fiona Glaser authored
      df72b08c
    • Fiona Glaser's avatar
      Significantly faster CABAC and CAVLC residual coding and bit cost calculation · c1d73389
      Fiona Glaser authored
      Early-terminate in residual writing using stored nnz counts
      To allow the above, store nnz counts for luma and chroma DC
      Add assembly functions to find the last nonzero coefficient in a block
      Overall ~1.9% faster at subme9+8x8dct+qp25 with CAVLC, ~0.7% faster with CABAC
      Note this changes output slightly with CABAC RDO because it requires always storing correct nnz values during RDO, which wasn't done before in cases it wasn't useful.
      CAVLC output should be equivalent.
      c1d73389
  5. 27 Nov, 2008 1 commit
  6. 25 Nov, 2008 2 commits
  7. 11 Nov, 2008 1 commit
  8. 10 Nov, 2008 2 commits
    • Fiona Glaser's avatar
      Faster chroma encoding · be121180
      Fiona Glaser authored
      9-12% faster chroma encode.
      Move all functions for handling chroma DC that don't have assembly versions to macroblock.c and inline them, along with a few other tweaks.
      be121180
    • Fiona Glaser's avatar
      Various cosmetics and minor fixes · ae51235d
      Fiona Glaser authored
      Disable hadamard_ac sse2/ssse3 under stack_mod4
      Fix one MSVC compilation warning
      Fix compilation in debug mode in certain cases on x64
      Remove eval.c from MSVC project
      Fix crash when VBV is used in CQP mode
      Patches by MasterNobody
      ae51235d
  9. 09 Nov, 2008 1 commit
    • Fiona Glaser's avatar
      Faster b-adapt + adaptive quantization · 0c841de6
      Fiona Glaser authored
      Factor out pow to be only called once per macroblock.  Speeds up b-adapt, especially b-adapt 2, considerably.
      Speed boost is as high as 24% with b-adapt 2 + b-frames 16.
      0c841de6
  10. 07 Nov, 2008 1 commit
  11. 06 Nov, 2008 1 commit
  12. 05 Nov, 2008 3 commits
  13. 29 Oct, 2008 1 commit
    • Fiona Glaser's avatar
      Full sub8x8 RD mode decision · fb1af79e
      Fiona Glaser authored
      Small speed penalty with p4x4 enabled, but significant quality gain at subme >= 6
      As before, gain is proportional to the amount of p4x4 actually useful in a given input at the given bitrate.
      fb1af79e
  14. 27 Oct, 2008 1 commit
    • Fiona Glaser's avatar
      Optimize CABAC bit cost calculation · e09f55cc
      Fiona Glaser authored
      Speed up cabac mvd and add new precalculated transition/entropy table.
      Add "noup" function for cabac operations to not update the state table when it isn't necessary.
      1-3% faster macroblock_size_cabac.
      Cosmetics
      e09f55cc
  15. 23 Oct, 2008 1 commit
  16. 22 Oct, 2008 8 commits
  17. 18 Oct, 2008 2 commits
  18. 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.
      be4be30f
  19. 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.
      60455fff
  20. 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
  21. 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.
      cd591912
  22. 21 Sep, 2008 2 commits
  23. 20 Sep, 2008 3 commits
  24. 19 Sep, 2008 1 commit