]> granicus.if.org Git - libx264/log
libx264
16 years agoRemove nasm support
Fiona Glaser [Wed, 26 Nov 2008 00:30:39 +0000 (16:30 -0800)]
Remove nasm support
Nasm won't correctly parse the SSE4 code introduced a few revisions ago, so we're removing support.
Users should upgrade to yasm 0.6.1 or later.

16 years agoFix rare warning messages in ratecontrol due to r1020
BugMaster [Tue, 25 Nov 2008 23:11:24 +0000 (15:11 -0800)]
Fix rare warning messages in ratecontrol due to r1020

16 years agoFix MSVC compilation and clean up MSVC build file
BugMaster [Tue, 25 Nov 2008 23:10:43 +0000 (15:10 -0800)]
Fix MSVC compilation and clean up MSVC build file
Remove Release64 which never worked anyways.

16 years agoFaster width4 SSD+SATD, SSE4 optimizations
Fiona Glaser [Tue, 25 Nov 2008 09:04:26 +0000 (01:04 -0800)]
Faster width4 SSD+SATD, SSE4 optimizations
Do satd 4x8 by transposing the two blocks' positions and running satd 8x4.
Use pinsrd (SSE4) for faster width4 SSD
Globally replace movlhps with punpcklqdq (it seems to be faster on Conroe)
Move mask_misalign declaration to cpu.h to avoid warning in encoder.c.
These optimizations help on Nehalem, Phenom, and Penryn CPUs.

16 years agofix indentation, whitespace cleanup, more consistent indentation of macro backslashes
Guillaume Poirier [Tue, 25 Nov 2008 16:27:27 +0000 (17:27 +0100)]
fix indentation, whitespace cleanup, more consistent indentation of macro backslashes

16 years agoChange some macros to be more sensitive to memory alignment, thus avoiding
David Wolstencroft [Sat, 22 Nov 2008 16:54:38 +0000 (17:54 +0100)]
Change some macros to be more sensitive to memory alignment, thus avoiding
useless loads/stores and calculations of permutation vectors.
Affected functions are all of mc_luma, mc_chroma, 'get_ref', SATD, SA8D and deblock.
Gains globally vary from ~5% - 15% on a depending on settings running on a 1.42 ghz G4.

16 years agorefactor satd. 20KB smaller binary.
Loren Merritt [Fri, 7 Nov 2008 05:31:24 +0000 (05:31 +0000)]
refactor satd. 20KB smaller binary.
refactor sa8d. slightly faster.
more checkasm for hadamard.

16 years agoFix crash with threads and SSEMisalign on Phenom
Fiona Glaser [Tue, 25 Nov 2008 05:56:24 +0000 (21:56 -0800)]
Fix crash with threads and SSEMisalign on Phenom
Misalign mask needed to be set separately for each encoding thread.

16 years agoPhenom CPU optimizations
Fiona Glaser [Fri, 21 Nov 2008 11:39:11 +0000 (03:39 -0800)]
Phenom CPU optimizations
Faster hpel_filter by using unaligned loads instead of emulated PALIGNR
Faster hpel_filter on 64-bit by using the 32-bit version (the cost of emulated PALIGNR is high enough that the savings from caching intermediate values is not worth it).
Add support for misaligned_mask on Phenom: ~2% faster hpel_filter, ~4% faster width16 multisad, 7% faster width20 get_ref.
Replace width12 mmx with width16 sse on Phenom and Nehalem: 32% faster width12 get_ref on Phenom.
Merge cpu-32.asm and cpu-64.asm
Thanks to Easy123 for contributing a Phenom box for a weekend so I could write these optimizations.

16 years agoA few tweaks to decimate asm
Fiona Glaser [Fri, 21 Nov 2008 04:11:14 +0000 (20:11 -0800)]
A few tweaks to decimate asm
A little bit faster on both 32-bit and 64-bit

