]> git.sesse.net Git - x264/log
x264
12 years agoImport x86inc.asm patches from libav
Loren Merritt [Wed, 3 Aug 2011 14:43:34 +0000 (14:43 +0000)]
Import x86inc.asm patches from libav

12 years agoCosmetics: s/mmxext/mmx2/
Loren Merritt [Wed, 3 Aug 2011 14:42:12 +0000 (14:42 +0000)]
Cosmetics: s/mmxext/mmx2/

12 years agoFix two bugs in 4:4:4 chroma weightp analysis
Henrik Gramner [Sun, 7 Aug 2011 09:58:36 +0000 (11:58 +0200)]
Fix two bugs in 4:4:4 chroma weightp analysis
Caused slightly worse compression.

12 years agoFix "--asm avx"
Loren Merritt [Wed, 3 Aug 2011 14:40:01 +0000 (14:40 +0000)]
Fix "--asm avx"
Previously required "--asm sse2fast,fastshuffle,sse4.2,avx".

12 years agoRe-add support for glibc <2.6, which doesn't have CPU_COUNT
Anton Mitrofanov [Fri, 5 Aug 2011 11:59:20 +0000 (15:59 +0400)]
Re-add support for glibc <2.6, which doesn't have CPU_COUNT

12 years agoAvoid using deprecated libavformat functions
Yasuhiro Ikeda [Mon, 1 Aug 2011 23:59:15 +0000 (08:59 +0900)]
Avoid using deprecated libavformat functions
Replace av_find_stream_info with avformat_find_stream_info.
Now requires libavformat 53.3.0 or newer.

12 years agoUse assembly versions of some deblocking functions in MBAFF
Henrik Gramner [Wed, 27 Jul 2011 00:23:12 +0000 (02:23 +0200)]
Use assembly versions of some deblocking functions in MBAFF

12 years agoMove X264_VERSION / X264_POINTVER from config.h to x264_config.h
Anton Mitrofanov [Wed, 27 Jul 2011 20:26:27 +0000 (00:26 +0400)]
Move X264_VERSION / X264_POINTVER from config.h to x264_config.h
This makes them available to external programs as part of the public API.

12 years agoFix padding bug in x264_expand_border_mbpair
Henrik Gramner [Fri, 29 Jul 2011 18:15:52 +0000 (20:15 +0200)]
Fix padding bug in x264_expand_border_mbpair

12 years agoTimecode parsing: Add missing initialization
Yusuke Nakamura [Fri, 29 Jul 2011 14:39:26 +0000 (23:39 +0900)]
Timecode parsing: Add missing initialization
Fix crash when failed to parse timecode file before malloc pts.
Fix detection of user timebase considered to be exceeding H.264 maximum.

12 years agoFix crash with high bitdepth 4:2:0 input
Anton Mitrofanov [Thu, 28 Jul 2011 09:37:24 +0000 (13:37 +0400)]
Fix crash with high bitdepth 4:2:0 input

12 years agox86 asm cosmetics
Daniel Kang [Wed, 27 Jul 2011 01:57:39 +0000 (21:57 -0400)]
x86 asm cosmetics
Use FDEC_STRIDEB where appropriate.

12 years agoFix a bug in lossless sub-8x8 RD
Fiona Glaser [Tue, 26 Jul 2011 14:40:23 +0000 (07:40 -0700)]
Fix a bug in lossless sub-8x8 RD
Caused crashes in rare cases with lossless encoding.  Regression in 4:4:4.

12 years agoImproved p8x4/4x8 search decision
Fiona Glaser [Tue, 19 Jul 2011 06:10:30 +0000 (23:10 -0700)]
Improved p8x4/4x8 search decision
Use the same thresholding as for p16x8/8x16.
Does p8x4/4x8 search more often, for a small compression improvement.

12 years agoAdd --subme 11, which disables all early terminations in analysis
Dan Larkin [Wed, 13 Jul 2011 17:45:23 +0000 (12:45 -0500)]
Add --subme 11, which disables all early terminations in analysis
Necessary for a future trellis mode decision/motion estimation patch.
Also add the slowest presets to the regression test.

12 years agoSome trivial changes to RD thresholds
Dan Larkin [Wed, 13 Jul 2011 16:33:48 +0000 (11:33 -0500)]
Some trivial changes to RD thresholds
The output-changing portion of the next patch.

12 years agoAllow setting a wider range of chroma QP offsets
Anton Mitrofanov [Wed, 20 Jul 2011 18:54:43 +0000 (22:54 +0400)]
Allow setting a wider range of chroma QP offsets
This allows use of the full range of chroma QP offsets, even in combination with the automatic psy-based adjustments.

12 years agoOptimize macroblock_deblock_strength, add more early terminations
Fiona Glaser [Fri, 15 Jul 2011 20:24:38 +0000 (13:24 -0700)]
Optimize macroblock_deblock_strength, add more early terminations

12 years agoFunction-pointerify MBAFF deblocking functions
Fiona Glaser [Fri, 15 Jul 2011 01:23:44 +0000 (18:23 -0700)]
Function-pointerify MBAFF deblocking functions

12 years agoClean up MBAFF deblocking code
Fiona Glaser [Thu, 14 Jul 2011 21:04:11 +0000 (14:04 -0700)]
Clean up MBAFF deblocking code

12 years agoOptimize frame_deblock_row
Fiona Glaser [Wed, 13 Jul 2011 00:27:18 +0000 (17:27 -0700)]
Optimize frame_deblock_row

