]> git.sesse.net Git - x264/log
x264
13 years agoFix MBAFF row VBV ratecontrol
Anton Mitrofanov [Mon, 6 Jun 2011 09:54:44 +0000 (13:54 +0400)]
Fix MBAFF row VBV ratecontrol
Reverts most of r1984 and implements a much simpler solution.

13 years agoMake ratecontrol_mb less slow
Fiona Glaser [Tue, 24 May 2011 00:01:02 +0000 (17:01 -0700)]
Make ratecontrol_mb less slow

13 years agoResize filter updates
Steven Walters [Fri, 3 Jun 2011 01:23:04 +0000 (21:23 -0400)]
Resize filter updates
Fix use of deprecated sws_getContext.
Fix uses of sws_format_name.
Fix stream change warning not occurring on the first resolution change.
Drop cpu detection, as it is now performed internally by swscale.
Update swscale version requirements.

13 years agoAVX mbtree_propagate
Fiona Glaser [Tue, 17 May 2011 21:50:51 +0000 (14:50 -0700)]
AVX mbtree_propagate
Up to ~20-30% faster than SSE2 on Sandy Bridge.

13 years agoUse -vsync 0 with ffmpeg regression test
Fiona Glaser [Tue, 14 Jun 2011 17:26:56 +0000 (10:26 -0700)]
Use -vsync 0 with ffmpeg regression test

13 years agoInline emms instructions on x86 if possible
Henrik Gramner [Sat, 21 May 2011 17:04:46 +0000 (19:04 +0200)]
Inline emms instructions on x86 if possible

13 years agoMake left_index_table const
Fiona Glaser [Tue, 14 Jun 2011 16:35:03 +0000 (09:35 -0700)]
Make left_index_table const
Should allow for some missed compiler optimizations in macroblock_cache_load.

13 years agoMake --profile main/baseline force off CQMfile
Hii [Tue, 24 May 2011 00:31:17 +0000 (08:31 +0800)]
Make --profile main/baseline force off CQMfile

13 years agoFix VBV bug caused by zero i_row_satd value for first and last row
Anton Mitrofanov [Tue, 31 May 2011 22:11:56 +0000 (02:11 +0400)]
Fix VBV bug caused by zero i_row_satd value for first and last row

13 years agoFix crash with VBV + forced QP
Anton Mitrofanov [Mon, 30 May 2011 20:13:22 +0000 (00:13 +0400)]
Fix crash with VBV + forced QP

13 years agoFix VBV bug with MinCR limit
Anton Mitrofanov [Sun, 29 May 2011 22:36:31 +0000 (02:36 +0400)]
Fix VBV bug with MinCR limit

13 years agoFix bitstream reallocation with slice-max-size + MBAFF
Fiona Glaser [Fri, 20 May 2011 17:43:28 +0000 (10:43 -0700)]
Fix bitstream reallocation with slice-max-size + MBAFF

13 years agoImprove build system capabilities
Nikoli [Fri, 29 Apr 2011 10:19:22 +0000 (14:19 +0400)]
Improve build system capabilities
Make static lib and CLI optional.
Support linking CLI to system libx264.
Don't strip by default, to match GNU packaging guidelines.

13 years agoSlightly speed up x86 CABAC asm
Fiona Glaser [Tue, 26 Apr 2011 12:12:26 +0000 (05:12 -0700)]
Slightly speed up x86 CABAC asm
Also make some various cleanups.

13 years agoFaster pixel_memset
Fiona Glaser [Thu, 5 May 2011 06:26:19 +0000 (23:26 -0700)]
Faster pixel_memset
~4x faster.
Also inline plane_expand_border for improved constant propagation.

13 years agoAdd checkasm tests for memcpy_aligned, memzero_aligned
Fiona Glaser [Thu, 5 May 2011 07:42:43 +0000 (00:42 -0700)]
Add checkasm tests for memcpy_aligned, memzero_aligned
Also make memcpy_aligned support sizes smaller than 64.

13 years agoMBAFF: Add regularization to VSAD metric
Fiona Glaser [Mon, 9 May 2011 01:46:52 +0000 (18:46 -0700)]
MBAFF: Add regularization to VSAD metric
Bias towards the MBAFF decisions made in neighboring mb pairs.
~2% better compression on a random 1080i HDTV source.