16 years agoNehalem optimization part 2: SSE2 width-8 SAD
Fiona Glaser [Thu, 13 Nov 2008 00:50:31 +0000 (16:50 -0800)]
Nehalem optimization part 2: SSE2 width-8 SAD
Helps a bit on Phenom as well
~25% faster width8 multiSAD on Nehalem

16 years agoAdd subme=0 (fullpel motion estimation only)
Fiona Glaser [Tue, 11 Nov 2008 07:34:02 +0000 (23:34 -0800)]
Add subme=0 (fullpel motion estimation only)
Only for experimental purposes and ultra-fast encoding.  Probably not a good idea for firstpass.

16 years agoFix minor memory leak in r1022
Fiona Glaser [Mon, 10 Nov 2008 23:34:48 +0000 (15:34 -0800)]
Fix minor memory leak in r1022

16 years agor1024 borked checkasm
Fiona Glaser [Mon, 10 Nov 2008 23:32:06 +0000 (15:32 -0800)]
r1024 borked checkasm
Remove idct/dct2x2 from checkasm as they are no longer in dctf

16 years agoFaster chroma encoding
Fiona Glaser [Mon, 10 Nov 2008 01:39:21 +0000 (17:39 -0800)]
Faster chroma encoding
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.

16 years agoVarious cosmetics and minor fixes
Fiona Glaser [Mon, 10 Nov 2008 01:34:31 +0000 (17:34 -0800)]
Various cosmetics and minor fixes
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

16 years agoFaster b-adapt + adaptive quantization
Fiona Glaser [Sun, 9 Nov 2008 04:16:17 +0000 (20:16 -0800)]
Faster b-adapt + adaptive quantization
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.

16 years agoFaster CABAC residual encoding
Fiona Glaser [Fri, 7 Nov 2008 19:39:43 +0000 (11:39 -0800)]
Faster CABAC residual encoding
6% faster block_residual_write_cabac in RD mode.

16 years agoFix potential crash in the case that the input statsfile is too short
Fiona Glaser [Thu, 6 Nov 2008 03:51:59 +0000 (19:51 -0800)]
Fix potential crash in the case that the input statsfile is too short
Also resolve various other potential weirdness (such as multiple copies of the same error message in threaded mode).

16 years agoInitial Nehalem CPU optimizations
Fiona Glaser [Wed, 5 Nov 2008 11:11:45 +0000 (03:11 -0800)]
Initial Nehalem CPU optimizations
movaps/movups are no longer equivalent to their integer equivalents on the Nehalem, so that substitution is removed.
Nehalem has a much lower cacheline split penalty than previous Intel CPUs, so cacheline workarounds are no longer necessary.
Thanks to Intel for providing Avail Media with the pre-release Nehalem CPU needed to prepare these (and other not-yet-committed) optimizations.
Overall speed improvement with Nehalem vs Penryn at the same clock speed is around 40%.

16 years agoFix potential infinite loop in VBV under GCC 4.2
Gabriel Bouvigne [Tue, 4 Nov 2008 17:56:03 +0000 (09:56 -0800)]
Fix potential infinite loop in VBV under GCC 4.2

16 years agoEncoder_reconfig: esa/tesa can only be enabled if they were on to begin with
Fiona Glaser [Tue, 4 Nov 2008 06:59:49 +0000 (22:59 -0800)]
Encoder_reconfig: esa/tesa can only be enabled if they were on to begin with
Bug report by kemuri-_9.

16 years agoFix bug in hadamard_ac SSE assembly
Loren Merritt [Thu, 30 Oct 2008 07:47:09 +0000 (00:47 -0700)]
Fix bug in hadamard_ac SSE assembly
Some extreme inputs could cause overflows.

16 years agoFull sub8x8 RD mode decision
Fiona Glaser [Wed, 29 Oct 2008 03:35:15 +0000 (20:35 -0700)]
Full sub8x8 RD mode decision
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.

