]> granicus.if.org Git - libx264/log
libx264
14 years agoDon't check i16x16 planar mode unless previous modes were useful
Fiona Glaser [Wed, 30 Jun 2010 20:06:22 +0000 (13:06 -0700)]
Don't check i16x16 planar mode unless previous modes were useful
Saves ~160 clocks per MB at subme=1, ~270 per MB at subme>1 (measured on Core i7).
Negligle effect on compression.

Also make a few more arrays static.

14 years agoCentralize logging within x264cli
Steven Walters [Sat, 26 Jun 2010 20:28:49 +0000 (16:28 -0400)]
Centralize logging within x264cli
x264cli messages will now respect the log level they pertain to.
Slightly reduces binary size.

14 years agoMake open-GOP Blu-ray compatible
Lamont Alston [Tue, 29 Jun 2010 17:11:42 +0000 (10:11 -0700)]
Make open-GOP Blu-ray compatible
Blu-ray is even more braindamaged than we thought.
Accordingly, open-gop options are now "normal" and "bluray", as opposed to display and coded.
Normal should be used in all cases besides Blu-ray authoring.

14 years agoCallback feature for low-latency per-slice output
Fiona Glaser [Mon, 28 Jun 2010 22:02:33 +0000 (15:02 -0700)]
Callback feature for low-latency per-slice output
Add a callback to allow the calling application to send slices immediately after being encoded.
Also add some extra information to the x264_nal_t structure to help inform such a calling application how the NAL units should be ordered.

Full documentation is in x264.h.

14 years agoSimplify pixel_ads
Loren Merritt [Sun, 27 Jun 2010 03:55:59 +0000 (20:55 -0700)]
Simplify pixel_ads

14 years agoInteractive encoder control: error resilience
Fiona Glaser [Thu, 24 Jun 2010 00:29:34 +0000 (17:29 -0700)]
Interactive encoder control: error resilience
In low-latency streaming with few clients, it is often feasible to modify encoder behavior in some fashion based on feedback from clients.
One possible application of this is error resilience: if a packet is lost, mark the associated frame (and any referenced from it) as lost.
This allows quick recovery from errors with minimal expense bit-wise.

The new i_dpb_size parameter allows a calling application to tell x264 to use a larger DPB size than required by the number of reference frames.
This lets x264 and the client keep a large buffer of old references to fall back to in case of lost frames.
If no recovery is possible even with the available buffer, x264 will force a keyframe.

This initial version does not support B-frames or intra refresh.
Recommended usage is to set keyint to a very large value, so that keyframes do not occur except as necessary for extreme error recovery.

Full documentation is in x264.h.

Move DTS/PTS calculation to before encoding each frame instead of after.
Improve documentation of x264_encoder_intra_refresh.

14 years agoLookaheadless MB-tree support
Fiona Glaser [Thu, 17 Jun 2010 21:50:07 +0000 (14:50 -0700)]
Lookaheadless MB-tree support
Uses past motion information instead of future data from the lookahead.
Not as accurate, but better than nothing in zero-latency compression when a lookahead isn't available.
Currently resets on keyframes, so only available if intra-refresh is set, to avoid pops on non-scenecut keyframes.
Not on by default with any preset/tune combination; must be enabled explicitly if --tune zerolatency is used.

Also slightly modify encoding presets: disable rc-lookahead in the fastest presets.
Enable MB-tree in "veryfast", albeit with a very short lookahead.

14 years agoOpen-GOP support
Lamont Alston [Wed, 16 Jun 2010 17:05:17 +0000 (10:05 -0700)]
Open-GOP support
Allows B-frames immediately prior to keyframes (in display order).
This helps reduce keyframe popping and improve compression with short keyframe intervals.
Due to a staggering display of braindamage in the Blu-ray spec, two open-GOP modes are available.
The two modes calculate keyframe interval differently: one based on coded distance and one based on display distance.
The latter is superior compression-wise, but for no comprehensible reason, Blu-ray requires the former if open-GOP is used.