12 years agoShrink two arrays
Henrik Gramner [Wed, 20 Jul 2011 20:30:59 +0000 (22:30 +0200)]
Shrink two arrays

12 years agoAdd support for the new (4:4:4) colorspaces to x264_picture_alloc
Anton Mitrofanov [Mon, 18 Jul 2011 11:20:05 +0000 (15:20 +0400)]
Add support for the new (4:4:4) colorspaces to x264_picture_alloc

12 years agoVarious cosmetics
Anton Mitrofanov [Wed, 20 Jul 2011 14:06:41 +0000 (18:06 +0400)]
Various cosmetics

12 years agoImprove configure help
Yasuhiro Ikeda [Tue, 12 Jul 2011 14:41:42 +0000 (23:41 +0900)]
Improve configure help

12 years agoUse $optarg for some configure options
Yasuhiro Ikeda [Tue, 12 Jul 2011 05:46:29 +0000 (14:46 +0900)]
Use $optarg for some configure options

12 years agoLinux x264_cpu_num_processors(): use glibc macros
Rafaël Carré [Fri, 15 Jul 2011 01:51:43 +0000 (18:51 -0700)]
Linux x264_cpu_num_processors(): use glibc macros
The cpu_set_t structure is considered opaque.
Also handle sched_getaffinity() error case if "cpusetsize is smaller than the size of the affinity mask used by the kernel."

12 years agoFix spurious "stream properties changed" with --seek option on some inputs
Anton Mitrofanov [Thu, 14 Jul 2011 13:02:43 +0000 (17:02 +0400)]
Fix spurious "stream properties changed" with --seek option on some inputs

12 years agoFix use of deprecated libavcodec functions
Anton Mitrofanov [Fri, 15 Jul 2011 11:06:37 +0000 (15:06 +0400)]
Fix use of deprecated libavcodec functions
Replace avcodec_open with avcodec_open2. Now requires libavcodec 53.6.0 or newer.

12 years agoFix nalu_process callback with HRD
Kieran Kunhya [Wed, 13 Jul 2011 19:25:40 +0000 (20:25 +0100)]
Fix nalu_process callback with HRD

12 years agoFix incorrect chroma swap for some input pixfmts
Anton Mitrofanov [Wed, 13 Jul 2011 11:55:38 +0000 (15:55 +0400)]
Fix incorrect chroma swap for some input pixfmts

Problem occurred if pixfmt of lavf/ffms input was PIX_FMT_RGB24 or PIX_FMT_YUV444P.

12 years agoFix resize filter crash with YUVJ* input pixfmt
Anton Mitrofanov [Tue, 28 Jun 2011 17:39:09 +0000 (21:39 +0400)]
Fix resize filter crash with YUVJ* input pixfmt

12 years agoRGB encoding support
xvidfan [Thu, 23 Jun 2011 01:46:14 +0000 (18:46 -0700)]
RGB encoding support
Much less efficient than YUV444, but easy to support using the YUV444 framework.

12 years ago4:4:4 encoding support
Fiona Glaser [Wed, 22 Jun 2011 10:32:53 +0000 (03:32 -0700)]
4:4:4 encoding support

12 years agoProperly weight slice header lambda in chroma weightp analysis
Fiona Glaser [Mon, 20 Jun 2011 23:20:21 +0000 (16:20 -0700)]
Properly weight slice header lambda in chroma weightp analysis

12 years agoBetter x86 high bit depth predict_8x8c_p
Daniel Kang [Sun, 3 Jul 2011 21:32:00 +0000 (17:32 -0400)]
Better x86 high bit depth predict_8x8c_p
Avoid the need to check for corner cases by reordering arithmetic.
Also make a minor optimization to high bit depth predict_16x16_p.

12 years agoEliminate extra layer of indirection for sps/pps references
Fiona Glaser [Thu, 23 Jun 2011 18:54:42 +0000 (11:54 -0700)]
Eliminate extra layer of indirection for sps/pps references
Also remove poc type 1 support (it didn't work anyways) to reduce sps size.

12 years agoFix SSIM calculation with sliced threads
Fiona Glaser [Sun, 10 Jul 2011 02:21:00 +0000 (19:21 -0700)]
Fix SSIM calculation with sliced threads

12 years agoAvoid possible NaNs in B-frame output stats
Anton Mitrofanov [Sat, 9 Jul 2011 19:57:44 +0000 (23:57 +0400)]
Avoid possible NaNs in B-frame output stats

12 years agoARM: do not override the toolchain default for FPU ABI
Rémi Denis-Courmont [Thu, 30 Jun 2011 21:07:43 +0000 (14:07 -0700)]
ARM: do not override the toolchain default for FPU ABI

12 years agoFix link errors with libswscale/libavutil as shared libraries
Steven Walters [Fri, 24 Jun 2011 00:29:01 +0000 (20:29 -0400)]
Fix link errors with libswscale/libavutil as shared libraries

12 years agoFix deprecation in libavformat usage
Steven Walters [Sat, 18 Jun 2011 18:12:34 +0000 (14:12 -0400)]
Fix deprecation in libavformat usage
Replace av_open_input_file with avformat_open_input. Now requires libavformat 53.2.0 or newer.

13 years agoFix various issues with VBV+threads
Anton Mitrofanov [Wed, 8 Jun 2011 21:34:14 +0000 (01:34 +0400)]
Fix various issues with VBV+threads
Eliminate the race condition with interframe row predictors and threads.
Recalculate frame_size_estimated at the end of a frame, for improved update_vbv_plan.
Some cosmetics.

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.