16 years agoOptimize CABAC bit cost calculation
Fiona Glaser [Sat, 25 Oct 2008 08:50:08 +0000 (01:50 -0700)]
Optimize CABAC bit cost calculation
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

16 years agoReplace "git-command" with "git command" in version.sh for git 1.6 support
Anders Ossowicki [Fri, 24 Oct 2008 05:36:11 +0000 (22:36 -0700)]
Replace "git-command" with "git command" in version.sh for git 1.6 support

16 years agoAdd assembly version of CAVLC 8x8dct interleave
Loren Merritt [Thu, 23 Oct 2008 20:45:04 +0000 (13:45 -0700)]
Add assembly version of CAVLC 8x8dct interleave
Faster CAVLC encoding and RDO with 8x8dct

16 years agoAdd support for psy-rd/trellis to encoder_reconfig
Alexander Strange [Wed, 22 Oct 2008 22:55:30 +0000 (15:55 -0700)]
Add support for psy-rd/trellis to encoder_reconfig

16 years agoFix Darwin speed regression
Alexander Strange [Wed, 22 Oct 2008 22:00:43 +0000 (15:00 -0700)]
Fix Darwin speed regression

16 years agoFurther improve prediction of bitrate and VBV in threaded mode
Gabriel Bouvigne [Wed, 22 Oct 2008 21:48:47 +0000 (14:48 -0700)]
Further improve prediction of bitrate and VBV in threaded mode

16 years agoSub-8x8 Qpel-RD in P-frames
Fiona Glaser [Wed, 22 Oct 2008 20:37:09 +0000 (13:37 -0700)]
Sub-8x8 Qpel-RD in P-frames
Improves quality when using p8x4/p4x8/p4x4 subpartitions
Benefit is proportional to how many sub-8x8 partitions are used; helps most at high bitrates and low resolutions.

16 years agoFaster qpel-RD
Fiona Glaser [Wed, 22 Oct 2008 09:20:06 +0000 (02:20 -0700)]
Faster qpel-RD
3-4% faster qpel-RD; avoid re-checking bmv/pmv during the hex search.

16 years agoSome minor optimizations in RD refinement
Fiona Glaser [Wed, 22 Oct 2008 07:37:00 +0000 (00:37 -0700)]
Some minor optimizations in RD refinement
Don't write b subpartition in CABAC RDO
Calculate nonzero count in i4x4 CAVLC RDO

16 years agoFaster deblocking when p4x4 isn't used
Fiona Glaser [Wed, 22 Oct 2008 03:17:18 +0000 (20:17 -0700)]
Faster deblocking when p4x4 isn't used
Most of the MV checks can be skipped, resulting in faster strength calculation

16 years agoPrint profile and level information upon starting encode
Fiona Glaser [Wed, 22 Oct 2008 02:38:21 +0000 (19:38 -0700)]
Print profile and level information upon starting encode
Previously level was only printed as part of autodetect, and only in verbose mode.

16 years agoFix possible crash in trellis at very low QPs
Fiona Glaser [Wed, 22 Oct 2008 00:10:46 +0000 (17:10 -0700)]
Fix possible crash in trellis at very low QPs

16 years agoAdd assembly versions of decimate_score
Fiona Glaser [Tue, 21 Oct 2008 21:59:07 +0000 (14:59 -0700)]
Add assembly versions of decimate_score
3-7x faster decimation, 1-3% faster overall

16 years agoFix typo in subme8/9 lossless qpel-RD
Fiona Glaser [Sat, 18 Oct 2008 10:40:59 +0000 (03:40 -0700)]
Fix typo in subme8/9 lossless qpel-RD
Slightly improves compression.

16 years agoExtend trellis to support luma/chroma DC and chroma AC
Fiona Glaser [Thu, 16 Oct 2008 10:17:53 +0000 (03:17 -0700)]
Extend trellis to support luma/chroma DC and chroma AC
Small speed loss in trellis 1, slightly larger in trellis 2, but significant quality improvement.