13 years agoMBAFF: Improve handling of bottom row mod32 padding
Fiona Glaser [Mon, 9 May 2011 01:46:39 +0000 (18:46 -0700)]
MBAFF: Improve handling of bottom row mod32 padding
Force skip on any MBs entirely outside the frame
If an mb pair in the bottom row is chosen to be progressive, re-pad the bottom rows progressively.

13 years agoMBAFF: Add frame/field MB stats
Fiona Glaser [Mon, 9 May 2011 02:17:36 +0000 (19:17 -0700)]
MBAFF: Add frame/field MB stats

13 years agoMBAFF: Template direct spatial
Simon Horlick [Wed, 27 Apr 2011 11:49:25 +0000 (12:49 +0100)]
MBAFF: Template direct spatial

13 years agoMBAFF: Template cache_load and cache_load_neighbours
Simon Horlick [Mon, 25 Apr 2011 20:22:59 +0000 (21:22 +0100)]
MBAFF: Template cache_load and cache_load_neighbours

13 years agoMBAFF: Make interlaced support a compile time option
Simon Horlick [Mon, 25 Apr 2011 08:06:24 +0000 (09:06 +0100)]
MBAFF: Make interlaced support a compile time option

13 years agoMBAFF: Don't call zigzag_init for every mb
Simon Horlick [Sun, 17 Apr 2011 09:05:51 +0000 (10:05 +0100)]
MBAFF: Don't call zigzag_init for every mb

13 years agoMBAFF: Modify ratecontrol to update every two rows
Simon Horlick [Fri, 25 Mar 2011 13:36:21 +0000 (13:36 +0000)]
MBAFF: Modify ratecontrol to update every two rows

13 years agoMBAFF: Add support for slice-max-size
Simon Horlick [Wed, 23 Mar 2011 21:55:03 +0000 (21:55 +0000)]
MBAFF: Add support for slice-max-size

Also add slice-max-size to the regression tests.

13 years agoMBAFF: Add support for slice-max-mbs
Simon Horlick [Wed, 23 Mar 2011 21:54:21 +0000 (21:54 +0000)]
MBAFF: Add support for slice-max-mbs

13 years agoMBAFF: Adaptive quantization
Simon Horlick [Thu, 17 Mar 2011 17:39:18 +0000 (17:39 +0000)]
MBAFF: Adaptive quantization

Compute energy for interlaced and progressive choices and pick the least.

13 years agoMBAFF: Enable adaptive MBAFF with VSAD decision
Simon Horlick [Mon, 14 Mar 2011 02:54:30 +0000 (02:54 +0000)]
MBAFF: Enable adaptive MBAFF with VSAD decision

13 years agoMBAFF: Create a VSAD DSP function
Simon Horlick [Sat, 23 Apr 2011 09:44:04 +0000 (10:44 +0100)]
MBAFF: Create a VSAD DSP function

x86 assembly by Fiona Glaser. This gives roughly 30x speed
increase over the C version.

13 years agoMBAFF: Direct spatial
Simon Horlick [Tue, 15 Mar 2011 01:17:01 +0000 (01:17 +0000)]
MBAFF: Direct spatial

13 years agoMBAFF: Direct temporal
Simon Horlick [Tue, 15 Mar 2011 01:16:20 +0000 (01:16 +0000)]
MBAFF: Direct temporal

13 years agoMBAFF: Calculate bipred POCs
Simon Horlick [Tue, 15 Mar 2011 01:15:06 +0000 (01:15 +0000)]
MBAFF: Calculate bipred POCs

Need to calculate two tables for the cases where the current macroblock is
progressive or interlaced as refs are calculated differently for each.

13 years agoMBAFF: Use both left macroblocks for ref_idx calculation
Simon Horlick [Tue, 15 Mar 2011 01:39:49 +0000 (01:39 +0000)]
MBAFF: Use both left macroblocks for ref_idx calculation

13 years agoMBAFF: First edge deblocking
Simon Horlick [Sun, 3 Apr 2011 14:23:35 +0000 (15:23 +0100)]
MBAFF: First edge deblocking

13 years agoMBAFF: Implement left edge deblocking functions
Simon Horlick [Mon, 21 Mar 2011 11:03:23 +0000 (11:03 +0000)]
MBAFF: Implement left edge deblocking functions