14 years agoUse threadpools to avoid unnecessary thread creation
Steven Walters [Wed, 9 Jun 2010 22:14:52 +0000 (18:14 -0400)]
Use threadpools to avoid unnecessary thread creation
Tiny performance improvement with fast settings and lots of threads.
May help more on some OSs with slow thread creation, like OS X.
Unify inconsistent synchronized abbreviations to sync.

14 years agoImprove 2-pass bitrate prediction
Fiona Glaser [Sat, 19 Jun 2010 08:41:07 +0000 (01:41 -0700)]
Improve 2-pass bitrate prediction
Adapt based on distance to the end in bits, not in frames.
Helps in videos with absurdly simple end sections, e.g. black frames.

14 years agoSSE4 and SSSE3 versions of some intra_sad functions
Fiona Glaser [Fri, 18 Jun 2010 20:58:11 +0000 (13:58 -0700)]
SSE4 and SSSE3 versions of some intra_sad functions
Primarily Nehalem-optimized.

14 years agoImprove HRD accuracy
Fiona Glaser [Sat, 19 Jun 2010 10:27:33 +0000 (03:27 -0700)]
Improve HRD accuracy
In a staggering display of brain damage, the spec requires all HRD math to be done in infinite precision despite the output being of quite limited precision.
Accordingly, convert buffer management to work in units of timescale.
These accumulating rounding errors probably didn't cause any real problems, but might in theory cause issues in very picky muxers on extremely long-running streams.

14 years agoUse -fno-tree-vectorize to avoid miscompilation
Fiona Glaser [Tue, 22 Jun 2010 21:20:46 +0000 (14:20 -0700)]
Use -fno-tree-vectorize to avoid miscompilation
Some versions of gcc have been reported to attempt (and fail) to vectorize a loop in plane_expand_border.
This results in a segfault, so to limit the possible effects of gcc's utter incompetence, we're turning off vectorization entirely.
It's not like it ever did anything useful to begin with.

14 years agoFix SIGPIPEs caused by is_regular_file checks
Anton Mitrofanov [Fri, 18 Jun 2010 21:44:56 +0000 (01:44 +0400)]
Fix SIGPIPEs caused by is_regular_file checks
Check to see if input file is a pipe without opening it.

14 years agoFix compilation on ARM w/ Apple ABI
Fiona Glaser [Tue, 15 Jun 2010 12:15:42 +0000 (05:15 -0700)]
Fix compilation on ARM w/ Apple ABI

14 years agoFaster mbtree_propagate asm
Holger Lubitz [Wed, 9 Jun 2010 11:59:06 +0000 (13:59 +0200)]
Faster mbtree_propagate asm
Replace fp division by multiply with the reciprocal.
Only ~12% faster on penryn, but over 80% faster on amd k8.
Also make checkasm slightly more tolerant to rounding error.

14 years agoConvert the OPT_ defines in x264.c to an enum
Diogo Franco [Mon, 14 Jun 2010 00:57:32 +0000 (21:57 -0300)]
Convert the OPT_ defines in x264.c to an enum

14 years agoDon't allow baseline profile streams with fake-interlaced
Anton Mitrofanov [Sun, 13 Jun 2010 19:14:15 +0000 (23:14 +0400)]
Don't allow baseline profile streams with fake-interlaced
Indicate use of --fake-interlaced in encoding options SEI.

14 years agoAllocate space for null terminator in param_apply_tune
Havoc Pennington [Thu, 10 Jun 2010 20:28:52 +0000 (16:28 -0400)]
Allocate space for null terminator in param_apply_tune

14 years agoFix regression in r1501.
Anton Mitrofanov [Thu, 10 Jun 2010 17:33:46 +0000 (21:33 +0400)]
Fix regression in r1501.
Could cause slightly incorrect analysis in rare cases, but no serious encoding issues.
Also shut up gcc warning about pels_v.

14 years agoFix crash with --subme 0 + --weightp > 0. Regression in r1535
Anton Mitrofanov [Wed, 9 Jun 2010 18:53:08 +0000 (22:53 +0400)]
Fix crash with --subme 0 + --weightp > 0. Regression in r1535

14 years agoReplace some divisions with shifts
Henrik Gramner [Tue, 8 Jun 2010 14:29:16 +0000 (16:29 +0200)]
Replace some divisions with shifts