16 years agorm gtk, avc2avi.
Loren Merritt [Fri, 3 Oct 2008 02:57:08 +0000 (20:57 -0600)]
rm gtk, avc2avi.
I don't remember why I allowed a gui into the repository in the first place. There's nothing that makes this one special relative to all the other x264 guis.
avc2avi doesn't compile since we removed the bitstream reader. And avc doesn't belong in avi.

16 years agoResolve quality regression in r996
Fiona Glaser [Fri, 3 Oct 2008 01:11:13 +0000 (18:11 -0700)]
Resolve quality regression in r996
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.

16 years agoFix minor memory leak accidentally added with the addition of b-adapt 2
Ralf Terdic [Thu, 2 Oct 2008 15:52:33 +0000 (08:52 -0700)]
Fix minor memory leak accidentally added with the addition of b-adapt 2

16 years agoRework subme system, add RD refinement in B-frames
Fiona Glaser [Wed, 1 Oct 2008 01:34:56 +0000 (18:34 -0700)]
Rework subme system, add RD refinement in B-frames
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.

16 years agoFix potential miscompilation of some inline asm
Fiona Glaser [Mon, 29 Sep 2008 07:11:38 +0000 (00:11 -0700)]
Fix potential miscompilation of some inline asm
Caused problems under some gcc 4.x versions with predictive lossless

16 years agoReplace High 4:4:4 profile lossless with High 4:4:4 Predictive.
Fiona Glaser [Sat, 27 Sep 2008 23:37:27 +0000 (16:37 -0700)]
Replace High 4:4:4 profile lossless with High 4:4:4 Predictive.
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.

16 years agoFix typo in progress indicator when using piped input
Fiona Glaser [Fri, 26 Sep 2008 16:19:56 +0000 (09:19 -0700)]
Fix typo in progress indicator when using piped input

16 years agoavg_weight_ssse3
Loren Merritt [Mon, 22 Sep 2008 10:17:35 +0000 (04:17 -0600)]
avg_weight_ssse3

16 years agofix bitstream writer on bigendian 64bit (regression in r903)
Loren Merritt [Sat, 20 Sep 2008 14:41:17 +0000 (08:41 -0600)]
fix bitstream writer on bigendian 64bit (regression in r903)

16 years agoremove authors whose code no longer exists
Loren Merritt [Sat, 20 Sep 2008 05:52:11 +0000 (23:52 -0600)]
remove authors whose code no longer exists

16 years agomore diagnostics when configure finds an unsuitable assembler
Loren Merritt [Mon, 15 Sep 2008 11:00:26 +0000 (05:00 -0600)]
more diagnostics when configure finds an unsuitable assembler

16 years agoMake x264 progress indicator more concise
Fiona Glaser [Fri, 26 Sep 2008 16:19:56 +0000 (09:19 -0700)]
Make x264 progress indicator more concise
Now the % indicator should be readable on the header of a minimized window on Windows systems.

16 years agoFix deblocking + threads + AQ bug
Fiona Glaser [Mon, 22 Sep 2008 05:17:34 +0000 (22:17 -0700)]
Fix deblocking + threads + AQ bug
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.

16 years agoResolve possible crash in bime, improve the fix in r985
Fiona Glaser [Sun, 21 Sep 2008 20:35:00 +0000 (13:35 -0700)]
Resolve possible crash in bime, improve the fix in r985

16 years agoFix rare crash issue in b-adapt
Fiona Glaser [Sun, 21 Sep 2008 02:36:07 +0000 (19:36 -0700)]
Fix rare crash issue in b-adapt
Regression *probably* in r979

16 years agoMerging Holger's GSOC branch part 1: hpel_filter speedups
Holger Lubitz [Sat, 20 Sep 2008 09:36:55 +0000 (02:36 -0700)]
Merging Holger's GSOC branch part 1: hpel_filter speedups

16 years agor980 borked weighted bime
Loren Merritt [Sat, 20 Sep 2008 18:31:10 +0000 (12:31 -0600)]
r980 borked weighted bime