13 years agoMBAFF: Add extra data to the deblock strength structure
Simon Horlick [Sat, 2 Apr 2011 17:27:13 +0000 (18:27 +0100)]
MBAFF: Add extra data to the deblock strength structure

13 years agoMBAFF: Deblocking support
Simon Horlick [Wed, 16 Mar 2011 21:27:07 +0000 (21:27 +0000)]
MBAFF: Deblocking support

13 years agoMBAFF: Move common code from deblock functions
Simon Horlick [Mon, 21 Mar 2011 11:02:27 +0000 (11:02 +0000)]
MBAFF: Move common code from deblock functions

13 years agoMBAFF: Add mbaff deblock strength calculation
Simon Horlick [Wed, 16 Mar 2011 21:18:59 +0000 (21:18 +0000)]
MBAFF: Add mbaff deblock strength calculation

Move call to deblock_strength to x264_macroblock_deblock_strength to
keep deblock strength calculation in one place.

13 years agoMBAFF: Update x264_cabac_mvd_sum_mmxext to work with larger MVDs.
Simon Horlick [Thu, 21 Apr 2011 00:47:53 +0000 (01:47 +0100)]
MBAFF: Update x264_cabac_mvd_sum_mmxext to work with larger MVDs.

Author: Loren Merritt <pengvado@akuvian.org>

13 years agoMBAFF: Clamp MVDs to 66 instead of 33
Simon Horlick [Tue, 29 Mar 2011 14:47:04 +0000 (15:47 +0100)]
MBAFF: Clamp MVDs to 66 instead of 33

13 years agoMBAFF: CABAC encoding of skips
Simon Horlick [Tue, 29 Mar 2011 14:46:34 +0000 (15:46 +0100)]
MBAFF: CABAC encoding of skips

13 years agoMBAFF: Track what interlace decision the decoder is using
Simon Horlick [Sun, 20 Feb 2011 15:31:55 +0000 (15:31 +0000)]
MBAFF: Track what interlace decision the decoder is using

13 years agoMBAFF: Fix mvy bounds
Simon Horlick [Sun, 6 Feb 2011 22:58:39 +0000 (22:58 +0000)]
MBAFF: Fix mvy bounds

Fix MV clipping

13 years agoMBAFF: Copy deblocked pixels to other plane
Simon Horlick [Wed, 16 Mar 2011 21:34:51 +0000 (21:34 +0000)]
MBAFF: Copy deblocked pixels to other plane

13 years agoMBAFF: Disallow skip where predicted interlace flag would be wrong
Simon Horlick [Tue, 29 Mar 2011 19:26:33 +0000 (20:26 +0100)]
MBAFF: Disallow skip where predicted interlace flag would be wrong

13 years agoMBAFF: Inter support
Simon Horlick [Tue, 29 Mar 2011 19:25:23 +0000 (20:25 +0100)]
MBAFF: Inter support

13 years agoMBAFF: Neighbour calculation
Simon Horlick [Fri, 14 Jan 2011 21:18:14 +0000 (21:18 +0000)]
MBAFF: Neighbour calculation

Back up intra borders correctly and make neighbour calculation several times longer.

13 years agoMBAFF: Store references to the two left macroblocks
Simon Horlick [Tue, 11 Jan 2011 20:21:26 +0000 (20:21 +0000)]
MBAFF: Store references to the two left macroblocks

13 years agoMBAFF: Store left references in a table
Simon Horlick [Tue, 11 Jan 2011 20:16:18 +0000 (20:16 +0000)]
MBAFF: Store left references in a table

13 years agoMBAFF: Disable adaptive MBAFF when subme 0 is used
Simon Horlick [Tue, 11 Jan 2011 20:09:00 +0000 (20:09 +0000)]
MBAFF: Disable adaptive MBAFF when subme 0 is used

13 years agoMBAFF: Save interlace decision for all macroblocks
Simon Horlick [Tue, 11 Jan 2011 20:05:54 +0000 (20:05 +0000)]
MBAFF: Save interlace decision for all macroblocks

13 years agoFix bug in NAL buffer resizing
Fiona Glaser [Thu, 12 May 2011 02:21:16 +0000 (10:21 +0800)]
Fix bug in NAL buffer resizing
Also properly terminate if NAL buffer resizing fails.