14 years agoWarn about shadowed variable declarations
Anton Mitrofanov [Mon, 7 Jun 2010 22:43:37 +0000 (02:43 +0400)]
Warn about shadowed variable declarations
Also get rid of a few instances of variable shadowing.

14 years agoTemplate load_pic_pointers based on interlaced
Fiona Glaser [Mon, 7 Jun 2010 21:26:05 +0000 (14:26 -0700)]
Template load_pic_pointers based on interlaced
Significantly speeds up cache_load in the non-interlaced case.
Also various other minor optimizations in cache_load and cache_save.

14 years agoRemove double-dereferences for MB width/height data
Fiona Glaser [Mon, 7 Jun 2010 21:15:33 +0000 (14:15 -0700)]
Remove double-dereferences for MB width/height data
Store it in x264_t instead of going through the SPS.

14 years agoExempt Win x86_64 from memalign hack
Steven Walters [Sun, 23 May 2010 00:54:35 +0000 (20:54 -0400)]
Exempt Win x86_64 from memalign hack
The API mandates all mallocs are 16 byte aligned.
Remove unused int that stores sizeof malloc in memalign hack.

14 years agoPreprocessing cosmetics
Steven Walters [Fri, 4 Jun 2010 20:44:55 +0000 (13:44 -0700)]
Preprocessing cosmetics
Unify input/output defines to HAVE_* format.
Define values as 1 to simplify conditionals.

14 years agoTake more shortcuts in i4x4/i8x8 analysis
Fiona Glaser [Fri, 4 Jun 2010 04:31:10 +0000 (21:31 -0700)]
Take more shortcuts in i4x4/i8x8 analysis
Based on the scores of the H and V modes, rule out modes which are unlikely.
Small compression loss (0.1-0.5%) and large speed gain (10-30% faster intra analysis).
Not enabled in slower encoding modes.

Also make C versions of the merged SATD functions in order to eliminate branches based on their availability.

14 years agoDisplay SSIM measurement in db as well
Fiona Glaser [Wed, 2 Jun 2010 22:47:26 +0000 (15:47 -0700)]
Display SSIM measurement in db as well

14 years agoMake version.sh indicate "M" for local commits too
Anton Mitrofanov [Mon, 7 Jun 2010 21:03:03 +0000 (01:03 +0400)]
Make version.sh indicate "M" for local commits too

14 years agoAdd error message for invalid [de]muxer selection
Alex Jurkiewicz [Sun, 6 Jun 2010 07:21:12 +0000 (15:21 +0800)]
Add error message for invalid [de]muxer selection

14 years agoDeduplicate the ALIGN macro, move it to common.h
Nathan Caldwell [Sun, 6 Jun 2010 20:19:41 +0000 (14:19 -0600)]
Deduplicate the ALIGN macro, move it to common.h

14 years agoFix a use of ALIGNED_ARRAY_16 on ARM
David Conrad [Thu, 3 Jun 2010 23:02:24 +0000 (19:02 -0400)]
Fix a use of ALIGNED_ARRAY_16 on ARM

14 years agoAdd missing emms after nal_encode
Fiona Glaser [Tue, 8 Jun 2010 22:41:17 +0000 (15:41 -0700)]
Add missing emms after nal_encode
Caused random, bizarre failures with some calling applications.

14 years agoFix crash in fake-interlaced at some resolutions
Fiona Glaser [Tue, 8 Jun 2010 22:38:32 +0000 (15:38 -0700)]
Fix crash in fake-interlaced at some resolutions

14 years agoFix no-mbtree + aq-mode=0
Yusuke Nakamura [Wed, 2 Jun 2010 13:27:57 +0000 (22:27 +0900)]
Fix no-mbtree + aq-mode=0

Regression in r1618.

14 years agoAdd API function to fix x264_picture_t initialization
Fiona Glaser [Wed, 2 Jun 2010 08:07:44 +0000 (01:07 -0700)]
Add API function to fix x264_picture_t initialization
Calling applications that do not use x264_picture_alloc need to use x264_picture_init to initialize x264_picture_t structures.
Previously, if the calling application didn't zero x264_picture_t, Bad Things could happen.