16 years agoDisable I_PCM with psy-RD
Fiona Glaser [Sat, 20 Sep 2008 08:39:16 +0000 (01:39 -0700)]
Disable I_PCM with psy-RD
psy-RD seems to put the PCM threshold a bit lower than it should be, so PCM is now disabled under psy-RD.

16 years agoMerge avg and avg_weight
Fiona Glaser [Fri, 19 Sep 2008 16:21:34 +0000 (09:21 -0700)]
Merge avg and avg_weight
avg_weight no longer has to be special-cased in the code; faster weightb

16 years agoRewrite avg/avg_weight to take two source pointers
Fiona Glaser [Thu, 18 Sep 2008 04:25:05 +0000 (21:25 -0700)]
Rewrite avg/avg_weight to take two source pointers
This allows the use of get_ref instead of mc_luma almost everywhere for bipred

16 years agoUse low-resolution lookahead motion vectors as an extra predictor
Fiona Glaser [Wed, 17 Sep 2008 07:33:37 +0000 (00:33 -0700)]
Use low-resolution lookahead motion vectors as an extra predictor
Improves quality considerably (0-5%) in 1pass/CRF mode, especially with lower --me values and complex motion.
Reverses the order of lowres lookahead search to improve the usefulness of the extra predictors.

16 years agoAdd missing free() for f_qp_offset in frame.c
Fiona Glaser [Wed, 17 Sep 2008 05:44:10 +0000 (22:44 -0700)]
Add missing free() for f_qp_offset in frame.c

16 years agoCorrect misprediction of bitrate in threaded mode
Gabriel Bouvigne [Tue, 16 Sep 2008 08:54:37 +0000 (01:54 -0700)]
Correct misprediction of bitrate in threaded mode
Improves bitrate accuracy in cases with large numbers of threads.
Loosely based on a patch by BugMaster.

16 years agoFix a case in which VBV underflows can occur
Gabriel Bouvigne [Tue, 16 Sep 2008 08:53:02 +0000 (01:53 -0700)]
Fix a case in which VBV underflows can occur
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.

16 years agoUse correct format specifier for uint64_t
Panagiotis Issaris [Mon, 15 Sep 2008 18:47:50 +0000 (20:47 +0200)]
Use correct format specifier for uint64_t

16 years agoCache motion vectors in lowres lookahead
Fiona Glaser [Tue, 16 Sep 2008 07:31:26 +0000 (00:31 -0700)]
Cache motion vectors in lowres lookahead
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.

16 years agoFix regression in b-adapt patch: encoder_open failed for multipass encodes without...
Fiona Glaser [Mon, 15 Sep 2008 19:22:48 +0000 (12:22 -0700)]
Fix regression in b-adapt patch: encoder_open failed for multipass encodes without bframes.

16 years agoStop SAR in y4m input from overriding --sar on commandline
Fiona Glaser [Mon, 15 Sep 2008 17:53:29 +0000 (10:53 -0700)]
Stop SAR in y4m input from overriding --sar on commandline

16 years agohadamard_ac for psy-rd
Loren Merritt [Mon, 15 Sep 2008 08:24:12 +0000 (02:24 -0600)]
hadamard_ac for psy-rd
c version is 1.7x faster than satd+sa8d+sad
ssse3 version is 2.3x faster than satd+sa8d+sad

16 years agoPsychovisually optimized rate-distortion optimization and trellis
Fiona Glaser [Mon, 15 Sep 2008 04:36:45 +0000 (21:36 -0700)]
Psychovisually optimized rate-distortion optimization and trellis
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.

16 years agoAdd optional more optimal B-frame decision method
Fiona Glaser [Mon, 15 Sep 2008 01:18:15 +0000 (18:18 -0700)]
Add optional more optimal B-frame decision method
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).