13 years agoFix zone bitrate multiplier and QP forcing in 2-pass mode
Anton Mitrofanov [Thu, 5 May 2011 12:27:49 +0000 (16:27 +0400)]
Fix zone bitrate multiplier and QP forcing in 2-pass mode
Previously zone changes could affect frames outside of the given frame range (around 20 neighboring frames).

13 years agoUse float constants in qp rounding
Fiona Glaser [Thu, 5 May 2011 10:24:38 +0000 (03:24 -0700)]
Use float constants in qp rounding
Slight performance improvement and fixes slight difference in output between gcc 3.4 and 4.5.

13 years agoFix bugs with ratecontrol reconfiguration
Anton Mitrofanov [Wed, 4 May 2011 07:49:06 +0000 (11:49 +0400)]
Fix bugs with ratecontrol reconfiguration
Initialization of some parameters was missed or wasn't synchronized with other threads

13 years agoMore validation of input parameters
Anton Mitrofanov [Wed, 4 May 2011 07:45:58 +0000 (11:45 +0400)]
More validation of input parameters
This fixes a crash with --me umh and insane values of --me-range.

13 years agoFix bug in --b-adapt 2 with --rc-lookahead >248
Anton Mitrofanov [Sun, 1 May 2011 13:28:56 +0000 (17:28 +0400)]
Fix bug in --b-adapt 2 with --rc-lookahead >248
Problem caused by buffer overflow in strcpy.

13 years agoCheck for invalid pixfmts in lavf demuxer
Oka Motofumi [Thu, 28 Apr 2011 04:13:49 +0000 (13:13 +0900)]
Check for invalid pixfmts in lavf demuxer

13 years agoFix regression in r1944
Fiona Glaser [Tue, 10 May 2011 08:58:21 +0000 (01:58 -0700)]
Fix regression in r1944
Broke sliced-threads + slice-max-size/slice-max-mbs.

13 years agoPrecalculate CABAC initialization contexts
Fiona Glaser [Mon, 25 Apr 2011 01:36:26 +0000 (18:36 -0700)]
Precalculate CABAC initialization contexts
Slightly faster encoding with lots of slices.

13 years agoAvoid redundant log2f calls in mv cost initialization
Fiona Glaser [Sun, 24 Apr 2011 04:22:13 +0000 (21:22 -0700)]
Avoid redundant log2f calls in mv cost initialization
Saves around 100 million clock cycles on x264 init.

13 years agoCABAC residual: cleanup and optimizations
Fiona Glaser [Thu, 21 Apr 2011 21:19:05 +0000 (14:19 -0700)]
CABAC residual: cleanup and optimizations
Also kill all Hungarian notation while we're at it.
Trim an instruction off cabac_encode_bypass.

13 years agoValidate input parameters more carefully
Anton Mitrofanov [Tue, 19 Apr 2011 22:54:49 +0000 (02:54 +0400)]
Validate input parameters more carefully
Get rid of redundant warnings upon encoder_reconfig calls.
Also avoid encoder_reconfig turning off psy_rd/trellis.

13 years agoFix VFR MB-tree to work as intended
Anton Mitrofanov [Thu, 21 Apr 2011 21:13:28 +0000 (01:13 +0400)]
Fix VFR MB-tree to work as intended
Should improve quality with FPSs much larger or smaller than 25.

13 years agoSupport more recent GPAC versions
Yasuhiro Ikeda [Sun, 24 Apr 2011 06:33:45 +0000 (15:33 +0900)]
Support more recent GPAC versions

13 years agoFix decoder desync with positive --chroma-qp-offset and zones
Anton Mitrofanov [Sat, 23 Apr 2011 11:19:40 +0000 (15:19 +0400)]
Fix decoder desync with positive --chroma-qp-offset and zones

13 years agoUse AVMEDIA_TYPE_VIDEO instead of deprecated CODEC_TYPE_VIDEO
Anton Khirnov [Wed, 20 Apr 2011 08:53:44 +0000 (10:53 +0200)]
Use AVMEDIA_TYPE_VIDEO instead of deprecated CODEC_TYPE_VIDEO

Fixes build with lavf/lavc 53.