14 years agoFix Avisynth input
Yusuke Nakamura [Wed, 2 Jun 2010 08:02:31 +0000 (17:02 +0900)]
Fix Avisynth input
Regression in r1624.  A more permanent solution to the problem will be committed later.

14 years agoConvert to a unified "dctcoeff" type for DCT data
Oskar Arvidsson [Wed, 2 Jun 2010 00:08:45 +0000 (02:08 +0200)]
Convert to a unified "dctcoeff" type for DCT data
Necessary for future high bit-depth support.

14 years agoConvert to a unified "pixel" type for pixel data
Oskar Arvidsson [Tue, 1 Jun 2010 23:35:38 +0000 (01:35 +0200)]
Convert to a unified "pixel" type for pixel data
Necessary for future high bit-depth support.
Various macros and extra types have been introduced to make operations on variable-size pixels more convenient.

14 years agoAdd API tool to apply arbitrary quantizer offsets
Fiona Glaser [Fri, 28 May 2010 21:27:22 +0000 (14:27 -0700)]
Add API tool to apply arbitrary quantizer offsets
The calling application can now pass a "map" of quantizer offsets to apply to each frame.
An optional callback to free the map can also be included.
This allows all kinds of flexible region-of-interest coding and similar.

14 years agox86 assembly code for NAL escaping
Fiona Glaser [Thu, 27 May 2010 21:27:32 +0000 (14:27 -0700)]
x86 assembly code for NAL escaping
Up to ~10x faster than C depending on CPU.
Helps the most at very high bitrates (e.g. lossless).
Also make the C code faster and simpler.

14 years agoRe-enable i8x8 merged SATD
Fiona Glaser [Fri, 28 May 2010 21:30:07 +0000 (14:30 -0700)]
Re-enable i8x8 merged SATD
Accidentally got disabled when intra_sad_x3 was added.

14 years agoSome deblocking-related optimizations
Henrik Gramner [Sun, 30 May 2010 20:45:14 +0000 (22:45 +0200)]
Some deblocking-related optimizations

14 years agoOptimize out some x264_scan8 reads
Henrik Gramner [Thu, 27 May 2010 20:18:38 +0000 (22:18 +0200)]
Optimize out some x264_scan8 reads

14 years agoAdd fast skip in lookahead motion search
Fiona Glaser [Thu, 27 May 2010 17:42:15 +0000 (10:42 -0700)]
Add fast skip in lookahead motion search
Helps speed very significantly on motionless blocks.

14 years agoMerge some of adaptive quant and weightp
Fiona Glaser [Wed, 26 May 2010 19:55:35 +0000 (12:55 -0700)]
Merge some of adaptive quant and weightp
Eliminate redundant work; both of them were calculating variance of the frame.

14 years agoFix omission in libx264 tuning documentation
Fiona Glaser [Thu, 27 May 2010 19:31:41 +0000 (12:31 -0700)]
Fix omission in libx264 tuning documentation

14 years agoFix ultrafast to actually turn off weightb
Fiona Glaser [Sun, 30 May 2010 16:42:53 +0000 (09:42 -0700)]
Fix ultrafast to actually turn off weightb

14 years agoFix crash with MP4-muxing if zero frames were encoded
Anton Mitrofanov [Mon, 31 May 2010 18:36:50 +0000 (22:36 +0400)]
Fix crash with MP4-muxing if zero frames were encoded

14 years agoFix cavlc+deblock+8x8dct (regression in r1612)
Fiona Glaser [Mon, 31 May 2010 18:14:22 +0000 (11:14 -0700)]
Fix cavlc+deblock+8x8dct (regression in r1612)
Add cavlc+8x8dct munging to new deblock system.
May have caused minor visual artifacts.

14 years agoFix 10L in r1612
Fiona Glaser [Wed, 26 May 2010 19:40:31 +0000 (12:40 -0700)]
Fix 10L in r1612
Stats need to be calculated before deblock strength, not after.
Broke ref stats in x264cli (no affect on actual output).

14 years agoOverhaul deblocking again
Fiona Glaser [Tue, 25 May 2010 19:42:44 +0000 (12:42 -0700)]
Overhaul deblocking again
Move deblock strength calculation to immediately after encoding to take advantage of the data that's already in cache.
Keep the deblocking itself as per-row.