16 years agoMove adaptive quantization to before ratecontrol, eliminate qcomp bias
Fiona Glaser [Sat, 13 Sep 2008 21:03:12 +0000 (14:03 -0700)]
Move adaptive quantization to before ratecontrol, eliminate qcomp bias
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!

16 years agoFix crash when using b-adapt at resolutions 32x32 or below.
Fiona Glaser [Wed, 10 Sep 2008 06:51:17 +0000 (23:51 -0700)]
Fix crash when using b-adapt at resolutions 32x32 or below.
Original patch by BugMaster, but was mostly rewritten in order to make b-adapt actually *work* at such resolutions, not merely stop crashing.

16 years agoAdd title-bar progress indicator under WIN32
Fiona Glaser [Wed, 10 Sep 2008 06:12:20 +0000 (23:12 -0700)]
Add title-bar progress indicator under WIN32
Also add bitrate-so-far output when piping data to x264 (total frames not known)
Patch mostly by recover from Doom9.

16 years agoRevert part of r963
Fiona Glaser [Sat, 6 Sep 2008 06:14:23 +0000 (23:14 -0700)]
Revert part of r963
In some rare (but significant) cases, the optimized nal_encode algorithm gave incorrect results.

16 years agoPredict 4x4_DC asm
Fiona Glaser [Fri, 5 Sep 2008 03:13:38 +0000 (20:13 -0700)]
Predict 4x4_DC asm
Also remove 5-year-old unnecessary #define that reduced speed unnecessarily under MSVC-compiled builds

16 years agoFaster NAL unit encoding and remove unused nal_decode
Fiona Glaser [Thu, 4 Sep 2008 07:43:54 +0000 (00:43 -0700)]
Faster NAL unit encoding and remove unused nal_decode
Small speedup at very high bitrates

16 years agoCAVLC cleanup and optimizations
Fiona Glaser [Thu, 4 Sep 2008 05:12:23 +0000 (22:12 -0700)]
CAVLC cleanup and optimizations
Also move some small functions in macroblock.c to a .h file so they can be inlined.

16 years agoFaster avg_weight assembly
Fiona Glaser [Thu, 4 Sep 2008 04:43:06 +0000 (21:43 -0700)]
Faster avg_weight assembly
Unrolling the loop a bit improves performance

16 years agoFaster H asm intra prediction functions
Fiona Glaser [Wed, 3 Sep 2008 22:35:22 +0000 (15:35 -0700)]
Faster H asm intra prediction functions
Take advantage of the H prediction method invented for merged intra SAD and apply it to regular prediction, too.

16 years agoAdd merged SAD for i16x16 analysis
Fiona Glaser [Wed, 3 Sep 2008 22:32:16 +0000 (15:32 -0700)]
Add merged SAD for i16x16 analysis
Roughly 30% faster i16x16 analysis under subme=1

16 years agoAdd sad_aligned for faster subme=1 mbcmp
Fiona Glaser [Wed, 3 Sep 2008 22:15:17 +0000 (15:15 -0700)]
Add sad_aligned for faster subme=1 mbcmp
Distinguish between unaligned and aligned uses of mbcmp
SAD_aligned, for MMX SADs, uses non-cacheline SADs.

16 years agoImprove progress indicator
Fiona Glaser [Tue, 2 Sep 2008 18:49:55 +0000 (11:49 -0700)]
Improve progress indicator
Show average bitrate so far during encoding
Decrease update interval for longer encodes (max of 10 frames encoded between updates)

16 years agoFix speed regression in r951
Fiona Glaser [Mon, 1 Sep 2008 17:35:41 +0000 (10:35 -0700)]
Fix speed regression in r951
Row SATDs are only necessary in VBV mode, so don't need to be checked if VBV is off.

16 years agozigzag asm
Holger Lubitz [Mon, 1 Sep 2008 02:55:50 +0000 (20:55 -0600)]
zigzag asm

16 years agofix SOFLAGS used when building gtk frontend
Guillaume Poirier [Sun, 31 Aug 2008 19:46:31 +0000 (21:46 +0200)]
fix SOFLAGS used when building gtk frontend
patch by Markus Kanet %darkvision A gmx P eu%

