1. 09 Jan, 2013 1 commit
  2. 04 Feb, 2012 1 commit
  3. 15 Jan, 2012 2 commits
    • Loren Merritt's avatar
    • Loren Merritt's avatar
      CABAC trellis opts part 2: C optimizations · 4abcf60a
      Loren Merritt authored
      Hoist the branch on coef value out of the loop over node contexts.
      Special cases for each possible coef value (0,1,n).
      Special case for dc-only blocks.
      Template the main loop for two common subsets of nodes, to avoid a bunch of branches about which nodes are live.
      Use the nonupdating version of cabac_size_decision in more cases, and omit those bins from the node struct.
      CABAC offsets are now compile-time constants.
      Change TRELLIS_SCORE_MAX from a specific constant to anything negative, which is cheaper to test.
      Remove dct_weight2_zigzag[], since trellis has to lookup zigzag[] anyway.
      60% faster on x86_64.
      25k->18k codesize.
  4. 21 Sep, 2011 1 commit
  5. 22 Jul, 2011 1 commit
  6. 12 May, 2011 1 commit
  7. 25 Jan, 2011 1 commit
  8. 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.
  9. 02 Jun, 2010 2 commits
  10. 12 Oct, 2009 1 commit
    • Loren Merritt's avatar
      change all dct arrays to 1d. · 1fbba0ca
      Loren Merritt authored
      the C standard doesn't allow you to iterate 1-dimensionally over 2d arrays, and nothing other than the dsp functions themselves cares about the 2dness of dct.
      this fixes a miscompilation in x264_mb_optimize_chroma_dc.
  11. 10 Jul, 2009 1 commit
  12. 03 Jul, 2009 1 commit
    • Fiona Glaser's avatar
      Early termination for chroma encoding · 205a032c
      Fiona Glaser authored
      Faster chroma encoding by terminating early if heuristics indicate that the block will be DC-only.
      This works because the vast majority of inter chroma blocks have no coefficients at all, and those that do are almost always DC-only.
      Add two new helper DSP functions for this: dct_dc_8x8 and var2_8x8.  mmx/sse2/ssse3 versions of each.
      Early termination is disabled at very low QPs due to it not being useful there.
      Performance increase is ~1-2% without trellis, up to 5-6% with trellis=2.
      Increase is greater with lower bitrates.
  13. 03 Feb, 2009 1 commit
    • Fiona Glaser's avatar
      Faster 8x8dct+CAVLC interleave · ded3e28c
      Fiona Glaser authored
      Integrate array_non_zero with the CAVLC 8x8dct interleave function.
      Roughly 1.5-2x faster than the original separate array_non_zero method.
  14. 30 Jan, 2009 1 commit
    • Fiona Glaser's avatar
      Massive overhaul of nnz/cbp calculation · e394bd60
      Fiona Glaser authored
      Modify quantization to also calculate array_non_zero.
      PPC assembly changes by gpoirior.
      New quant asm includes some small tweaks to quant and SSE4 versions using ptest for the array_non_zero.
      Use this new feature of quant to merge nnz/cbp calculation directly with encoding and avoid many unnecessary calls to dequant/zigzag/decimate/etc.
      Also add new i16x16 DC-only iDCT with asm.
      Since intra encoding now directly calculates nnz, skip_intra now backs up nnz/cbp as well.
      Output should be equivalent except when using p4x4+RDO because of a subtlety involving old nnz values lying around.
      Performance increase in macroblock_encode: ~18% with dct-decimate, 30% without at CRF 25.
      Overall performance increase 0-6% depending on encoding settings.
  15. 27 Jan, 2009 1 commit
    • Fiona Glaser's avatar
      Much faster chroma encoding and other opts · 83d805fe
      Fiona Glaser authored
      ~15% faster chroma encode by reorganizing CBP calculation and adding special-case idct_dc function, since most coded chroma blocks are DC-only.
      Small optimization in cache_save (skip_bp)
      Fix array_non_zero to not violate strict aliasing (should eliminate miscompilation issues in the future)
      Add in automatic substitutions for some asm instructions that have an equivalent smaller representation.
  16. 10 Nov, 2008 1 commit
    • 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.
  17. 23 Oct, 2008 1 commit
  18. 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.
  19. 15 Sep, 2008 1 commit
  20. 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
  21. 24 Apr, 2008 1 commit
  22. 22 Mar, 2008 1 commit
  23. 20 Mar, 2008 1 commit
  24. 02 Dec, 2007 1 commit
  25. 01 Oct, 2006 2 commits
  26. 24 Mar, 2006 1 commit
  27. 10 Jan, 2006 1 commit
  28. 03 Nov, 2005 1 commit
  29. 03 Jun, 2005 1 commit
  30. 14 Dec, 2004 1 commit
  31. 03 Jun, 2004 1 commit