13 years agoForce pic-struct for Blu-ray compat + fake-interlaced
Fiona Glaser [Fri, 15 Apr 2011 23:33:27 +0000 (16:33 -0700)]
Force pic-struct for Blu-ray compat + fake-interlaced

13 years agoFix open-gop with no-psy
Anton Mitrofanov [Thu, 14 Apr 2011 19:14:52 +0000 (12:14 -0700)]
Fix open-gop with no-psy

13 years agoFix build with disabled asm
Steven Walters [Thu, 14 Apr 2011 18:09:45 +0000 (11:09 -0700)]
Fix build with disabled asm

13 years agoImprove Blu-ray compliance
Fiona Glaser [Wed, 6 Apr 2011 09:16:42 +0000 (02:16 -0700)]
Improve Blu-ray compliance
Use dec_ref_pic_marking SEIs to repeat B-ref referencing information.
Don't allow B-frames to reference frames outside their minigop.

13 years agoConsolidate Blu-ray hacks into --bluray-compat
Fiona Glaser [Thu, 7 Apr 2011 00:15:50 +0000 (17:15 -0700)]
Consolidate Blu-ray hacks into --bluray-compat
This option is now required for Blu-ray compatibility.
--open-gop bluray is now gone (using bluray-compat and open-gop implies a Blu-ray compatible open-gop).
This option doesn't automatically enforce every aspect of Blu-ray compatibility (e.g. resolution, framerate, level, etc).

13 years agoAdd SSE support to rectangle.h for 16-byte stores
Fiona Glaser [Tue, 29 Mar 2011 12:33:44 +0000 (05:33 -0700)]
Add SSE support to rectangle.h for 16-byte stores
Uses GCC vector intrinsics; may be suboptimal on particularly old GCC versions.

13 years agoDo not force Intel Compiler to target pre-mmx architecture for x86
Steven Walters [Tue, 12 Apr 2011 23:22:56 +0000 (19:22 -0400)]
Do not force Intel Compiler to target pre-mmx architecture for x86
Caused a speed penalty against gcc equivalents.

13 years agoWarn users when using --(psnr|ssim) without --tune (psnr|ssim)
Fiona Glaser [Tue, 12 Apr 2011 08:16:48 +0000 (01:16 -0700)]
Warn users when using --(psnr|ssim) without --tune (psnr|ssim)
This is a counter to the proliferation of incredibly stupid psnr/ssim "benchmarks" of x264 in which the benchmarker conveniently "forgot" --tune psnr/ssim, crippling x264 in the test.

13 years agoRemove redundant mbcmp calls in weightp analysis
Dylan Yudaken [Thu, 7 Apr 2011 23:06:19 +0000 (16:06 -0700)]
Remove redundant mbcmp calls in weightp analysis

13 years agoUse integer math for filler size calculation
Anton Mitrofanov [Wed, 6 Apr 2011 18:48:57 +0000 (22:48 +0400)]
Use integer math for filler size calculation

13 years agoDisable progress for FFMS input with --no-progress
Anton Mitrofanov [Tue, 5 Apr 2011 10:06:54 +0000 (14:06 +0400)]
Disable progress for FFMS input with --no-progress

13 years agoFix bug in intra-refresh ratecontrol
Michael Stuurman [Thu, 31 Mar 2011 20:45:22 +0000 (13:45 -0700)]
Fix bug in intra-refresh ratecontrol
Row SATDs were slightly incorrect.

13 years agoCosmetics: fix some signedness issues found by -Wsign-compare
Fiona Glaser [Sun, 10 Apr 2011 11:39:51 +0000 (04:39 -0700)]
Cosmetics: fix some signedness issues found by -Wsign-compare

13 years agoMinor fixes
Fiona Glaser [Sun, 3 Apr 2011 23:31:52 +0000 (16:31 -0700)]
Minor fixes
Fix a comment typo.
Align an array properly.
Make x264_scan8 unsigned: saves a bunch of movsxd instructions on x86_64.

13 years agoImprove C99 support checks in configure
Anton Mitrofanov [Thu, 24 Mar 2011 21:08:40 +0000 (00:08 +0300)]
Improve C99 support checks in configure
Fixes configuration with Intel compiler in some cases.

