- 19 Aug, 2009 1 commit
-
-
Fiona Glaser authored
Parameter structs can now be passed with individual frames. The previous method would only change the parameter of what was currently being encoded, which due to delay might be very far from an intended exact frame. Also add support for changing aspect ratio. Only works in a stream with repeating headers and requires the caller to force an IDR to ensure instant effect.
-
- 18 Aug, 2009 1 commit
-
-
Fiona Glaser authored
New behavior: reconfigging the encoder will result in changes being applied to each of the encoding threads as they finish encoding the current frame.
-
- 17 Aug, 2009 2 commits
-
-
Fiona Glaser authored
QPRD could in some cases force blocks to skip when they shouldn't be ~(+0.01db) Force QPRD to abide by qpmin/qpmax restrictions.
-
Fiona Glaser authored
Use the large-scale lookahead capability introduced in MB-tree for ratecontrol purposes. (Does not require MB-tree, however.) Greatly improved quality and compliance in 1-pass VBV mode, especially in CBR; +2db OPSNR or more in some cases. Fix some other bugs in VBV, which should improve non-lookahead mode as well. Change the tolerance algorithm in row VBV to allow for more significant mispredictions when buffer is nearly full. Note that due to the fixing of an extremely long-standing bug (>1 year), bitrates may change by nontrivial amounts in CRF without MB-tree.
-
- 14 Aug, 2009 2 commits
-
-
Fiona Glaser authored
B-adapt 1 didn't use more than MAX(1,bframes-1) B-frames when MB-tree was off.
-
Fiona Glaser authored
If VBV does underflow, ratecontrol could be permanently broken for the rest of the clip. Revert part of the previous VBV changes to fix this.
-
- 13 Aug, 2009 4 commits
-
-
Anton Mitrofanov authored
fix x264cli on streams whose total length is less than the encoder latency.
-
Fiona Glaser authored
-
Fiona Glaser authored
-
Loren Merritt authored
fix a buffer overread in x264_mbtree_propagate_cost_sse2. no effect on actual behavior, only theoretical correctness. fix x264_slicetype_frame_cost_recalculate on I-frames, which previously used all 0 mb costs. shut up a valgrind warning in predict_8x8_filter_mmx.
-
- 09 Aug, 2009 3 commits
-
-
Loren Merritt authored
1.6x faster on conroe.
-
Loren Merritt authored
AQ was applied inconsistently, with some AQed costs compared to other non-AQed costs. Strangely enough, fixing this increases SSIM on some sources but decreases it on others. More investigation needed. Account for weighted bipred. Reduce memory, increase precision, simplify, and early terminate.
-
Fiona Glaser authored
Eliminates a memory leak.
-
- 08 Aug, 2009 3 commits
-
-
Fiona Glaser authored
-
Fiona Glaser authored
-
Steven Walters authored
Fuzz tests show that all mallocs appear to be checked correctly now.
-
- 07 Aug, 2009 4 commits
-
-
Anton Mitrofanov authored
ftell doesn't seem to work properly on Windows in text mode.
-
Fiona Glaser authored
Delay frames for threading don't actually count as part of lookahead.
-
Fiona Glaser authored
Apparently some people are actually *using* placebo, so I've added this preset to bridge the gap.
-
Fiona Glaser authored
On by default; can be turned off with --no-mbtree. Uses a large lookahead to track temporal propagation of data and weight quality accordingly. Requires a very large separate statsfile (2 bytes per macroblock) in multi-pass mode. Doesn't work with b-pyramid yet. Note that MB-tree inherently measures quality different from the standard qcomp method, so bitrates produced by CRF may change somewhat. This makes the "medium" preset a bit slower. Accordingly, make "fast" slower as well, and introduce a new preset "faster" between "fast" and "veryfast". All presets "fast" and above will have MB-tree on. Add a new option, --rc-lookahead, to control the distance MB tree looks ahead to perform propagation analysis. Default is 40; larger values will be slower and require more memory but give more accurate results. This value will be used in the future to control ratecontrol lookahead (VBV). Add a new option, --no-psy, to disable all psy optimizations that don't improve PSNR or SSIM. This disables psy-RD/trellis, but also other more subtle internal psy optimizations that can't be controlled directly via external parameters. Quality improvement from MB-tree is about 2-70% depending on content. Strength of MB-tree adjustments can be tweaked using qcompress; higher values mean lower MB-tree strength. Note that MB-tree may perform slightly suboptimally on fades; this will be fixed by weighted prediction, which is coming soon.
-
- 05 Aug, 2009 1 commit
-
-
Fiona Glaser authored
Make predictors have an offset in addition to a multiplier. This primarily fixes issues in sources with lots of extremely static scenes, such as anime and CGI. We tried linear regressions, but they were very unreliable as predictors. Also allow VBV to be slightly more aggressive in raising QPs to avoid not having enough bits left in some situations. Up to 1db improvement on some clips.
-
- 29 Jul, 2009 1 commit
-
-
Fiona Glaser authored
An entry in subpel_iterations was missing. I have no idea how QPRD was working at all without this change.
-
- 28 Jul, 2009 3 commits
-
-
Fiona Glaser authored
Deal with some out-of-date information.
-
Loren Merritt authored
re-roll a loop (saves 44KB code size, which is the cause of most of this speed gain) don't re-mc mvs that haven't changed
-
Fiona Glaser authored
Cache chroma MC during refine_bidir_rd and use both the luma and chroma caches to skip MC in macroblock_encode. Fix incorrect call to rd_cost_part; refine_bidir_rd output was incorrect for i8>0. Remove some redundant clips. ~12% faster refine_bidir_rd.
-
- 27 Jul, 2009 2 commits
-
-
Fiona Glaser authored
It does what it says it does.
-
Fiona Glaser authored
fprofile settings now actually fprofile QPRD. Don't use i_mbrd before initializing it.
-
- 26 Jul, 2009 4 commits
-
-
Fiona Glaser authored
Trellis used wrong lambda with trellis=1
-
Fiona Glaser authored
Also add a few more checks to eliminate the need for spel_border.
-
Fiona Glaser authored
Refactor trellis lambda selection to be done in analyse_init instead of in trellis. This will allow for more easy adaption of lambda later on; for now it allows constant lambda across variable QPs. QPRD is only available with adaptive quantization enabled and generally improves SSIM and visual quality. Additionally, weight the SSD values from RD based on the relative QP offset for chroma; helps visually at high QPs where chroma has a lower QP than luma. This fixes some visual artifacts created by QPRD at high QPs. Note that this generally hurts PSNR and SSIM, and so is only on when psy-RD is on.
-
Fiona Glaser authored
Palignr-based solution for the most commonly used qpel function. 1-1.5% faster overall on Core 2 chips.
-
- 22 Jul, 2009 1 commit
-
-
Loren Merritt authored
-
- 20 Jul, 2009 1 commit
-
-
Anton Mitrofanov authored
"Auto-variance" uses log(var)^2 instead of log(var) and attempts to adapt strength per-frame. Generates significantly better SSIM; on by default with --tune ssim. Whether it generates visually better quality is still up for debate. Available as --aq-mode 2.
-
- 17 Jul, 2009 1 commit
-
-
Fiona Glaser authored
~70% faster chroma MC on 32-bit Conroe Also slightly faster SSSE3 intra_sad_8x8c
-
- 12 Jul, 2009 1 commit
-
-
Fiona Glaser authored
-
- 10 Jul, 2009 1 commit
-
-
Fiona Glaser authored
Faster lossless, cleaner code. SSSE3 version of zigzag_sub_4x4_field, faster lossless interlaced coding.
-
- 09 Jul, 2009 1 commit
-
-
James Darnley authored
For some types of input file, x264 did the adjustment before width/height were known.
-
- 07 Jul, 2009 3 commits
-
-
Fiona Glaser authored
Also add b-adapt 2 to fprofile.
-
Fiona Glaser authored
Eliminate some redundant shifts.
-
Fiona Glaser authored
Other new features include "tune" and "profile" settings; see --help for more details. Unlike most other settings, "preset" and "tune" act before all other options. However, "profile" acts afterwards, overriding all other options. Our defaults have also changed: new defaults are --subme 7 --bframes 3 --8x8dct --no-psnr --no-ssim --threads auto --ref 3 --mixed-refs --trellis 1 --weightb --crf 23 --progress. Users will hopefully find these changes to greatly improve usability.
-