14 years agoDetect Atom CPU, enable appropriate asm functions
Fiona Glaser [Tue, 25 May 2010 23:13:59 +0000 (16:13 -0700)]
Detect Atom CPU, enable appropriate asm functions
I'm not going to actually optimize for this pile of garbage unless someone pays me.
But it can't hurt to at least enable the correct functions based on benchmarks.

Also save some cache on Intel CPUs that don't need the decimate LUT due to having fast bsr/bsf.

14 years agoSlightly faster mbtree asm
Fiona Glaser [Mon, 24 May 2010 18:13:22 +0000 (11:13 -0700)]
Slightly faster mbtree asm

14 years agoFaster deblock strength asm on conroe/penryn
Fiona Glaser [Fri, 21 May 2010 22:39:38 +0000 (15:39 -0700)]
Faster deblock strength asm on conroe/penryn

14 years agoAvoid an extra var2 in chroma encoding if possible
Fiona Glaser [Fri, 21 May 2010 21:32:13 +0000 (14:32 -0700)]
Avoid an extra var2 in chroma encoding if possible
Also remove a redundant if.

14 years agoAvoid a redundant qpel check in lookahead with subme <= 1.
Fiona Glaser [Fri, 21 May 2010 20:07:12 +0000 (13:07 -0700)]
Avoid a redundant qpel check in lookahead with subme <= 1.

14 years agoFix ABR rate control calculations
Anton Mitrofanov [Tue, 25 May 2010 15:11:42 +0000 (19:11 +0400)]
Fix ABR rate control calculations
Incorrect frame numbers were used, resulting in slightly inaccurate ratecontrol.

14 years agoFix calculation of total bitrate printed after stop by CTRL+C
Anton Mitrofanov [Tue, 25 May 2010 14:45:16 +0000 (18:45 +0400)]
Fix calculation of total bitrate printed after stop by CTRL+C

14 years agoFix typo in fake-interlaced documentation
Kieran Kunhya [Sat, 22 May 2010 13:32:53 +0000 (14:32 +0100)]
Fix typo in fake-interlaced documentation

14 years agoFix CABAC+PCM, regression in r1592
Fiona Glaser [Wed, 26 May 2010 00:49:07 +0000 (17:49 -0700)]
Fix CABAC+PCM, regression in r1592
Changes to queue in CABAC didn't get propagated to PCM code.

14 years agoFix performance regression in r1582
Henrik Gramner [Fri, 21 May 2010 13:30:26 +0000 (15:30 +0200)]
Fix performance regression in r1582
Set the correct compiler flags.

14 years agoRewrite deblock strength calculation, add asm
Fiona Glaser [Tue, 18 May 2010 23:48:00 +0000 (16:48 -0700)]
Rewrite deblock strength calculation, add asm
Rewrite is significantly slower, but is necessary to make asm possible.
Similar concept to ffmpeg's deblock strength asm.
Roughly one order of magnitude faster than C.
Overall, with the asm, saves ~100-300 clocks in deblocking per MB.

14 years agoFix different output with differing sync-lookahead
Anton Mitrofanov [Fri, 21 May 2010 06:33:45 +0000 (10:33 +0400)]
Fix different output with differing sync-lookahead
Also reduce memory consumption.

14 years agoMark Win32 executable as large address aware
Anton Mitrofanov [Tue, 18 May 2010 18:26:59 +0000 (22:26 +0400)]
Mark Win32 executable as large address aware

14 years agoAdd "Fake interlaced" option
Kieran Kunhya [Thu, 20 May 2010 16:45:16 +0000 (17:45 +0100)]
Add "Fake interlaced" option
This encodes all frames progressively yet flags the stream as interlaced.
This makes it possible to encode valid 25p and 30p Blu-Ray streams.
Also put the pulldown help section in a more appropriate place.

14 years agoModify version.sh to output to stdout.
Alex Jurkiewicz [Thu, 20 May 2010 07:01:37 +0000 (15:01 +0800)]
Modify version.sh to output to stdout.
Update configure to match.