13 years agoEliminate the possibility of CAVLC level code overflow
Fiona Glaser [Sat, 19 Mar 2011 01:24:33 +0000 (18:24 -0700)]
Eliminate the possibility of CAVLC level code overflow
Instead, if it happens, just re-encode the MB at higher QPs until it fits.

13 years agox86 SIMD versions of optimize_chroma_dc
Henrik Gramner [Sun, 13 Mar 2011 07:21:09 +0000 (23:21 -0800)]
x86 SIMD versions of optimize_chroma_dc
SSE2/SSSE3/SSE4/AVX implementations.
About 3x faster.

13 years agoAdd Altivec version of mc_weight
Manuel Rommel [Sun, 26 Dec 2010 17:52:49 +0000 (18:52 +0100)]
Add Altivec version of mc_weight

13 years agoAdd Altivec versions of mbcmp_x functions
Manuel Rommel [Sun, 26 Dec 2010 20:41:33 +0000 (21:41 +0100)]
Add Altivec versions of mbcmp_x functions
These aren't merged versions, they just call the existing asm code.
A merged implementation would of course be faster.

13 years agoRecognize cygwin as itself when not targeting mingw
Steven Walters [Thu, 3 Mar 2011 02:31:27 +0000 (21:31 -0500)]
Recognize cygwin as itself when not targeting mingw
Also fix broken thread detection on cygwin.

13 years agoPatch Intel's CPU dispatcher
Steven Walters [Thu, 3 Mar 2011 01:39:25 +0000 (20:39 -0500)]
Patch Intel's CPU dispatcher
Reduces Intel Compiler's bias against non-Intel CPUs.

Big thanks to Agner for the original information on how to do this.

13 years agoIntel Compiler support
Steven Walters [Tue, 1 Mar 2011 00:07:40 +0000 (19:07 -0500)]
Intel Compiler support

Big thanks to David Rudie, the original author of this patch.

13 years agoCosmetics: make struct definition braces consistent
Kieran Kunhya [Tue, 8 Mar 2011 09:41:46 +0000 (09:41 +0000)]
Cosmetics: make struct definition braces consistent

13 years agoFix restoring of console title on Windows with ffms indexing
Fiona Glaser [Thu, 24 Mar 2011 03:59:41 +0000 (20:59 -0700)]
Fix restoring of console title on Windows with ffms indexing

13 years agoFix possible buffer overflow in mp4 muxer
Anton Mitrofanov [Wed, 9 Mar 2011 21:31:26 +0000 (00:31 +0300)]
Fix possible buffer overflow in mp4 muxer

13 years agoRemove inline asm syntax not supported by LLVM's assembler
Nick Lewycky [Tue, 8 Mar 2011 02:10:36 +0000 (18:10 -0800)]
Remove inline asm syntax not supported by LLVM's assembler
Doesn't affect compiled output outside of LLVM.

13 years agoFix 10L in r1912
Fiona Glaser [Sat, 19 Feb 2011 01:50:42 +0000 (17:50 -0800)]
Fix 10L in r1912
SSSE3 code got used in MMX/SSE2 and vice versa (in hpel).

13 years agoAdd AVX functions where 3+ arg commands are useful
Daniel Kang [Sat, 15 Jan 2011 18:44:45 +0000 (13:44 -0500)]
Add AVX functions where 3+ arg commands are useful

13 years agoFrame-packing 3D: don't place scenecuts on right views
Fiona Glaser [Mon, 7 Feb 2011 11:15:03 +0000 (03:15 -0800)]
Frame-packing 3D: don't place scenecuts on right views
Caused problems for some players.

13 years agoImprove slice-max-size handling of escape bytes
Fiona Glaser [Fri, 11 Feb 2011 08:54:51 +0000 (00:54 -0800)]
Improve slice-max-size handling of escape bytes
More accurate but a bit slower.  Helps deal with a few obnoxious corner cases where the current algorithm failed.

13 years agoUse bs_write1 wherever possible in header writing
Nathan Caldwell [Fri, 11 Feb 2011 04:25:00 +0000 (21:25 -0700)]
Use bs_write1 wherever possible in header writing

13 years agoRemove obsolete mvcost init code
Fiona Glaser [Tue, 8 Feb 2011 22:48:18 +0000 (14:48 -0800)]
Remove obsolete mvcost init code