16 years agoremove the distinction between itex and ptex
Loren Merritt [Thu, 21 Aug 2008 02:56:56 +0000 (20:56 -0600)]
remove the distinction between itex and ptex
(changes 2pass statsfile format)

16 years agohardcode the ratecontrol equation, and remove the rceq option
Loren Merritt [Thu, 21 Aug 2008 02:51:39 +0000 (20:51 -0600)]
hardcode the ratecontrol equation, and remove the rceq option

16 years agoFix some uses of uninitialized row_satd values in VBV
Fiona Glaser [Wed, 27 Aug 2008 17:14:36 +0000 (13:14 -0400)]
Fix some uses of uninitialized row_satd values in VBV
Resolves some issues with QP51 in I-frames with scenecut

16 years agoActivate trellis in p8x8 qpel RD
Fiona Glaser [Tue, 26 Aug 2008 18:51:29 +0000 (14:51 -0400)]
Activate trellis in p8x8 qpel RD
Also clean up macroblock.c with some refactoring
Note that this change significantly reduces subme7+trellis2 performance, but improves quality.
Issue originally reported by Alex_W.

16 years agoImprove VBV accuracy
Gabriel Bouvigne [Mon, 25 Aug 2008 14:50:45 +0000 (10:50 -0400)]
Improve VBV accuracy
Don't use the previous frame's row SATD as a predictor if it is too different from this frame's row SATD.

16 years agoimprove generation of Darwin libraries
Guillaume Poirier [Fri, 22 Aug 2008 19:05:37 +0000 (21:05 +0200)]
improve generation of Darwin libraries
Patch by vmrsss %vmrsss A gmail P com%

16 years agoFix compilation in gcc 3.4.x (issue in r946)
Fiona Glaser [Fri, 22 Aug 2008 01:23:08 +0000 (21:23 -0400)]
Fix compilation in gcc 3.4.x (issue in r946)
Due to a bug in gcc 3.4.x, in certain cases of inlining, the array_non_zero_int_mmx inline asssembly is miscompiled and causes a crash with --subme 7 --8x8dct.
This minor hack fixes this issue.

16 years agoshut up various gcc warnings
Loic Le Loarer [Thu, 21 Aug 2008 10:19:24 +0000 (04:19 -0600)]
shut up various gcc warnings

16 years agofix a crash with invalid args and --thread-input (introduced in r921)
Loren Merritt [Thu, 21 Aug 2008 10:15:49 +0000 (04:15 -0600)]
fix a crash with invalid args and --thread-input (introduced in r921)

16 years agodrop support for x86_32 PIC.
Loren Merritt [Wed, 20 Aug 2008 11:36:32 +0000 (05:36 -0600)]
drop support for x86_32 PIC.

16 years agouse permute macros in satd
Loren Merritt [Tue, 19 Aug 2008 07:55:57 +0000 (01:55 -0600)]
use permute macros in satd
move some more shared macros to x264util.asm

16 years agocosmetics
Loren Merritt [Thu, 21 Aug 2008 02:32:13 +0000 (20:32 -0600)]
cosmetics

16 years agor940 broke threads
Loren Merritt [Thu, 21 Aug 2008 01:00:52 +0000 (19:00 -0600)]
r940 broke threads

16 years agoCleanups in macroblock_cache_save/load
Fiona Glaser [Wed, 20 Aug 2008 17:28:15 +0000 (13:28 -0400)]
Cleanups in macroblock_cache_save/load
A bit more loop unrolling, and moving some constant code to the global init function

16 years agoDeblocking code cleanup and cosmetics
Fiona Glaser [Tue, 19 Aug 2008 20:18:24 +0000 (14:18 -0600)]
Deblocking code cleanup and cosmetics
Convert the style of the deblocking code to the standard x264 style
Eliminate some trailing whitespace