14 years agoSet correct filesystem permissions for various files
Henrik Gramner [Wed, 19 May 2010 21:09:58 +0000 (23:09 +0200)]
Set correct filesystem permissions for various files

14 years agoFix regression in r1566
Anton Mitrofanov [Wed, 19 May 2010 17:07:03 +0000 (21:07 +0400)]
Fix regression in r1566
Intra stats need to be kept track of for fast intra decision.

14 years agoFix rc-lookahead in encoding options SEI in 2-pass with VBV
Fiona Glaser [Tue, 18 May 2010 18:53:32 +0000 (11:53 -0700)]
Fix rc-lookahead in encoding options SEI in 2-pass with VBV

14 years agoReduce memory usage in 2-pass with b-adapt 2
Loren Merritt [Mon, 17 May 2010 21:08:37 +0000 (14:08 -0700)]
Reduce memory usage in 2-pass with b-adapt 2

14 years agoOverhaul CABAC: faster, less cache usage
Fiona Glaser [Sat, 15 May 2010 21:48:58 +0000 (14:48 -0700)]
Overhaul CABAC: faster, less cache usage
Horribly munge up the CABAC tables to allow deduplication of some data.
Saves 256 bytes of L1d cache in non-RD, 512 bytes in RD.
Add asm versions of bypass and terminal; save L1i cache by re-using putbyte code.
Further optimize encode_decision.
All 3 primary CABAC functions fit in under 256 bytes of code total on x86_64.

14 years agoFix typo in pulldown
Kieran Kunhya [Thu, 13 May 2010 18:13:35 +0000 (19:13 +0100)]
Fix typo in pulldown

14 years agoFix bitrate calculation in progress status
Anton Mitrofanov [Wed, 12 May 2010 18:05:34 +0000 (22:05 +0400)]
Fix bitrate calculation in progress status
Was slightly incorrect due to using pts, which is out of order.

14 years agoFix crash with sliced-threads on Phenom
Anton Mitrofanov [Tue, 11 May 2010 21:57:38 +0000 (01:57 +0400)]
Fix crash with sliced-threads on Phenom

14 years agoFix condition for printing rc=cbr in options SEI
Fiona Glaser [Tue, 11 May 2010 05:59:12 +0000 (22:59 -0700)]
Fix condition for printing rc=cbr in options SEI
Also fix crf-max formatting.

14 years agoShrink even more constant arrays
Henrik Gramner [Mon, 10 May 2010 21:27:36 +0000 (23:27 +0200)]
Shrink even more constant arrays

14 years agoAdd API function to trigger intra refresh
Fiona Glaser [Sat, 8 May 2010 19:07:13 +0000 (12:07 -0700)]
Add API function to trigger intra refresh
Useful for interactive applications where the encoder knows that packet loss has occurred on the client.
Full documentation is in x264.h.

14 years agoFix intra refresh behavior with I-frames
Fiona Glaser [Sat, 8 May 2010 18:58:22 +0000 (11:58 -0700)]
Fix intra refresh behavior with I-frames
Intra refresh still allows I-frames (for scenecuts/etc).
Now I-frames count as a full refresh, as opposed to instantly triggering a refresh.

14 years agoMore cosmetics
Anton Mitrofanov [Thu, 6 May 2010 17:03:31 +0000 (10:03 -0700)]
More cosmetics

14 years agoFix unresolved symbol in r1573
Fiona Glaser [Thu, 6 May 2010 07:53:20 +0000 (00:53 -0700)]
Fix unresolved symbol in r1573
gnu ld didn't complain, but some other linkers did.

14 years agoRemove unnecessary --enable options
Steven Walters [Wed, 5 May 2010 23:54:04 +0000 (19:54 -0400)]
Remove unnecessary --enable options
Change --enable-visualize to actually check for X11 support.

14 years agoDon't force row QPs to integer values with VBV
Fiona Glaser [Tue, 4 May 2010 04:27:16 +0000 (21:27 -0700)]
Don't force row QPs to integer values with VBV
VBV should no longer raise the bitrate of the video.  That is, at a given quality level or average bitrate, turning on VBV should only lower the bitrate.
This isn't quite true if adaptive quant is off, but nobody should be doing that anyways.
Also may result in slightly more accurate per-row VBV ratecontrol.

14 years agoAdd field-order detection to y4m demuxer
James Darnley [Sun, 2 May 2010 23:30:50 +0000 (16:30 -0700)]
Add field-order detection to y4m demuxer

14 years agoFix sliced-threads + interlaced
Fiona Glaser [Sun, 2 May 2010 18:45:15 +0000 (11:45 -0700)]
Fix sliced-threads + interlaced
Broken in r1546.

14 years agoImprove temporal MV prediction
Fiona Glaser [Sun, 2 May 2010 18:41:36 +0000 (11:41 -0700)]
Improve temporal MV prediction
Predict based on the results of p16x16 search, not final MVs.
This lets us get predictions even if mode decision chose intra.
Also improves cache coherency.

14 years agoMore accurate MV prediction on edges in lookahead
Fiona Glaser [Sun, 2 May 2010 02:34:14 +0000 (19:34 -0700)]
More accurate MV prediction on edges in lookahead

14 years agoError out on invalid input stride
Fiona Glaser [Sun, 2 May 2010 02:32:01 +0000 (19:32 -0700)]
Error out on invalid input stride
Might catch some crashes due to buggy calling applications.

14 years agoRemove unnecessary debugging assert
Fiona Glaser [Sat, 1 May 2010 07:18:01 +0000 (00:18 -0700)]
Remove unnecessary debugging assert
Shouldn't have been in r1568 to begin with.

14 years agoShrink some more constant arrays
Fiona Glaser [Fri, 30 Apr 2010 20:45:50 +0000 (13:45 -0700)]
Shrink some more constant arrays

14 years agoDeduplicate asm constants, automate name prefixing
Fiona Glaser [Fri, 30 Apr 2010 18:36:19 +0000 (11:36 -0700)]
Deduplicate asm constants, automate name prefixing
Auto-prefix global constants with x264_ in cextern.
Eliminate x264_ prefix from asm files; automate it in cglobal.
Deduplicate asm constants wherever possible to save data cache (move them to a new const-a.asm).
Remove x264_emms() entirely on non-x86 (don't even call an empty function).
Add cextern_naked for a non-prefixed cextern (used in checkasm).

14 years agoShrink a few x86 asm functions
Fiona Glaser [Fri, 30 Apr 2010 16:57:55 +0000 (09:57 -0700)]
Shrink a few x86 asm functions
Add a few more instructions to cut down on the use of the 4-byte addressing mode.

14 years agoMake options SEI use weight* instead of wpred*
Fiona Glaser [Fri, 30 Apr 2010 02:53:59 +0000 (19:53 -0700)]
Make options SEI use weight* instead of wpred*
More intuitive and maps more reasonably to the CLI options.
Breaks statsfile backwards-compatibility.

14 years agor1548 broke subme < 3 + p8x8/b8x8
Loren Merritt [Thu, 29 Apr 2010 17:35:25 +0000 (17:35 +0000)]
r1548 broke subme < 3 + p8x8/b8x8
Caused significantly worse compression.  Preset-wise, only affected veryfast.
Fixed by not modifying mvc in-place.

14 years agoMore write-combining
Henrik Gramner [Mon, 26 Apr 2010 23:44:33 +0000 (01:44 +0200)]
More write-combining

14 years agoReduce lookahead memory usage, cache misses
Fiona Glaser [Mon, 26 Apr 2010 22:10:11 +0000 (15:10 -0700)]
Reduce lookahead memory usage, cache misses
Merge lowres_types with lowres_costs.

14 years agoFix build on x86 with asm on but SSE off
Fiona Glaser [Sun, 25 Apr 2010 21:54:29 +0000 (14:54 -0700)]
Fix build on x86 with asm on but SSE off

14 years agoDon't calculate ref/partition stats if not necessary
Fiona Glaser [Sat, 24 Apr 2010 20:55:51 +0000 (13:55 -0700)]
Don't calculate ref/partition stats if not necessary

14 years agoSplit out MV prediction into mvpred.c
Fiona Glaser [Sat, 24 Apr 2010 20:07:18 +0000 (13:07 -0700)]
Split out MV prediction into mvpred.c
Make common/macroblock.c a bit less gigantic.