commit a3ac64b8b467eea1264c0053022893bc84b2e9a2 r2334 Author: Anton Mitrofanov Date: Mon May 6 22:51:11 2013 +0400 OpenCL support improvement/refactoring Autoload the OpenCL library so that it's not required to run an openCL-enabled build of x264. Update X264_BUILD, which should have been changed with the first patch. commit c47347c01eb4d9933e2d9705f44707dbb396f611 r2333 Author: Jason Garrett-Glaser Date: Thu May 16 13:51:37 2013 -0700 x86: shave a few instructions off AVX deblock commit b547a4ea1169411610855002db9a8182b1e73314 r2332 Author: Henrik Gramner Date: Tue May 14 18:57:40 2013 +0200 x86: AVX2 dequant_4x4_dc commit 907573d3f7873b7600cc94d1e287d52628e11766 r2331 Author: Henrik Gramner Date: Tue May 14 18:53:12 2013 +0200 x86: AVX2 high bit-depth dequant commit 442c6a420f8727d2f4087e9f3f317fb1774b9262 r2330 Author: Jason Garrett-Glaser Date: Thu May 9 17:20:05 2013 -0700 x86-64: 64-bit variant of AVX2 hpel_filter ~5% faster than 32-bit. commit 26a6451591cd7cd25fcfeeacee3850e5dd7a7f7e r2329 Author: Henrik Gramner Date: Mon May 6 18:41:24 2013 +0200 x86: AVX2 high bit-depth denoise_dct 28->15 cycles Also reorder instructions to use fewer registers, 3 cycles faster on Ivy Bridge with 64-bit Windows. commit db95d6af63bec7839b3d3e1f2eb67b8689dc8170 r2328 Author: Henrik Gramner Date: Sat May 4 18:48:58 2013 +0200 x86: AVX2 high bit-depth quant quant_4x4: 13->6 cycles quant_4x4_dc: 14->8 cycles quant_8x8: 47->24 cycles quant_4x4x4: 48->25 cycles commit 327386f70836507cb44266e5d71bd1d744fe3d78 r2327 Author: Jason Garrett-Glaser Date: Wed May 1 14:32:11 2013 -0700 x86: AVX2 add16x16_idct_dc 27 -> 19 cycles commit c82db4ed07d4a69a84ac99d5e79e32f61141494f r2326 Author: Jason Garrett-Glaser Date: Mon Apr 29 16:16:54 2013 -0700 x86: faster AVX2 quant_4x4x4 10->9 cycles commit b79f4a6e460b00c85f0ee67b03299bf1d15dd48c r2325 Author: Jason Garrett-Glaser Date: Sat Apr 27 21:03:32 2013 -0700 x86: AVX2 intra_sad_x3_8x8c 30->22 cycles commit 2c0bca3f798e20133f61c3517202942e873e00d6 r2324 Author: Henrik Gramner Date: Sun Apr 28 11:11:03 2013 +0200 x86: AVX2 high bit-depth intra_sad_x3_8x8 43->24 cycles commit b2c30e1a470181b591619b211ae0342e9cc8aac9 r2323 Author: Jason Garrett-Glaser Date: Wed Apr 24 14:22:15 2013 -0700 x86: AVX2 deblock strength 30->18 cycles commit 37edf16c1955cfc9d2843024af0fa7aa6268ad90 r2322 Author: Henrik Gramner Date: Wed May 1 17:42:48 2013 +0200 x86: Faster high bit-depth intra_sad_x3_4x4 20->16 cycles on Ivy Bridge commit a9ed051f2bc73c9bfeff006d7328bd2bc99ce147 r2321 Author: Jason Garrett-Glaser Date: Tue Apr 30 17:36:46 2013 -0700 x86: faster SSSE3 hpel ~7% faster using the pmulhrsw trick from mc_chroma. commit 9373d5fa6e7a5cc5bcc756125cbc2e7fe058ea43 r2320 Author: Jason Garrett-Glaser Date: Mon Apr 29 14:22:23 2013 -0700 x86-64: faster SSSE3 trellis ~2% faster trellis. commit 2a716040eb8b89efd92ea61ab08ecc41bf0b8623 r2319 Author: Jason Garrett-Glaser Date: Thu May 2 17:10:26 2013 -0700 x86: 32-byte align the stack if possible Avoids the need for manual 32 byte array alignment on compilers that support -mpreferred-stack-boundary. commit eefaff1128ea9eb8dcd6796957ca5e56727337b8 r2318 Author: Henrik Gramner Date: Sat May 11 23:39:09 2013 +0200 x86inc: Utilize the shadow space on 64-bit Windows Store XMM6 and XMM7 in the shadow space in functions that clobbers them. This way we don't have to adjust the stack pointer as often, reducing the number of instructions as well as code size. commit b4be6e56629cf8fdcf53adc6b879969d8f6760b3 r2317 Author: Henrik Gramner Date: Fri May 3 23:06:10 2013 +0200 x86: Don't use explicitly aligned versions of SAD on AVX CPUs On modern CPUs movdqu isn't slower than movdqa when used on aligned data and using the same code in both cases saves cache. This was already done for the high bit-depth AVX2 implementation but the aligned version still exists as dead code so remove that. commit 99f553ec300d928d23522304ebf4818574b85ed3 r2316 Author: Henrik Gramner Date: Fri May 3 20:18:03 2013 +0200 x86: Add missing initializations for high bit-depth sad_aligned commit 42f2f78a05985a49fea0fb1bff050c95257810bb r2315 Author: Jason Garrett-Glaser Date: Mon May 13 16:52:18 2013 -0700 x86: add Jaguar CPU detection commit f12a17f5ecde41148256cb0c132cb31ac6602f3e r2314 Author: Henrik Gramner Date: Tue May 7 17:21:03 2013 +0200 x86inc: Remove .rodata kludges The Mach-O bug was fixed in yasm 0.8.0 and we don't support versions that old. a.out was superseded by ELF on sane systems a few decades ago. commit c3b166a6cf55afaeea5bbc94ebb275b92efbd3d8 r2313 Author: Henrik Gramner Date: Sat May 4 16:21:32 2013 +0200 checkasm: Use 64-bit cycle counters Prevents overflows that can occur in some cases. commit e943696e98ba9a75f5100c5692e39708ff2cc422 r2312 Author: Henrik Gramner Date: Fri May 10 13:55:32 2013 +0200 checkasm: Fix stack alignment bug commit b1749e204d14087a768990e8bfe964d343e0b9a9 r2311 Author: Jason Garrett-Glaser Date: Wed May 8 10:48:41 2013 -0700 Fix invalid memcpy in sliced-threads Likely didn't actually break in practice, but memcpy with src==dst is incorrect. commit 76a5c3a19f97cd34b65aeff050de4042b054bc65 r2310 Author: Jason Garrett-Glaser Date: Mon Apr 29 12:14:01 2013 -0700 Fix two bugs in slice-min-mbs and slices-max Slices-max broke slice-max-size when slice-max wasn't used. Slice-min-mbs broke in rare cases near the end of a threadslice. commit 3b1f1f71459b54b976588b871edc7f459b4d0434 r2309 Author: Jason Garrett-Glaser Date: Thu Apr 4 18:00:23 2013 -0700 x86: SSSE3 LUT-based faster coeff_level_run ~2x faster coeff_level_run. Faster CAVLC encoding: {1%,2%,7%} overall with {superfast,medium,slower}. Uses the same pshufb LUT abuse trick as in the previous ads_mvs patch. commit c05bf544b659510b9008c1037fd8887e8917d30c r2308 Author: Jason Garrett-Glaser Date: Mon Mar 25 14:03:37 2013 -0700 x86-64: BMI2 cabac_residual functions commit 437f808579754b5674fb6183331e8ca9bcf53647 r2307 Author: Jason Garrett-Glaser Date: Wed Mar 20 15:08:35 2013 -0700 x86: SSSE3 ads_mvs ~55% faster ads in benchasm, ~15-30% in real encoding. ~4% faster "placebo" preset overall. commit 2ad961f2d6fc681db6fc87f2c0ca68ff2a00e65e r2306 Author: Henrik Gramner Date: Tue Apr 16 23:27:53 2013 +0200 x86: AVX2 pixel_ssd_nv12_core commit 40406b804105964d6b5abea38833d69f6d617815 r2305 Author: Henrik Gramner Date: Tue Apr 16 23:27:50 2013 +0200 x86: AVX2 high bit-depth pixel_ssd commit c2852be748c66f1ff25f38133d5efbd6059bed6c r2304 Author: Henrik Gramner Date: Tue Apr 16 23:27:46 2013 +0200 x86: AVX2 high bit-depth pixel_sad_x3/pixel_sad_x4 Also reduce the number of xmm registers used by sse2/ssse3 pixel_sad_x3. commit fa9dcd02ea386e46314eb0c518b0b5763ef73c80 r2303 Author: Henrik Gramner Date: Tue Apr 16 23:27:43 2013 +0200 x86: AVX2 high bit-depth vsad commit 567d03619b0af415362454eb20066e0167266a43 r2302 Author: Henrik Gramner Date: Tue Apr 16 23:27:39 2013 +0200 x86: AVX2 high bit-depth pixel_sad Also use loops instead of duplicating code; reduces code size by ~10kB with negligible effect on performance. commit 6cc9f169844cc84a7da8cc4fbf08a3f5dea86c63 r2301 Author: Henrik Gramner Date: Tue Apr 16 23:27:35 2013 +0200 x86: AVX2 high_bit_depth pixel_avg2, get_ref, mc_copy_w16, mc_luma Also reduce the number of xmm registers used by mc_copy_* to avoid saving and restoring xmm6 and xmm7 on 64-bit Windows. commit c3711285a6dd1343197ac3e53bb95acf99c6cb42 r2300 Author: Henrik Gramner Date: Tue Apr 16 23:27:32 2013 +0200 x86: AVX2 nal_escape Also rewrite the entire function to be faster and drop the AVX version which is no longer useful. commit 255271fd7999b6b7ff7d65b7b8de1a2dc8919b1a r2299 Author: Henrik Gramner Date: Tue Apr 16 23:27:29 2013 +0200 x86: AVX memzero_aligned commit 43632cc8a9115c076204f46e31a5d5c3e58bf934 r2298 Author: Henrik Gramner Date: Tue Apr 16 23:27:25 2013 +0200 x86: AVX2 predict_16x16_dc commit dcad117131f0e0b5032bf5ca8c27def7fcdce17f r2297 Author: Henrik Gramner Date: Tue Apr 16 23:27:22 2013 +0200 x86: AVX2 predict_8x8c_p/predict_8x16c_p commit f5bff68b16e3125dc95705d060c89935a298f0ff r2296 Author: Henrik Gramner Date: Tue Apr 16 23:27:18 2013 +0200 x86: AVX2 predict_16x16_p Also fix the AVX implementation to correctly use the SSSE3 inline asm instead of SSE2. commit 92eb201b65cb9338500135bda1e2ee4d6861727c r2295 Author: Henrik Gramner Date: Tue Apr 16 23:27:14 2013 +0200 x86: AVX high bit-depth predict_16x16_v Also restructure some code to reduce code size of various functions, especially in high bit-depth. commit 16f3261076c7159aeea902e68ca064c6d0a2cfd8 r2294 Author: Henrik Gramner Date: Tue Apr 16 23:27:08 2013 +0200 x86: AVX2 high bit-depth predict_4x4_h commit a38b5fc6ec7348342d8ee4ff21abf3e82c5f7bbf r2293 Author: Henrik Gramner Date: Tue Apr 16 23:27:04 2013 +0200 x86: AVX2 high bit-depth predict_16x16_h commit 89f8263b141492a3b45274616fa0327289329c26 r2292 Author: Henrik Gramner Date: Tue Apr 16 23:27:00 2013 +0200 x86: AVX2 high bit-depth predict_8x8c_h/predict_8x16c_h commit 78b8af872f49aeaa3727ac4e0c8d3b53f0716f51 r2291 Author: Henrik Gramner Date: Tue Apr 16 23:26:47 2013 +0200 x86util: Support ymm registers in HADD macros commit d07b421cf19fc4d77f0bff9d4d6b11db27d81374 r2290 Author: Jason Garrett-Glaser Date: Tue Feb 26 16:26:34 2013 -0800 x86: more AVX2 framework, AVX2 functions, plus some existing asm tweaks AVX2 functions: mc_chroma intra_sad_x3_16x16 last64 ads hpel dct4 idct4 sub16x16_dct8 quant_4x4x4 quant_4x4 quant_4x4_dc quant_8x8 SAD_X3/X4 SATD var var2 SSD zigzag interleave weightp weightb intra_sad_8x8_x9 decimate integral hadamard_ac sa8d_satd sa8d lowres_init denoise commit e228f65488b02967bc450bbe3b92ac44eb0088d7 r2289 Author: Loren Merritt Date: Mon Feb 25 21:16:45 2013 +0000 x86inc: create xm# and ym#, analagous to m# For when we want to mix simd sizes within one function. commit e916dfb774059bc2b63dfe88e32fa21f51abd2b7 r2288 Author: Jason Garrett-Glaser Date: Fri Apr 5 16:08:35 2013 -0700 x86inc: fix AVX emulation of cmp(p|s)(s|d) commit 5b01ce105051144c4dd91866e1642cc8d7926c89 r2287 Author: Jason Garrett-Glaser Date: Tue Feb 5 17:15:00 2013 -0800 x86-64: cabac_block_residual assembly RDO: ~20% faster than C Bitstream: ~50% faster than C 1-2% faster overall, highest on preset superfast/fast/medium. commit 3a5f6c0aeacfcb21e7853ab4879f23ec8ae5e042 r2286 Author: Steve Borho Date: Thu Feb 21 12:48:40 2013 -0600 OpenCL lookahead OpenCL support is compiled in by default, but must be enabled at runtime by an --opencl command line flag. Compiling OpenCL support requires perl. To avoid the perl requirement use: configure --disable-opencl. When enabled, the lookahead thread is mostly off-loaded to an OpenCL capable GPU device. Lowres intra cost prediction, lowres motion search (including subpel) and bidir cost predictions are all done on the GPU. MB-tree and final slice decisions are still done by the CPU. Presets which do not use a threaded lookahead will not use OpenCL at all (superfast, ultrafast). Because of data dependencies, the GPU must use an iterative motion search which performs more total work than the CPU would do, so this is not work efficient or power efficient. But if there are spare GPU cycles to spare, it can often speed up the encode. Output quality when OpenCL lookahead is enabled is often very slightly worse in quality than the CPU quality (because of the same data dependencies). x264 must compile its OpenCL kernels for your device before running them, and in order to avoid doing this every run it caches the compiled kernel binary in a file named x264_lookahead.clbin (--opencl-clbin FNAME to override). The cache file will be ignored if the device, driver, or OpenCL source are changed. x264 will use the first GPU device which supports the required cl_image features required by its kernels. Most modern discrete GPUs and all AMD integrated GPUs will work. Intel integrated GPUs (up to IvyBridge) do not support those necessary features. Use --opencl-device N to specify a number of capable GPUs to skip during device detection. Switchable graphics environments (e.g. AMD Enduro) are currently not supported, as some have bugs in their OpenCL drivers that cause output to be silently incorrect. Developed by MulticoreWare with support from AMD and Telestream. commit e436158903c6171ce4abe78f03f013fe04f193bd r2285 Author: Jason Garrett-Glaser Date: Mon Mar 4 15:19:47 2013 -0800 weightp: improve scale/offset search, chroma Rescale the scale factor if the offset clips. This makes weightp more effective in fades to/from white (and an other situation that requires big offsets). Search more than 1 scale factor and more than 1 offset, depending on --subme. Try to find the optimal chroma denominator instead of hardcoding it. Overall improvement: a few percent in fade-heavy clips, such as a sample from Avatar: TLA. commit 389d06e8f93916b4fe5766ee4503380f2632ef79 r2284 Author: Jason Garrett-Glaser Date: Tue Feb 19 13:48:44 2013 -0800 Add slices-max feature The H.264 spec technically has limits on the number of slices per frame. x264 normally ignores this, since most use-cases that require large numbers of slices prefer it to. However, certain decoders may break with extremely large numbers of slices, as can occur with some slice-max-size/mbs settings. When set, x264 will refuse to create any slices beyond the maximum number, even if slice-max-size/mbs requires otherwise. commit f546e98eb8f9afd15fb7e8f95ec02fcf65155079 r2283 Author: Jason Garrett-Glaser Date: Thu Feb 14 17:22:02 2013 -0800 Add slice-min-mbs feature Works in conjunction with slice-max-mbs and/or slice-max-size to avoid overly small slices. Useful with certain decoders that barf on extremely small slices. If slice-min-mbs would be violated as a result of slice-max-size, x264 will exceed slice-max-size and print a warning. commit 1db46210d525856a8f9e59944913127287d956c5 r2282 Author: Anton Mitrofanov Date: Tue Mar 26 18:56:21 2013 +0400 Disable mbtree asm with cpu-independent option Results vary between versions because of different rounding results. commit fceb3b197f5fcaded3943718c162b662b52b208f r2281 Author: Anton Mitrofanov Date: Tue Mar 26 18:30:00 2013 +0400 Show "avs: no" --disable-avs option instead of empty string commit 68ee80a51f6f1de78877a9907e3efcbb1fe13ac6 r2280 Author: Tim Walker Date: Tue Mar 19 23:42:43 2013 +0100 lavf input: don't use deprecated AVStream fields Fixes building against newer libavcodecs from the Libav project. commit 5980580d5a4d32eebf32b2f274807dd4aa68836b r2279 Author: Anton Mitrofanov Date: Tue Mar 26 19:54:36 2013 +0400 Fix y4m input with C420paldv colorspace commit 580cc69707f6996dad8544d6ef0d5a8bbc1b5864 r2278 Author: Jason Garrett-Glaser Date: Sat Mar 2 01:22:29 2013 -0800 x86: correctly check stack alignment for Atom hadamard_ac Regression in r2265 (only affected compilers with broken stack alignment, like ICL on win32). commit b3c15fcf677a4ceb59c8f4adc39dc93ecd06ff8a r2277 Author: Loren Merritt Date: Mon Feb 25 21:23:55 2013 +0000 x86inc: fix some corner cases of SWAP SWAP with >=3 named (rather than numbered) args PERMUTE followed by SWAP with 2 named args used to produce the wrong permutation commit 89aecb440e2939be7fb72d8362eb12504711b94f r2276 Author: Jason Garrett-Glaser Date: Wed Feb 27 13:30:22 2013 -0800 Fix array overreads that caused miscompilation in gcc 4.8 commit e355b0e12d6cb380c13cdce15b42093eb8eeef44 r2275 Author: Jason Garrett-Glaser Date: Thu Feb 28 13:32:37 2013 -0800 Fix undefined behavior in x264_ratecontrol_mb commit c832fe995bf3d41cae1d3d22e10cb2288e8a650a r2274 Author: Stefan Groenroos Date: Fri Mar 1 22:35:34 2013 +0200 ARM: Fix bug in x264_quant_4x4x4_neon Regression in r2273. commit b3065e660df391168067f13216d99825260939d4 r2273 Author: Stefan Groenroos Date: Mon Feb 25 23:43:09 2013 +0200 ARM: update NEON mc_chroma to work with NV12 and re-enable it Up to 10-15% faster overall. commit e82cf2c8e3bc0d7623f3e8ed9a4684bc3dc40b91 r2272 Author: Jason Garrett-Glaser Date: Thu Feb 14 15:00:48 2013 -0800 CABAC/CAVLC: use the new bit-iterating macro here too commit 253e2c3f7eab79d74450de4f88a8bf451fd01be4 r2271 Author: Jason Garrett-Glaser Date: Fri Feb 8 15:34:38 2013 -0800 quant_4x4x4: quant one 8x8 block at a time This reduces overhead and lets us use less branchy code for zigzag, dequant, decimate, and so on. Reorganize and optimize a lot of macroblock_encode using this new function. ~1-2% faster overall. Includes NEON and x86 versions of the new function. Using larger merged functions like this will also make wider SIMD, like AVX2, more effective. commit eaae05ea3f104dc9fa948327e10649ec693adf0e r2270 Author: Stephen Hutchinson Date: Tue Feb 12 21:55:43 2013 -0500 Add AvxSynth support to the AviSynth input module. Uses dlopen to load AvxSynth on Linux and OS X. Allows the use of --demuxer avs for AvxSynth, though the only source filter it can currently use is FFMS2. Add a local copy of avxsynth_c.h and its dependent headers in extras/ so that users don't need to actually have AvxSynth development headers installed to enable support for it (mirroring the AviSynth behavior). Based on a patch by 0x09 (tab@lavabit.com) commit b2c70f6548a68b874006a176d48cd0ca4e03859a r2269 Author: Jason Garrett-Glaser Date: Fri Feb 8 00:13:15 2013 -0800 Eliminate some branchiness in ME/analysis Faster, fewer branch mispredictions. commit 9d600d64194e0b2a77a8d9aa3f05b141cf473af0 r2268 Author: Jason Garrett-Glaser Date: Wed Feb 6 16:55:39 2013 -0800 Fix some store forwarding stalls There's quite a few others, but most of them don't help to fix or there's no easy way to avoid them. commit 9fe40b1e0db6cd93652e3a45dbbd8f24dbe0b70e r2267 Author: Jason Garrett-Glaser Date: Tue Feb 5 01:23:23 2013 -0800 x86: faster AVX satd/sa8d/sa8d_satd/hadamard_ac Use Conroe-style movddup in AVX transforms; both Sandy Bridge and Bulldozer do movddup in the load unit, so it's totally free this way. On Sandy Bridge: ~6% faster sa8d_satd ~5% faster hadamard_ac ~9% faster 32-bit satd ~2% faster sa8d commit 4f24bb34453fdedefd161063e20516d148b80f8b r2266 Author: Jason Garrett-Glaser Date: Sat Feb 2 12:37:08 2013 -0800 x86: detect Bobcat, improve Atom optimizations, reorganize flags The Bobcat has a 64-bit SIMD unit reminiscent of the Athlon 64; detect this and apply the appropriate flags. It also has an extremely slow palignr instruction; create a flag for this to avoid massive penalties on palignr-heavy functions. Improve Atom function selection and document exactly what the SLOW_ATOM flag covers. Add Atom-optimized SATD/SA8D/hadamard_ac functions: simply combine the ssse3 optimizations with the sse2 algorithm to avoid pmaddubsw, which is slow on Atom along with other SIMD multiplies. Drop TBM detection; it'll probably never be useful for x264. Invert FastShuffle to SlowShuffle; it only ever applied to one CPU (Conroe). Detect CMOV, to fail more gracefully when run on a chip with MMX2 but no CMOV. commit d556d5540ab90b2c89a5ba0cd6ce393f87c19faf r2265 Author: Oskar Arvidsson Date: Sat Jan 19 01:47:09 2013 +0100 x86: combined SA8D/SATD dsp function Speedup is most apparent for 8-bit (~30%), but gives some improvements for 10-bit too (~12%). 64-bit only for now. commit 5c2ca5dee339a215cb331c426d40fa548675f088 r2264 Author: Oskar Arvidsson Date: Tue Jan 29 23:44:32 2013 +0100 x86: port SSE2+ SATD functions to high bit depth Makes SATD 20-50% faster across all partition sizes but 4x4. commit b09bc0cc936751f6ad1f20f5e11f523f6051ebc3 r2263 Author: Oskar Arvidsson Date: Wed Feb 6 02:07:53 2013 +0100 x86: faster high bit depth ssd About 15% faster on average. commit 91049858f8a051e87efcbe97285657fa3ef9a639 r2262 Author: Jason Garrett-Glaser Date: Fri Jan 18 22:55:46 2013 -0800 x86: optimize and clean up predictor checking Branchlessly handle elimination of candidates in MMX roundclip asm. Add a new asm function, similar to roundclip, except without the round part. Optimize and organize the C code, and make both subme>=3 and subme<3 consistent. Add lots of explanatory comments and try to make things a little more understandable. ~5-10% faster with subme>=3, ~15-20% faster with subme<3. commit a216e5c92a1543e5d748928f7531cfd771739cbf r2261 Author: Jason Garrett-Glaser Date: Tue Jan 22 12:31:55 2013 -0800 Fix two bugs in predictor checking pmv wasn't checked properly in some cases, as well as zero vector. Output-changing portion of the following patch. commit 4d220bc18cb177b6812c381e7fb808f9ae3189e1 r2260 Author: Jason Garrett-Glaser Date: Thu Jan 10 13:15:52 2013 -0800 Improve lookahead-threads auto selection Smarter decision to improve fast-first-pass performance in 2-pass encodes. Dramatically improves CPU utilization on multi-core systems. Tested on a quad-core Ivy Bridge (12 threads, 1080p): Fast first pass: veryfast: ~7% faster faster: ~11% faster fast/medium: ~15% faster slow/slower: ~42% faster veryslow: ~55% faster CRF/1-pass: veryfast: ~9% faster (all others remained the same) commit c63a518d43bb3822342513eb4af109551e86fbd2 r2259 Author: Henrik Gramner Date: Sun Jan 27 23:01:59 2013 +0100 x86: Use SSE instead of SSE2 for copying data Reduces code size because movaps/movups is one byte shorter than movdqa/movdqu. Also merge MMX and SSE versions of memcpy_aligned into a single macro. commit 0ce5b431b94f3934a7229ab264c12f1106e4330d r2258 Author: Henrik Gramner Date: Sun Jan 13 18:27:08 2013 +0100 64-bit cabac optimizations ~4% faster PIC WIN64: ~3% faster and 16 byte shorter cabac_encode_bypass ~8% faster cabac_encode_terminal Benchmarked on Ivy Bridge UNIX64: One instruction less in cabac_encode_bypass commit 51a5976144d80d9dc178fcaba2da5224809ee6ba r2257 Author: Mike Gorchak Date: Sat Feb 2 23:35:00 2013 -0800 configure: add QNX support commit 486ff39f398401d126fbf0379287b1a7ca7fae6e r2256 Author: Henrik Gramner Date: Sun Jan 20 19:35:06 2013 +0100 Windows: Enable DEP and ASLR commit 8da42b78154304ef194747a375a7e1ff3021d0a9 r2255 Author: Henrik Gramner Date: Thu Jan 17 19:17:24 2013 +0100 x86inc: Set ELF hidden visibility for global constants commit 989019209b2ccc828480f0e1f506747703134db3 r2254 Author: Diego Biurrun Date: Thu Jan 17 11:18:31 2013 +0100 x86inc: Add cvisible macro for C functions with public prefix This allows defining externally visible library symbols. Signed-off-by: Diego Biurrun commit 91b0f0e6415b9cc56b625eb77dd5b471a59d3230 r2253 Author: Diego Biurrun Date: Thu Jan 17 11:30:37 2013 -0800 x86inc: rename program_name to private_prefix Synced from libav. The new name is more descriptive and will allow defining a separate public prefix for externally visible library symbols. commit a4e77598d2e1e55483bf0918f6ec2fda51ee9507 r2252 Author: Jason Garrett-Glaser Date: Mon Jan 14 05:35:30 2013 -0800 x264.h: improve x264_encoder_reconfig documentation commit ce9efeafaad38bc6795d4469c952af2d5bb75a84 r2251 Author: Henrik Gramner Date: Sat Feb 16 19:36:50 2013 +0100 Cosmetics: stricter definition of parameterless functions commit e403db4f9079811f5a1f9a1339e7c85b41800ca7 r2250 Author: Neil Date: Mon Jan 28 10:47:38 2013 +0800 Update "Install and compile x264" in doc/regression_test.txt commit c13fbaf279d41e6bb8db09e95aec1b638ff026e8 r2249 Author: Anton Mitrofanov Date: Thu Jan 24 12:11:26 2013 +0400 Fix possible non-determinism with mbtree + open-gop + sync-lookahead Code assumed keyframe analysis would only pull one frame off the list; this isn't true with open-gop. commit 736d69b5875587b61c03aa45438e19ddba1f7035 r2248 Author: Anton Mitrofanov Date: Mon Feb 25 19:28:19 2013 +0400 x86: don't use the red zone on win64 commit 637005ebef9f36b816a9777183660ea17f5b249d r2247 Author: Jason Garrett-Glaser Date: Sun Feb 10 16:12:34 2013 -0800 x86-64: fix trellis asm with interlacing Regression in r2145. Assembly assumed array was [2][64] when it was actually [2][63]. Tiny (~0.1%) compression improvement. commit ba5ce76f7506b5f3d083a9eda8c4705e192f15ff r2246 Author: Ronald S. Bultje Date: Wed Jan 30 09:48:14 2013 -0800 x86-32: use simple nop codes for <= sse The "CentaurHauls family 6 model 9 stepping 8" family of CPUs (flags: fpu vme de pse tsc msr cx8 sep mtrr pge mov pat mmx fxsr sse up rng rng_en ace ace_en) SIGILLs on long nop codes. commit bc13772e21d0e61dea6ba81d0d387604b5b360df r2245 Author: Loren Merritt Date: Tue Jan 8 21:30:57 2013 +0000 Bump dates to 2013 commit 3508f4a1446c408dcc0febe1a349ad303ae6628c r2244 Author: Henrik Gramner Date: Mon Dec 17 21:54:00 2012 +0100 x86inc: Drop tzcnt workaround It is no longer needed now that we've bumped the version requirement of yasm to 1.2.0. commit b924133cabd125286488e16cfa71488ad4105d63 r2243 Author: Jason Garrett-Glaser Date: Mon Nov 12 10:28:53 2012 -0800 AVX2/FMA3 version of mbtree_propagate First AVX2 function for testing. Bump yasm version to 1.2.0 for AVX2 support. commit d967c09cd93a230e03ec1e0f0f696975d15a01c0 r2242 Author: Henrik Gramner Date: Tue Dec 11 16:05:34 2012 +0100 x86inc: Use VEX-encoded instructions in AVX functions Automatically use VEX-encoding in AVX/AVX2/XOP/FMA3/FMA4 functions for all instructions that exists in a VEX-encoded version. This change makes it easier to extend existing code to use AVX2. Also add support for AVX emulation of a few instructions that were missing before. commit f6c628650558803ed65cb15c1853113cc589ae4a r2241 Author: Loren Merritt Date: Sun Dec 2 15:56:30 2012 +0000 x86inc: activate REP_RET automatically Now RET checks whether it immediately follows a branch, so the programmer dosen't have to keep track of that condition. REP_RET is still needed manually when it's a branch target, but that's much rarer. The implementation involves lots of spurious labels, but that's ok because we strip them. commit 755fece365c14135c2621585e761f5dfeedefc74 r2240 Author: Ronald S. Bultje Date: Thu Dec 6 15:40:13 2012 -0800 x86inc: support stack mem allocation and re-alignment in PROLOGUE Use this in 8-bit loopfilter functions so they can be used if there is no aligned stack (e.g. x86-32 MSVC or ICC 10.x). commit c69e2d02c4a2ee171b6b8ca0a2e1032213e561bc r2239 Author: Henrik Gramner Date: Mon Dec 17 22:15:02 2012 +0100 Update config.guess and config.sub commit 9c4ba4bde8965571159eae2d79f85cabbb47416c r2238 Author: Anton Mitrofanov Date: Tue Jan 8 13:29:49 2013 -0800 Fix crash if the first frame is forced to a non-keyframe This is obviously bad user input, but x264 shouldn't crash if it happens. commit 593e8cc0b374aa7b20d3d961c57feb9bab508979 r2237 Author: Bernhard Rosenkränzer Date: Sun Dec 30 12:18:00 2012 -0800 Fix build on ARM with binutils >= 2.23.51.0.6 GAS doesn't seem to like spaces in vld1 anymore, so remove those. commit 55b5162d7ad9a70e2b6ae5ba3f743a35c2135aaf r2236 Author: Anton Mitrofanov Date: Fri Nov 23 18:26:53 2012 +0400 Fix pthread_join emulation on win32 and BeOS Doesn't actually affect x264, but it's more correct. commit 0059dcf938451134d8f9c8f1ad522a2c6071e7cd r2235 Author: Jason Garrett-Glaser Date: Tue Nov 27 07:50:51 2012 -0800 Fix typo in r2222 Slightly wrong numbers in level table. commit 28ee1f47ed4366351477065a0f794f05402e69a7 r2234 Author: Sergio Basto Date: Thu Nov 22 18:02:50 2012 -0800 configure: fix gpac detection with -Wp,-D_FORTIFY_SOURCE=2 commit 67a69c06d7bd7907b5d1e058a26284c06baa93d1 r2233 Author: Sean McGovern Date: Thu Nov 22 18:01:16 2012 -0800 Solaris: use sysconf to get processor count Solaris responds correctly to the same value as Cygwin, so let's use that. commit 6e68ab73908f339cdd91c40943fef46fd1f832fa r2232 Author: Anton Khirnov Date: Tue Nov 13 21:01:24 2012 +0100 lavf input: allocate AVFrame correctly Allocate AVFrames correctly with avcodec_alloc_frame(). This caused crashes with newer libavcodecs that try to free frame extradata. commit a632fe1a57baccdf1bcb340197fe48281cd3117f r2231 Author: Anton Mitrofanov Date: Sun Nov 11 03:44:02 2012 +0400 Fix crash when using libx264.dll compiled with ICL for X86_64 commit 1cffe9f406cc54f4759fc9eeb85598fb8cae66c7 r2230 Author: Anton Mitrofanov Date: Fri Nov 9 02:31:10 2012 +0400 Fix possible issues with out-of-spec QP values Fixes a possible regression in r2228. commit 349b9bdefae84b006c4bdb7e07290b88a18bbbb2 r2229 Author: Jason Garrett-Glaser Date: Wed Sep 26 13:49:02 2012 -0700 Attempt to optimize PPS pic_init_qp in 2-pass mode Small compression improvement; up to ~0.5% in extreme cases. Helps more with small slice sizes (tiny resolutions or slice-max-size). Note that this changes the 2-pass stats file format. commit 8437d0db5de43cf9cd11e02444c80984935e25dc r2228 Author: Jason Garrett-Glaser Date: Wed Sep 26 13:05:00 2012 -0700 Improve slice header QP selection Use the first macroblock of each slice instead of the last of the previous. Lets us pick a reasonable initial QP for the first slice too. Slightly improved compression. commit d2d8364ff48f789ef92135d24c6f185c4eccbeba r2227 Author: Jason Garrett-Glaser Date: Thu Oct 11 13:27:48 2012 -0700 Update level dpb size calculation to match newer H.264 spec Doesn't actually change encoding behavior, but makes it more correct. Warning messages should now be accurate at higher bit depths and non-4:2:0. Technically, since it redefines x264_level_t, this is an API version increment. commit 28ddb0dd533154b58f9147932fb1dec4c74127c8 r2226 Author: Jan Ekström Date: Sun Oct 7 21:12:05 2012 +0300 Add support for the ffmpeg/vapoursynth high bit depth y4m extensions commit 64cbe75cf3cae2bbc8fb34bcda5a9742d22f83f2 r2225 Author: Diego Biurrun Date: Tue Nov 6 14:48:56 2012 +0100 x86inc: Rename 3dnow2 to 3dnowext The name "3dnowext" is more common than "3dnow2". Doesn't affect x264. commit f418867a8b76f31acf3a965eed34c5587294e948 r2224 Author: Diego Biurrun Date: Wed Oct 31 12:23:54 2012 -0700 x86inc: only define program_name if the macro is unset. This allows overriding the value from outside the file. This can be useful if x86inc.asm is used outside of x264. commit f6a8615ab0c922ac2cb5c82c9824f6f4742b1725 r2223 Author: David Wolstencroft Date: Mon Oct 29 09:07:39 2012 -0700 Disable ARM NEON MRC CPU test for Apple devices The Apple A6 CPU doesn't support performance counters, so this test caused a crash. commit 6889f2cee49314aa380d4803991d645659efc01f r2222 Author: Jason Garrett-Glaser Date: Tue Nov 6 12:03:20 2012 -0800 Fix crash with no-scenecut + mbtree commit 4dbfcd462ccdf065654d17c47e1d05d53f213bf1 r2221 Author: Anton Mitrofanov Date: Fri Oct 12 23:43:40 2012 +0400 Fix reconfiguring to crf=0 Lossless mode can't currently be enabled mid-stream. commit 2ec8c64580efc10bbfc343d4bec2cf6bbb7d68c7 r2220 Author: Derek Buitenhuis Date: Mon Sep 17 11:09:20 2012 -0700 Fix ALIGNED_ARRAY_EMU macros on ICL ICL's preprocessor doesn't handle it correctly. This fix is similar to libav's fix in 0db2d9. commit 2f154ac1652000afe16140cb12c35d777f0c60c8 r2219 Author: Jason Martens Date: Thu Sep 13 11:20:40 2012 -0700 Fix use of deprecated av_close_input_file call commit 9fc00654018ff9f8a13dbe66785e31568a0c3229 r2218 Author: Brad Smith Date: Wed Sep 26 14:13:27 2012 -0700 Fix pkg-config for dynamic vs static linking commit b22f22fdb1f6d61ccc7b0c867b530322ea681133 r2217 Author: Brad Smith Date: Mon Sep 10 17:52:04 2012 -0700 Set libm in the configure script if the OS has libm Prerequisite for another configure patch after this. Idea copied from libpthread. commit 198a7ea13ccb727d4ea24b29f5da9b0292387309 r2216 Author: Jason Garrett-Glaser Date: Thu Aug 16 13:40:32 2012 -0700 Enhance mb_info: add mb_info_update This feature lets the callee know which decoded macroblocks have changed. commit f6e9002dd03329b69ea56391b3f4197efca7a690 r2215 Author: Jason Garrett-Glaser Date: Thu Aug 16 13:01:17 2012 -0700 Fix mb_info_free with sliced threads x264 would free mb_info before it was completely done using it. commit de725e98eb87198542aae5b8c5ebab4f6c06446e r2214 Author: Jason Garrett-Glaser Date: Tue Aug 7 12:43:26 2012 -0700 Enhance nalu_process Add the input frame opaque pointer to the arguments. This makes it easier to use with multiple simultaneous x264 encodes. commit 174cfac6344a9fad1577cd1f449b7d0e625d6e28 r2213 Author: Jason Garrett-Glaser Date: Mon Aug 6 14:55:35 2012 -0700 Improve mb_info constant mb optimization Allow fast skipping even if the pskip MV isn't zero. commit f57e7070d949b02e1a548382a549c34cf491e05e r2212 Author: Jason Garrett-Glaser Date: Mon Jul 30 12:58:34 2012 -0700 Export the average effective CRF of each frame Useful to judge the resulting quality of a frame when VBV is enabled. commit d7fd6cc060b6ae3f3bcb9e09fc8bf532a8ed3a82 r2211 Author: Brad Smith Date: Mon Aug 20 23:58:19 2012 -0700 Remove special-casing for OpenBSD pthread handling Previously it was policy to use -pthread, but OpenBSD now recommends -lpthread. its been libpthread anyway and policy has changed to stop using -pthread. commit 8f7644865010385efcb4cb5bd239b28edb4b49e2 r2210 Author: Ronald S. Bultje Date: Thu Jul 26 18:01:49 2012 -0700 x86inc: automatically insert vzeroupper for YMM functions Backported from libav. commit 68dfb7b352c4d273e44668c1f6e4a9a283a37e84 r2209 Author: Kieran Kunhya Date: Tue Jul 24 08:47:45 2012 -0700 Free user supplied data when deleting a frame This eliminates a memory leak when calling x264_encoder_close. commit d9d2288cabcfd1a90f29f2f11c8cce5450a08ffa r2208 Author: Jason Garrett-Glaser Date: Wed Jul 18 08:33:41 2012 -0700 Revert r2204 People don't seem to like this so I'm just going to get rid of it. commit 5f615f7f93d830e55e6fe4f04d214b93d8cb4b53 r2207 Author: Jason Garrett-Glaser Date: Tue Jul 10 14:10:44 2012 -0700 Faster predictor checking with subme<3 Fix a typo that made an early-skip less effective. Avoid a relatively unpredictable branch. Slightly changed output due to the typo-fix. ~50 cycles faster on Core i7. commit 5af86bedd71c89fc48b50bbb7e8a8bec3d360d3a r2206 Author: Jason Garrett-Glaser Date: Mon Jun 25 18:01:29 2012 -0700 Try 8x8 transform analysis even when sub8x8 partitions are present Turn off the sub8x8 partitions, try it, and turn them back on if it didn't help. Small compression improvement with p4x4 on (~0.1-0.5%). Also update related comments. commit 913485d26b19dddb6340f7115843d63cde8bb836 r2205 Author: Jason Garrett-Glaser Date: Fri Jun 8 18:19:59 2012 -0700 Support changing resolutions between passes with macroblock-tree Implement a basic separable bilinear filter to rescale the quantizer offsets. Structure inspired by swscale, but floating-point instead of fixed-point. Not as optimized as it could be, but it's quite fast already. Example compression penalties on a 720p video game recording: First pass with 720p and second as 480p: ~-1.5% (vs. same res) First pass with 480p and second as 720p: ~-3% (vs. same res) commit 8b535d9006d87e32c4ff939691b920da823ae85a r2204 Author: Alexander Prikhodko Date: Tue Jun 12 20:21:35 2012 +0300 Print elapsed time in encoding progress indicator commit 11e32c534a213168d8f466fb64bee75e1534d7af r2203 Author: Anton Mitrofanov Date: Sat Jun 2 21:27:50 2012 +0400 Cap ratecontrol predictor parameters Limits VBV mispredictions after long periods of relatively constant video. commit e21e9c972ed830ac7ad264912b41543adf7e720f r2202 Author: Loren Merritt Date: Tue Jul 3 14:38:04 2012 -0700 x86inc: import patches from libav Allow manual invocation of WIN64_SPILL_XMM even under INIT_MMX SSE version of mova is movaps rather than movdqa. YMM version of movnta. Add mp size for named arguments. Fix DEFINE_ARGS when used outside of a cglobal. Define a few more cpuflags. 3-argument wrappers for a few more instructions. commit 37be55213a39db40cf159ada319bd482a1b00680 r2201 Author: Anton Mitrofanov Date: Fri Jun 22 22:02:24 2012 +0400 Fix crash with --fps 0 Fix some integer overflows and check input parameters better. Also fix incorrect type specifiers for demuxer info printing. commit 999b753ff0f4dc872077f4fa90d465e948cbe656 r2200 Author: Jason Garrett-Glaser Date: Tue May 8 15:42:56 2012 -0700 Threaded lookahead Split each lookahead frame analysis call into multiple threads. Has a small impact on quality, but does not seem to be consistently any worse. This helps alleviate bottlenecks with many cores and frame threads. In many case, this massively increases performance on many-core systems. For example, over 100% faster 1080p encoding with --preset veryfast on a 12-core i7 system. Realtime 1080p30 at --preset slow should now be feasible on real systems. For sliced-threads, this patch should be faster regardless of settings (~10%). By default, lookahead threads are 1/6 of regular threads. This isn't exacting, but it seems to work well for all presets on real systems. With sliced-threads, it's the same as the number of encoding threads. commit ecfbf9d8025e39783bc4262dc1972ca742d8a993 r2199 Author: Anton Mitrofanov Date: Fri May 4 17:18:12 2012 +0400 Add support for RGB formats in bit-depth conversion filter commit 1c97f3570fba02f768fbf649b9f7d48beb720048 r2198 Author: Anton Mitrofanov Date: Sat May 12 13:57:49 2012 +0400 Fix some bugs in mb_info code commit 69a0443e7d8ab032a7f3c3468a42177d5e64daa2 r2197 Author: Jason Garrett-Glaser Date: Thu Mar 29 14:14:07 2012 -0700 Add mb_info API for signalling constant macroblocks Some use-cases of x264 involve encoding video with large constant areas of the frame. Sometimes, the caller knows which areas these are, and can tell x264. This API lets the caller do this and adds internal tracking of modifications to macroblocks to avoid problems. This is really only suitable without B-frames. An example use-case would be using x264 for VNC. commit df6252cfed7c23fbe883456f4e0607a7f8e91ad8 r2196 Author: Henrik Gramner Date: Sat Apr 7 00:40:09 2012 +0200 Faster chroma weight cost calculation New assembly function with SSE2, SSSE3 and XOP implementations for calculating absolute sum of differences. commit cce88ebc9e517b0fa8735b81ac30b4e6a79c8154 r2195 Author: Lucien Date: Sat Mar 31 13:42:49 2012 +0100 Add Level 5.2 support commit ee30c84e38b30896ffa6ddc417f3b4c281a86d1a r2194 Author: Henrik Gramner Date: Thu Apr 12 19:14:43 2012 +0200 Eradicate all mention of Extended Profile x264 never supported it and never will because nobody uses it. commit 8ca49cc5c40813d8b98544989eb684e167b06aa0 r2193 Author: Anton Mitrofanov Date: Tue Apr 3 21:46:52 2012 +0400 Fix disabling of mbtree when using 2pass encoding and zones commit 3691332c0b33a68f9d6f519edaa2b848ed34a38c r2192 Author: Alexander Prikhodko Date: Sat Mar 31 12:06:21 2012 +0300 configure: force select -mXX gcc option for i386/x86-64 Makes multilib compilation more convenient. commit e1ccbf9bb3abdd25d3f0c76682926ec49f3f8001 r2191 Author: Rafaël Carré Date: Sun Apr 15 21:20:14 2012 -0400 Update config.guess and config.sub Adds support for a bunch of targets, including: aarch64 (armv8) arm-linux-androideabi commit f87619768dba73c1effbcfb08875d096575e079e r2190 Author: Alexander Prikhodko Date: Sat Mar 31 11:33:41 2012 +0300 configure: correct use of RC variable and add --extra-rcflags commit 35cf912671fddcb3e701bf667a75f77dd8b28264 r2189 Author: Steven Walters Date: Wed Mar 28 21:15:04 2012 -0400 ICL/MSVS: Fix shared library generation and usage MSVS requires exported variables to be declared with the DATA keyword, and requires that imported variables be declared with dllimport. This does not fix x264 cli being unable to use a shared library built by ICL however. commit 259a6e57ae25c71acc1669e0aefde7ffe7e235ec r2188 Author: Kieran Kunhya Date: Tue Mar 27 17:38:56 2012 +0100 Fix intra-refresh + hrd commit e0351cdfeb45bf7f891eeb1dc475292154bb9d82 r2187 Author: Anton Mitrofanov Date: Sun Mar 25 17:34:24 2012 +0400 Fix frame input colorspace check commit 7392c8c31f791e9b4c10e4959f8715c8a8233d25 r2186 Author: Jason Garrett-Glaser Date: Thu Mar 22 13:56:50 2012 -0700 Fix comment in deblock.c The code does, in fact, handle CAVLC+8x8dct correctly already. commit 6979713216d792e44e3cbaeeba74b455e0a07c62 r2185 Author: Jason Garrett-Glaser Date: Tue Mar 13 14:37:26 2012 -0700 Fix sliced-threads ratecontrol bug Was using qp instead of qscale; could cause NANs (not to mention less accurate results). commit 5c85e0a2b7992fcaab09418e3fcefc613cffc743 r2184 Author: Anton Mitrofanov Date: Sun Mar 11 23:08:18 2012 -0700 Fix clobbering of mutex/cvs Regression in r2183. Bizarrely seemed to work on many platforms, but crashed on win64 and may have been slower. Only affected sliced threads during encoding, but could cause crashes on x264 encoder close even without sliced threads. commit c522ad1fed167d0e985e4f9dcdee042473cf74db r2183 Author: Jason Garrett-Glaser Date: Fri Feb 24 13:34:39 2012 -0800 Sliced-threads: do hpel and deblock after returning Lowers encoding latency around 14% in sliced threads mode with preset superfast. Additionally, even if there is no waiting time between frames, this improves parallelism, because hpel+deblock are done during the (singlethreaded) lookahead. For ease of debugging, dump-yuv forces all of the threads to wait and finish instead of setting b_full_recon. commit 6a27a481d4c3508ce778a61a139a4734bb8126f7 r2182 Author: Jason Garrett-Glaser Date: Fri Feb 24 13:16:52 2012 -0800 Add full-recon API option Fully reconstruct frames even without dump-yuv. commit e856755d2a67f45249c24cb51aa38fc4fa192321 r2181 Author: Jason Garrett-Glaser Date: Wed Feb 22 13:33:36 2012 -0800 x86inc: switch to amdnops Recent AMD CPUs' instruction decoders choke horribly on extremely long nops (i.e. with 4 prefixes). Won't affect much, since we don't use ALIGN much. commit 5a242c5862baaa4bd5829bd1b43dc11cf5c86344 r2180 Author: Jason Garrett-Glaser Date: Tue Feb 14 16:54:03 2012 -0800 BMI1 decimate functions Intel was nice enough to make tzcnt equal to "rep bsf", which is backwards-compatible. This means we don't actually have to add new functions to make it work. commit ac31c59a98c6c690894670b9c9af2612f799d85b r2179 Author: Jason Garrett-Glaser Date: Tue Feb 14 15:07:10 2012 -0800 Minor asm changes commit 83561e55dde06f3247aa9b99fa62ead38d7a406e r2178 Author: Jason Garrett-Glaser Date: Thu Feb 9 14:23:52 2012 -0800 Add row-reencoding support to VBV for improved accuracy Extremely accurate, possibly 100% so (I can't get it to fail even with difficult VBVs). Does not yet support rows split on slice boundaries (occurs often with slice-max-size/mbs). Still inaccurate with sliced threads, but better than before. commit 5a69f8e105663497794d4bb4e58cf7baa5cd29cb r2177 Author: Jason Garrett-Glaser Date: Thu Feb 9 12:38:44 2012 -0800 Abstract bitstream backup/restore functions Required for row re-encoding. commit 037d123cf62c4af2dc13742b8606882b6d0d3d9e r2176 Author: Anton Mitrofanov Date: Thu Feb 9 15:27:53 2012 -0800 Add an small per-MB cost penalty for lowres Helps avoid VBV predictors going nuts with very low-cost MBs. One particular case this fixes is zero-cost MBs: adaptive quantization decreases the QP a lot, but (before this patch), no cost penalty gets factored in for this, because anything times zero is zero. commit de5a0adca1a7d08b1233b317ec092dbf19263d2f r2175 Author: Jason Garrett-Glaser Date: Mon Feb 13 18:31:51 2012 -0800 Remove explicit run calculation from coeff_level_run Not necessary with the CAVLC lookup table for zero run codes. commit 9f1ac3b36eb2666e9d2ec4b859f3b63f60827bf0 r2174 Author: Jason Garrett-Glaser Date: Mon Feb 13 13:20:06 2012 -0800 Export PSNR/SSIM in x264 API commit 7e85ec036df4290697239f5dc9f4a793313ceebc r2173 Author: Ronald S. Bultje Date: Wed Feb 8 13:10:31 2012 -0800 x86inc: support yasm -f win64 Not necessary for x264, as -m amd64 already does the right thing, but used by external users of x86inc. commit 02c3d5ec58d6bcbc5e22715ae80d53d8556f3c8f r2172 Author: Henrik Gramner Date: Wed Feb 1 23:52:48 2012 +0100 Fix incorrect zero-extension assumptions in x86_64 asm Some x264 asm assumed that the high 32 bits of registers containing "int" values would be zero. This is almost always the case, and it seems to work with gcc, but it is *not* guaranteed by the ABI. As a result, it breaks with some other compilers, like Clang, that take advantage of this in optimizations. Accordingly, fix all x86 code by using intptr_t instead of int or using movsxd where neccessary. Also add checkasm hack to detect when assembly functions incorrectly assumes that 32-bit integers are zero-extended to 64-bit. commit 01f7a333e6c6a6d91a7fe977b491a448ddf4c117 r2171 Author: Jason Garrett-Glaser Date: Thu Feb 23 09:11:23 2012 -0800 Fix possible alignment crash when linking from MSVC x264_cavlc_init needs to be stack-aligned now. commit b17c247178a24c218843639c3f46bcfde0edab0a r2170 Author: Anton Mitrofanov Date: Tue Feb 21 12:58:22 2012 -0800 Fix rare overflow in 10-bit intra_satd_x3_16x16 asm commit 1446fe7c47cf660d764b4cbf53694bc3df9b04de r2169 Author: Steven Walters Date: Sat Feb 11 22:56:43 2012 -0500 ICL: fix out of tree building and resource file usage on Windows commit d3efb00abbedd2bbb70156bd989beefe06468116 r2168 Author: Oka Motofumi Date: Mon Feb 6 06:07:34 2012 +0900 Add error handling for out-of-tree build commit ec41b19edc67ee4eca09c0e3b37e6290844c5e1f r2167 Author: Anton Mitrofanov Date: Tue Mar 6 17:34:02 2012 +0400 Fix RGB colorspace input BGR/BGRA input was correct. commit 39a4c6fecaaa0d6cde8d89d31ef6cd1d25ab802b r2166 Author: Jason Garrett-Glaser Date: Mon Feb 13 16:40:32 2012 -0800 Fix interlaced + extremal slice-max-size Broke if the first macroblock in the slice exceeded the set slice-max-size. commit 3f72c99a15a07511b758d9e94217223480865124 r2165 Author: Henrik Gramner Date: Sun Feb 5 20:43:09 2012 +0100 Fix regression in r2141 Broke register preservation in x264_cpu_cpuid and x264_cpu_xgetbv. Did not cause any problems. commit da19765d723b06a1fa189478e9da61a1c18490f8 r2164 Author: Jason Garrett-Glaser Date: Thu Jan 19 14:56:54 2012 -0800 TBM, AVX2, FMA3, BMI1, and BMI2 CPU detection support TBM and BMI1 are supported by Trinity/Piledriver. The others (and BMI1) will probably appear in Intel's upcoming Haswell. Also update x86inc with AVX2 stuff. commit efef20090a06a38f9d95755588d7830fb92a2a02 r2163 Author: Loren Merritt Date: Fri Feb 3 06:27:18 2012 +0000 x86inc: add TAIL_CALL macro to abstract a common asm idiom commit a7e6e1793b4d2b49c9449d767320c71daa855cb6 r2162 Author: Jason Garrett-Glaser Date: Wed Jan 25 16:44:38 2012 -0800 Minor asm optimizations/cleanup commit 56ba096141d16ffcbabd805e2d27014f62f0d722 r2161 Author: Jason Garrett-Glaser Date: Tue Jan 24 19:03:58 2012 -0800 Clean up and optimize weightp, plus enable SSSE3 weight on SB/BDZ Also remove unused AVX cruft. commit 961a278e0123eb662b46a6f136a48a43f6a2d427 r2160 Author: Jason Garrett-Glaser Date: Mon Jan 23 18:57:58 2012 -0800 XOP frame_init_lowres Covers both 8-bit and 16-bit, ~5-10% faster on Bulldozer. commit c5809994990df6c63b4250546844dc77181fee0f r2159 Author: Jason Garrett-Glaser Date: Tue Jan 17 15:25:10 2012 -0800 XOP 8x8 zigzags Field: 35(mmx) ->16(xop) cycles Frame: 32(ssse3)->20(xop) cycles commit 14dc11f7c52fa29576e0003c8c16857a78bf5fbf r2158 Author: Jason Garrett-Glaser Date: Mon Jan 23 15:09:38 2012 -0800 AVX 32-bit hpel_filter_h Faster on Sandy Bridge. Also add details on unsuccessful optimizations in these functions. commit 2fcd0446b5d91ae52e143682c30000a49441e4a1 r2157 Author: Jason Garrett-Glaser Date: Fri Jan 27 16:29:30 2012 -0800 x86inc: add high halfword register support Might be useful in a few cases. commit 5c4b8484ea9aaabfb70523ba1f9c4d8343ad3221 r2156 Author: Ronald S. Bultje Date: Wed Jan 25 13:53:59 2012 +0800 Change %ifdef directives to %if directives in *.asm files This allows combining multiple conditionals in a single statement. commit 1b558de42dc08a303c2faf79fc9999b48a876370 r2155 Author: Anton Mitrofanov Date: Sun Jan 22 22:13:52 2012 +0400 Use TV range algorithm for bit-depth conversions Such sources are more common, so better to be correct for the common case. This also produces less error for the case of full range than the previous algorithm produced for the case of TV range. commit 83c371deba853a4ebb28739e868df86b3153fb3e r2154 Author: Hii Date: Wed Jan 25 16:29:22 2012 +0800 Bump dates to 2012 commit a2925c5a707e833c34fa0a64d497c02e6dcfe6e6 r2153 Author: Henrik Gramner Date: Sat Jan 28 21:38:27 2012 +0100 Add Windows resource file Displays version info in Windows Explorer. commit 98ade832d053f6bfca4d0dd2ab0cd1c88531721d r2152 Author: Sergey Radionov Date: Mon Jan 16 13:22:44 2012 -0800 Fix win32 pthread_cond_signal Isn't used by x264 currently, so didn't cause a problem. Fix backported from libav. commit a3f44077dc238dea92c0894d352b5a8723b9201b r2151 Author: Mans Rullgard Date: Wed Feb 1 15:55:25 2012 -0800 ARM: align asm functions to 4 bytes. Some linkers apparently fail to correctly align ARM functions when mixing with Thumb code. commit d3a39c92f5c130cad6d45e9daffa5a2beb145ebb r2150 Author: Anton Mitrofanov Date: Sun Jan 22 13:00:23 2012 +0400 Fix normalization of colorspace when input is packed YUV 4:2:2 commit 236763e39d8a756db0e8179745396ed88c1bfc2d r2149 Author: Jason Garrett-Glaser Date: Sat Jan 21 12:54:40 2012 -0800 Force keyint-min 1 with Blu-ray Fixes an issue with referencing across I-frames that's prohibited in Blu-ray for some godforsaken reason. commit 8a1189abd1355c4cf6f786fbc2a4b8c22f398710 r2148 Author: Oka Motofumi Date: Sun Jan 29 20:34:41 2012 +0900 Fix crash in --demuxer y4m with unsupported colorspace commit 1ab0877a40417a2f4f26ff0356e8b02182d9d996 r2147 Author: Anton Mitrofanov Date: Mon Jan 16 14:02:53 2012 -0800 Fix overread/possible crash with intra refresh + VBV commit bcd41dbcaa4430b2118d9f6828c2b9635cf9d58d r2146 Author: Loren Merritt Date: Wed Jan 18 15:47:07 2012 -0800 Fix trellis 2 + subme >= 8 Trellis didn't return a boolean value as it was supposed to. Regression in r2143-5. commit 748fe16c1303b89d2a1d0378addd83fb4198f51a r2145 Author: Loren Merritt Date: Fri Jan 6 15:53:29 2012 +0000 CABAC trellis opts part 4: x86_64 asm Another 20% faster. 18k->12k codesize. This patch series may have a large impact on encoding speed. For example, 24% faster at --preset slower --crf 23 with 720p parkjoy. Overall speed increase is proportional to the cost of trellis (which is proportional to bitrate, and much more with --trellis 2). commit cfdb36ece729209631f7213506685ae733d7f5d4 r2144 Author: Loren Merritt Date: Fri Jan 6 15:53:04 2012 +0000 CABAC trellis opts part 3: make some arrays non-static commit 65bd12ae875a768a06b67ec6297dec18323e0768 r2143 Author: Loren Merritt Date: Thu Dec 22 17:56:06 2011 +0000 CABAC trellis opts part 2: C optimizations Hoist the branch on coef value out of the loop over node contexts. Special cases for each possible coef value (0,1,n). Special case for dc-only blocks. Template the main loop for two common subsets of nodes, to avoid a bunch of branches about which nodes are live. Use the nonupdating version of cabac_size_decision in more cases, and omit those bins from the node struct. CABAC offsets are now compile-time constants. Change TRELLIS_SCORE_MAX from a specific constant to anything negative, which is cheaper to test. Remove dct_weight2_zigzag[], since trellis has to lookup zigzag[] anyway. 60% faster on x86_64. 25k->18k codesize. commit e176619d010fc32c970c7ab7a769bbfbe2665f61 r2142 Author: Loren Merritt Date: Thu Dec 22 17:55:06 2011 +0000 CABAC trellis opts part 1: minor change in output Due to different tie-break order. commit 4e87f36a0e1a78242f04db611e06f80b6b38d900 r2141 Author: Henrik Gramner Date: Sun Jan 8 04:14:10 2012 +0100 x86inc improvements for 64-bit Add support for all x86-64 registers Prefer caller-saved register over callee-saved on WIN64 Support up to 15 function arguments commit 84a06e611aff1267a720bf9552b3bcf263bd83b5 r2140 Author: Ilia Valiakhmetov Date: Sun Jan 15 04:47:58 2012 -0600 High bit depth SSE2/AVX add8x8_idct8 and add16x16_idct8 From Google Code-In. commit c605e3174410ba5c7d1d0a777082e2397734d637 r2139 Author: Edward Wang Date: Wed Jan 4 15:35:54 2012 -0800 MMX/SSE2/AVX predict_8x16_p, high bit depth fdct8 From Google Code-In. commit 6b06f6d3f7f800dca1a4ea154f54427d5b3cea2b r2138 Author: Jason Garrett-Glaser Date: Thu Dec 22 14:03:15 2011 -0800 XOP 8-bit fDCT Use integer MAC for one of the SUMSUB passes. About a dozen cycles faster for 16x16. commit c4b54c83629bb92af6c4836a8859e9432dc7333a r2137 Author: Cristian Militaru Date: Wed Jan 4 12:38:08 2012 -0800 High bit depth intra_sad_x3_4x4 From Google Code-In. commit c032fbaa3801fb4cf8dd1dd95a6479ca5bd262e2 r2136 Author: Jason Garrett-Glaser Date: Thu Dec 8 13:45:41 2011 -0800 Use a large LUT for CAVLC zero-run bit codes Helps the most with trellis and RD, but also helps with bitstream writing. Seems at worst neutral even in the extreme case of a CPU with small L2 cache (e.g. ARM Cortex A8). commit ebb1429e2d24f57aa4ea75284386a15f2eab553e r2135 Author: Matt Habel Date: Fri Dec 16 23:16:09 2011 -0800 High bit depth intra_sad_x3_8x8, intra_satd_x3_4x4/8x8c/16x16 Also add an ACCUM macro to handle accumulator-induced add-or-swap more concisely. commit 6d921c5bdefae1a733a3a4c29d88ea15fcece76e r2134 Author: Shitiz Garg Date: Sat Dec 3 15:34:57 2011 -0800 MMX 10-bit predict_8x8c_h and predict_8x16c_h From Google Code-In. commit 47cdaa9c3d8197d4deb711d9bcc4af869ef8a426 r2133 Author: Aaron Schmitz Date: Wed Nov 30 00:15:45 2011 -0600 Some MBAFF x86 assembly functions. deblock_chroma_420_mbaff, plus 422/422_intra_mbaff implemented using existing functions. From Google Code-In. commit 027b05e0a22421e477847506a205a49b151ae5bf r2132 Author: George Stephanos Date: Thu Dec 1 16:53:45 2011 -0800 More ARM NEON assembly functions predict_8x8_v, predict_4x4_dc_top, predict_8x8_ddl, predict_8x8_ddr, predict_8x8_vl, predict_8x8_vr, predict_8x8_hd, predict_8x8_hu. From Google Code-In. commit 658a3585b74f77fd8f78588f3f39e0abefb104c4 r2131 Author: Ilia Date: Mon Nov 28 05:20:09 2011 -0800 More 4:2:2 asm functions High bit depth version of deblock_h_chroma_422. Regular and high bit depth versions of deblock_h_chroma_intra_422. High bit depth pixel_vsad. SSE2 high bit depth and MMX 8-bit predict_8x8_vl. Our first GCI patch this year! commit 978abe065737089913feccffece483bc69a9e5b0 r2130 Author: Henrik Gramner Date: Thu Dec 8 16:14:35 2011 +0100 SSE2 and SSSE3 versions of sub8x16_dct_dc Also slightly faster sub8x8_dct_dc commit 61a78a1b417595c4b5d7ef6831692904a243a9fc r2129 Author: Steven Walters Date: Mon Dec 5 08:46:34 2011 -0500 Resize filter updates Use AVPixFmtDescriptors to pick the most compatible x264 csp for any pixel format. Fix deprecated use of av_set_int. Now requires libavutil >= 51.19.0 commit bc6c98cf4f76c779c8c07f43aa97ac29b1150bc0 r2128 Author: Oka Motofumi Date: Thu Jan 5 14:23:50 2012 -0800 Add out-of-tree build support commit f33c8cb0f8fff7a83100b3e9d15baba53c6f6a35 r2127 Author: Anton Mitrofanov Date: Fri Dec 16 18:17:00 2011 +0400 Limit SSIM to 100db Avoids floating point error for infinite SSIM (lossless). commit c0d698859c36be611d465f968762f042853be817 r2126 Author: Reynaldo H. Verdejo Pinochet Date: Wed Jan 4 13:16:12 2012 -0300 Fix wrong conditional inclusion of inttypes.h inttypes.h is required by encoder/ratecontrol.c for SCNxxx macros, and HAVE_STDINT_H does not imply having inttypes.h. stdint.h is a subset of inttypes.h, but this isn't enough for x264. This change fixes building x264 with Android's toolchain. commit b081d179e741ceffee2217f6fda06779693dce56 r2125 Author: Anton Mitrofanov Date: Wed Dec 21 11:08:56 2011 +0400 Fix crash with sliced threads and input height <= 112 commit 64da5f9df46ac33a5a6b56ca1510d2082e6fbb62 r2124 Author: Phillip Blucas Date: Mon Dec 19 17:43:41 2011 -0600 Fix loading custom 8x8 chroma quant matrices in 4:4:4 commit 4c08e42504af81cdbe5789a309e868ca8eda2c1f r2123 Author: Anton Mitrofanov Date: Fri Dec 16 01:48:07 2011 +0400 Fix PCM cost overflow commit 489a9b2d04c4828877930d2a9104ce93dde8cb85 r2122 Author: Anton Mitrofanov Date: Fri Dec 9 01:54:22 2011 +0400 Fix overflow in 8-bit x86 vsad asm function commit c291a9d09263708e9d9f02e28f8442fdbe46bb06 r2121 Author: Anton Mitrofanov Date: Wed Dec 7 19:14:52 2011 +0400 Fix crash in --fullhelp when compiled against recent ffmpeg Don't assume all pixel formats have a description. commit 0c7dab9c2a106ce3ee5d6ad7282afb49e1cc3954 r2120 Author: Jason Garrett-Glaser Date: Tue Dec 6 14:39:21 2011 -0800 Fix regression in r2118 Broke trellis with i16x16 macroblocks. commit 0637cd67cb245fce5ba190fa4b9c341319ea2b37 r2119 Author: Jason Garrett-Glaser Date: Wed Nov 30 13:02:12 2011 -0800 Modify MBAFF chroma deblock functions to handle U/V at the same time Allows for more convenient asm implementations. commit 67f1fdc4d9c030568eac8cf9ab9d0bb249f520db r2118 Author: Jason Garrett-Glaser Date: Thu Nov 10 16:16:13 2011 -0800 CABAC trellis optimizations: use SIMD quant Significant speed increase, minor change in output due to rounding. commit e047b3c475cd42b6647397a244e239ebfca53bf6 r2117 Author: Steven Walters Date: Sun Nov 6 09:48:30 2011 -0800 YUV range detection and support for x264CLI Two new options: --input-range and --range. --input-range forces the range of the input in case of misdetection; auto by default. -- range sets the range of the output; x264cli will convert if necessary, TV by default. --fullrange is now removed as a CLI option (but the libx264 API is unchanged). commit 00df989cc06208050230756525633438d76b5a6a r2116 Author: Kieran Kunhya Date: Fri Nov 4 20:09:13 2011 +0000 Pass through user data commit 04a0aeefd2f5b152c5dbca4a1c6569bd27c9f721 r2115 Author: Jason Garrett-Glaser Date: Thu Oct 27 14:05:56 2011 -0700 Remove unpredictable branch in CABAC dqp commit 4185ee883b04d9cee57a64fdebd153830b7b27ba r2114 Author: Loren Merritt Date: Sun Oct 23 23:15:11 2011 +0000 x86inc: AVX symmetry optimization 3-arg AVX ops with a memory arg can only have it in src2, whereas SSE emulation of 3-arg prefers to have it in src1 (i.e. the move). So, if the op is symmetric and the wrong one is memory, swap them. Eliminates redundant moves in some cases when using 3-operand without AVX with memory arguments. Also fix movss and movsd in some cases, and flag shufps correctly as float. commit cc129adcaaf5604f3d4fea9ebcb289403192a741 r2113 Author: Anton Mitrofanov Date: Tue Nov 29 13:45:13 2011 -0800 checkasm: shut up gcc warnings, fix some naming of functions in results commit f0ccc98bb747b8ee0fe9329f4205cf382788bb89 r2112 Author: Mans Rullgard Date: Mon Nov 28 16:29:12 2011 -0800 checkasm: fix build on ARM Because of how ALIGNED_ARRAY_16 is defined on ARM, array initialisers cannot be used here. Use memset() instead. commit d8d8e756b1fee72b4771761d6aa4cfb31edc0b67 r2111 Author: Anton Mitrofanov Date: Sat Nov 12 01:31:49 2011 +0400 Improve makefile rules Remove the need for "make clean" after most reconfigures. commit e6d33a931c08918e78dcae97e4d80d0c3411bf2c r2110 Author: Anton Mitrofanov Date: Sat Nov 12 00:47:48 2011 +0400 Mark some local functions as static, cosmetics commit e0c11dc6e283569606aaa97767401c6a13c2529d r2109 Author: Anton Mitrofanov Date: Fri Nov 11 23:19:02 2011 +0400 Fix crash if timecode file opening fails commit a14db080c3fdba4cadc38152a292bb1fa216d50e r2108 Author: Fabian Greffrath Date: Fri Nov 11 13:25:43 2011 -0800 Configure: force PIC for shared build on PARISC and MIPS commit 6a0bd421bf5fd006012ddcd1be2072a8736b2d27 r2107 Author: Anton Mitrofanov Date: Sat Oct 22 19:41:07 2011 +0400 Improve yasm version check Previous check allowed certain earlier versions that weren't fully compatible. commit 07efeb45db224b7757880d4d63bb549fb454f6db r2106 Author: Jason Garrett-Glaser Date: Tue Oct 18 14:30:26 2011 -0700 Add fenc prefetching to adaptive quant Many fewer cache misses, faster adaptive quant. commit 81a99842b76834c11a46438f354d7f2a9e89752a r2105 Author: Jason Garrett-Glaser Date: Tue Oct 18 14:14:03 2011 -0700 Split prefetch_fenc between colorspaces Add 4:2:2 version. commit 9f872e137c16e8ee0a46d8ca00ac5d670c219d5f r2104 Author: Jason Garrett-Glaser Date: Tue Oct 11 17:04:32 2011 -0700 Some more 4:2:2 x86 asm coeff_last8, coeff_level_run8, var2_8x16, predict_8x16c_dc, satd_4x16, intra_mbcmp_8x16c_x3, deblock_h_chroma_422 commit f52aa86c184d69b4e97b0f63f5f27166b19aa280 r2103 Author: Loren Merritt Date: Tue Oct 11 18:12:43 2011 +0000 Remove obsolete versions of intra_mbcmp_x3 intra_mbcmp_x3 is unnecessary if x9 exists (SSSE3 and onwards). commit 2f0384dcd68bb85f98fb566b70b863b40082c83e r2102 Author: Loren Merritt Date: Mon Oct 10 05:42:36 2011 +0000 SSSE3/SSE4/AVX 9-way fully merged i8x8 analysis (sa8d_x9) x86_64 only for now, due to register requirements (like sa8d_x3). i8x8 analysis cycles (per partition): penryn sandybridge bulldozer 616->600 482->374 418->356 preset=faster 892->632 725->387 598->373 preset=medium 948->650 789->409 673->383 preset=slower commit 46d1f3ab24e8aead7ccb3f89a382e7c92721ba96 r2101 Author: Jason Garrett-Glaser Date: Fri Sep 30 19:09:19 2011 -0700 SSSE3/SSE4/AVX 9-way fully merged i8x8 analysis (sad_x9) ~3 times faster than current analysis, plus (like intra_sad_x9_4x4) analyzes all modes without shortcuts. commit 077d4532c9d9c7914e31ef9250096cc379042bcb r2100 Author: Loren Merritt Date: Wed Oct 5 13:29:21 2011 -0700 Merge i4x4 prediction with intra_mbcmp_x9_4x4 Avoids a redundant prediction after analysis. commit 55a9d38348a1d0bee687293e194b018b21a6ad96 r2099 Author: Jason Garrett-Glaser Date: Wed Oct 5 13:17:31 2011 -0700 Inline i4x4/i8x8 encode into intra analysis Larger code size, but faster. commit afd9bc24823b0f9f0727c0332a0db24db66876d2 r2098 Author: Jason Garrett-Glaser Date: Wed Sep 21 17:12:10 2011 -0700 Initial XOP and FMA4 support on AMD Bulldozer ~10% faster Hadamard functions (SATD/SA8D/hadamard_ac) plus other improvements. commit 8cf50493e5b80d9e33aaf0c9d55551d6411e1be4 r2097 Author: Mans Rullgard Date: Tue Sep 27 21:14:14 2011 +0400 ARM: update NEON chroma deblock functions to NV12 pixel format commit f7e640a33fe66838ecece1da267b566342f3be24 r2096 Author: Sean McGovern Date: Mon Oct 17 12:45:15 2011 -0700 Add /usr/lib/{64/}values-xpg6.o to $LDFLAGS on Solaris This is required for POSIX.1-2001 compliance. commit a0ce295b33a1ba87f732e661e22dba1a307e3405 r2095 Author: Sean McGovern Date: Mon Oct 17 12:44:03 2011 -0700 Fix linker test for -Bsymbolic The Solaris linker only accepts -Bsymbolic for objects compiled in dynamic mode (i.e. shared objects), so pass -shared to gcc. Additionally, for x86_32 unresolved textrels cause a linker error so mark the .text section as 'impure'. commit 9aa0f65f72514cfa8c478fbffdafd937c70b5f5d r2094 Author: Sean McGovern Date: Mon Oct 17 12:43:28 2011 -0700 Add $SOFLAGS to exported SOFLAGS make variable commit d32d091d519c5ff710b2fb7b2f255fd510e4a6d8 r2093 Author: Henrik Gramner Date: Sat Sep 24 15:56:08 2011 +0200 Allow setting a chroma format at compile time Gives a slight speed increase and significant binary size reduction when only one chroma format is needed. commit 6eac7c35a5da6c176cedc2644c53ff9d019f7fb0 r2092 Author: Harfe Leier Date: Fri Sep 30 12:49:33 2011 -0700 Improve profile help List high422/high444 profiles, and don't show non-high-bit-depth profiles in high bit depth builds. commit 896fff46dd9a0fba9bb5285d536d03e0d5f86da2 r2091 Author: Yusuke Nakamura Date: Thu Oct 20 03:09:51 2011 +0900 Fix infinite loop parsing TDecimate Mode 3 timecode v1 files commit 2697313a6f223f0b270ba9533c6b47967fa7d246 r2090 Author: Jason Garrett-Glaser Date: Mon Oct 10 17:44:31 2011 -0700 Fix some integer overflows/signedness errors found by IOC The only real bug here is in slicetype.c, which may or may not affect real encodes. commit d2594831dd858d6ed8efcfd4160ea5ac7f1357c7 r2089 Author: Jason Garrett-Glaser Date: Wed Oct 12 09:16:32 2011 -0700 Fix pixel_var2 with 4:2:2 encoding Might have caused artifacts or suboptimal chroma compression. commit 1fe87df5857266f0099a473962e7f32a89d9b701 r2088 Author: Anton Mitrofanov Date: Sun Oct 9 19:14:16 2011 +0400 Fix chroma intra analysis in 4:4:4 lossless mode commit c4644d878dc82f8812482f660f651948d53d4b43 r2087 Author: Anton Mitrofanov Date: Sun Oct 9 01:13:29 2011 +0400 Fix use of uninitialized MVs in sub8x8 RDO commit f8825a4a6f827bb28fffb75a7cc1a6c386088828 r2086 Author: Fabian Greffrath Date: Fri Oct 7 19:04:17 2011 -0700 Fix detection of Alpha CPU arch on alphaev67 commit 8a62835b0b669e79c75b6522b1f7632fe16105d9 r2085 Author: Jason Garrett-Glaser Date: Wed Sep 14 14:53:04 2011 -0700 Optimize x86 asm for Intel macro-op fusion That is, place all loop counter tests right before their conditional jumps. commit f7cd45b9bbc1f7f5bfd2df6421e79895655552ab r2084 Author: Jason Garrett-Glaser Date: Mon Sep 12 11:51:23 2011 -0700 CAVLC: clean up and restructure Somewhat faster CAVLC and RD bit-counting. commit 4a89c200a2c50f17bcf657f3254f6f05b2c0df41 r2083 Author: Jason Garrett-Glaser Date: Thu Sep 8 17:27:02 2011 -0700 CABAC: clean up and restructure Somewhat faster CABAC and RD bit-counting. commit 62fc472989765a6bea4485c8988d7b246e7ceeb5 r2082 Author: Jason Garrett-Glaser Date: Sun Sep 4 11:31:29 2011 +0200 Some initial 4:2:2 x86 asm commit bb9216dc319a39eb6f2a5508a98e36d6492ffa7e r2081 Author: Henrik Gramner Date: Fri Aug 26 15:57:04 2011 +0200 4:2:2 encoding support commit b7fa2ff50ef74eb8a27e675f8e418754965115e2 r2080 Author: Loren Merritt Date: Mon Aug 15 18:18:55 2011 +0000 SSSE3/SSE4 9-way fully merged i4x4 analysis (sad/satd_x9) i4x4 analysis cycles (per partition): penryn sandybridge 184-> 75 157-> 54 preset=superfast (sad) 281->165 225->124 preset=faster (satd with early termination) 332->165 263->124 preset=medium 379->165 297->124 preset=slower (satd without early termination) This is the first code in x264 that intentionally produces different behavior on different cpus: satd_x9 is implemented only on ssse3+ and checks all intra directions, whereas the old code (on fast presets) may early terminate after checking only some of them. There is no systematic difference on slow presets, though they still occasionally disagree about tiebreaks. For ease of debugging, add an option "--cpu-independent" to disable satd_x9 and any analogous future code. commit b1bb23c7570bded53b698800e48c755240d4aa35 r2079 Author: Loren Merritt Date: Mon Aug 15 17:43:42 2011 +0000 Faster intra_mbcmp_x3 for versions without dedicated asm Select asm subroutines more intelligently in the wrapper functions. commit 265cfae4441ffe76cf6885e5a2448b945deb9b0c r2078 Author: Loren Merritt Date: Sat Aug 13 19:01:22 2011 +0000 Optimize x86 intra_predict_4x4 and 8x8 High bit depth Penryn, Sandybridge cycles: 4x4_ddl: 11->10, 9-> 8 4x4_ddr: 15->13, 12->11 4x4_hd: , 15->12 4x4_hu: , 14->13 4x4_vr: 15->14, 14->12 8x8_ddl: 32->19, 19->14 8x8_ddr: 42->19, 21->14 8x8_hd: , 15->13 8x8_hu: 21->17, 16->12 8x8_vr: 33->19, 8-bit Penryn, Sandybridge cycles: 4x4_ddr: 24->15, 4x4_hd: 24->16, 4x4_hu: 23->15, 4x4_vr: 23->16, 4x4_vl: 10-> 9, 8x8_ddl: 23->15, 8x8_hd: , 17->14 8x8_hu: , 15->14 8x8_vr: 20->16, 17->13 commit fe5729ddfc8e574f27d8678b992d4e356bab84c9 r2077 Author: Loren Merritt Date: Sat Aug 13 06:44:28 2011 +0000 Use realistic alignment for intra pred benchmarks in checkasm commit 926a03a9c1f48d0fbd54b0e802d740774c100a78 r2076 Author: Yusuke Nakamura Date: Wed Sep 21 01:15:38 2011 +0900 Fix frame packing SEI with --frame-packing 0 According to the spec, when frame_packing_arrangement_type is equal to 0, quincunx_sampling_flag shall be equal to 1. commit 03a542a6ca08ba3f96d9e1bf0e36fa21dc9e7762 r2075 Author: Oka Motofumi Date: Mon Sep 5 11:50:37 2011 +0900 Fix install/uninstall shared libs if SYS is WINDOWS/CYGWIN commit 2641b9e20f5effc4e22ca600df00c79e5f60b446 r2074 Author: Reinhard Tartler Date: Wed Aug 10 00:16:46 2011 -0700 Add Hurd support to configure commit dabc19ec94f56660fac10aae60da2b711e84368f r2073 Author: Loren Merritt Date: Sat Aug 13 00:39:35 2011 +0000 Optimize x86 intra_satd_x3_* ~7% faster. commit 419f1bf97acffc3c9a943d53cc67a7b282b02cce r2072 Author: Loren Merritt Date: Fri Aug 12 19:13:07 2011 +0000 Optimize x86 intra_sa8d_x3_8x8 ~40% faster. Also some other minor asm cosmetics. commit b581755785751a4c05db0dcb020d5daff278cfe0 r2071 Author: Loren Merritt Date: Fri Aug 12 02:15:46 2011 +0000 Scale interlaced refs/mvs for mvr predictors Slightly improves compression and fixes a Valgrind error. commit 0c2ddc1748f582333b9afcf097b9eb0cd99c8dff r2070 Author: Loren Merritt Date: Thu Aug 11 15:03:12 2011 +0000 Optimize predict_8x8_filter and incidentally remove a valgrind false-positive commit afeb24049e5dc3c88dc9aceb18be4ec3897476f7 r2069 Author: Anton Mitrofanov Date: Mon Aug 15 12:22:18 2011 +0400 Don't override flat SSE2 dequant functions with non-flat AVX ones Slightly faster. commit d89a7d5dd4496e38da657879574b4eb3fbde5071 r2068 Author: Loren Merritt Date: Mon Aug 8 13:40:53 2011 +0000 Shut up some valgrind false-positives commit 6881f2475a98dca0de8b33e18223d9341f90fb12 r2067 Author: Jason Garrett-Glaser Date: Tue Aug 16 13:02:24 2011 -0700 Avoid some unnecessary allocations with B-frames/CABAC off commit ddf82cdd4ab3f8172723201e9da22602e27e1204 r2066 Author: Jason Garrett-Glaser Date: Mon Aug 22 17:07:03 2011 -0700 Fix typo in p8x8 RD analysis Passed wrong idx to trellis. commit 14de3782abaa278a133887b8980ff7b716bfd159 r2065 Author: Anton Mitrofanov Date: Sun Aug 21 02:44:45 2011 +0400 Fix invalid memory accesses in x86 lowres_init when width <= 16 commit 83326434ca9a60b831cd4c7f15cf7bbc764b3200 r2064 Author: Anton Mitrofanov Date: Mon Aug 15 12:03:09 2011 +0400 Fix intermediate conversion for YUVJ* pixfmts with 4:4:4 encoding commit 86c5510ea34314274431ff107d67eefc3c3753f8 r2063 Author: Henrik Gramner Date: Sun Aug 14 13:39:29 2011 +0200 Fix pic_out returned by x264_encoder_encode with 4:4:4 commit b232a9dcc5dacf80ad9498ce95e1192c324dcc8b r2062 Author: Loren Merritt Date: Thu Aug 11 22:12:26 2011 +0000 Fix zeroing of mvr predictors in bskip blocks commit fd3fb348f9bc1ae2ebac62315da8807554ff3a52 r2061 Author: Loren Merritt Date: Thu Aug 11 01:33:13 2011 +0000 Fix: chroma planes for weightp analysis were not initted if U early-terminates and V doesn't. commit ada894da37b88f9f92b8747d91245fe88944a8fb r2060 Author: Henrik Gramner Date: Wed Aug 10 20:25:07 2011 +0200 Expand borders before chroma weightp analysis Prevents mc from using uninitialized source pixels. commit b21640e2fb7808f4b8e3184156be19ee58dccc53 r2059 Author: Henrik Gramner Date: Wed Aug 10 19:29:14 2011 +0200 Another 4:4:4 chroma weightp bug fix commit 317d883819667eac3b2268cfb313ff177ffa7131 r2058 Author: Jason Garrett-Glaser Date: Wed Aug 10 00:17:26 2011 -0700 Fix typo in help commit 0ba8a9c6973897ec35e1a5d241a71f4f5a4f81aa r2057 Author: Jason Garrett-Glaser Date: Sat Aug 6 10:45:47 2011 -0700 Improve support for varying resolution between passes Should give much better quality, but still doesn't support MB-tree yet. Also check for the same interlaced options between passes. Various minor ratecontrol cosmetics. commit fd681ea8e719ab9a26a20220e5eece6651f93ebd r2056 Author: Loren Merritt Date: Sun Aug 7 22:57:27 2011 +0000 asm cosmetics: base-4 constants for shuffles commit a718aad0045b2930d871fd7b6bf33fc0192d526f r2055 Author: Loren Merritt Date: Wed Aug 3 14:58:50 2011 +0000 Enable some existing asm functions that were missing function pointers pixel_ads1_avx, predict_8x8_hd_avxx High bit depth mc_copy_w8_sse2, denoise_dct_avx, prefetch_fenc/ref, and several pixel*sse4. commit 444dae123cc0f41508a0172e29e83327aaed47e6 r2054 Author: Loren Merritt Date: Wed Aug 3 14:57:06 2011 +0000 Remove some unused, broken, and/or useless functions Unused frame_sort. Unused x86_64 dequant_4x4dc_mmx2, predict_8x8_vr_mmx2. Unused and broken high_depth integral_init*h_sse4, optimize_chroma_*, dequant_flat_*, sub8x8_dct_dc_*, zigzag_sub_*. Useless high_depth dequant_sse4, dequant_dc_sse4. commit 43f62a2f07a0f5d2667e6fa89f5de87b2e57ddd2 r2053 Author: Loren Merritt Date: Wed Aug 3 14:56:27 2011 +0000 asm cosmetics: merge all the variants of ABS macros commit 4b429c69797ebb88c89fd3dfe7555f0db787d6dd r2052 Author: Loren Merritt Date: Wed Aug 3 14:53:29 2011 +0000 asm cosmetics part 2 These changes were split out of the cpuflags commit because they change the output executable. commit c0cda6aa0bf775f453e9cea319203975c2875773 r2051 Author: Loren Merritt Date: Wed Aug 3 14:46:41 2011 +0000 asm cosmetics: INIT_MMX/XMM/YMM now support a cpuflags argument Reduces the number of macro args that need to be passed around. Allows multiple implementations of a given macro (e.g. PALIGNR) to check cpuflags at the location where the macro is defined, instead of having to select implementations by %define at toplevel. Remove INIT_AVX, as it's replaced by "INIT_XMM avx". This commit does not change the stripped executable. commit 12f12a268d47b12d9e26f57919c5022e2f234f9d r2050 Author: Loren Merritt Date: Wed Aug 3 14:43:34 2011 +0000 Import x86inc.asm patches from libav commit b78735138b32e667d5710dbd63aa93ea6498487f r2049 Author: Loren Merritt Date: Wed Aug 3 14:42:12 2011 +0000 Cosmetics: s/mmxext/mmx2/ commit 59cb2eb53913ac463f7aef99332d3558a95ff040 r2048 Author: Henrik Gramner Date: Sun Aug 7 11:58:36 2011 +0200 Fix two bugs in 4:4:4 chroma weightp analysis Caused slightly worse compression. commit fafa6a2fca75967ff90f98a8acc59d3ffdd8bb7f r2047 Author: Loren Merritt Date: Wed Aug 3 14:40:01 2011 +0000 Fix "--asm avx" Previously required "--asm sse2fast,fastshuffle,sse4.2,avx". commit 47f2263e0fea2f70d22b1cbef699e283d6063764 r2046 Author: Anton Mitrofanov Date: Fri Aug 5 15:59:20 2011 +0400 Re-add support for glibc <2.6, which doesn't have CPU_COUNT commit 9949438453f2f11d1f4cb5d39cfc884c28c98042 r2045 Author: Yasuhiro Ikeda Date: Tue Aug 2 08:59:15 2011 +0900 Avoid using deprecated libavformat functions Replace av_find_stream_info with avformat_find_stream_info. Now requires libavformat 53.3.0 or newer. commit 392e762151d1657abc8ae5d345c144c3ef280819 r2044 Author: Henrik Gramner Date: Wed Jul 27 02:23:12 2011 +0200 Use assembly versions of some deblocking functions in MBAFF commit 1c7dbec5f17ee091bae445584a4f05783e4aae9e r2043 Author: Anton Mitrofanov Date: Thu Jul 28 00:26:27 2011 +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. commit 178455cd4df5f5a36f39c49c8f7b03965b269a91 r2042 Author: Henrik Gramner Date: Fri Jul 29 20:15:52 2011 +0200 Fix padding bug in x264_expand_border_mbpair commit e927cc334c74a3265e912bafaadb7009e44c27f8 r2041 Author: Yusuke Nakamura Date: Fri Jul 29 23:39:26 2011 +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. commit 75eb1cde5b489a030e172ccc0b6724939c095865 r2040 Author: Anton Mitrofanov Date: Thu Jul 28 13:37:24 2011 +0400 Fix crash with high bitdepth 4:2:0 input commit 45b6e459debd4644b0863511fd0c8f55549bc9d7 r2039 Author: Daniel Kang Date: Tue Jul 26 21:57:39 2011 -0400 x86 asm cosmetics Use FDEC_STRIDEB where appropriate. commit c28471e2500a6071aab8f9c3adac104f201e5f2a r2038 Author: Jason Garrett-Glaser Date: Tue Jul 26 07:40:23 2011 -0700 Fix a bug in lossless sub-8x8 RD Caused crashes in rare cases with lossless encoding. Regression in 4:4:4. commit f8ebd4ab2679c6eedd47bb7f138533259020984b r2037 Author: Jason Garrett-Glaser Date: Mon Jul 18 23:10:30 2011 -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. commit 9977b595fb7591e3616fa98677baf6e84e0f7029 r2036 Author: Dan Larkin Date: Wed Jul 13 12:45:23 2011 -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. commit 207ca3e95b38d734400e12f57faa16b778f0706c r2035 Author: Dan Larkin Date: Wed Jul 13 11:33:48 2011 -0500 Some trivial changes to RD thresholds The output-changing portion of the next patch. commit 882badfe748f8190c6716472b8c8841b227093c1 r2034 Author: Anton Mitrofanov Date: Wed Jul 20 22:54:43 2011 +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. commit 6fa146ca5898b8496f26b7b201abdef43558c29f r2033 Author: Jason Garrett-Glaser Date: Fri Jul 15 13:24:38 2011 -0700 Optimize macroblock_deblock_strength, add more early terminations commit ded542eee26d4bd7af2e2eafe4f2d8c1eeb1bfae r2032 Author: Jason Garrett-Glaser Date: Thu Jul 14 18:23:44 2011 -0700 Function-pointerify MBAFF deblocking functions commit 68be4f2b049b2ee8611cafbedfb84a282ff1b974 r2031 Author: Jason Garrett-Glaser Date: Thu Jul 14 14:04:11 2011 -0700 Clean up MBAFF deblocking code commit d4e7faa2036fd570a366fd06912c733cb7c7e495 r2030 Author: Jason Garrett-Glaser Date: Tue Jul 12 17:27:18 2011 -0700 Optimize frame_deblock_row commit 2bd11d1ac5220c21fd45994d7f3099810d5809df r2029 Author: Henrik Gramner Date: Wed Jul 20 22:30:59 2011 +0200 Shrink two arrays commit c3445f63085a50bf34471470a324ba8f455625f6 r2028 Author: Anton Mitrofanov Date: Mon Jul 18 15:20:05 2011 +0400 Add support for the new (4:4:4) colorspaces to x264_picture_alloc commit 75c60800837888e0656431d5dbcd9111ffed0819 r2027 Author: Anton Mitrofanov Date: Wed Jul 20 18:06:41 2011 +0400 Various cosmetics commit 419df032c64dd46ddf782b1c131cb73b82761a50 r2026 Author: Yasuhiro Ikeda Date: Tue Jul 12 23:41:42 2011 +0900 Improve configure help commit 88f6bbd378c96851dfcd454e8b753bbb0de3bf10 r2025 Author: Yasuhiro Ikeda Date: Tue Jul 12 14:46:29 2011 +0900 Use $optarg for some configure options commit 44c881766e9fcba80035e8a127bbee851cdb8584 r2024 Author: Rafaël Carré Date: Thu Jul 14 18:51:43 2011 -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." commit 7fcf1cffae45b0dd614a9b8a1b17f4d8f44a823e r2023 Author: Anton Mitrofanov Date: Thu Jul 14 17:02:43 2011 +0400 Fix spurious "stream properties changed" with --seek option on some inputs commit 3765dfdd27bd206a800a61c38c0a6639d762db3b r2022 Author: Anton Mitrofanov Date: Fri Jul 15 15:06:37 2011 +0400 Fix use of deprecated libavcodec functions Replace avcodec_open with avcodec_open2. Now requires libavcodec 53.6.0 or newer. commit f23a615354397e3f5256a831b75e149186d4ac91 r2021 Author: Kieran Kunhya Date: Wed Jul 13 20:25:40 2011 +0100 Fix nalu_process callback with HRD commit 4bc22b042f90df62452b3056f8cd6d7066572e4f r2020 Author: Anton Mitrofanov Date: Wed Jul 13 15:55:38 2011 +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. commit 9cc407d84182dc0266937d85747ccae20ff8ebb2 r2019 Author: Anton Mitrofanov Date: Tue Jun 28 21:39:09 2011 +0400 Fix resize filter crash with YUVJ* input pixfmt commit ffc41542d73811dffbe5814a23edda65db0e6aea r2018 Author: xvidfan Date: Wed Jun 22 18:46:14 2011 -0700 RGB encoding support Much less efficient than YUV444, but easy to support using the YUV444 framework. commit c07df2f77dacfec444785bf60229f804dc43c10b r2017 Author: Jason Garrett-Glaser Date: Wed Jun 22 03:32:53 2011 -0700 4:4:4 encoding support commit 2809cb6ce63817a58c5639642fe05bc50747e126 r2016 Author: Jason Garrett-Glaser Date: Mon Jun 20 16:20:21 2011 -0700 Properly weight slice header lambda in chroma weightp analysis commit e976f640d5d0ac4775a0cb706888e79649c54a6c r2015 Author: Daniel Kang Date: Sun Jul 3 17:32:00 2011 -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. commit eaf95892fd60c8c4b104354c5e18ea5dfd23343e r2014 Author: Jason Garrett-Glaser Date: Thu Jun 23 11:54:42 2011 -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. commit 6fce39a268b46f370e607531a923f7b42562f332 r2013 Author: Jason Garrett-Glaser Date: Sat Jul 9 19:21:00 2011 -0700 Fix SSIM calculation with sliced threads commit 2e5620d9a366b34a0df1c7b914eef22eb54446b5 r2012 Author: Anton Mitrofanov Date: Sat Jul 9 23:57:44 2011 +0400 Avoid possible NaNs in B-frame output stats commit c9ba582d61db3e2b0a8587a46a7cb78f5371f9c7 r2011 Author: Rémi Denis-Courmont Date: Thu Jun 30 14:07:43 2011 -0700 ARM: do not override the toolchain default for FPU ABI commit 3c78047c1136d0d205a5d26c733d2fed3f021652 r2010 Author: Steven Walters Date: Thu Jun 23 20:29:01 2011 -0400 Fix link errors with libswscale/libavutil as shared libraries commit 073f081762b78501e57c6bc2667c004858739edf r2009 Author: Steven Walters Date: Sat Jun 18 14:12:34 2011 -0400 Fix deprecation in libavformat usage Replace av_open_input_file with avformat_open_input. Now requires libavformat 53.2.0 or newer. commit 4c552d873ada1be3cf2d77965427fab599d051a0 r2008 Author: Anton Mitrofanov Date: Thu Jun 9 01:34:14 2011 +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. commit c7268059edc6837ce6bff560cca5e842c114127e r2007 Author: Anton Mitrofanov Date: Mon Jun 6 13:54:44 2011 +0400 Fix MBAFF row VBV ratecontrol Reverts most of r1984 and implements a much simpler solution. commit 5bae8ae5dccc48e9f5d6c2596eb7ff3ae1f9c978 r2006 Author: Jason Garrett-Glaser Date: Mon May 23 17:01:02 2011 -0700 Make ratecontrol_mb less slow commit 48830bb6e0fa1e182ef120b9c836e8f69a05389e r2005 Author: Steven Walters Date: Thu Jun 2 21:23:04 2011 -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. commit 1392798b74f12c9fa7a649f87eabb9cfa237d97a r2004 Author: Jason Garrett-Glaser Date: Tue May 17 14:50:51 2011 -0700 AVX mbtree_propagate Up to ~20-30% faster than SSE2 on Sandy Bridge. commit 74b19b09264e6d69e409d85c17c0971c29eabdfc r2003 Author: Jason Garrett-Glaser Date: Tue Jun 14 10:26:56 2011 -0700 Use -vsync 0 with ffmpeg regression test commit 0facc4be457b68b7b4ef52badfce8b46b2914cfd r2002 Author: Henrik Gramner Date: Sat May 21 19:04:46 2011 +0200 Inline emms instructions on x86 if possible commit 48d2185065571e983885fab858ad996a37b08be3 r2001 Author: Jason Garrett-Glaser Date: Tue Jun 14 09:35:03 2011 -0700 Make left_index_table const Should allow for some missed compiler optimizations in macroblock_cache_load. commit cb97de722d214f2fe8a0a3dda583d5107cc0fb51 r2000 Author: Hii Date: Tue May 24 08:31:17 2011 +0800 Make --profile main/baseline force off CQMfile commit e2d73a2396bf3b0ff6c1c6909c5f52a9a4c6017e r1999 Author: Anton Mitrofanov Date: Wed Jun 1 02:11:56 2011 +0400 Fix VBV bug caused by zero i_row_satd value for first and last row commit 774555b37ab6f3c2df7b1e2ac576c54e04a7381e r1998 Author: Anton Mitrofanov Date: Tue May 31 00:13:22 2011 +0400 Fix crash with VBV + forced QP commit 8ca923ed018d1c46d737a62395fc75d63da5c0d0 r1997 Author: Anton Mitrofanov Date: Mon May 30 02:36:31 2011 +0400 Fix VBV bug with MinCR limit commit 4e5eaf0a9f1b1079acee99fb4038b84a8b41ad95 r1996 Author: Jason Garrett-Glaser Date: Fri May 20 10:43:28 2011 -0700 Fix bitstream reallocation with slice-max-size + MBAFF commit c1e60b9032196d204db8dce77051360e403a1d2f r1995 Author: Nikoli Date: Fri Apr 29 14:19:22 2011 +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. commit 330e258ed53553530290409671fe5a3a26ee7f6a r1994 Author: Jason Garrett-Glaser Date: Tue Apr 26 05:12:26 2011 -0700 Slightly speed up x86 CABAC asm Also make some various cleanups. commit 160557abe60d0671fbee282b51bd38fe764917c3 r1993 Author: Jason Garrett-Glaser Date: Wed May 4 23:26:19 2011 -0700 Faster pixel_memset ~4x faster. Also inline plane_expand_border for improved constant propagation. commit 9202f134f4afdce9c142907b99c8501bb6c70b42 r1992 Author: Jason Garrett-Glaser Date: Thu May 5 00:42:43 2011 -0700 Add checkasm tests for memcpy_aligned, memzero_aligned Also make memcpy_aligned support sizes smaller than 64. commit 949846678208f15e31d9de8446dbfe05df664a69 r1991 Author: Jason Garrett-Glaser Date: Sun May 8 18:46:52 2011 -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. commit 1fa5e450b6be27b523446dc445341f81c64412c1 r1990 Author: Jason Garrett-Glaser Date: Sun May 8 18:46:39 2011 -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. commit 3c23f739750596db5a4f7f3e18dded09f222b08f r1989 Author: Jason Garrett-Glaser Date: Sun May 8 19:17:36 2011 -0700 MBAFF: Add frame/field MB stats commit a97285ee20d7d7557f7cb744a9f371dc2eae40e8 r1988 Author: Simon Horlick Date: Wed Apr 27 12:49:25 2011 +0100 MBAFF: Template direct spatial commit d4ef7d34211698305ca02055c38b7c7d7aa2b3ea r1987 Author: Simon Horlick Date: Mon Apr 25 21:22:59 2011 +0100 MBAFF: Template cache_load and cache_load_neighbours commit 1a4bffb40ca57afb11d2e75212fae8a45d8f5f1a r1986 Author: Simon Horlick Date: Mon Apr 25 09:06:24 2011 +0100 MBAFF: Make interlaced support a compile time option commit 8bea09db52374315c11a9e20e55aa8dc866910f6 r1985 Author: Simon Horlick Date: Sun Apr 17 10:05:51 2011 +0100 MBAFF: Don't call zigzag_init for every mb commit 20d9cb8c7b79b29857fe7d92c931efbd65f09df1 r1984 Author: Simon Horlick Date: Fri Mar 25 13:36:21 2011 +0000 MBAFF: Modify ratecontrol to update every two rows commit 87b054dc73ecf613df462786d442e923da878715 r1983 Author: Simon Horlick Date: Wed Mar 23 21:55:03 2011 +0000 MBAFF: Add support for slice-max-size Also add slice-max-size to the regression tests. commit 3f31da3614c625180e7e291d7cbfb5bcee9db1ac r1982 Author: Simon Horlick Date: Wed Mar 23 21:54:21 2011 +0000 MBAFF: Add support for slice-max-mbs commit 0da9676e0fd760111555bf8efb6744e368f372fb r1981 Author: Simon Horlick Date: Thu Mar 17 17:39:18 2011 +0000 MBAFF: Adaptive quantization Compute energy for interlaced and progressive choices and pick the least. commit 115225d9d9df8e59e22b0874a20b44bb528c7bdd r1980 Author: Simon Horlick Date: Mon Mar 14 02:54:30 2011 +0000 MBAFF: Enable adaptive MBAFF with VSAD decision commit 6ec00221dd253e70c698d57a6207a8363262561e r1979 Author: Simon Horlick Date: Sat Apr 23 10:44:04 2011 +0100 MBAFF: Create a VSAD DSP function x86 assembly by Jason Garrett-Glaser. This gives roughly 30x speed increase over the C version. commit 896014c61e7614571b761a859653e323ee6cf546 r1978 Author: Simon Horlick Date: Tue Mar 15 01:17:01 2011 +0000 MBAFF: Direct spatial commit d26878b2b423c580c6fb1426128fff5e71b87cc3 r1977 Author: Simon Horlick Date: Tue Mar 15 01:16:20 2011 +0000 MBAFF: Direct temporal commit f1715be2a88fc4624f2620e14fa65a975e2c1a09 r1976 Author: Simon Horlick Date: Tue Mar 15 01:15:06 2011 +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. commit 7da52fa0dc8c93fa39bcd391c76d5a6b67684c6b r1975 Author: Simon Horlick Date: Tue Mar 15 01:39:49 2011 +0000 MBAFF: Use both left macroblocks for ref_idx calculation commit 8c281d972fd440a8759dc8569139958ba28d560d r1974 Author: Simon Horlick Date: Sun Apr 3 15:23:35 2011 +0100 MBAFF: First edge deblocking commit 0a6f865b4fbce75f9cf996413cd07ac542053370 r1973 Author: Simon Horlick Date: Mon Mar 21 11:03:23 2011 +0000 MBAFF: Implement left edge deblocking functions commit dce1b213394724cd86ed3e6983cc00ab79cd95e7 r1972 Author: Simon Horlick Date: Sat Apr 2 18:27:13 2011 +0100 MBAFF: Add extra data to the deblock strength structure commit ed158a9c7675fa6ef6b6b1b368a23f18219b1b51 r1971 Author: Simon Horlick Date: Wed Mar 16 21:27:07 2011 +0000 MBAFF: Deblocking support commit abc1930c85c6448ccc05adc4b3c30c8edbc44390 r1970 Author: Simon Horlick Date: Mon Mar 21 11:02:27 2011 +0000 MBAFF: Move common code from deblock functions commit 4fd4559540d959295b86a8e67efc194722a1747b r1969 Author: Simon Horlick Date: Wed Mar 16 21:18:59 2011 +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. commit e1a96db2ba4537221677930db084eff74167047b r1968 Author: Simon Horlick Date: Thu Apr 21 01:47:53 2011 +0100 MBAFF: Update x264_cabac_mvd_sum_mmxext to work with larger MVDs. Author: Loren Merritt commit 1f07f3253003ec1ff7ce7059eac7f689c3ec6f49 r1967 Author: Simon Horlick Date: Tue Mar 29 15:47:04 2011 +0100 MBAFF: Clamp MVDs to 66 instead of 33 commit e2d4d910221c0bfc816f7f19e9cc8b1309b191f8 r1966 Author: Simon Horlick Date: Tue Mar 29 15:46:34 2011 +0100 MBAFF: CABAC encoding of skips commit cf58ce08a9121967048a4d5fee68183c7f8f6d32 r1965 Author: Simon Horlick Date: Sun Feb 20 15:31:55 2011 +0000 MBAFF: Track what interlace decision the decoder is using commit 7b7632b1595eb25e2ad1d93a3e79f2b9ef3c3abb r1964 Author: Simon Horlick Date: Sun Feb 6 22:58:39 2011 +0000 MBAFF: Fix mvy bounds Fix MV clipping commit 3e6c7de727a5118695cb2fb6d07d77f2e76f39cb r1963 Author: Simon Horlick Date: Wed Mar 16 21:34:51 2011 +0000 MBAFF: Copy deblocked pixels to other plane commit 31ae5ddaa4342679a14f3339b37b4fd484d32913 r1962 Author: Simon Horlick Date: Tue Mar 29 20:26:33 2011 +0100 MBAFF: Disallow skip where predicted interlace flag would be wrong commit 44f28de5b12376a01ad5f8e0b90a1688f7dee05f r1961 Author: Simon Horlick Date: Tue Mar 29 20:25:23 2011 +0100 MBAFF: Inter support commit fbd06b23a726246d1831bbc6d387883e89cd1b5f r1960 Author: Simon Horlick Date: Fri Jan 14 21:18:14 2011 +0000 MBAFF: Neighbour calculation Back up intra borders correctly and make neighbour calculation several times longer. commit 353802b3bed24be9f0a00a46f8a4c857be783ca2 r1959 Author: Simon Horlick Date: Tue Jan 11 20:21:26 2011 +0000 MBAFF: Store references to the two left macroblocks commit 2614f1ee9d76f6d58848a6566d237cfa91b5ee9a r1958 Author: Simon Horlick Date: Tue Jan 11 20:16:18 2011 +0000 MBAFF: Store left references in a table commit e8f59709185ac5e5f3f3d37e64509dc1e61bf415 r1957 Author: Simon Horlick Date: Tue Jan 11 20:09:00 2011 +0000 MBAFF: Disable adaptive MBAFF when subme 0 is used commit 7af78892ec523ae3f0bc5de86dd123f39516ceaa r1956 Author: Simon Horlick Date: Tue Jan 11 20:05:54 2011 +0000 MBAFF: Save interlace decision for all macroblocks commit 06f5fa5efadd89585577ba78405825002135e1b0 r1955 Author: Jason Garrett-Glaser Date: Thu May 12 10:21:16 2011 +0800 Fix bug in NAL buffer resizing Also properly terminate if NAL buffer resizing fails. commit c132d7b5b76a526e1ba519db6be894b19fd2647f r1954 Author: Anton Mitrofanov Date: Thu May 5 16:27:49 2011 +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). commit 8cb10c1529318a47836ae0ca9007752fdcd70654 r1953 Author: Jason Garrett-Glaser Date: Thu May 5 03:24:38 2011 -0700 Use float constants in qp rounding Slight performance improvement and fixes slight difference in output between gcc 3.4 and 4.5. commit 9a40ee6a6d7354ed5f453908fc29d813d1886481 r1952 Author: Anton Mitrofanov Date: Wed May 4 11:49:06 2011 +0400 Fix bugs with ratecontrol reconfiguration Initialization of some parameters was missed or wasn't synchronized with other threads commit 5ac5779349dfa811039086f3df580808c739fecc r1951 Author: Anton Mitrofanov Date: Wed May 4 11:45:58 2011 +0400 More validation of input parameters This fixes a crash with --me umh and insane values of --me-range. commit a1ac97222c36595f04f0aa1928334e0b3a8d0efe r1950 Author: Anton Mitrofanov Date: Sun May 1 17:28:56 2011 +0400 Fix bug in --b-adapt 2 with --rc-lookahead >248 Problem caused by buffer overflow in strcpy. commit d18995ef0b61d018cf380397eb5d6d44b47ad7c0 r1949 Author: Oka Motofumi Date: Thu Apr 28 13:13:49 2011 +0900 Check for invalid pixfmts in lavf demuxer commit b56cb86feed3d0981e422c47ff8ec75a9b66445b r1948 Author: Jason Garrett-Glaser Date: Tue May 10 01:58:21 2011 -0700 Fix regression in r1944 Broke sliced-threads + slice-max-size/slice-max-mbs. commit b5a8ad7e0047ec65cb01d64b1151e358a7b84314 r1947 Author: Jason Garrett-Glaser Date: Sun Apr 24 18:36:26 2011 -0700 Precalculate CABAC initialization contexts Slightly faster encoding with lots of slices. commit 896a1fc5fcc8e9855504db6ae32ba0113638c4ad r1946 Author: Jason Garrett-Glaser Date: Sat Apr 23 21:22:13 2011 -0700 Avoid redundant log2f calls in mv cost initialization Saves around 100 million clock cycles on x264 init. commit 4b083501fa96c04280f5437e839dbb97da19a0c9 r1945 Author: Jason Garrett-Glaser Date: Thu Apr 21 14:19:05 2011 -0700 CABAC residual: cleanup and optimizations Also kill all Hungarian notation while we're at it. Trim an instruction off cabac_encode_bypass. commit bd00852715011d1552a918921960263650a34040 r1944 Author: Anton Mitrofanov Date: Wed Apr 20 02:54:49 2011 +0400 Validate input parameters more carefully Get rid of redundant warnings upon encoder_reconfig calls. Also avoid encoder_reconfig turning off psy_rd/trellis. commit 6e33b51a6571dfc814053096c82538ad278f1868 r1943 Author: Anton Mitrofanov Date: Fri Apr 22 01:13:28 2011 +0400 Fix VFR MB-tree to work as intended Should improve quality with FPSs much larger or smaller than 25. commit e41a777626c95c97e14451c221688447187fa48b r1942 Author: Yasuhiro Ikeda Date: Sun Apr 24 15:33:45 2011 +0900 Support more recent GPAC versions commit 02df6964a05f4fe4395f528b8e365a561e793e9f r1941 Author: Anton Mitrofanov Date: Sat Apr 23 15:19:40 2011 +0400 Fix decoder desync with positive --chroma-qp-offset and zones commit f5db2e4a90d536b6665e7a5913ad4648fc918077 r1940 Author: Anton Khirnov Date: Wed Apr 20 10:53:44 2011 +0200 Use AVMEDIA_TYPE_VIDEO instead of deprecated CODEC_TYPE_VIDEO Fixes build with lavf/lavc 53. commit b250180d710b11c8f457a915ce4f66813ae55a25 r1939 Author: Jason Garrett-Glaser Date: Fri Apr 15 16:33:27 2011 -0700 Force pic-struct for Blu-ray compat + fake-interlaced commit f87bc0421e873dd83769e768ee62431f01118999 r1938 Author: Anton Mitrofanov Date: Thu Apr 14 12:14:52 2011 -0700 Fix open-gop with no-psy commit aa21558b139c1bbd9067444a9d802d2407dc95bc r1937 Author: Steven Walters Date: Thu Apr 14 11:09:45 2011 -0700 Fix build with disabled asm commit 7a9e08d301212fc37516562269d5fbbc040cf84c r1936 Author: Jason Garrett-Glaser Date: Wed Apr 6 02:16:42 2011 -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. commit f9e7f531048df7219a44203031c8f79bae6170d0 r1935 Author: Jason Garrett-Glaser Date: Wed Apr 6 17:15:50 2011 -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). commit f422ec93254ed3f9883acac0bb3f67e3b4ea960c r1934 Author: Jason Garrett-Glaser Date: Tue Mar 29 05:33:44 2011 -0700 Add SSE support to rectangle.h for 16-byte stores Uses GCC vector intrinsics; may be suboptimal on particularly old GCC versions. commit bdf23fe70c7c0c1f96cf98a669b2f75c6eb8cc4f r1933 Author: Steven Walters Date: Tue Apr 12 19:22:56 2011 -0400 Do not force Intel Compiler to target pre-mmx architecture for x86 Caused a speed penalty against gcc equivalents. commit 0ef8a32f739a743b009d35eb4d4f208308cb07b8 r1932 Author: Jason Garrett-Glaser Date: Tue Apr 12 01:16:48 2011 -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. commit e577efbf274f78ef9149414b65c80634484b42ad r1931 Author: Dylan Yudaken Date: Thu Apr 7 16:06:19 2011 -0700 Remove redundant mbcmp calls in weightp analysis commit 529bbefe6cb2dfcde967bff97528d70e14cea5c7 r1930 Author: Anton Mitrofanov Date: Wed Apr 6 22:48:57 2011 +0400 Use integer math for filler size calculation commit 89d92e5b1a6eb727e31f203cb580ffa8edc69331 r1929 Author: Anton Mitrofanov Date: Tue Apr 5 14:06:54 2011 +0400 Disable progress for FFMS input with --no-progress commit 86d1963f69b192037373d69aea5ede7fd6c352db r1928 Author: Michael Stuurman Date: Thu Mar 31 13:45:22 2011 -0700 Fix bug in intra-refresh ratecontrol Row SATDs were slightly incorrect. commit 62dfb25fe3599ff2b28fcc3c59f0e290d061b1ab r1927 Author: Jason Garrett-Glaser Date: Sun Apr 10 04:39:51 2011 -0700 Cosmetics: fix some signedness issues found by -Wsign-compare commit e9e74e9e55ba645801e021665c1df1e72098e71e r1926 Author: Jason Garrett-Glaser Date: Sun Apr 3 16:31:52 2011 -0700 Minor fixes Fix a comment typo. Align an array properly. Make x264_scan8 unsigned: saves a bunch of movsxd instructions on x86_64. commit 4be6702c320f2cf8fb40a135630aa22e91dc56de r1925 Author: Anton Mitrofanov Date: Fri Mar 25 00:08:40 2011 +0300 Improve C99 support checks in configure Fixes configuration with Intel compiler in some cases. commit 08d04a4d30b452faed3b763528611737d994b30b r1924 Author: Jason Garrett-Glaser Date: Fri Mar 18 18:24:33 2011 -0700 Eliminate the possibility of CAVLC level code overflow Instead, if it happens, just re-encode the MB at higher QPs until it fits. commit 10d56be05a86c035d870b3a846e30ce3b6e52555 r1923 Author: Henrik Gramner Date: Sat Mar 12 23:21:09 2011 -0800 x86 SIMD versions of optimize_chroma_dc SSE2/SSSE3/SSE4/AVX implementations. About 3x faster. commit 13afdfab6ba06491366579e104131115bf1f1ce7 r1922 Author: Manuel Rommel Date: Sun Dec 26 18:52:49 2010 +0100 Add Altivec version of mc_weight commit 35b6462f017f2dbb8cb5f546f5dadd8fff6ecfee r1921 Author: Manuel Rommel Date: Sun Dec 26 21:41:33 2010 +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. commit 372ba94b66c25c49a8d9c924413cbb09d4fa4805 r1920 Author: Steven Walters Date: Wed Mar 2 21:31:27 2011 -0500 Recognize cygwin as itself when not targeting mingw Also fix broken thread detection on cygwin. commit 9b7b3c7e238e3cac383dd7d2863b7c3c0f718422 r1919 Author: Steven Walters Date: Wed Mar 2 20:39:25 2011 -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. commit b41d1821a0fa6fe6b3e9f06b30194e172c6ac474 r1918 Author: Steven Walters Date: Mon Feb 28 19:07:40 2011 -0500 Intel Compiler support Big thanks to David Rudie, the original author of this patch. commit c7e352ca08a68b891480b6cb449dd3f9bfb45218 r1917 Author: Kieran Kunhya Date: Tue Mar 8 09:41:46 2011 +0000 Cosmetics: make struct definition braces consistent commit d5ba9edc78f7538d0d212c0712e4197521474160 r1916 Author: Jason Garrett-Glaser Date: Wed Mar 23 20:59:41 2011 -0700 Fix restoring of console title on Windows with ffms indexing commit 17ab74b25067e01bf35e3fcb7239c1cf0b8c476b r1915 Author: Anton Mitrofanov Date: Thu Mar 10 00:31:26 2011 +0300 Fix possible buffer overflow in mp4 muxer commit ee0245f465ea7725b48ef0b0e90e8ede1a403d21 r1914 Author: Nick Lewycky Date: Mon Mar 7 18:10:36 2011 -0800 Remove inline asm syntax not supported by LLVM's assembler Doesn't affect compiled output outside of LLVM. commit 5fd3dce0c72a40722df6a9bddf599980846f6fe8 r1913 Author: Jason Garrett-Glaser Date: Fri Feb 18 17:50:42 2011 -0800 Fix 10L in r1912 SSSE3 code got used in MMX/SSE2 and vice versa (in hpel). commit 36385abbb24fdaa6f30a54c4390893b524a6a165 r1912 Author: Daniel Kang Date: Sat Jan 15 13:44:45 2011 -0500 Add AVX functions where 3+ arg commands are useful commit 49fd2893c850d2f1d2f72f993490e6795d31f59f r1911 Author: Jason Garrett-Glaser Date: Mon Feb 7 03:15:03 2011 -0800 Frame-packing 3D: don't place scenecuts on right views Caused problems for some players. commit d00e31aa3285cc5f2f7e1355d31ff4a5014b37e0 r1910 Author: Jason Garrett-Glaser Date: Fri Feb 11 00:54:51 2011 -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. commit 129d8ca14edb615834418cd36627b59524f8aee1 r1909 Author: Nathan Caldwell Date: Thu Feb 10 21:25:00 2011 -0700 Use bs_write1 wherever possible in header writing commit 02b0f74dbd5a2f9001598a8c07c9ff0f8b13b5e8 r1908 Author: Jason Garrett-Glaser Date: Tue Feb 8 14:48:18 2011 -0800 Remove obsolete mvcost init code commit 429af213842178f77ab33bbfc9f6b9cac56c7e7a r1907 Author: Anton Mitrofanov Date: Sun Feb 13 12:19:13 2011 -0800 Fix memory leak on encoder close if not all frames are flushed commit 0926279b0aa5f4e53f32b0f82db855ab3a586664 r1906 Author: Anton Mitrofanov Date: Sat Feb 12 05:19:55 2011 -0800 Fix signedness bug in CPU detection Luckily didn't affect anything due to C signedness rules. commit 4835f7c8d5e0c164c6f9a67917efe5dd63f5bdb9 r1905 Author: Jason Garrett-Glaser Date: Fri Feb 11 13:47:27 2011 -0800 Fix dumb bug caused by stray semicolon Caused noise reduction to run incorrectly in part of RD, but probably had no effect. commit 1f69cb33c1dc6992fbe4092d7aa906534acdcac8 r1904 Author: Anton Mitrofanov Date: Thu Feb 10 05:05:53 2011 -0800 Fix malloc of zero size Caused x264 to fail with some settings on systems that return a NULL pointer for malloc(0), like Solaris. commit 9a705ef42de8e3699f938510776650122cb0b07b r1903 Author: Anton Mitrofanov Date: Wed Feb 9 23:01:07 2011 +0300 Fix crash in mp4 muxer after failure of x264_encoder_open commit c8bf13ca46877cb91bd278fcb70ed0fc0737e5d7 r1902 Author: Jason Garrett-Glaser Date: Wed Feb 9 11:36:02 2011 -0800 Fix shadowed variable warning in ffms.c commit e5926dc9969f98aa2123d726f583d078729d0b19 r1901 Author: Anton Mitrofanov Date: Wed Feb 9 11:29:23 2011 -0800 Fix some Intel compiler warnings commit 60ef1f8627a26de853980755e35b908cbd5b227d r1900 Author: Jason Garrett-Glaser Date: Sun Feb 6 23:12:09 2011 -0800 Fix 10L in r1886 Aspect ratio can't be set before SPS is initted. commit e6738f2074ac6a2d93e98b05c081d9d98562c48a r1899 Author: Jason Garrett-Glaser Date: Fri Feb 4 20:49:45 2011 -0800 Improve update interval of x264cli progress information Now updates every 0.25s instead of every N frames. commit e6f00af6ec59d63fac489594121d6cb3a0e98569 r1898 Author: Jason Garrett-Glaser Date: Sat Feb 5 01:16:49 2011 -0800 Windows: restore previous console title after encoding MSDN docs claim that SetConsoleTitle's effect is reverted when the process terminates, but this doesn't always work properly. Accordingly, manually revert the console title at the end of encoding. commit 16868ec528909a80766a9a737e6ce3649521d9c3 r1897 Author: Jason Garrett-Glaser Date: Sat Feb 5 15:02:34 2011 -0800 Allow WEIGHTP_FAKE in interlaced mode It seems to work fine as-is even though real weightp doesn't support interlacing yet. commit eb16899df534e43ebc7a18eca4cc2f0a6cc8566d r1896 Author: Kieran Kunhya Date: Wed Feb 2 11:01:13 2011 +0000 Output pic struct information in libx264 API commit 0494e8e6cbcd0ed3d5c0886bc3cab28169932563 r1895 Author: Jason Garrett-Glaser Date: Sun Jan 30 00:00:09 2011 -0500 Enable FastShuffle on Penryn and Nehalem CPUs without SSE4 commit 53b229c5c0c508f34875ca4053225c1862fc4205 r1894 Author: Yasuhiro Ikeda Date: Thu Feb 3 10:54:44 2011 +0900 Minor cosmetics in configure commit 56818369f0cfaca46348839a4789d2b623bac7eb r1893 Author: Anton Mitrofanov Date: Fri Jan 28 18:44:24 2011 -0800 Various --help cosmetics commit 08141fe1100d2cf87c5b6f474c02ddfcab4a22ac r1892 Author: Loren Merritt Date: Sun Jan 30 02:27:32 2011 -0800 x86inc.asm: error on duplicate functions Compile error if there's two functions of the same name, instead of silently renaming one of them. commit dce07ee72fa8833d3b70125983d447ce2b63ed1d r1891 Author: Jason Garrett-Glaser Date: Mon Jan 31 13:56:23 2011 -0800 Bump yasm version requirement to handle AVX commit 1dae62542ec10ded4e79a955df49917f26ae9ab3 r1890 Author: Jason Garrett-Glaser Date: Fri Feb 4 20:48:37 2011 -0800 Fix rare corruption with subme=10 Also fix dumb bug in VBV emergency AQ scaling. Regression in r1881. commit aaa7525cc47aa58ae8f03097f2dbbbebaf326f45 r1889 Author: Mans Rullgard Date: Thu Feb 3 13:32:06 2011 -0800 Fix overflow in ARM NEON i16x16 planar pred Patch backported from ffmpeg. commit ad58211837d4dfce51ac2824d0353703017d1812 r1888 Author: Anton Mitrofanov Date: Wed Feb 2 22:51:45 2011 +0300 Fix incorrect frame duration for VFR input for some frames commit 7231bdcd2cfdb5d625141ae81ebbdd964b146135 r1887 Author: Anton Mitrofanov Date: Tue Feb 1 00:43:03 2011 +0300 Fix possible division by zero in mkv and flv muxers on close This could crash if anything failed before output.set_param (for example, incorrect params refused by x264_encoder_open). Bug introduced in r1873. commit 6dd825ddb87c004606b6645ae1ebee34a70ea19e r1886 Author: Jason Garrett-Glaser Date: Fri Jan 28 15:19:06 2011 -0800 Fix reconfiguration of parameters that modify the SPS For now, this is only aspect ratio. commit 1e45ed5537ac3854bcb2a0ed016ce23a9a68aa1a r1885 Author: Jason Garrett-Glaser Date: Fri Jan 28 14:03:08 2011 -0800 Fix possible crash on Phenom with lookahead thread disabled Misalign mask needs to be set for the main thread on entry, too. commit 7313bb53ff8545eda68eca219b1bee77ea4a25a6 r1884 Author: Anton Mitrofanov Date: Sat Jan 29 12:43:34 2011 -0800 Hotfix for some bugs in VBV emergency commit 9e0b9b731e3487f39c659beebb6f300ea85860ed r1883 Author: Jason Garrett-Glaser Date: Thu Jan 27 13:59:20 2011 -0800 Fix warnings in cpu.c commit f6d0c95b964d52780891c39f6ec93022b6ec1cb0 r1882 Author: Jason Garrett-Glaser Date: Thu Jan 27 05:33:25 2011 -0800 Check for OS AVX support in addition to CPUID Even if not using ymm registers, AVX operations will cause SIGILLs on unsupported OSs. On Windows, AVX is only available on Windows 7 SP1 or later. commit cd53fa47afadb563eefb72c137fb30bd06d26c85 r1881 Author: Jason Garrett-Glaser Date: Tue Jan 18 00:52:03 2011 -0800 VBV emergency mode Allow ratecontrol to select "quantizers" above the maximum. These "quantizers" progressively decimate the source to avoid VBV underflow. x264 is now VBV compliant even with input as evil as /dev/random. commit f74136eaf9ab150a147684ac3189fbafd82f044f r1880 Author: Jason Garrett-Glaser Date: Wed Jan 12 09:54:33 2011 -0800 Initial AVX support Automatically handle 3-operand instructions and abstraction between SSE and AVX. Implement one function with this (denoise_dct) as an initial test. x264 can't make much use of the 256-bit support of AVX (as it's float-only), but 3-operand could give some small benefits. commit 065f6965a224efd59201d681dcdcf51f35429808 r1879 Author: Jason Garrett-Glaser Date: Tue Jan 11 11:04:52 2011 -0800 Double the base framerate for frame-sequential 3D files A 60fps frame-sequential 3D file is really only 30 FPS, just alternating between eyes. Accordingly, ratecontrol should treat it as if it was really 30 FPS. This will increase the bitrate at the same CRF level for such videos when --frame-packing 5 is used. commit bb4182d8ea123666819d9547a7b5234d4da34a1b r1878 Author: Yasuhiro Ikeda Date: Thu Jan 20 23:12:01 2011 +0900 Add --input-fmt option to lavf input Conforms to ffmpeg's `-f` option. Use this when lavf fails to guess the input format. commit f04f004db516077b119dde8b9feef08c29451239 r1877 Author: Tony Young Date: Fri Jan 21 13:06:28 2011 -0800 Two improvements to regression test script Use SHA-1 hashes for temporary file names to avoid exceeding OS filename length limits. Correctly return to the original branch after testing if you were on a branch. commit 1a321d783413038999b8e9445c64fb82ddcfeb6d r1876 Author: Vittorio Giovara Date: Fri Jan 14 10:02:33 2011 -0800 Add some missing values to the non-extended SAR table commit 78b4fc4b81ef78bc03687716a32b0b811b64a27f r1875 Author: Sean McGovern Date: Fri Jan 14 02:10:12 2011 -0500 Bump dates to 2011 commit 62b661a4a1f569f79f07dc81634a9371a8887c28 r1874 Author: Jason Garrett-Glaser Date: Tue Jan 18 12:31:26 2011 -0800 More correctly write frame-packing SEI flags Bug reported by Nero. commit 172018c4969ce5ed0188ad41c1fba5727570fe9c r1873 Author: Jason Garrett-Glaser Date: Thu Jan 20 14:45:57 2011 -0800 Don't die in x264_encoder_close if an error occurred in x264_encoder_encode Also clean up properly in x264.c (mostly useful for finding bugs in cleanup). commit 515d9fb1fbe25fc85998a201796e01ef4b2648fa r1872 Author: Jason Garrett-Glaser Date: Sun Jan 23 21:03:14 2011 -0800 Fix reconfiguration of b_tff Attempting to change field order during encoding could cause slight corruption. Also fix delta_poc_bottom to be correctly set if interlaced mode is used without B-frames. commit b8e1d1b753c594b1b3fa3d7ecbf1e393200ae7b3 r1871 Author: Steven Walters Date: Sun Jan 23 15:19:11 2011 -0500 Fix x264 CPU detection with >=64 CPUs on Windows x264 won't actually use more than one processor group's worth of CPUs, however. This isn't a problem, as a single x264 instance can't effectively use a full 64 cores anyways. commit 4c92c105e995884f3780a5e886fd1e11f2ec3b92 r1870 Author: Holger Lubitz Date: Fri Jan 21 19:13:57 2011 +0100 Remove high bit depth mmx quant It was using pmuludq which is sse2, and the function isn't really possible without pmuludq. commit ef2a0805eb7640323cf90facc9477152738fc1e5 r1869 Author: Holger Lubitz Date: Sat Jan 22 16:49:23 2011 +0100 Fix cacheline check in avg2 w20 cache32 Didn't result in incorrect output, only slightly decreased speed on a few obsolete systems. commit b4865a6fe6795d3e882214d4c1ff5f3a5dafbab2 r1868 Author: Holger Lubitz Date: Fri Jan 21 17:17:29 2011 +0100 Fix illegal instruction in high bit depth ssd_nv12_mmxext Unfortunately paddq isn't available in mmxext, only in sse2 and up. Also fixes to actually allow widths up to 16416/32832 without overflow. commit 22bfd310abced4df0b11c9620b152e5cfe746d43 r1867 Author: Jason Garrett-Glaser Date: Thu Dec 23 19:33:01 2010 -0500 VFR/framerate-aware ratecontrol, part 2 MB-tree and qcomp complexity estimation now consider the duration of a frame in their calculations. This is very important for visual optimizations, as frames that last longer are inherently more important quality-wise. Improves VFR-aware PSNR as much as 1-2db on extreme test cases, ~0.5db on more ordinary VFR clips (e.g. deduped anime episodes). WARNING: This change redefines x264's internal quality measurement. x264 will now scale its quality based on the framerate of the video due to the aforementioned frame duration logic. That is, --crf X will give lower quality per frame for a 60fps video than for a 30fps one. This will make --crf closer to constant perceptual quality than previously. The "center" for this change is 25fps: that is, videos lower than 25fps will go up in quality at the same CRF and videos above will go down. This choice is completely arbitrary. Note that to take full advantage of this, x264 must encode your video at the correct framerate, with the correct timestamps. commit 950de546c70874e174cc54f098551d05475caee9 r1866 Author: Jason Garrett-Glaser Date: Fri Dec 31 22:54:16 2010 -0500 Improve reference ordering in interleaved 3D video Provides a decent compression improvement when encoding interleaved 3D content (--frame-packing 5). Helps more without B-frames and at lower bitrates. Note that x264 will not do this optimization unless --frame-packing 5 is used to tell x264 that the source is interleaved 3D. Tests consistently show that interleaved frame packing is by far the best way to compress 3D content. It gives a ~35-50% compression benefit over separate streams or top/bottom or left/right coding. Also finally add support for L1 reference reordering (in B-frames). Also add support for reordered ref0 in L0 and L1 lists; could be useful in the future for other things. commit 29fc527ee7253d2d64307bc006d95bf038beee79 r1865 Author: Jason Garrett-Glaser Date: Tue Dec 21 20:58:10 2010 -0500 Cosmetics: fref0/1 -> fref[2] and i_ref0/1 -> i_ref[2] A much-needed refactoring, plus makes the next patch easier. commit f9bbe483539bb0905a1497d581ba480b7a53dc0e r1864 Author: Alex Wright Date: Sat Dec 25 19:31:00 2010 +1000 Check an extra offset during weightp analysis Up to 0.1 - 0.6 dB gain on some fade-ins with --weightp 1, less with --weightp 2. commit 8c160dbec1e655268adda9072659b9c687aacfaf r1863 Author: Daniel Kang Date: Tue Jan 4 15:27:38 2011 -0500 SSE2 high bit depth SSIM functions Patch from Google Code-In. commit aab8418b3a5c6e03d309c52b4fb030558956e9c3 r1862 Author: George Stephanos Date: Sun Jan 2 11:26:10 2011 -0500 SSE2 high bit depth intra_predict_(8x8c|16x16)_p Patch from Google Code-In. commit bd5487219adef1e857257829bcd0403ae816fb9d r1861 Author: Joe Cortes Date: Fri Dec 24 21:33:57 2010 -0600 MMX high bit depth coeff_last4 Patch from Google Code-In. commit 658b6ae1b5f43b488efd0ab4f6c60b93a1366333 r1860 Author: Daniel Kang Date: Thu Dec 23 12:15:03 2010 -0500 SSE2 high bit depth zigzag_interleave_cavlc Patch from Google Code-In. commit 2b8f9731b7cb01f0c93df27e7fcc4f1e9fa75c0b r1859 Author: Daniel Kang Date: Wed Dec 22 17:53:08 2010 -0500 MMX/SSE2/SSSE3 high bit depth frame_init_lowres functions Patch from Google Code-In. commit 1da49a210d92027c31ee3129929baeb6053a2a7c r1858 Author: Daniel Kang Date: Thu Dec 23 23:19:39 2010 -0500 MMX high bit depth 4x4 intra predict functions DDR and HD directions, as well as making HU faster. Also enable some SSE2 versions of high bit depth functions that were added but not properly enabled. Patch from Google Code-In. commit 9247e580789c7c02884824023b3516695483d3dc r1857 Author: Daniel Kang Date: Wed Dec 22 16:51:22 2010 -0500 SSE2 high bit depth 8x8 intra predict functions DDL, DDR, VR, HU, and HD directions, as well as the 8x8 filter. Also make 8-bit MMX VR faster, by backporting the optimizations from the high bit depth version. Patch from Google Code-In. commit cf0c82a3ef09706af1d1cc6afb5665d13c968d1b r1856 Author: George Stephanos Date: Wed Dec 22 15:44:03 2010 -0500 MMX/SSE2 high bit depth 8x8c intra predict functions Patch from Google Code-In. commit 8d96f7d34c736f3924842871930b602bc83c6264 r1855 Author: Daniel Kang Date: Sun Dec 19 16:31:59 2010 -0500 MMX version of high bit depth plane_copy And various cosmetics. Patch from Google Code-In commit 8cf764ecef221d085bb6669dbb4301e1904a0bc3 r1854 Author: Jason Garrett-Glaser Date: Sat Dec 18 12:40:13 2010 -0800 Faster x86 predict_8x8c_dc, MMX/SSE2 high bit depth versions commit e570fc2e6305cc5b5dd0422c9bdd1babe37f3d1b r1853 Author: Jason Garrett-Glaser Date: Sat Dec 18 05:40:49 2010 -0800 SSSE3 high bit depth sad_aligned functions commit a715df2ea0c51be771f0888adf444be5841281d6 r1852 Author: Daniel Kang Date: Thu Dec 16 04:41:17 2010 -0800 MMX/SSE2 high bit depth interleave functions Patch from Google Code-In. commit 5e11ab64a14a805bfaff4d925a70bb225f050fd0 r1851 Author: Joey Geralnik Date: Wed Dec 15 09:14:56 2010 +0200 MMX/SSE2 high bit depth avg functions Patch from Google Code-In. commit 985a8ec8b643508a0889d16d3e091082b914ea52 r1850 Author: Daniel Kang Date: Tue Dec 14 22:47:51 2010 -0500 MMX/SSE2 high bit depth deinterleave functions Patch from Google Code-In commit b519e0fba6959fc9725e8c2f83f5926eca8621f8 r1849 Author: Jason Garrett-Glaser Date: Wed Jan 5 23:29:36 2011 -0500 Shut up some incorrect gcc uninitialized variable warnings commit 103e79653b40000f8cdb481d9732f98f188be966 r1848 Author: Anton Mitrofanov Date: Sat Dec 25 00:55:14 2010 +0300 Write --crop-rect and --frame-packing options to x264 SEI commit 96e54b2c647d6655cb7217a83d002b12cf2b4cb3 r1847 Author: Jason Garrett-Glaser Date: Wed Dec 15 13:00:14 2010 -0800 Add missing space to parameter SEI commit 0f6a8f77e3783124c8cccd53b7c8c674ccc5c095 r1846 Author: Kieran Kunhya Date: Tue Dec 28 00:54:28 2010 +0000 Fix typo in documentation commit 131aa222f6c39dc9eecf145abb75c5b9a929579f r1845 Author: Anton Mitrofanov Date: Sat Dec 18 08:29:18 2010 -0800 Fix redundant linebreaks in statsfile with weightp commit f05aff28a13a398900324c5b243e5fba71486ce5 r1844 Author: Ramiro Polla Date: Wed Dec 15 14:35:02 2010 -0200 Use cross_prefix for strings in endian test and as test commit ee59e69dd9abaf612811e336368e63aab02a99d8 r1843 Author: Anton Mitrofanov Date: Sun Jan 2 14:36:53 2011 -0500 Fix checkasm test for quant in high bit depth Eliminate some spurious failures. commit 4a7b7e10c77c30d735a331cf71f10312eaa7c493 r1842 Author: Steven Walters Date: Thu Dec 30 20:35:10 2010 -0500 Fix broken YV12 handling in the resize filter commit c500639eb0b8f65f95c371d8769cc1b297e78502 r1841 Author: Jason Garrett-Glaser Date: Wed Jan 5 22:21:18 2011 -0500 Fix bug with negative lookahead mb costs in high bit depth commit a7ed3c5c568e0a0d6b77890aeacf3d65b8bb2277 r1840 Author: Daniel Kang Date: Tue Jan 4 14:33:05 2011 -0500 Fix overflow in SSIM calculation in 10-bit commit cb15f76189a21d6234086a0cbda7357fd5cfa524 r1839 Author: Anton Mitrofanov Date: Fri Dec 24 14:52:57 2010 -0500 Fix some possible overflows in VFR ratecontrol with extreme timebases commit 21a6034d692c281b5be13a7913dc948468747537 r1838 Author: Steven Walters Date: Sun Jan 9 16:01:04 2011 -0500 Fix memory leak in lavf demuxer. Leak only occurred with input files that have more than one video stream. commit a4406c19e75eda4ee5754827cc9381276be403ab r1837 Author: Jason Garrett-Glaser Date: Fri Dec 24 17:28:42 2010 -0500 Fix satd predictors with high bit depth Resulted in odd CRF-mode results with --no-mbtree, as well as suboptimal VBV handling. commit 147e8eb6f9b0a9d50b993c80da4f82eb5c06d50e r1836 Author: Daniel Kang Date: Fri Jan 7 23:05:50 2011 -0500 Fix compile error with high bit depth and disable-asm commit b59be2b931c30b17cf29186ddcce11d493d140d1 r1835 Author: Jason Garrett-Glaser Date: Sat Dec 18 08:22:34 2010 -0800 Really fix gcc win32 misalignment crash gcc's -fno-zero-initialized-in-bss only works if an explicit initializer (e.g. = {0}) is used. commit a51816a5dc33ad7fbd0301c8dd2d61c161213107 r1834 Author: Steven Walters Date: Sat Dec 11 20:30:29 2010 -0500 Support for native Windows threads Patch originally by Pegasys Inc. commit b5e236636a26cf40568ccc44fefcc6aef6d0f0ea r1833 Author: Daniel Kang Date: Mon Dec 13 17:15:12 2010 -0500 MMX/SSE2 high bit depth weight_cache/offset(sub|add) functions Patch from Google Code-In. commit 70271f48d601c264963191db61bb207fe426a094 r1832 Author: Daniel Kang Date: Wed Dec 8 17:56:22 2010 -0500 SSE2 high bit depth dequant functions Patch from Google Code-In. commit 38ff5d317f9e71aa9e0051dc966ddf2db26dde25 r1831 Author: Daniel Kang Date: Tue Dec 7 22:48:15 2010 -0500 SSE2 high bit depth zigzag functions Patch from Google Code-In. commit 6d9310e0825f756fd53acaa77ea1aca3c7e927fc r1830 Author: Daniel Alexandru Morie Date: Tue Dec 7 06:11:02 2010 -0800 MMX/SSE2 versions of high bit depth store_interleave Patch from Google Code-In. commit 3ee357af82f01b8fd6a3ecf052ef98f632f375a2 r1829 Author: Vittorio Giovara Date: Fri Dec 10 20:43:00 2010 -0800 Add frame-packing SEI support for signalling 3D video commit 78e3bc95f6c8daef4222e6f231b88dfa7edbccb6 r1828 Author: Jason Garrett-Glaser Date: Sat Dec 11 03:48:59 2010 -0800 Allow 8x8dct+cavlc+lossless with subme>=6 commit 8ca6222d0d1541f3585a20af178f9105df729f3c r1827 Author: Yasuhiro Ikeda Date: Thu Dec 9 12:00:24 2010 +0900 Add interlaced/no-interlaced case to regression test script commit 39a5799f9af0b117181f5f6866f292733876a173 r1826 Author: Yasuhiro Ikeda Date: Thu Dec 9 11:59:49 2010 +0900 Save more memory with weightp in >8-bit commit 84d7a9557a6d4a638084bd046ba3e7187b0620b2 r1825 Author: Yasuhiro Ikeda Date: Thu Dec 9 11:57:38 2010 +0900 .gitignore more untracked file types commit fd8ff3330de3cc2cbabb0bba785fe7a92eb0a305 r1824 Author: Anton Mitrofanov Date: Tue Dec 7 17:49:21 2010 +0300 Work around gcc/ld alignment bug on win32 Fixes problems due to misalignment of static zero arrays (win32 ld can't align .bss properly). commit 5fbb9d62a4ce93b5d36ee337f33990703f46862c r1823 Author: Daniel Kang Date: Tue Dec 7 15:19:46 2010 -0500 Fix high bit depth intra pred functions And re-enable them accordingly. Patch from Google Code-In. commit 22af357718b03756263342a34d32157de8ee769d r1822 Author: Jason Garrett-Glaser Date: Sat Dec 11 13:37:09 2010 -0800 Fix weightp analysis with high bit depth commit e8ca7beb5c1432fb1c6f87318cb6704fc2a7e2de r1821 Author: Oskar Arvidsson Date: Thu Dec 9 12:19:57 2010 +0100 Fix build error in high depth Caused by multiple definitions of x264_add8x8_idct_sse2. commit fdcf2aea4798546d4463916ee538e39b862b84ff r1820 Author: Jason Garrett-Glaser Date: Tue Dec 7 03:15:46 2010 -0800 Hotfix for high bit depth Temporary fix for some unaligned access crashes. commit a2e043dc0193b06a375c147221f10d1f6d8d6240 r1819 Author: Anton Mitrofanov Date: Tue Dec 7 13:44:55 2010 +0300 Delete x264_config.h on distclean commit 0a39e00c7b115fb6d1464bc859d5d1b256692562 r1818 Author: Daniel Kang Date: Thu Nov 25 19:44:56 2010 -0500 Tons of high bit depth intra predict asm Patch from Google Code-In. commit 3f2f3f90175e1da7cc83c70ba22ff823bc657092 r1817 Author: David Czech Date: Sat Nov 27 17:34:32 2010 -0800 SSE2 high bit depth 8x8/16x16 idct/idct_dc Patch from Google Code-In. commit 64b764832e6a5ba830676b0e81f5e4fdafd85a52 r1816 Author: Ramiro Polla Date: Tue Nov 30 02:17:23 2010 -0200 Create and install x264_config.h This header can be used to determine the bit-depth and license of libx264. commit 62a2dc0a53b0eaa29daa5fc7e1586e729cb5b533 r1815 Author: Steven Walters Date: Wed Oct 13 21:53:50 2010 -0400 Detect Avisynth initialization failures Detect if there is a critical Avisynth initialization failure and print the associated error. This, however, requires a feature present in the latest version of Avisynth alpha (2.6). Previous versions are unaffected. commit 2b0451ff661dcf2982d81e79ee44d1f5f213bd0a r1814 Author: Jason Garrett-Glaser Date: Thu Nov 25 22:12:07 2010 -0800 Automatically restrict QPs to avoid quantization (under|over)flow --cqm jvt and similar should now work "out of the box" instead of requiring futzing with --qpmin. commit 2a59dfad21643a6635cd7a7ec4d4d00b0ce3d817 r1813 Author: Anton Mitrofanov Date: Sat Dec 4 23:29:08 2010 +0300 Don't try to get timecodes if reading frame failed This fixes "input timecode file missing data for frame" warning with piped input where we don't know total number of frames. commit e0f5dbeb7aad6e29ff1fca7be9ea8d6568a0eeb2 r1812 Author: Oskar Arvidsson Date: Thu Nov 25 23:05:21 2010 +0100 Fix possible overflow in sub4x4_dct in 10-bit builds commit c2cc8c3108b615e2d6ded6387e37c2a6bad5130e r1811 Author: Jason Garrett-Glaser Date: Mon Dec 6 14:19:09 2010 -0800 Fix bug in intra-refresh + threads Intra refresh bar quality increase wasn't correctly applied. commit b2a6aa433e9b9e1303869fcdb9b9c92b30795f85 r1810 Author: Jason Garrett-Glaser Date: Mon Dec 6 12:00:13 2010 -0800 Fix file handle leak in libx264 on error commit 71cf5fd3fb62752b84de39fd14284da9900afca5 r1809 Author: Steven Walters Date: Sun Oct 10 18:17:35 2010 -0400 Fix incompatible csp format issue Problem occurred with unknown pixel formats and non mod2 resolutions in the resize filter. commit f6482d8c07754c8703a090a5bd8d1683179b65e2 r1808 Author: Anton Mitrofanov Date: Sat Nov 27 15:54:39 2010 -0800 Really fix fittobox resize rounding code commit fba116fc1245b940ef4e95da5527ea5bea8ed031 r1807 Author: Yusuke Nakamura Date: Sun Dec 5 09:31:01 2010 +0900 Fix regression in rev1549 Skip auto timebase denominator generation when generated timebase denominator exceeds UINT32_MAX. Also fix double free. commit 96c4835b29b83f9a3eb1cb6b56bc161658b59ecb r1806 Author: Anton Mitrofanov Date: Sun Nov 28 01:05:02 2010 +0300 Fix --tcfile-in if timecode v2 file starts from nonzero pts commit 3534560566940cdd143ae7b6e054980d09a359d7 r1805 Author: Sean McGovern Date: Fri Dec 3 22:30:51 2010 -0800 SPARC/Solaris build fixes commit e89c4cfc9f37d0b7684507974b333545b5bcc37a r1804 Author: Jason Garrett-Glaser Date: Thu Nov 25 16:47:29 2010 -0800 Fix typo in r1797 commit 04b59661469bfef7356e5e8ff443252fcf5fe264 r1803 Author: Tony Young Date: Wed Nov 24 16:58:38 2010 -0800 Add Python regression test script Patch from Google Code-In. commit e440dc0f7909c67cdca148fc8a9ea413521e0e5b r1802 Author: Alex Wright Date: Wed Nov 24 02:19:51 2010 -0800 Make --weightp 1 a better speed tradeoff Since fade analysis is now so fast, weightp 1 now does fade analysis but no reference duplication. This is the opposite of what it used to do (reference duplication but no fade analysis). This also gives weightp's better fade quality to faster presets (up to superfast). commit 61d72032d9d5e78c99d75e30a36f2e63f3268222 r1801 Author: Daniel Kang Date: Tue Nov 23 20:29:37 2010 -0500 SSE versions of some high-bit-depth DCT functions Our first Google Code-In patch! commit 6a8ed0f05063ba783bcfe3a30fc0ef6711937b5c r1800 Author: Anton Mitrofanov Date: Tue Nov 23 23:06:51 2010 +0300 Clean up weightp analysis function commit 7226b4e7073340c000e94221924b4e45f27a900c r1799 Author: Jason Garrett-Glaser Date: Fri Nov 19 16:58:38 2010 -0800 Add API function to return max number of delayed frames commit 9cae442bd589b063c5ce9d6b224d17ff5f6337c0 r1798 Author: Jason Garrett-Glaser Date: Thu Nov 25 13:01:33 2010 -0800 Copy field order flag in encoder_reconfig commit 1bcb63ebb21a56523a4d6e83d2ce5f92ab950f57 r1797 Author: Yasuhiro Ikeda Date: Wed Nov 24 23:09:54 2010 +0900 Cosmetics in configure commit 372f39811c78b940e10477dfde37d78aa488d07b r1796 Author: Yasuhiro Ikeda Date: Mon Nov 22 11:01:57 2010 +0900 Add some more info to `x264 --version` commit 04256645537d17b66f2a46bd8605859e91e0cf8a r1795 Author: Jason Garrett-Glaser Date: Sat Nov 20 23:30:42 2010 -0800 Change qpmin default to 0 There's probably no real reason to keep it at 10 anymore, and lowering it allows AQ to pick lower quantizers in really flat areas. Might help on gradients at high quality levels. The previous value of 10 was arbitrary anyways. commit 2f8ad9797d5118168d128f38544607494dfc0f73 r1794 Author: Jason Garrett-Glaser Date: Thu Nov 25 13:01:16 2010 -0800 Fix ticks_per_frame check for VFR input commit 21877a04337d044dfcd93cca957967662dbdd6d6 r1793 Author: Steven Walters Date: Mon Nov 22 10:31:05 2010 +0900 Fix configure so that boolean configuration options are 1/0 There are many cases of 1/undef, not 1/0. commit b38fd04c376bac31544782fabe03471567a8badf r1792 Author: Sean McGovern Date: Sun Nov 21 01:59:33 2010 -0500 Only build SPARC VIS asm if high bit-depth is disabled commit ee75acd55e1a89eb9a8c2f7d14c923b57e08ceb3 r1791 Author: Sean McGovern Date: Sun Oct 10 19:34:18 2010 -0400 Fix build on SPARC Solaris 10 commit 8eaf8a66d5d8a5c55155feee293150f9fb0eba0e r1790 Author: James Darnley Date: Sun Nov 21 10:50:48 2010 +0100 Fix resize filter rounding code commit af1a7413afbea7b6a2159b644144b2dcac3482a3 r1789 Author: Anton Mitrofanov Date: Mon Nov 22 17:17:36 2010 +0300 Fix regression in chroma weightp Missing cache calls could cause artifacts, encoder/decoder desync. commit c764e29dad01f4c1441b614171a92453019a5e4c r1788 Author: Jason Garrett-Glaser Date: Fri Nov 19 15:40:23 2010 -0800 Fix some crashes with high bit depth Not all arrays were sufficiently aligned. commit 9488de4f74637360301e3cb1e6c7f25a41a93a37 r1787 Author: Jason Garrett-Glaser Date: Sun Nov 14 03:34:26 2010 -0800 Chroma weighted prediction Like luma weighted prediction, dramatically improves compression in fades. Up to 4-8db chroma PSNR gain in extreme cases (short, perfect fade-outs). On actual videos, helps up to ~1% overall. One example video with a decent number of fades (ef OP): 0.8% bitrate reduction overall, 7% bitrate reduction just counting chroma. Fixes a lot of artifacts in fades at lower bitrates. Original patch by Dylan Yudaken . commit 2eadb9436344cfccdcf9340545d813f4086c0ca4 r1786 Author: Jason Garrett-Glaser Date: Thu Nov 18 08:51:27 2010 -0800 Support custom cropping rectangles Supposedly useful for 3D television applications. commit fc9006156b620a181814bf0d73a961bc38650c93 r1785 Author: Oskar Arvidsson Date: Sun Nov 14 16:46:01 2010 +0100 Convert X264_HIGH_BIT_DEPTH to HIGH_BIT_DEPTH Less verbose. commit 80174bfdd30da508576d318323af57b2cd821c5b r1784 Author: Oskar Arvidsson Date: Sat Oct 30 20:16:33 2010 +0200 x86 asm for high-bit-depth pixel metrics Overall speed change from these 6 asm patches: ~4.4x. But there's still tons more asm to do -- patches welcome! Breakdown from this patch: ~13x faster SAD than C. ~11.5x faster SATD than C (only MMX done). ~18.5x faster SA8D than C. ~19.2x faster hadamard_ac than C. ~8.3x faster SSD than C. ~12.4x faster VAR than C. ~3-4.2x faster intra SAD than C. ~7.9x faster intra SATD than C. commit 3b818190c22f7ba6d3b2f228954b1368f58f75dc r1783 Author: Jason Garrett-Glaser Date: Sat Oct 30 19:13:05 2010 -0700 x86 asm for some high-bit-depth coefficient functions ~7.9x faster denoise than C. ~2.3x faster coeff_level_run than C. ~6.6x faster coeff_last than C. ~4.3x faster decimate_score than C. Also improve checkasm's decimate_score test. commit faed8d5a8ca66d0904a43b545376832bc4a038c9 r1782 Author: Oskar Arvidsson Date: Sun Nov 14 03:33:30 2010 +0100 x86 asm for high-bit-depth motion compensation ~8x faster qpel MC than C. ~10x faster hpel than C. commit 38861b90aa958e16743920271f5a4f509d12c6ff r1781 Author: Oskar Arvidsson Date: Thu Nov 4 02:13:43 2010 +0100 x86 asm for high-bit-depth quant ~3.1-4.2x faster than C. commit 82a3dc116318d5594ac3474112cfe3472ca1b31e r1780 Author: Oskar Arvidsson Date: Sat Oct 30 16:55:48 2010 +0200 x86 asm for high-bit-depth DCT Only MMX and DCT done so far; iDCT still needs asm as well. ~4.4x faster than C. commit 2584843007df862ecf99e1d357f7ef617c582184 r1779 Author: Oskar Arvidsson Date: Sat Oct 30 11:42:52 2010 +0200 x86 asm for high-bit-depth deblocking ~3.3x faster than C. commit c593bcf901e0bb681fdc41023ecd0aebbaafb98e r1778 Author: Oskar Arvidsson Date: Sat Nov 13 14:42:54 2010 +0100 Use a 16-bit buffer in hpel_filter regardless of bit depth This only works up to and including 10-bit (but we don't support anything higher yet). commit a9d7826a63f44379ef37e2a5147105c400370cd5 r1777 Author: Henrik Gramner Date: Tue Nov 16 21:23:12 2010 +0100 Use enums instead of magic numbers in x264_mb_partition_pixel_table commit e19e5f05c314e243c4f2c7f60ab6bfc86a78bba1 r1776 Author: Karl Blomster Date: Sun Nov 14 03:41:03 2010 -0800 Improve configure script logging Now prints the test program that failed in addition to error messages. commit fb3ef61ccbfe748761cdaaec6ccf8b3d03fa241e r1775 Author: Anton Mitrofanov Date: Wed Nov 17 07:27:09 2010 -0800 Fix constrained intra pred mode selection commit 2824c3a064d88f8b1a4af726249c0b51a449c0b2 r1774 Author: Anton Mitrofanov Date: Wed Nov 17 02:46:30 2010 +0300 Various high-bit-depth ratecontrol fixes commit 8c16b4d3311126bc37ae0ea7071c683e280f388c r1773 Author: Loren Merritt Date: Sun Nov 14 02:54:02 2010 -0800 Fix a crash in --dump-yuv for odd resolutions commit c9dad9e1508a4d430b9bab72c8875892cf7fef3c r1772 Author: Anton Mitrofanov Date: Thu Nov 11 01:40:52 2010 +0300 Improve flash detection algorithm change in r1765 Now only disables scenecuts only near real end of video, not just prior to forced keyframes. commit c3c8efa0f4d7fc46b9ee110450bfc1e8d1c5b1b3 r1771 Author: Steven Walters Date: Wed Nov 10 07:21:41 2010 -0500 Update ffms2 support for its latest API break. commit 2f656aa26bdacfd039d1c11e59d24752da12f201 r1770 Author: Jason Garrett-Glaser Date: Thu Nov 11 18:19:22 2010 -0800 Modify the x264 header accordingly if --disable-gpl is used commit 8442a656f4606c3a12cfa3778266d4ce92c25fb6 r1769 Author: Jason Garrett-Glaser Date: Thu Nov 11 22:25:31 2010 -0800 Save a bit of memory with weightp + high bit depth commit 39787c80bdd5992935c480a8eedcfb6d50625334 r1768 Author: Jason Garrett-Glaser Date: Sat Nov 13 04:38:44 2010 -0800 Fix bugs in qpfile parsing with omitted QPs commit 7f0f88b6b5111dae252382d91220af345fb91073 r1767 Author: Kieran Kunhya Date: Fri Nov 12 21:53:28 2010 +0000 Fix HRD with intra-refresh x264 was incorrectly calculating cpb_removal_delay with respect to the first keyframe. It should have been calculating cpb_removal_delay with respect to the last keyframe. commit f9f00353bd3959470c326880b82e99e3ee7de195 r1766 Author: Anton Mitrofanov Date: Wed Nov 10 07:34:40 2010 -0800 Fix bug in r1753 Overflow compensation fix broke CRF with --no-mbtree. commit 601c0e38ef957ecca3792521beb335113ba49e3b r1765 Author: Jason Garrett-Glaser Date: Sat Nov 6 17:47:27 2010 -0700 Improve flash detection's behavior near the end of the video Flash detection catches situations like AAAABBCCDDDD, where A,B,C,D are frames in different scenes. x264 would place a keyframe on the first "D". However, if the video ended on the last "C", x264 would place a keyframe on the first "C", even though C classifies as a flash. This change fixes this issue. commit d0406d4e3dc2b0953390857ac6efa0b5a9d5ba8f r1764 Author: Jason Garrett-Glaser Date: Sun Oct 31 15:51:48 2010 -0700 Improve quantizer handling The default value for i_qpplus1 in x264_picture_t is now X264_QP_AUTO. This is currently 0, but may change in the future. qpfiles no longer use -1 to indicate "auto"; QP is just omitted. The old method should still work though. CRF values now make sense in high bit depth mode. --qp should be used for lossless mode, not --crf. --crf 0 will still work as expected in 8-bit mode, but won't be lossless with higher bit depths. Add bit depth to statsfiles. These changes are required to make the QP interface sensible in combination with high bit depth. commit 666aef844d1817227a8a442a55c57046a615ede4 r1763 Author: Jason Garrett-Glaser Date: Wed Nov 3 23:17:08 2010 -0700 VFR-aware PSNR/SSIM measurement First step to VFR-aware MB-tree and bit allocation. commit e38c7fd2809dd0c9649cc5ebdd77aadefa5a7af5 r1762 Author: Jason Garrett-Glaser Date: Mon Nov 1 15:08:03 2010 -0700 Disable weightp offset=-1 dupes with high bit depth They're a hack to compensate for crappy rounding, and thus not worth doing at high bit depth, which fixes most of the rounding issues. commit d70087b9bd9773ed44d4fc41c56304c7e3853f6e r1761 Author: Jason Garrett-Glaser Date: Sun Nov 7 17:27:38 2010 -0800 Make the ffmpeg -vpre error message more descriptive commit fe0808bbf2042c59d688a7f2a8c80d73f3ce7f86 r1760 Author: Loren Merritt Date: Sat Oct 30 14:39:50 2010 -0700 Add numeric names for the presets (0==ultrafast ... 9==placebo) This mapping will of course change if new presets are added in between, but will always be ordered from fastest to slowest. commit 490bf93a42da12490e29d7f95f3244ff581883d3 r1759 Author: Jason Garrett-Glaser Date: Wed Oct 13 06:07:14 2010 -0700 Update benchmarks in doc/threads.txt commit 75b018171f37dd82d5c63243c2580ec181513e41 r1758 Author: Loren Merritt Date: Thu Oct 28 13:29:42 2010 -0700 Make the #if'd out naive ESA actually match the real implementation commit 6541afc22aa8f1bac57299561eb59237802930ec r1757 Author: Jason Garrett-Glaser Date: Mon Nov 1 19:19:23 2010 -0700 Move mv/ref prefetch code to the correct location Prefetching of top blocks should be done under if(top), not if(left). commit 17f54d05a46e0840f775be4635e6d32f6a4c9f78 r1756 Author: Reinhard Tartler Date: Tue Nov 9 23:57:12 2010 -0800 Link x264cli explicitly against lavf Fixes some problems with crappy linkers. commit 66407441fe12116e3061437ecdcda1ca91cbccff r1755 Author: Jason Garrett-Glaser Date: Mon Nov 8 22:14:58 2010 -0800 Fix CBR ratecontrol bug with extremely high qscales Caused CBR ratecontrol to take a very long time to recover from extreme situations (e.g. /dev/urandom). commit 8d7c2d0d19c792c4de1310e2d1bf0cdf28095267 r1754 Author: Jason Garrett-Glaser Date: Mon Nov 8 21:03:01 2010 -0800 Disable overflow compensation in CRF mode Wasn't designed with CRF in mind, and acts really weird with CRF+VBV. commit 5dfbfc357406e641c80d9de74c85fce4ece6b5ba r1753 Author: Jason Garrett-Glaser Date: Mon Nov 8 19:56:29 2010 -0800 Fix stupid bug in B-frame VBV size prediction commit d6a1303986d20dda483186adf8bc68ee148a8dcc r1752 Author: Oskar Arvidsson Date: Fri Oct 29 13:13:25 2010 +0200 Fix regression in checkasm in r1666 Buffer is uint16_t* regardless of whether x264 was compiled with high bit depth or not. commit c85ec3ecf21af92e85594f69d3a855c721b4d080 r1751 Author: Oskar Arvidsson Date: Fri Oct 29 13:11:09 2010 +0200 Fix overflows in satd, sa8d and hadamard_ac with high bit depth commit a6cab1a706dfcd90dc5fe95518a54122cf524394 r1750 Author: Oskar Arvidsson Date: Fri Oct 29 12:34:42 2010 +0200 Fix potential problem with overflows in ssd_nv12 The risk of overflows increases exponentially with the bit depth. The 8-bit asm versions may still overflow with image widths >= 11008 (or 6604 if interlaced). commit 527d1965fd70117187433f61ab8efc650b4d11a5 r1749 Author: Jason Garrett-Glaser Date: Sat Oct 30 14:36:01 2010 -0700 Fix syntax for some parameterless functions Technically, such functions should be declared with (void), not (). commit 49e2d55b5834318a4e370dde8829b2e991752bc7 r1748 Author: Steven Walters Date: Sat Oct 30 16:51:01 2010 -0400 Fix fps reporting on mingw64 _ftime on mingw64 uses __timeb32 which is broken. Use ftime instead. commit 7f5771a13aec5a8a724e0d0c9d761f5a82e74af0 r1747 Author: Manuel Rommel Date: Sun Oct 31 19:19:10 2010 +0100 Fix compilation on PPC with some recent GCCs commit 1fda37ab88917dd9c8746c0fb56dfee3e2c74f03 r1746 Author: Manuel Rommel Date: Mon Oct 11 13:50:09 2010 -0700 Fix Altivec SATD with small strides Fixes chroma ME and some of lookahead on PPC. commit 4785e8e8dc3d48abf3048e1bf639d2936e642eba r1745 Author: Holger Lubitz Date: Sun Oct 3 19:07:00 2010 +0200 Address remaining cacheline split issues in avg2 Slightly improved performance on core 2. Also fix profiling misattribution of w8/16/20 mmxext cacheline loops. commit 0a5cc5ecd2e9cb21ada03b9af51fc5e727e4de5f r1744 Author: Jason Garrett-Glaser Date: Wed Sep 29 18:56:27 2010 -0600 Trim a few bytes off some x86 intra pred functions commit 80d0bd4b57163389289714e681bdc53ceaaf0f7a r1743 Author: Yusuke Nakamura Date: Fri Oct 1 00:37:39 2010 +0900 Move DTS compression from libx264 to x264cli DTS compression is an ugly stupid hack and starting to encroach on unrelated areas like VBV. Some people want it in the mp4 muxer for devices and/or splitters that don't support Edit Boxes. We just say "throw these broken devices out the window". DTS compression will remain as a muxer option, --dts-compress, at the user's own risk. This option is disabled by default. commit 7a9d518f7ccf9917967345f50f626408600d7892 r1742 Author: Jason Garrett-Glaser Date: Thu Sep 30 22:24:51 2010 -0700 Use a larger pic_init_qp with high bit depth Modify pic_init_qs for consistency. commit e16c5f26d006acf2ff540de33e8dd59fa83ab95d r1741 Author: Jason Garrett-Glaser Date: Sat Oct 2 23:56:52 2010 -0700 Update some of the information in doc/ commit 3a18f20923b3be39a33a2ba601668421e245c899 r1740 Author: Jason Garrett-Glaser Date: Tue Sep 28 17:48:00 2010 -0700 Update header in depth.c commit 60748aeb17bb91bbfd2fd9fb028adc5255c5eeff r1739 Author: Jason Garrett-Glaser Date: Sat Oct 2 23:12:41 2010 -0700 Remove some old unused stuff in the build tree Regression test (hasn't been updated since svn). Doxy (was never used). commit 368f1744202a7cf9c04b1c7f0a674e06b31ff670 r1738 Author: Anton Mitrofanov Date: Wed Sep 29 00:19:06 2010 -0700 Various cosmetics Exorcise some CamelCase. commit db224e344cac5277af80f75a67c67e7d29deffdd r1737 Author: Jason Garrett-Glaser Date: Sun Oct 10 04:39:36 2010 -0700 Add missing mod4 stack check to sse2_misalign mc_chroma Required for ICC compilation. commit c68140da78f372fb5071f80145f453014811918c r1736 Author: Anton Mitrofanov Date: Fri Oct 8 18:08:23 2010 +0400 Fix 2pass ratecontrol with --nal-hrd cbr commit 78c645033d8ff34f83a3b22ac60f0474fbb573d6 r1735 Author: Jason Garrett-Glaser Date: Mon Oct 4 13:33:23 2010 -0700 Fix minor bug in intra pred with intra refresh i8x8 blocks didn't properly avoid predicting from top-right when necessary. This could cause intra refresh to not completely refresh the frame. commit be2a065964211d9d537289f49e78e890f1b17da8 r1734 Author: Anton Mitrofanov Date: Wed Sep 29 22:06:27 2010 +0400 Fix filter parsing with --extra-cflags="-DNDEBUG" commit 4cba08aaea9813f1bcb6654a8abb141732bb0510 r1733 Author: Jason Garrett-Glaser Date: Wed Sep 29 00:15:14 2010 -0700 Make sigint handler variable volatile Didn't actually cause any problems, but is necessary because it can be modified by another thread (the signal call). commit b20059aa39ede0b3e3415c261110acd558d12425 r1732 Author: Jason Garrett-Glaser Date: Sun Sep 26 21:04:30 2010 -0700 Add High 10 Intra profile support (AVC-Intra) x264 should now be able to encode compliant AVC-Intra 50. With a 10-bit-compiled version of x264, a sample commandline for 1080i25 might be: --interlaced --keyint 1 --vbv-bufsize 2000 --bitrate 50000 --vbv-maxrate 50000 --nal-hrd cbr Also print "Constrained Baseline" for baseline profile, since that's all x264 (and everything else in the world) supports. Also reorganize parameter validation a bit to reduce some spurious warnings. commit 284b3149b88f08c6ca324de05a92882c37fb1a44 r1731 Author: Oskar Arvidsson Date: Mon Sep 27 16:02:20 2010 +0200 Finish support for high-depth video throughout x264 Add support for high depth input in libx264. Add support for 16-bit colorspaces in the filtering system. Add support for input bit depths in the interval [9,16] with the raw demuxer. Add a depth filter to dither input to x264. commit b6ae390d816176c0ac48ae1180231298558501c5 r1730 Author: Alex Wright Date: Sun Sep 19 05:08:22 2010 -0700 Chroma mode decision/subpel for B-frames Improves compression ~0.4-1%. Helps more on videos with lots of chroma detail. Enabled at subme 9 (preset slower) and higher. commit e87b7ec3842342174c8224bc4fe5e627521619ae r1729 Author: Jason Garrett-Glaser Date: Mon Sep 27 05:39:02 2010 -0700 Various cosmetics commit 643e57f52c26c97cc7827bb1115017e6f0516ab8 r1728 Author: Jason Garrett-Glaser Date: Tue Sep 21 17:11:00 2010 -0700 Make slice-max-size more aggressive in considering escape bytes The x264 assumption of randomly distributed escape bytes fails in the case of CABAC + an enormous number of identical macroblocks. This patch attempts to compensate for this. It is probably safe to assume in calling applications that x264 practically never violates the slice size limitation. commit 4e3bf80ebe3c74770f0b1f5766133622b0cc66c2 r1727 Author: Jason Garrett-Glaser Date: Mon Sep 27 05:39:13 2010 -0700 Add missing emms for dump-yuv commit 3d0d9cda1d39239e9f388fe1fce29c9212d0273c r1726 Author: Anton Mitrofanov Date: Sat Sep 25 15:55:32 2010 -0700 Fix CFR ratecontrol with timebase != 1/fps Fixes VBV + DTS compression, among other things. commit 5f104e9957cc4b69f7197fecf93648a0e2ae0e59 r1725 Author: Anton Mitrofanov Date: Mon Sep 20 13:10:13 2010 +0400 Fix DTS/bitrate calculation if the first PTS wasn't zero Fix bitrate calculation with DTS compression. commit b02df7b3b3b8616078851aab65d77ca435e2ff93 r1724 Author: Anton Mitrofanov Date: Sun Sep 19 19:11:06 2010 +0400 Fix regression in r1716 commit e757d68b1a7f75de97cc472206cae52b770eeefb r1723 Author: Jason Garrett-Glaser Date: Sun Sep 19 00:25:27 2010 -0700 Cosmetics in me.c and frame.c commit 01e9f8cebbae58f4c2d6ea037546186cc8cdcd53 r1722 Author: Kieran Kunhya Date: Mon Sep 13 15:09:06 2010 +0100 Add support for arbitrary user SEIs This allows calling applications to insert SEIs that x264 doesn't know about while maintaining HRD/VBV accuracy. commit 9e443f2498aa7a20b6ba891f2fad40072f9948c2 r1721 Author: Steven Walters Date: Wed Sep 15 20:42:08 2010 -0400 Add full chroma input flag to swscale Improves quality of colorspace conversions involving RGB(A). commit fa56d4e4720e39dbfad881cd81937f39efd83b7f r1720 Author: James Darnley Date: Fri Sep 17 04:06:59 2010 -0700 Add --disable-gpl option to configure Used for commercially-licensed versions of x264. Doesn't currently change anything, but may be used to disable GPL-only CLI tools, such as video filters, in the future. Also print the x264 license and libavformat license in version info. commit 0596dff4fa50739bcc48a402487e4664bf3216e0 r1719 Author: Jason Garrett-Glaser Date: Fri Sep 17 04:03:27 2010 -0700 Update source file headers Update dates, improve file descriptions, make things more consistent. Also add information about commercial licensing. commit ae403c4684b68a112f2fa62d13dcfd0e8716c139 r1718 Author: Jason Garrett-Glaser Date: Wed Sep 15 12:06:47 2010 -0700 Fix intra refresh to not exceed max recovery_frame_cnt The spec constrains recovery_frame_cnt to [0, MaxFrameNum-1]. So make MaxFrameNum bigger in the case of intra refresh. commit 0974adfbb024af0afe511a803af73cdc283686d7 r1717 Author: Jason Garrett-Glaser Date: Thu Sep 16 03:36:17 2010 -0700 Make intra refresh finish one frame faster In some cases, the last frame of intra refresh was redundant. Saves a few bits. commit 9b8774495f3b3a65a4b4aa2bf6d9831b565365f4 r1716 Author: Jason Garrett-Glaser Date: Tue Sep 14 12:20:00 2010 -0700 Fix intra refresh to not predict from invalid pixels The blocks on the right side of the intra refresh column should not predict from top-right. commit 416461a5667436c39330cd79740ecef1f27b5bfe r1715 Author: Steven Walters Date: Mon Sep 13 18:47:33 2010 -0400 Add configure check for mingw64 prefixing This compensates for the inconsistent prefixing seen in different versions of the compiler. commit 3e7f374e1663add4138c3c5c73f4cb73fd2ebd94 r1714 Author: Manuel Rommel Date: Sat Sep 4 19:31:53 2010 -0700 Update some Altivec function prototypes Silences a lot of warnings. commit c27666276eb4d63b0c9ee2b9a375feabc27c8f4e r1713 Author: Takashi Hirata Date: Mon Aug 30 18:13:49 2010 +0900 Add support for level 1b This level is a stupid hack in the H.264 spec, so it's a stupid hack in x264 too. Since level is an integer, calling applications need to set level_idc=9 to use it. String-based option handling will accept "1b" just fine though, so CLI users don't have to worry. commit 518dbbc89c29691482d31666ba46add429a9cb9e r1712 Author: Jason Garrett-Glaser Date: Thu Sep 2 15:29:29 2010 -0700 Use smaller values for idr_pic_id Saves a few bits and fixes problems on certain fantastically terrible decoders, such as the Apple iPad. commit a67e619bcdabecb03e7d44d86615157e3a3d00f2 r1711 Author: Jason Garrett-Glaser Date: Mon Aug 30 12:32:31 2010 -0700 Use POC type 2 for streams with no B-frames Saves a few bits per slice header. commit 6e8530793eb849f6ec17847acd39b69504f8fd49 r1710 Author: Jason Garrett-Glaser Date: Sun Aug 29 22:18:07 2010 -0700 Faster cabac_encode_ue_bypass Use CLZ + a lut instead of a loop. commit e344d6e6dc6d6612497f8d9987557153932ac8c9 r1709 Author: Henrik Gramner Date: Wed Sep 1 00:53:42 2010 +0200 Faster nal_escape asm commit 44ff90e6fc4a895cf6ed65ca39da5b3083daa3dd r1708 Author: Anton Mitrofanov Date: Tue Aug 31 08:45:22 2010 -0700 Allow --demuxer forcing with known extensions commit 7bb60b1503acebcee8fae9c6d7ab6e3f55095150 r1707 Author: Anton Mitrofanov Date: Fri Sep 3 13:33:44 2010 -0700 Minor fixes/cosmeticcs in commandling parsing commit d55fc72d55685312939497734a3516142da62e98 r1706 Author: Anton Mitrofanov Date: Fri Sep 3 08:39:48 2010 -0700 Fix overflow in stats printing commit 5978cbc53dec1e7023b2ba9c9f9ce6ed24ffc68b r1705 Author: Anton Mitrofanov Date: Sun Aug 29 16:35:32 2010 +0400 Fix bug in 2pass if the first P-frames are all skip last_qscale_for was read before being initialized in this case, resulting in the value from the previous iteration being used instead. commit 5b8f40714b10df5a5bf24ebb6be530a8458e2fdf r1704 Author: Jason Garrett-Glaser Date: Thu Aug 26 09:12:01 2010 -0400 Don't do deblock-aware RD if deblocking is off commit cd21d0551318972a58a7e497e0321e373f0d1237 r1703 Author: Jason Garrett-Glaser Date: Sat Aug 21 00:15:53 2010 -0700 CAVLC "trellis" ~3-10% improved compression with CAVLC. --trellis is now a valid option with CAVLC. Perhaps more importantly, this means psy-trellis now works with CAVLC. This isn't a real trellis; it's actually just a simplified QNS. But it takes enough shortcuts that it's still roughly as fast as a trellis; just not quite optimal. Thus the name is a bit of a misnomer, but we're reusing the option name because it does the same thing. A real trellis would be better, but CAVLC is much harder to trellis than CABAC. I'm not aware of any published polynomial-time solutions that are significantly close to optimal. commit 636d85b07cab192f796485969bc5e7a5538b8372 r1702 Author: Jason Garrett-Glaser Date: Sat Aug 21 16:51:39 2010 -0500 Add global #define for maximum reference count This should make it easier to play around with reference frame counts that exceed the spec maximum. commit c74f9c99a9af959c137f33a20d17bd55b3deb11d r1701 Author: Jason Garrett-Glaser Date: Mon Aug 16 17:47:11 2010 -0700 Simplify addressing logic for interlaced-related arrays In progressive mode, just make [0] and [1] point to the same place. commit 08b1e36390cdc7758102af31dc4f7f4e05ec0055 r1700 Author: Jason Garrett-Glaser Date: Mon Aug 23 18:59:35 2010 -0400 Add missing emms to x264_nal_encode Only matters for applications using the low-latency callback feature. commit 31e458faf03c8c673c1d7e8c9f6dd40c193d211f r1699 Author: Jason Garrett-Glaser Date: Tue Aug 17 14:38:41 2010 -0700 Fix 2 bugs with slice-max-size Macroblock re-encoding didn't restore mv/tex bit counters (slightly inaccurate 2-pass). Bitstream buffer check didn't work correctly (insanely large frames could break encoding). commit c41b8f0e890a05257406c8081ea429308d4e315c r1698 Author: Manuel Rommel Date: Thu Aug 12 12:54:00 2010 -0700 NV12 version of Altivec chroma MC commit 26c17a1b633107b12493ccecaa77392a5324c52b r1697 Author: Jason Garrett-Glaser Date: Tue Aug 10 16:55:05 2010 -0700 Deblock-aware RD Small quality gain (~0.5%) at lower bitrates, potentially larger with QPRD. May help more with psy, maybe not. Enabled at subme >= 9. Small speed cost (a few %). commit d0c41733a5b9f221011866c2a9ca46a6112241bf r1696 Author: Brad Smith Date: Sun Aug 8 18:13:32 2010 -0400 Correct X header path usage in configure Don't unconditionally set the header path for OpenBSD but do so if the --enable-visualize flag is specified. commit 003a7f2864190774f9ccf78168ff58a442fae627 r1695 Author: golgol7777 Date: Sat Aug 7 23:01:46 2010 -0700 Fix lavf input with delayed frames commit dd363d774d4aef19dc1cd9247b17d2454f913ea1 r1694 Author: Alexander Strange Date: Sat Aug 7 22:29:12 2010 -0700 Slightly improve the filtering section of x264 --help commit 12002b946831a5b4c542b5699eb9b0d15a51784b r1693 Author: Jason Garrett-Glaser Date: Sat Aug 7 22:32:06 2010 -0700 Fix debug message typo with DTS compression commit a414ccb295c5a05f11d700513f0326dbb823d5e6 r1692 Author: Yasuhiro Ikeda Date: Tue Aug 3 22:10:15 2010 +0900 Try to guess input length for lavf input Allows printing of progress indicator when using lavf input. commit 13230db01dc3f8554c3aa2dd3b82faa703a0f37b r1691 Author: Yasuhiro Ikeda Date: Tue Aug 3 22:07:36 2010 +0900 Workaround bug in fps/timestamp handling with lavf input reordered_opaque in lavf doesn't work correctly in the identity case (no reordering). Fixes incorrect output for some file types (e.g. raw in mov). commit 7e1e9bc2acca2194bd71ddd02edd884821d19b15 r1690 Author: Mike Matsnev Date: Sun Aug 1 12:08:20 2010 -0700 Fix aspect ratio writing in the MKV muxer The braindead Matroska spec dictates aspect ratio to be measured in pixels instead of, well, an actual aspect ratio. commit 7fc564fd23cde539c37d13c8fede91c7cd2b32f0 r1689 Author: Anton Mitrofanov Date: Thu Jul 29 20:23:55 2010 +0400 Add libavcore check in configure commit 0b36c6d54bc371c043c2fd861b6178ef416cd2fb r1688 Author: Jason Garrett-Glaser Date: Mon Jul 26 15:38:13 2010 -0700 Improve quantizer distribution with sliced-threads+VBV Should help avoid cases of very uneven quantizer choice between slices. commit a4cd3171e70f814f27ac53933a2897d34aaa8011 r1687 Author: Jason Garrett-Glaser Date: Wed Jul 28 11:42:06 2010 -0700 Remove dead code in slicetype.c commit 3e153343197ce41f116be600f6d7dd389c05f124 r1686 Author: golgol7777 Date: Wed Jul 28 00:54:38 2010 +0900 Fix incorrect duration/framerate/bitrate in flv header commit d939ccf006b9b74078303f73e6c7fb83158d46fb r1685 Author: Jason Garrett-Glaser Date: Wed Jul 28 14:23:53 2010 -0700 invalidate_reference fixes invalidate_reference didn't actually invalidate the immediate previous frame, only frames that came before that. Make sure that reordering is forced when invalidate_reference is used, so that the reference list is correct decoder-side. commit d2cfa9681c293066e96a3f1c5fd83f023839677b r1684 Author: Steven Walters Date: Sun Jul 25 19:45:27 2010 -0400 Filtering system-related fixes Fix configure to check for outdated libavutil in resize filter support. Do not print an explicit error message in ffms when requesting a frame beyond the number of frames in the source. Mention in --*help that filtering options can be specified as name=value. Fix the shadowing warning in the resize filter on posix systems. commit 62997d61611309c9e5ffe124a0b49ca55263fbaf r1683 Author: Jason Garrett-Glaser Date: Wed Jul 21 17:40:14 2010 -0700 Improve reference_invalid support Reference invalidation can now be used to invalidate multiple frames at a time, rather than being limited to one per encoder_encode call. commit 757f5c15b9c742e3076b44b073fae222522c7a5e r1682 Author: Loren Merritt Date: Thu Jul 22 06:40:12 2010 +0000 Eradicate all mention of SI/SP-frames commit 84a051f3f1598c4c48de4c84f8750a73d32edeeb r1681 Author: Jason Garrett-Glaser Date: Wed Jul 21 11:25:11 2010 -0700 Fix stack alignment with MB-tree Broke 2-pass with MB-tree when calling from compilers with broken stack alignment (e.g. MSVC). commit 1a6fd476c477a7870d15d0c7f005ae34813d2f9d r1680 Author: Steven Walters Date: Sat Jul 17 17:43:37 2010 -0400 Avisynth 2.6 colorspace support Use a customized avisynth_c.h to detect the new planar colorspaces. commit 87c0f8fa66c1d7fb7f25e1991341fd7fe78b1bcd r1679 Author: Loren Merritt Date: Thu Jul 15 23:49:03 2010 -0700 Prevent some cases of cache aliasing. Avoid cases where image strides were a large power of 2. Core 2: +3% speed at widths 898..960, +6% at widths 1922..1984, most other resolutions unaffected. Nehalem and AMD: similar amount of speedup, but fewer resolutions affected. commit cd8929fb3365b6b5e5d6168d97a52c751feda266 r1678 Author: Jason Garrett-Glaser Date: Thu Jul 15 19:35:52 2010 -0700 Fix stack alignment for adaptive quant Broke calls from compilers with broken stack alignment (e.g. MSVC). commit 19df41a9476ddd3f8ef633df1116e13021078ec7 r1677 Author: David Conrad Date: Thu Jul 15 18:58:28 2010 -0400 Fix compilation with shared ffmpeg libs lavf input uses libavutil functions, so it must request flags for libavutil from pkg-config. commit 6c486d23da46722377ec150ead899dd481551b28 r1676 Author: Jason Garrett-Glaser Date: Thu Jul 15 13:20:50 2010 -0700 Fix another PCM bug CABAC assumes that NNZ is 0 or 1, not the number of actual nonzero coefficients. Didn't actually break the output; only had a tiny effect on RD. commit 2484aa0b360647dbe0b63f9876566f670d7dcc49 r1675 Author: Oskar Arvidsson Date: Thu Jul 15 14:01:36 2010 +0200 Fix regression in r1666 Broke encoding of PCM macroblocks. commit d846e88db1c5d663e6936a4599d0a0562e2fd7c6 r1674 Author: Oskar Arvidsson Date: Thu Jul 15 08:04:47 2010 +0200 Fix build with bit_depth > 8 Definition of x264_cli_plane_copy was inconsistent with declaration. commit c9b2fcb4f4c1767fa9d0ea6b0a2e5709e61f3f7b r1673 Author: Loren Merritt Date: Thu Jul 8 12:24:16 2010 -0700 Convert x264 to use NV12 pixel format internally ~1% faster overall on Conroe, mostly due to improved cache locality. Also allows improved SIMD on some chroma functions (e.g. deblock). This change also extends the API to allow direct NV12 input, which should be a bit faster than YV12. This isn't currently used in the x264cli, as swscale does not have fast NV12 conversion routines, but it might be useful for other applications. Note this patch disables the chroma SIMD code for PPC and ARM until new versions are written. commit d797a1bc3f4410e45670b79381bfdce677646d48 r1672 Author: Steven Walters Date: Mon Jul 5 17:37:47 2010 -0400 Add video filtering system to x264cli Similar to mplayer's -vf system. Supports some basic operations like resizing and cropping. Will support more in the future. See the help for more details. commit 04e40ff9f61672bec01230ce6d70bc487f12bc2c r1671 Author: Jason Garrett-Glaser Date: Tue Jul 6 13:39:44 2010 -0700 Eliminate edge cases for MV predictors Saves a few clocks in mv pred. commit 27e4a3a732c8284225dd55a2c2c43bb08368f3fa r1670 Author: Jason Garrett-Glaser Date: Thu Jul 8 12:45:25 2010 -0700 Improve scenecut detection a bit Put a minimum value on the scenecut threshold; makes x264 more likely to catch successive scenecuts (but might increase the odds of false detection). This also fixes scenecut detection with keyint=infinite. Also print keyint=infinite in the x264 SEI and statsfile correctly. commit c953140b3b622b33e892c1a3d327d35b74762293 r1669 Author: Jason Garrett-Glaser Date: Wed Jul 14 18:47:14 2010 -0700 Fix 8x8dct+slices+no sliced threads+cavlc+deblock Deblocking was done slightly incorrectly. Regression in r1612. commit d6228aea4f0adf29be8526b8ce1d9d1237d23975 r1668 Author: Jason Garrett-Glaser Date: Thu Jul 8 16:20:48 2010 -0700 Fix off-by-one error in slice VBV predictor updates commit ce136d6721d38fbdf57683304dabbb1ba973effe r1667 Author: Anton Mitrofanov Date: Mon Jul 5 17:44:15 2010 +0400 Fix disabling of progress with --log-level commit d058f37d9af8fc425fa0626695a190eb3aa032af r1666 Author: Oskar Arvidsson Date: Fri Jul 2 04:06:08 2010 +0200 Support for 9 and 10-bit encoding Output bit depth is specified on compilation time via --bit-depth. There is currently almost no assembly code available for high-bit-depth modes, so encoding will be very slow. Input is still 8-bit only; this will change in the future. Note that very few H.264 decoders support >8 bit depth currently. Also note that the quantizer scale differs for higher bit depth. For example, for 10-bit, the quantizer (and crf) ranges from 0 to 63 instead of 0 to 51. commit 293b47bc2c52abe5143913ef3d126e6170edaf5c r1665 Author: Jason Garrett-Glaser Date: Wed Jun 30 13:55:46 2010 -0700 Support infinite keyint (--keyint infinite). This just means x264 won't insert non-scenecut keyframes. Useful for streaming when using interactive error recovery or some other mechanism that makes keyframes unnecessary. Also change POC logic to limit POC/framenum LSB size (to save bits per slice). Also fix a bug in the CPB underflow detection code (didn't affect the bitstream, just resulted in the failure to print certain warning messages). commit f378994ab3c816aaab2b795143e31919fdee1f2d r1664 Author: Jason Garrett-Glaser Date: Wed Jun 30 13:06:22 2010 -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. commit ce052b8bae0bed131716d3ed655b974a1a2ebcb5 r1663 Author: Steven Walters Date: Sat Jun 26 16:28:49 2010 -0400 Centralize logging within x264cli x264cli messages will now respect the log level they pertain to. Slightly reduces binary size. commit 22bf1672adafa4e938a13952b8f71cd7548d31f1 r1662 Author: Lamont Alston Date: Tue Jun 29 10:11:42 2010 -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. commit 4f74306c2f266bfc671ad99e9027b816dd423ece r1661 Author: Jason Garrett-Glaser Date: Mon Jun 28 15:02:33 2010 -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. commit aa1a8435000228c4d9e74da0f9fd3d16e85a3e80 r1660 Author: Loren Merritt Date: Sat Jun 26 20:55:59 2010 -0700 Simplify pixel_ads commit 57b2e56d247c009b390592c2cdea7fc7a4100124 r1659 Author: Jason Garrett-Glaser Date: Wed Jun 23 17:29:34 2010 -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. commit 7865fcb4093c39ec13def8a1cd14a7e67ddd8066 r1658 Author: Jason Garrett-Glaser Date: Thu Jun 17 14:50:07 2010 -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. commit 40c8c4926a78a705c263e042a780d63ca24687f4 r1657 Author: Lamont Alston Date: Wed Jun 16 10:05:17 2010 -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. commit ccb8391f68b1657d9d4155ad4f12e2b98660b0c0 r1656 Author: Steven Walters Date: Wed Jun 9 18:14:52 2010 -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. commit f7ca49910a4663fd743734f288ea88079e09deeb r1655 Author: Jason Garrett-Glaser Date: Sat Jun 19 01:41:07 2010 -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. commit ef0c268a2b1a42ff234ef27a535c16b825452ae0 r1654 Author: Jason Garrett-Glaser Date: Fri Jun 18 13:58:11 2010 -0700 SSE4 and SSSE3 versions of some intra_sad functions Primarily Nehalem-optimized. commit 88b90d9ca0582ff340a6d821d104f25917baa693 r1653 Author: Jason Garrett-Glaser Date: Sat Jun 19 03:27:33 2010 -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. commit 4c27afb595ac8e8a621ffc2bf8120f0d43c80384 r1652 Author: Jason Garrett-Glaser Date: Tue Jun 22 14:20:46 2010 -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. commit 69e9d85c292cb9daa96664657352bf6c65af5825 r1651 Author: Anton Mitrofanov Date: Sat Jun 19 01:44:56 2010 +0400 Fix SIGPIPEs caused by is_regular_file checks Check to see if input file is a pipe without opening it. commit 4fa7d539c1a09a0779194c7971495e966ff7de1e r1650 Author: Jason Garrett-Glaser Date: Tue Jun 15 05:15:42 2010 -0700 Fix compilation on ARM w/ Apple ABI commit 20cbe1046c7828bb213b10268aa711abfdafe257 r1649 Author: Holger Lubitz Date: Wed Jun 9 13:59:06 2010 +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. commit 4d8d93019558999a95c515b6726bba02faf74d3a r1648 Author: Diogo Franco Date: Sun Jun 13 21:57:32 2010 -0300 Convert the OPT_ defines in x264.c to an enum commit be94782b89292c6a5a274a9e874723e10497ba1c r1647 Author: Anton Mitrofanov Date: Sun Jun 13 23:14:15 2010 +0400 Don't allow baseline profile streams with fake-interlaced Indicate use of --fake-interlaced in encoding options SEI. commit 71502eaf1ac591074da1f16135cc4af4087a9f3f r1646 Author: Havoc Pennington Date: Thu Jun 10 16:28:52 2010 -0400 Allocate space for null terminator in param_apply_tune commit 0c7bcebdfb8baca78e4fd9dc76f5f43e096c6030 r1645 Author: Anton Mitrofanov Date: Thu Jun 10 21:33:46 2010 +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. commit 8c69931e5045b4d019ce24bbcba4f05715aa2d0e r1644 Author: Anton Mitrofanov Date: Wed Jun 9 22:53:08 2010 +0400 Fix crash with --subme 0 + --weightp > 0. Regression in r1535 commit 0cd5d69beac1ed95a077e75c7a4cb3f837e74855 r1643 Author: Henrik Gramner Date: Tue Jun 8 16:29:16 2010 +0200 Replace some divisions with shifts commit 02f1bba36db707e342218efcc0585d4a6b37c60e r1642 Author: Anton Mitrofanov Date: Tue Jun 8 02:43:37 2010 +0400 Warn about shadowed variable declarations Also get rid of a few instances of variable shadowing. commit 3df2c903ecc2fa9a121afea620cebd967a4c29b8 r1641 Author: Jason Garrett-Glaser Date: Mon Jun 7 14:26:05 2010 -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. commit 0c947690373f6347f6f9df2e712b01ba756622ec r1640 Author: Jason Garrett-Glaser Date: Mon Jun 7 14:15:33 2010 -0700 Remove double-dereferences for MB width/height data Store it in x264_t instead of going through the SPS. commit 609f7ab0af169d2515ad66a1c77cb558eb5f1b49 r1639 Author: Steven Walters Date: Sat May 22 20:54:35 2010 -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. commit 2e541dd2abc24bbae7c73cf35954ce11f89ea03d r1638 Author: Steven Walters Date: Fri Jun 4 13:44:55 2010 -0700 Preprocessing cosmetics Unify input/output defines to HAVE_* format. Define values as 1 to simplify conditionals. commit 50015055b0857b2c2404b5299b0bc031b39e2724 r1637 Author: Jason Garrett-Glaser Date: Thu Jun 3 21:31:10 2010 -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. commit 2d2abd8286f3744d79349a162e506f6502c52c56 r1636 Author: Jason Garrett-Glaser Date: Wed Jun 2 15:47:26 2010 -0700 Display SSIM measurement in db as well commit c41f0c09eae14014f00a38d5b2f859b99fdd77a4 r1635 Author: Anton Mitrofanov Date: Tue Jun 8 01:03:03 2010 +0400 Make version.sh indicate "M" for local commits too commit 3c92ef90e145d627b4048b5c6ea92995b2eafbf3 r1634 Author: Alex Jurkiewicz Date: Sun Jun 6 15:21:12 2010 +0800 Add error message for invalid [de]muxer selection commit 0d0dc6a720f5a41add8989cfa29090cf48d6028f r1633 Author: Nathan Caldwell Date: Sun Jun 6 14:19:41 2010 -0600 Deduplicate the ALIGN macro, move it to common.h commit 2fafcb50c2266a58fe25030c10c5840cab8fbc8f r1632 Author: David Conrad Date: Thu Jun 3 19:02:24 2010 -0400 Fix a use of ALIGNED_ARRAY_16 on ARM commit 5079abd2ffdbd69d8bc4f474ce50f14fd83a340c r1631 Author: Jason Garrett-Glaser Date: Tue Jun 8 15:41:17 2010 -0700 Add missing emms after nal_encode Caused random, bizarre failures with some calling applications. commit b474d0e5790da0c1aa6107ef571d7572f2e94221 r1630 Author: Jason Garrett-Glaser Date: Tue Jun 8 15:38:32 2010 -0700 Fix crash in fake-interlaced at some resolutions commit 2e81ce15c161f94053707852c027c123c6812cdf r1629 Author: Yusuke Nakamura Date: Wed Jun 2 22:27:57 2010 +0900 Fix no-mbtree + aq-mode=0 Regression in r1618. commit b794258670e914c34c8b644d3fdd7d5250029817 r1628 Author: Jason Garrett-Glaser Date: Wed Jun 2 01:07:44 2010 -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. commit d0d8751af40485b0ec08a579672e804a33d76714 r1627 Author: Yusuke Nakamura Date: Wed Jun 2 17:02:31 2010 +0900 Fix Avisynth input Regression in r1624. A more permanent solution to the problem will be committed later. commit fbe0255810b2293091032fe9d30e40594bc08643 r1626 Author: Oskar Arvidsson Date: Wed Jun 2 02:08:45 2010 +0200 Convert to a unified "dctcoeff" type for DCT data Necessary for future high bit-depth support. commit d3ff95cc2ade25935fbc346177c0bee2b8f61514 r1625 Author: Oskar Arvidsson Date: Wed Jun 2 01:35:38 2010 +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. commit a6c6afa85053443dc459e096e8e681dc21d43ade r1624 Author: Jason Garrett-Glaser Date: Fri May 28 14:27:22 2010 -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. commit 6dc1217f510ece46166376dcca1d6b19d088a3b5 r1623 Author: Jason Garrett-Glaser Date: Thu May 27 14:27:32 2010 -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. commit bdc68d651db64045aecb28f27e0e05e027ab48eb r1622 Author: Jason Garrett-Glaser Date: Fri May 28 14:30:07 2010 -0700 Re-enable i8x8 merged SATD Accidentally got disabled when intra_sad_x3 was added. commit 0c7cf0bfb1d30ee8e7f1b355fef5aa9e2db929d2 r1621 Author: Henrik Gramner Date: Sun May 30 22:45:14 2010 +0200 Some deblocking-related optimizations commit 77b568b22d42baa344dad050aef420de3b22e126 r1620 Author: Henrik Gramner Date: Thu May 27 22:18:38 2010 +0200 Optimize out some x264_scan8 reads commit 794713a35eadcd999d5aab4a50274ca43f29be93 r1619 Author: Jason Garrett-Glaser Date: Thu May 27 10:42:15 2010 -0700 Add fast skip in lookahead motion search Helps speed very significantly on motionless blocks. commit 5832bdfaed3bcce1b2823b6594386e0357d8ff31 r1618 Author: Jason Garrett-Glaser Date: Wed May 26 12:55:35 2010 -0700 Merge some of adaptive quant and weightp Eliminate redundant work; both of them were calculating variance of the frame. commit a7f870990af39a11f3bb883b9335baad91909ccb r1617 Author: Jason Garrett-Glaser Date: Thu May 27 12:31:41 2010 -0700 Fix omission in libx264 tuning documentation commit 8098997dcba2602b22b43fdf26621d08d3f81333 r1616 Author: Jason Garrett-Glaser Date: Sun May 30 09:42:53 2010 -0700 Fix ultrafast to actually turn off weightb commit d51fde592507649e22757a23f0ea0252ec35b5b6 r1615 Author: Anton Mitrofanov Date: Mon May 31 22:36:50 2010 +0400 Fix crash with MP4-muxing if zero frames were encoded commit 2bcbac357b714f468e0138f022e584ffdb42f6d2 r1614 Author: Jason Garrett-Glaser Date: Mon May 31 11:14:22 2010 -0700 Fix cavlc+deblock+8x8dct (regression in r1612) Add cavlc+8x8dct munging to new deblock system. May have caused minor visual artifacts. commit 81e75e91cad61079ce9579d133316b1faf78f357 r1613 Author: Jason Garrett-Glaser Date: Wed May 26 12:40:31 2010 -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). commit 97c7ecc5aae7739ad91e1d6d3cdd3d26aafefb06 r1612 Author: Jason Garrett-Glaser Date: Tue May 25 12:42:44 2010 -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. commit 036db859ac0d44c4c491ef86d890745a62d1b1e0 r1611 Author: Jason Garrett-Glaser Date: Tue May 25 16:13:59 2010 -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. commit 7c2fd41075685b6f67471c71b323b08fc3c13764 r1610 Author: Jason Garrett-Glaser Date: Mon May 24 11:13:22 2010 -0700 Slightly faster mbtree asm commit cca28cdeb64df106d9aa49eb75ae1c7b933d6c49 r1609 Author: Jason Garrett-Glaser Date: Fri May 21 15:39:38 2010 -0700 Faster deblock strength asm on conroe/penryn commit 2dd5ce29d1e5304310d8577543613b230878cdc5 r1608 Author: Jason Garrett-Glaser Date: Fri May 21 14:32:13 2010 -0700 Avoid an extra var2 in chroma encoding if possible Also remove a redundant if. commit 23e92b58c0e4d15123fcb17929b531f1cf6f8dd6 r1607 Author: Jason Garrett-Glaser Date: Fri May 21 13:07:12 2010 -0700 Avoid a redundant qpel check in lookahead with subme <= 1. commit d202981d5c884d7b177320bd74fec3af1d68e5a8 r1606 Author: Anton Mitrofanov Date: Tue May 25 19:11:42 2010 +0400 Fix ABR rate control calculations Incorrect frame numbers were used, resulting in slightly inaccurate ratecontrol. commit e627569c623d2cd0423c94e9499dec4844039139 r1605 Author: Anton Mitrofanov Date: Tue May 25 18:45:16 2010 +0400 Fix calculation of total bitrate printed after stop by CTRL+C commit bed132348f4044c3b8291e8addeedc223ff1483e r1604 Author: Kieran Kunhya Date: Sat May 22 14:32:53 2010 +0100 Fix typo in fake-interlaced documentation commit cf5769dc3f2dcf699fc8bf850d375508495297ef r1603 Author: Jason Garrett-Glaser Date: Tue May 25 17:49:07 2010 -0700 Fix CABAC+PCM, regression in r1592 Changes to queue in CABAC didn't get propagated to PCM code. commit 69588a7dda1dbd89b955fa6a2d8f4b3a8af73628 r1602 Author: Henrik Gramner Date: Fri May 21 15:30:26 2010 +0200 Fix performance regression in r1582 Set the correct compiler flags. commit b9ec3ea27812288485329ac7771143021cd4917b r1601 Author: Jason Garrett-Glaser Date: Tue May 18 16:48:00 2010 -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. commit 9b47cb08b5ecf9a38ba82f299304c95c178f4690 r1600 Author: Anton Mitrofanov Date: Fri May 21 10:33:45 2010 +0400 Fix different output with differing sync-lookahead Also reduce memory consumption. commit dd4972a2cb50b567542391e288d17ebba7536911 r1599 Author: Anton Mitrofanov Date: Tue May 18 22:26:59 2010 +0400 Mark Win32 executable as large address aware commit 1b48874d06c5927808554a3c869e6fd01db238bc r1598 Author: Kieran Kunhya Date: Thu May 20 17:45:16 2010 +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. commit 8ff16c56ee5aba39ab0c278df2a2e94282eb29f3 r1597 Author: Alex Jurkiewicz Date: Thu May 20 15:01:37 2010 +0800 Modify version.sh to output to stdout. Update configure to match. commit 629a56a54bccde2e43fe831796bec885a164acf3 r1596 Author: Henrik Gramner Date: Wed May 19 23:09:58 2010 +0200 Set correct filesystem permissions for various files commit c7876580bf822e63f1f77689218bfbbea4f9b9fc r1595 Author: Anton Mitrofanov Date: Wed May 19 21:07:03 2010 +0400 Fix regression in r1566 Intra stats need to be kept track of for fast intra decision. commit ff0fede90cdac017457a77d026476a36d04cacd4 r1594 Author: Jason Garrett-Glaser Date: Tue May 18 11:53:32 2010 -0700 Fix rc-lookahead in encoding options SEI in 2-pass with VBV commit 86c8fec9a8fe39b2a6381fe25bb69ec10e3a6859 r1593 Author: Loren Merritt Date: Mon May 17 14:08:37 2010 -0700 Reduce memory usage in 2-pass with b-adapt 2 commit 95aacc4fb0ed4477a8c8b7cbf3f8c89229b03dc7 r1592 Author: Jason Garrett-Glaser Date: Sat May 15 14:48:58 2010 -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. commit 03ff36e3b48729516a1f94bc0475bff13525d1a2 r1591 Author: Kieran Kunhya Date: Thu May 13 19:13:35 2010 +0100 Fix typo in pulldown commit e07cd36aba1b6743ba64607acbb66e02177b5616 r1590 Author: Anton Mitrofanov Date: Wed May 12 22:05:34 2010 +0400 Fix bitrate calculation in progress status Was slightly incorrect due to using pts, which is out of order. commit 444794d8c805b1951d985a1b5d1d1a2e5b8342a3 r1589 Author: Anton Mitrofanov Date: Wed May 12 01:57:38 2010 +0400 Fix crash with sliced-threads on Phenom commit cb0614356f42f7032cec8c09b439570dbc464e01 r1588 Author: Jason Garrett-Glaser Date: Mon May 10 22:59:12 2010 -0700 Fix condition for printing rc=cbr in options SEI Also fix crf-max formatting. commit 4b4f8eb89bfc033a1bc52684636c7f4f8c314345 r1587 Author: Henrik Gramner Date: Mon May 10 23:27:36 2010 +0200 Shrink even more constant arrays commit 15686c04643ea9b4c5a6d2c22a280437426d1c36 r1586 Author: Jason Garrett-Glaser Date: Sat May 8 12:07:13 2010 -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. commit 29b379cc3499541e72007131909d45a8c472f2b5 r1585 Author: Jason Garrett-Glaser Date: Sat May 8 11:58:22 2010 -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. commit 09b5a943c62212447a0151dfd5324f8e36715272 r1584 Author: Anton Mitrofanov Date: Thu May 6 10:03:31 2010 -0700 More cosmetics commit 7608d73d489e9ed4e57ae80f01d7da67323e029d r1583 Author: Jason Garrett-Glaser Date: Thu May 6 00:53:20 2010 -0700 Fix unresolved symbol in r1573 gnu ld didn't complain, but some other linkers did. commit 90b6dd00745f278ce56870ec32ce973bfc1c5f5d r1582 Author: Steven Walters Date: Wed May 5 19:54:04 2010 -0400 Remove unnecessary --enable options Change --enable-visualize to actually check for X11 support. commit 174aedc50c1455045c3a1d846e0df6399918dbd8 r1581 Author: Jason Garrett-Glaser Date: Mon May 3 21:27:16 2010 -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. commit 8508412c878b4823906cd5c67b46698ce9bc297d r1580 Author: James Darnley Date: Sun May 2 16:30:50 2010 -0700 Add field-order detection to y4m demuxer commit 44f83cc129480d67c76b1b0e11c97870957ff2c2 r1579 Author: Jason Garrett-Glaser Date: Sun May 2 11:45:15 2010 -0700 Fix sliced-threads + interlaced Broken in r1546. commit 3cf182b2d0b5fd38538a3b6e5102b925a5747687 r1578 Author: Jason Garrett-Glaser Date: Sun May 2 11:41:36 2010 -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. commit c82273d6d74271e0f743c5729e7438ff37e2df5e r1577 Author: Jason Garrett-Glaser Date: Sat May 1 19:34:14 2010 -0700 More accurate MV prediction on edges in lookahead commit ccc03ec16125e0586231afbb06936bd0bf8c926d r1576 Author: Jason Garrett-Glaser Date: Sat May 1 19:32:01 2010 -0700 Error out on invalid input stride Might catch some crashes due to buggy calling applications. commit 21c030d96f5f71b49e4f2cd748e13da1dcad429d r1575 Author: Jason Garrett-Glaser Date: Sat May 1 00:18:01 2010 -0700 Remove unnecessary debugging assert Shouldn't have been in r1568 to begin with. commit 181fc45d360ff8d586259f461fe5a21c4c37aefb r1574 Author: Jason Garrett-Glaser Date: Fri Apr 30 13:45:50 2010 -0700 Shrink some more constant arrays commit 41be22fc887a5904223350a885c9f2c0981a1c8d r1573 Author: Jason Garrett-Glaser Date: Fri Apr 30 11:36:19 2010 -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). commit 9ec07af8692c9e10f048f0b41897e66ac3a062cb r1572 Author: Jason Garrett-Glaser Date: Fri Apr 30 09:57:55 2010 -0700 Shrink a few x86 asm functions Add a few more instructions to cut down on the use of the 4-byte addressing mode. commit 9d66767e2569e30339363a2d69c74213d84e7dbc r1571 Author: Jason Garrett-Glaser Date: Thu Apr 29 19:53:59 2010 -0700 Make options SEI use weight* instead of wpred* More intuitive and maps more reasonably to the CLI options. Breaks statsfile backwards-compatibility. commit d9db8b3ed9615f4262d58e0d9ed1e1bb83f6673e r1570 Author: Loren Merritt Date: Thu Apr 29 17:35:25 2010 +0000 r1548 broke subme < 3 + p8x8/b8x8 Caused significantly worse compression. Preset-wise, only affected veryfast. Fixed by not modifying mvc in-place. commit bff0df76deeed96e76e3c965223065d30258e7d5 r1569 Author: Henrik Gramner Date: Tue Apr 27 01:44:33 2010 +0200 More write-combining commit 41b877e0ab14a77a211e0cd087bf9c3726b2c2f6 r1568 Author: Jason Garrett-Glaser Date: Mon Apr 26 15:10:11 2010 -0700 Reduce lookahead memory usage, cache misses Merge lowres_types with lowres_costs. commit bf49210db8acd958a3cb266d6ecb679d16901a1d r1567 Author: Jason Garrett-Glaser Date: Sun Apr 25 14:54:29 2010 -0700 Fix build on x86 with asm on but SSE off commit dffb848b6b36dd9fd811dae9f2e1f6e9b99065f1 r1566 Author: Jason Garrett-Glaser Date: Sat Apr 24 13:55:51 2010 -0700 Don't calculate ref/partition stats if not necessary commit 167d68a65ea8d777f03c632b8c135b6b10a854b6 r1565 Author: Jason Garrett-Glaser Date: Sat Apr 24 13:07:18 2010 -0700 Split out MV prediction into mvpred.c Make common/macroblock.c a bit less gigantic. commit a927654cf5b4d3f25364b7fcebbce0bc4b178dec r1564 Author: Loren Merritt Date: Sat Apr 24 16:22:14 2010 +0000 Fix mv predictor clipping on non-x86 (regression in r1548) commit fbcc1ecd6de4b12dc0ee39bfa426ef150b89b047 r1563 Author: Anton Mitrofanov Date: Sat Apr 24 00:26:13 2010 +0400 Move getopt.c to x264cli sources from libx264 Only affects builds on systems without getopt.c. commit 8fae650c3e1766456a086f69b379c4377765ba3a r1562 Author: Jason Garrett-Glaser Date: Thu Apr 22 12:53:07 2010 -0700 Move deblocking code to a separate file Should clean up frame.c a bit. commit f648d24a88be21970562bac84bd4e5ea569cb8ef r1561 Author: Steven Walters Date: Tue Apr 20 19:48:02 2010 -0400 fix ffms demuxer to support input timebase values > 2^31 commit 4ce8f1232358004cd16f3f83c3dd81e87707ff56 r1560 Author: Jason Garrett-Glaser Date: Tue Apr 20 16:53:06 2010 -0700 Fix 10l in cache_load changes Broke constrained intra pred, probably not anything else. commit f6114408330c1f1c5bb897ab74258f9972cc9bf9 r1559 Author: Jason Garrett-Glaser Date: Tue Apr 20 16:50:13 2010 -0700 Faster fullpel predictor checking Also shave a few instructions off dia/hex motion estimation loops. commit f48356d47ae3ecc65a72486604e3ce36dd2d3518 r1558 Author: Loren Merritt Date: Tue Apr 20 09:40:49 2010 +0000 Fix checkasm's generation of deblock inputs (regression in r1517) commit e37a4907a51c16ebe16cbdffcd87a5d8fc3c342c r1557 Author: Loren Merritt Date: Tue Apr 20 09:17:18 2010 +0000 Fix printing of bitrate when timestamps aren't available Doesn't affect x264cli, but was broken in some other apps in CFR mode. commit 5b1798ebf29c4a277fe99b61bbfb6cc816db263a r1556 Author: Jason Garrett-Glaser Date: Tue Apr 20 00:46:29 2010 -0700 Don't check mv0 twice One less SAD in motion estimation. Also rename bmv -> pmv; more accurate naming. commit c76069fec1b7711c754fea593abaf470901e54c3 r1555 Author: Jason Garrett-Glaser Date: Mon Apr 19 11:02:27 2010 -0700 Remove reordering restrictions from weightp Apparently the spec does allow two consecutive copies of the same frame in the reference list. This involves an incredibly ugly hack to wrap around the frame number. Very slight compression improvement. commit d6d63a0d1fb1ac1526da4bcdcc0a24e42e03a39c r1554 Author: Jason Garrett-Glaser Date: Mon Apr 19 23:34:03 2010 -0700 Print intra chroma pred modes in stats commit 4013f8d89aa3722b2e8d457eab7c65e33e50aca1 r1553 Author: Jason Garrett-Glaser Date: Sun Apr 18 22:54:48 2010 -0700 Add mv0 special case in pskip chroma MC Significantly faster pskip MC. commit 156bf75dfb99913bdc8db73a858130e63c6bf5c4 r1552 Author: Francois Cartegnie Date: Sun Apr 18 13:04:59 2010 -0700 Fix build scripts to work with non-GNU tools commit a34ad7c1282a26d5a35f502b75f7dc24322ba01c r1551 Author: Jason Garrett-Glaser Date: Fri Apr 16 20:04:13 2010 -0700 Faster deblock reference frame checks Use a lookup table to simplify logic commit 5dab1efd428735f10a9670637dddffe763286dc4 r1550 Author: Henrik Gramner Date: Fri Apr 16 22:39:45 2010 +0200 Faster chroma CBP handling commit 28fd5fb80fe1ab5c2bf51453a84fee4a18935ef9 r1549 Author: Jason Garrett-Glaser Date: Fri Apr 16 11:36:43 2010 -0700 Fix issues with extremely large timebases With timebase denominators >= 2^30 , x264 would silently overflow and cause odd issues. Now x264 will explicitly fail with timebase denominators >= 2^31 and work with timebase denominators 2^31 > x >= 2^30. commit aaf2194fcd9efacbb835af5fe3390ad48d19cc8c r1548 Author: Jason Garrett-Glaser Date: Fri Apr 16 12:06:07 2010 -0700 MMX code for predictor rounding/clipping Faster predictor checking at subme < 3. commit bc9103c33fc9b9e502c82153fc0fe70ef1fa2ff5 r1547 Author: Jason Garrett-Glaser Date: Fri Apr 16 03:06:46 2010 -0700 Fix four minor bugs found by Clang commit 46fd4ae1388f6a53544b0bd4f97ce9940451f54d r1546 Author: Jason Garrett-Glaser Date: Thu Apr 15 16:32:31 2010 -0700 Move deblocking/hpel into sliced threads Instead of doing both as a separate pass, do them during the main encode. This requires disabling deblocking between slices (disable_deblock_idc == 2). Overall performance gain is about 11% on --preset superfast with sliced threads. Doesn't reduce the amount of actual computation done: only better parallelizes it. commit a7ec5e2352c516f8c14bdd79ea9d1522d3ddae16 r1545 Author: Jason Garrett-Glaser Date: Wed Apr 14 14:43:25 2010 -0700 Prefetch MB data in cache_load Dramatically reduces L1 cache misses. ~10% faster cache_load. commit 017ade0a01066af3061a8c381e4e0a80df7e3933 r1544 Author: Jason Garrett-Glaser Date: Fri Apr 23 19:09:37 2010 +0000 Fix a ton of pessimization caused by aliasing in cache_save and cache_load commit 674926f10f65c28f9a32045be2fd89ee7bc5d8ec r1543 Author: Jason Garrett-Glaser Date: Fri Apr 23 19:09:18 2010 +0000 Add CP128/M128 macros using SSE commit 5b86182d1240b441f28462abf3d40b7371de5ba3 r1542 Author: Jason Garrett-Glaser Date: Sun Apr 11 13:36:50 2010 -0700 Fix various early terminations with slices Neighbouring type values (type_top, etc) are now loaded even if the MB isn't available for prediction. Significant overall performance increase (as high as 5-10%+) with lots of slices (e.g. with slice-max-size). commit dabc4b1e60f00c90f0ab27e76f3657d95b19feb8 r1541 Author: Anton Mitrofanov Date: Tue Apr 13 21:25:42 2010 +0400 Enable --fast-pskip on fast firstpass commit 2efd119bbe485c70f637efc8ba089eca61808711 r1540 Author: Steven Walters Date: Tue Apr 13 08:44:37 2010 -0400 Make interlaced detection in avisynth only apply to field-based input Fixes improper flagging of progressive sources. commit 0f9244199fa24ea50b79f3e0873da4641a7cec46 r1539 Author: Anton Mitrofanov Date: Tue Apr 13 19:55:12 2010 +0400 Set psy=0 in lossless mode Doesn't actually affect output, just what's written in the SEI. commit bd72d46f71e102597645a5fac2858663f85373ce r1538 Author: Loren Merritt Date: Sun Apr 11 04:20:04 2010 +0000 Fix a use of sad_x4 that had non-mod64 stride Minimal speed improvement, but fixes a violation of internal api. commit 15f5e7ef2d0bd8196b0345dc8fb568c225b22b12 r1537 Author: Jason Garrett-Glaser Date: Sat Apr 10 13:15:30 2010 -0700 Make keyint_min auto by default Gives more reasonable default settings when using short GOPs. commit c7c8693f838f09760e76261a7b3a55bbae2b375b r1536 Author: Jason Garrett-Glaser Date: Sat Apr 10 00:49:19 2010 -0700 Faster mv predictor checking at subme < 3 Simplify the predicted MV cost check. commit f21ff8a3e7e1292c542e84842d2738adc72fcd59 r1535 Author: Jason Garrett-Glaser Date: Sat Apr 10 00:35:50 2010 -0700 Special case in qpel refine for subme=1 ~15-20% faster qpel refine with subme=1. Some minor cleanups in refine_supel. commit 7c9870ba0eab79852e3243ad28aa6163c37b6498 r1534 Author: Henrik Gramner Date: Sat Apr 10 02:21:01 2010 +0200 Cosmetics: VLC tables commit 825e3a9c1d185328f426340d118cb7359d1aca4b r1533 Author: Jason Garrett-Glaser Date: Fri Apr 9 18:13:22 2010 -0700 Add faster mv0 special case for macroblock-tree Improves performance on low-motion video. commit 4f8c44c17425470202759cafc49ae4496745598d r1532 Author: Jason Garrett-Glaser Date: Fri Apr 9 01:49:55 2010 -0700 Add miscompilation check for x264_clz Running a Phenom-optimized build of x264 (e.g. -march=amdfam10) on a non-Phenom CPU didn't SIGILL; instead it would silently produce incorrect output. Now, instead, it will error out loudly. commit 13908862fd79e85172ab2f4793fade268edb6d3d r1531 Author: Anton Mitrofanov Date: Wed Apr 7 12:17:20 2010 +0300 Fixing floating-point exception in level-checking Doesn't cause any issues for x264cli, but might impact some calling apps that care (e.g. Delphi apps). commit f1320f8e9c68f10da09c2e31758b5ce4c79db9e1 r1530 Author: Jason Garrett-Glaser Date: Thu Apr 8 18:44:16 2010 -0700 Save a few bits in multislice encoding Set the initial QP for each slice to the last QP of the previous slice. commit bc42c5af36ec0005a7effb12cab07bb49729cb98 r1529 Author: Alex Wright Date: Thu Apr 8 01:25:55 2010 +1000 Early termination in 16x8/8x16 search Combine the actual cost of the first partition with the predicted cost of the second to avoid searching the second when possible. Reduces the number of times the second partition is searched by up to ~75% in non-RD mode, ~10% in RD mode. Negligible effect on compression. commit 040fddd0ff78380ee465b00203654846b969b8f5 r1528 Author: Jason Garrett-Glaser Date: Wed Apr 7 07:45:00 2010 -0700 Make MV prediction work across slice boundaries Should improve motion search with lots of small slices, e.g. with slice-max-size. Still restricted by sliced threads (won't cross the boundary between two threadslices). The output-changing part of the previous patch. commit 469fae24c53a1e52246b89ca9d412b63f8831abd r1527 Author: Jason Garrett-Glaser Date: Wed Apr 7 07:43:46 2010 -0700 Cleanup and simplification of macroblock_load Doesn't do anything now, but will be useful for many future changes. Splitting out neighbour calculation will make MBAFF implementation easier. Calculation of neighbour_frame value (actual neighbouring MBs, ignoring slices) will be useful for some future patches. commit fb449c746ed5b2a8b006fa5b8d5b658a95816280 r1526 Author: Jason Garrett-Glaser Date: Wed Apr 7 03:10:03 2010 -0700 Add missing #include to display-x11.c commit 819d121f6cf92b7b5f33e85181b0dcdb0ffbb84a r1525 Author: Steven Walters Date: Tue Apr 6 22:08:21 2010 -0400 Add TFF/BFF detection to all demuxers Fix interlaced Avisynth input, automatically weave field-based input. commit 058d67e3eb800d9814403876a0181874e2f900dc r1524 Author: Jason Garrett-Glaser Date: Tue Apr 6 13:53:22 2010 -0700 Correctly mark output frames as BREF Simplify pic_out code. commit 25ca5b0cdd583a28e130525836e25e5e40095cf1 r1523 Author: Kieran Kunhya Date: Sat Apr 3 14:59:59 2010 -0700 Fix HRD compliance As usual, the spec is so insanely obfuscated that it's impossible to get things right the first time. commit f8671ce1f3b3addb49aca275215d6ffd313f08c2 r1522 Author: Alex Wright Date: Sat Apr 3 14:50:26 2010 -0700 Better b16x8/8x16 early termination in B-frames A bit slower but up to 1-2% better compression. commit a1e4e583fc9740666c442c1ae2ee06e335f937d0 r1521 Author: Jason Garrett-Glaser Date: Fri Apr 2 12:23:52 2010 -0700 Fix 10L in B-skip improvement patch commit 9d08bf433190ac11e2707ac456382f3996773909 r1520 Author: Jason Garrett-Glaser Date: Fri Apr 2 03:09:48 2010 -0700 Fix printing of SEI header with VBV + ABR SEI header shouldn't say CBR unless bitrate == maxrate. commit 385716eeb39ed9279c7f003837bb3228a77b2edf r1519 Author: Jason Garrett-Glaser Date: Thu Apr 1 22:33:42 2010 -0700 Simplify slicetype_frame_cost Avoid redundant calculations when VBV is on (due to the intra-only call). Move most of the logic into per-MB code. commit 769adffece015d5082492fb87a4bc3cdd5cbd249 r1518 Author: Jason Garrett-Glaser Date: Thu Apr 1 15:51:59 2010 -0700 Faster CABAC state copying for small partitions Save ~25 clocks per i4x4, i8x8, and sub8x8 RD call. commit 4abe704f9c23e342ed485d2f92f5d7ce7e32b4ff r1517 Author: Jason Garrett-Glaser Date: Wed Mar 31 01:44:07 2010 -0700 Massive cosmetic and syntax cleanup Convert all applicable loops to use C99 loop index syntax. Clean up most inconsistent syntax in ratecontrol.c, visualize, ppc, etc. Replace log(x)/log(2) constructs with log2, and similar with log10. Fix all -Wshadow violations. Fix visualize support. commit 2f432c81bb0192d7ebed1fd2f7afd8a431582553 r1516 Author: Jason Garrett-Glaser Date: Tue Mar 30 23:30:09 2010 -0700 Fix array overread in b8x16 search commit 385f6e2642f9351a8da855f5fb75f611f59f28b1 r1515 Author: Jason Garrett-Glaser Date: Mon Mar 29 19:03:13 2010 -0700 Faster direct check with subpartitions off Also simplify the whole function a bit. commit d8d8e7ea3043adc292ce97851eaec057d002dc59 r1514 Author: Jason Garrett-Glaser Date: Mon Mar 29 02:14:25 2010 -0700 Print crf-max with appropriate precision in SEI commit ffd1cd15984b60ab4e74c32ac71ffe4b576a30da r1513 Author: Yusuke Nakamura Date: Mon Mar 29 00:05:30 2010 -0700 Fix 10l in timecode seeking commit ae834029cad9401b30cd529cf8c84db41aac776d r1512 Author: Yusuke Nakamura Date: Mon Mar 29 13:51:02 2010 +0900 Fix 10L: Remove needless error check This error check was for cfr input + --timebase, but that doesn't happen, and brings about a bug with vfr input. commit f9ff0031cbccf582faf3e9224f678926d70750b2 r1511 Author: Jason Garrett-Glaser Date: Sun Mar 28 20:40:42 2010 -0700 Don't use 2 L1 refs with pyramid + ref=1 Slightly faster encoding with ref=1. commit 33d382a2fa75b8f7929302b40826e2892355cef4 r1510 Author: Henrik Gramner Date: Fri Mar 26 17:57:23 2010 -0700 Update copyright year in SEI header commit 5b1fdfabb8e473aaa8ddc6389f3882ed9e4073ac r1509 Author: Jason Garrett-Glaser Date: Fri Mar 26 15:33:20 2010 -0700 New "superfast" preset, much faster intra analysis Especially at the fastest settings, intra analysis was taking up the majority of MB analysis time. This patch takes a ton more shortcuts at the fastest encoding settings, decreasing compression 0.5-5% but improving speed greatly. Also rearrange the fastest presets a bit: now we have ultrafast, superfast, veryfast, faster. superfast is the old veryfast (but much faster due to this patch). veryfast is between the old veryfast and faster. faster is the same as before except with MB-tree on. Encoding with subme >= 5 should be unaffected by this patch. commit a76ac874ae45698c7e3354200e48ac181baed499 r1508 Author: Jason Garrett-Glaser Date: Thu Mar 25 14:46:24 2010 -0700 Avoid redundant MV prediction in duplicate refs commit a1edfa63597da268c850ddf769ae2fde63e132f8 r1507 Author: Henrik Gramner Date: Wed Mar 24 23:27:30 2010 +0100 Cosmetics in mvd handling Use a 2D array instead of doing manual pointer arithmetic. commit 9904be8b50942d7038dcdd5ee20ea93154823b55 r1506 Author: Jason Garrett-Glaser Date: Wed Mar 24 07:25:01 2010 -0700 Fix make uninstall on systems with executable suffixes commit 5543435e17c5b9bdbaeb979b76fdd5a2de727e93 r1505 Author: Jason Garrett-Glaser Date: Tue Mar 23 14:00:58 2010 -0700 Add tune for still image compression There has been some demand for this from companies looking to use x264 for still image compression (it can outperform JPEG or JPEG-2000 by a factor of 2 or more). Still image compression is a bit different; because temporal stability isn't an issue, we can get away with far more powerful psy settings. commit 93b1d5a5d3f90e85f071160449b4e517a48f65b9 r1504 Author: Henrik Gramner Date: Mon Mar 22 02:59:50 2010 +0100 Pad non-mod16 resolutions using the correct field Improves compression of interlaced videos with non-mod16 heights. commit a882f7a6ada6018006c264ab5f16bc0ed55dcf10 r1503 Author: Jason Garrett-Glaser Date: Sun Mar 21 09:10:00 2010 -0700 Document slow/fast firstpass in --fullhelp commit ce6bd494529a393acfc9ab26e798f94040cce1e0 r1502 Author: Holger Lubitz Date: Sat Mar 20 20:41:21 2010 +0100 Fix some misattributions in profiling Cycles spent in load_hadamard and the avg2 w16 ssse3 cacheline split code were misattributed. commit 2678a7a3ed881eca724cf99fae3369f329b21eab r1501 Author: Jason Garrett-Glaser Date: Sat Mar 20 17:07:12 2010 -0700 Much faster non-RD intra analysis Since every pred mode costs at least 1 bit, move that part into the initial SATD cost. This lets i4x4/i8x8 analysis terminate earlier. If the cost of the predicted mode is less than the cost of signalling any other mode, early-terminate the analysis. commit 6314e08698b55e7d04d7a51521046ff3d1d7e791 r1500 Author: Jason Garrett-Glaser Date: Wed Mar 17 15:53:43 2010 -0700 Fix stack alignment in sliced threads Could cause crashes when called from non-GCC-compiled applications. commit 8a919f81065cccb65ff7c989fffec9258362900b r1499 Author: Henrik Gramner Date: Tue Mar 16 01:46:00 2010 +0100 Cosmetics: use sizeof() where appropriate commit ae92e7f589f5832078cf6ecfa510d41b1f6b3301 r1498 Author: Jason Garrett-Glaser Date: Mon Mar 15 00:01:57 2010 -0700 Split up analyse_init Save some time by avoiding some unnecessary inits and moving other parts to per-thread init. commit 5d767b111b505edd63dfcff51bd9de839df09f7b r1497 Author: Henrik Gramner Date: Mon Mar 15 01:19:45 2010 +0100 Reduce stack usage of b-adapt 2's trellis Also remove some redundant code. commit 081b90d9b39eb273f16dd4fe75020048e91cbfcb r1496 Author: Jason Garrett-Glaser Date: Sun Mar 14 00:25:02 2010 -0800 Various motion estimation optimizations Faster method of checking MV range. Predict MVs and cache MVs/MVDs for bidir qpel-RD. A whole bunch of other minor optimizations. Slightly better performance and compression. commit e73a769dec58d69860998706b4f99808e18a376d r1495 Author: Jason Garrett-Glaser Date: Sun Mar 14 00:19:59 2010 -0800 Overhaul macroblock_cache_rect Unify the rectangle functions into a single one similar to ffmpeg's fill_rectangle. Remove all cases of variable-size cache_rect calls; create a function-pointer-based system for handling such cases. Should greatly decrease code size required for such calls. commit 4f42c3c55ff802c5b212b75317e332ce00cc4a90 r1494 Author: Jason Garrett-Glaser Date: Sun Mar 14 16:48:22 2010 -0700 Make a bunch of small functions ALWAYS_INLINE Probably no real effect for now, but needed for the next patch. commit 6b585097ec92eb40e5785d8beee8b236781d5d86 r1493 Author: Loic Minier Date: Wed Mar 10 05:26:46 2010 -0800 Two compatibility fixes Add IA64 support in configure. commit 49eb50c11ca281146cebea36c7a39d12fa589d51 r1492 Author: Henrik Gramner Date: Fri Mar 5 03:19:47 2010 +0100 Faster x264_macroblock_encode_pskip GCC is apparently unable to optimize out the calculation of a variable when it isn't used. commit 513e9b95e81054606d505a7da7734b20ad628ba9 r1491 Author: Jason Garrett-Glaser Date: Sun Mar 7 04:10:30 2010 -0800 Much more accurate B-skip detection at 2 < subme < 7 Use the same method that x264 uses for P-skip detection. This significantly improves quality (1-6%), but at a significant speed cost as well (5-20%). It also may have a very positive visual effect in cases where the inaccurate skip detection resulted in slightly-off vectors in B-frames. This could cause slight blurring or non-smooth motion in low-complexity frames at high quantizers. Not all instances of this problem are solved: the only universal solution is non-locally-optimal mode decision, which x264 does not currently have. subme >= 7 or <= 2 are unaffected. commit ec39f7b4566e768c7bad3023c00f9d130efae5bc r1490 Author: Alexander Strange Date: Sun Mar 7 02:57:04 2010 -0500 Reformat profile restrictions in --fullhelp. Put "no interlaced", "no lossless" on their own line to avoid them running into the default options list. commit 632af6683de604141c636d659a2d229b61ba5ecb r1489 Author: James Darnley Date: Sat Mar 6 18:28:07 2010 -0800 Fix typo in configure commit ea93d786162b7cd77a3254cf48dba356be74cf76 r1488 Author: David Conrad Date: Sat Mar 6 10:29:57 2010 -0800 Add support for spaces to iPhone GAS preprocessor script commit d84a1a95f4db132a374d550c98fa85e00075e7a8 r1487 Author: Yusuke Nakamura Date: Sat Mar 6 19:25:30 2010 +0900 Fix slightly wrong mp4 duration. commit d0c898a7a737c9a87cefc14b21bc6cfd44cc6b16 r1486 Author: Yusuke Nakamura Date: Sat Mar 6 19:24:32 2010 +0900 Fix link errors with newest gpac cvs gpac decided to randomly break API and require us to use their own custom malloc and free. commit db2bae305ef658d053c7c174703c4631a2534b1a r1485 Author: Kieran Kunhya Date: Fri Mar 5 20:43:02 2010 +0000 Save a few bits in slice headers Don't override the maximum ref index in the slice header if it's the same as the default. Also update the naming of the relevant variables in the PPS. commit e19bef27581dcba813a20d37005ccdf4c285be69 r1484 Author: Jason Garrett-Glaser Date: Thu Mar 4 09:59:09 2010 -0800 Shrink some arrays in x264_t Also remove an unnecessary assignment from cache_load. commit f36b1e49b3c4cd992080c13ff346f4846f8541b8 r1483 Author: Jason Garrett-Glaser Date: Wed Mar 3 11:22:29 2010 -0800 Use x264_log in more places instead of fprintf commit 6951964c87029b4786ccbd558dfa4d3c5be353ae r1482 Author: Anton Mitrofanov Date: Wed Mar 3 10:14:20 2010 -0800 Fix two nondeterminisms Move noise reduction data into thread-specific data. Use correct reference list for L1 temporal predictors. commit 81eee062a4ce9aae1eceb3befcae855c25e5ec52 r1481 Author: Jason Garrett-Glaser Date: Fri Mar 19 14:44:10 2010 -0700 "CRF-max" support with VBV This is a rather curious feature that may have more use than is initially obvious. In CRF mode with VBV enabled, CRF-max allows the user to specify a quality level which the encoder will never go below, even due to the effects of VBV. This is not the same as qpmax, which is not aware of issues like scene complexity. Setting this WILL cause VBV underflows in any situation where the encoder would have needed to exceed the relevant CRF to avoid underflow. Why might one want to do this even if it would cause VBV underflows? In the case of streaming, particularly ultra-low-latency streaming, it may be preferable to drop frames than to display frames that are of too low a quality. Thus, in extremely complex scenes, rather than display completely awful video, the streaming server could simply drop to a lower framerate. Scenecuts, which normally look terrible under situations like single-frame VBV, could be handled by just displaying them a bit later and dropping frames to compensate. In other words, it's better to see the scenecut 150ms delayed than for it to look like a blocky mess for 150ms. On the caller-side, this would be handled by detecting the output size of x264's frames and dropping future frames to compensate if necessary. This can also be used in normal encoding simply to ensure that VBV does not hurt quality too much (at the cost of potentially causing underflows). This can help quite a lot when using single-frame VBV and sliced threads, where VBV can often be somewhat unstable. commit c6de86497cdd7b7f3cce7d8a95d723c7d0c9f505 r1480 Author: Kieran Kunhya Date: Tue Mar 2 00:57:10 2010 -0800 Blu-ray support: NAL-HRD, VFR ratecontrol, filler, pulldown x264 can now generate Blu-ray-compliant streams for authoring Blu-ray Discs! Compliance tested using Sony BD-ROM Verifier 1.21. Thanks to The Criterion Collection for sponsoring compliance testing! An example command, using constant quality mode, for 1080p24 content: x264 --crf 16 --preset veryslow --tune film --weightp 0 --bframes 3 --nal-hrd vbr --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 24 --b-pyramid strict --slices 4 --aud --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 -o This command is much more complicated than usual due to the very complicated restrictions the Blu-ray spec has. Most options after "tune" are required by the spec. --weightp 0 is not, but there are known bugged Blu-ray player chipsets (Mediatek, notably) that will decode video with --weightp 1 or 2 incorrectly. Furthermore, note the Blu-ray spec has very strict limitations on allowed resolution/fps combinations. Examples include 1080p @ 24000/1001fps (NTSC FILM) and 720p @ 60000/1001fps. Detailed features introduced in this patch: Full NAL-HRD compliance, with both VBR (no filler) and CBR (filler) modes. Can be enabled with --nal-hrd vbr/cbr. libx264 now returns HRD timing information to the caller in the form of an x264_hrd_t. x264cli doesn't currently use it, but this information is critical for compliant TS muxing. Full VFR ratecontrol support: VBV, 1-pass ABR, and 2-pass modes. This means that, even without knowing the average framerate, x264 can achieve a correct bitrate in target bitrate modes. Note that this changes the statsfile format; first pass encodes make before this patch will have to be re-run. Pulldown support: libx264 allows the calling application to specify a pulldown mode for each frame. This is similar to the way that RFFs (Repeat Field Flags) work in MPEG-2. Note that libx264 does not modify timestamps: it assumes the calling application has set timestamps correctly for pulldown! x264cli contains an example implementation of caller-side pulldown code. Pic_struct support: necessary for pulldown and allows interlaced signalling. Also signal TFF vs BFF with delta_poc_bottom: should significantly improve interlaced compression. --tff and --bff should be preferred to the old --interlaced in order to tell x264 what field order to use. Huge thanks to Alex Giladi and Lamont Alston for their work on code that eventually became part of this patch. commit a5f56908a0b153870c4f09cbf683fe85da3e44b4 r1479 Author: Yusuke Nakamura Date: Sun Feb 28 21:42:19 2010 -0800 Timecode input/output --tcfile-in allows a user to specify a timecode v1 or v2 file to override input timestamps. Useful for dealing with VFR input, especially when FFMS/LAVF support isn't available. --tcfile-out writes a timecode v2 file containing the timecodes of the output file. New --timebase option allows a user to change the stream timebase. Intended primarily for forcing timebase with timecode files if necessary. When using --seek, note that x264 will seek in the timecode file as well. commit ece1dd2e8e35a49883e26c7071d2ca3cec9c008f r1478 Author: Alex Wright Date: Sun Feb 28 01:29:15 2010 -0800 Mixed-refs support for B-frames Small speed cost, usually a few percent at most. Generally has lowest cost in cases when it isn't very useful. Up to ~2% better compression overall on highly complex sources. Also fix a few minor bugs in B-frame analysis and various bits of cleanup. commit e5b108a3de97650ad4bbeb4f3ff13cff916d6052 r1477 Author: Henrik Gramner Date: Mon Mar 1 22:01:04 2010 +0100 Faster rounding of chroma DC coefficients commit 8ec5a5ee10face5a1e64bf15364d1fdf2cf29ae5 r1476 Author: Holger Lubitz Date: Wed Mar 24 00:54:39 2010 +0100 Faster cabac_encode_decision_asm Minimizes instruction count, which also means smaller code. Various other slight changes to allow more instruction level parallelism. commit c572d28af6ba7addc0f1855ee5282435d8d37861 r1475 Author: Holger Lubitz Date: Tue Mar 23 23:13:54 2010 +0100 Faster hpel_filter On ssse3, use pmaddubsw for h filter too (similar to v filter). Change 32-bit v and c filters to write the result non-temporal. Add commented-out defines to disable non-temporal operation. Hardly any black magic here, but still a measurable win especially for ssse3. commit 279c9d9dd90f18f229719ba09c4fab33f87b3f16 r1474 Author: David Conrad Date: Sun Feb 28 20:34:09 2010 -0500 Ignore XYSCSS in y4m if the newer standard C tag is present Apparently y4mscaler will generate 4:2:0 files with XYSCSS set to 444 commit c8900a261508830e74187f379e7666cfc94f638b r1473 Author: Jason Garrett-Glaser Date: Tue Mar 2 10:51:15 2010 -0800 Fix regression in r1450 I_PCM blocks would cause x264 to crash or generate bad output. Simplify PCM handling. commit 7d533c57ee25a73c79b10ef7fb36324727e38582 r1472 Author: Jason Garrett-Glaser Date: Sat Feb 27 14:26:02 2010 -0800 Fix crash with intra-refresh + aq-mode 0 commit 11446152ba7c79774d65f8556f2282ad838942d7 r1471 Author: Jason Garrett-Glaser Date: Fri Feb 26 05:04:48 2010 -0800 Fix regression in r1453 r1453 broke psy-trellis with --trellis 2 commit 7eac2495b2d32d6328bf68abbc4bb67006a0737a r1470 Author: Jason Garrett-Glaser Date: Thu Feb 25 02:07:48 2010 -0800 Fix regression in r1449 Incorrectly placed thread MV check could result in rare thread MV internal errors, esp. with --non-deterministic. These weren't fatal errors (x264 could recover and continue with slight compression loss). commit 3ae44d9e19afccf3feb9ef3c33ae0538893f78e9 r1469 Author: Jason Garrett-Glaser Date: Wed Feb 24 20:51:43 2010 -0800 Cut size of MVD arrays by a factor of 2 again Only store the MVDs of the edges of each MB. Thanks to Michael Niedermayer for the idea. commit 6a443d3cdf338408b1b39e7f336306d2a34703f6 r1468 Author: David Conrad Date: Wed Feb 24 19:39:57 2010 -0500 Disable Altivec and VIS optimizations when --disable-asm is specified commit 4091b29c0dcaa2ceaedbdf5be9c283beb70fe327 r1467 Author: Loren Merritt Date: Tue Feb 23 23:50:23 2010 -0800 Fix a buffer overread on odd input resolutions commit 479a9e8e4e39409b24b0517a1c155a767af63454 r1466 Author: Jason Garrett-Glaser Date: Wed Feb 24 03:49:32 2010 -0800 Fix one bug, one corner case in VBV qp_novbv wasn't set correctly for B-frames. Disable ABR code for frames with zero complexity. Disable ABR code for CBR mode; it is completely unnecessary and can have negative consequences. commit 4132e0bce60469bc7709d25d14b62b26c8fc112e r1465 Author: David Conrad Date: Wed Feb 24 00:29:21 2010 -0500 Port Mans Rullgard's NEON intra prediction functions from ffmpeg commit e29c75837c72a0ed387441ffa6bab339dbe3de9f r1464 Author: Jason Garrett-Glaser Date: Tue Feb 23 13:52:15 2010 -0800 Remove unused function Two other minor fixes. commit f2428d26ecf182bcda1292191902861a66001574 r1463 Author: Jason Garrett-Glaser Date: Tue Feb 23 10:00:41 2010 -0800 Use short startcode in more possible situations Previous patch didn't cover all possible uses according to B.1.2. commit 7fcffde1f5bdae55def6c36ef7d9743485adb72c r1462 Author: Jason Garrett-Glaser Date: Tue Feb 23 09:50:12 2010 -0800 Fix fastfirstpass Apparently the libx264 preset changes made "fastfirstpass" into "fastsecondpass" inadvertantly. commit ad64d48f17335e820d7a0a563a88436f38ccb813 r1461 Author: Anton Mitrofanov Date: Tue Feb 23 09:10:26 2010 -0800 Fix various silly errors in the previous patches commit 9e35bd0f915e92c4a48f9ace2af561ae9a27f6e8 r1460 Author: Jason Garrett-Glaser Date: Tue Feb 23 02:18:07 2010 -0800 Actually error out if preset/tune/profile is invalid Got lost somewhere in the move to libx264-based presets. commit 377814e109210a10b8c34bf358b40c59d3ca2757 r1459 Author: Jason Garrett-Glaser Date: Mon Feb 22 17:33:17 2010 -0800 Faster probe_skip, 2x2 DC transform handling Move the 2x2 DC DCT into the dct_dc asm function to avoid some store-to-load forwarding penalties and extra register loads. Use dct_dc as part of the early termination in probe_skip. x86 asm partially by Holger Lubitz. ARM NEON asm by David Conrad. commit 6823cbc5359981ff2d7a9c538b9e8f861b9cf36c r1458 Author: Jason Garrett-Glaser Date: Sun Feb 21 17:30:52 2010 -0800 Use short startcodes whenever possible Saves one byte per frame for every slice beyond the first. Only applies to Annex-B output mode. commit 74f2fd65af6840aced812e295e1a551ba295459f r1457 Author: Anton Mitrofanov Date: Sun Feb 21 13:21:11 2010 -0800 New algorithm for AQ mode 2 Combines the auto-ness of AQ2 with a new var^0.25 instead of log(var) formula. Works better with MB-tree than the old AQ mode 2 and should give higher SSIM. commit a6c91c9f2af09d666755eef0ac2cc18228ce7a7c r1456 Author: Jason Garrett-Glaser Date: Sun Feb 21 13:20:19 2010 -0800 Abide by the MinCR level limit Some Blu-ray analyzers were complaining about this. commit 1d94f305999864aaa1da79050da2f900f69b4365 r1455 Author: Jason Garrett-Glaser Date: Sun Feb 21 03:56:06 2010 -0800 Make b-pyramid normal the default Now that b-pyramid works with MB-tree and is spec compliant, there's no real reason not to make it default. Improves compression 0-5% depending on the video. Also allow 0/1/2 to be used as aliases for none/strict/normal (for conciseness). commit 1007cb7478a5e21facb7c23dc49770e2f02b9620 r1454 Author: Jason Garrett-Glaser Date: Sun Feb 21 01:56:12 2010 -0800 Move presets, tunings, and profiles into libx264 Now any application calling libx264 can use them. Full documentation and guidelines for usage are included in x264.h. commit 7a7fbeab0f1f3b8187d1d8ce56def91f1582d5d7 r1453 Author: Anton Mitrofanov Date: Fri Feb 19 10:45:22 2010 -0800 Faster, more accurate psy-RD caching Keep more variants of cached Hadamard scores and only calculate them when necessary. Results in more calculation, but simpler lookups. Slightly more accurate due to internal rounding in SATD and SA8D functions. commit 40284dfe7485e52769eca0614063b92315e9a5f5 r1452 Author: Jason Garrett-Glaser Date: Thu Feb 18 17:01:38 2010 -0800 Much faster and more efficient MVD handling Store MV deltas as clipped absolute values. This means CABAC no longer has to calculate absolute values in MV context selection. This also lets us cut the memory spent on MVDs by a factor of 2, speeding up cache_mvd and reducing memory usage by 32*threads*(num macroblocks) bytes. On a Core i7 encoding 1080p, this is about 3 megabytes saved. commit 10e9e95cb90f01fcbdb182c2ae05dac336b6eed3 r1451 Author: Jason Garrett-Glaser Date: Thu Feb 18 10:37:57 2010 -0800 Add temporal predictor support to interlaced encoding 0.5-1% better compression in interlaced mode commit 8b67d5eb50a8b63c3c8732d5f053073dbb195e51 r1450 Author: Jason Garrett-Glaser Date: Wed Feb 17 22:41:16 2010 -0800 Keep track of macroblock partitions Allows vastly simpler motion compensation and direct MV calculation. commit 4574b58c7d66d793bd28e3ce506165ca1c9e7680 r1449 Author: Jason Garrett-Glaser Date: Tue Feb 16 10:13:33 2010 -0800 Much faster and simpler direct spatial calculation commit 1a6d32b4a42f490ec817aa2ddb543dda8d9a8c9e r1448 Author: Jason Garrett-Glaser Date: Sun Feb 21 14:21:26 2010 -0800 SimpleBlock requires Matroska Doctype v2 commit 966fd12a2a9beb3bba294dc4a91a45bbafc4799f r1447 Author: Yusuke Nakamura Date: Tue Feb 16 11:05:21 2010 -0800 Add GPAC version check commit 482646af573829582403317f0cde0a46a4b48ab2 r1446 Author: Jason Garrett-Glaser Date: Tue Feb 23 01:44:44 2010 -0800 Fix stupid regression in interlaced in r1430 With ref > 8 or b-pyramid, an array over-read could cause slightly incorrect B-frames. commit f0da96145cb068ade0f0232d0682137c9065929f r1445 Author: Jason Garrett-Glaser Date: Mon Feb 22 13:04:47 2010 -0800 Fix overread of scratch buffer Could cause crashes on non-mod16 frames. commit 28e6eb67ffaa002469f60c40e2b5d58b2a758f9c r1444 Author: Jason Garrett-Glaser Date: Mon Feb 22 11:21:51 2010 -0800 Fix integer overflow in chroma SSD check Could cause bad skips at very high quantizers on extreme inputs. commit 4784723450ae1dd28ede1ff04a93f1849d6444e5 r1443 Author: Anton Mitrofanov Date: Tue Feb 16 09:41:55 2010 -0800 Fix I and B-frame QPs with threads Rounding errors resulted in slightly wrong QPs with threads enabled. commit 781d300ab73671bb2176ef2c3e6c0f2df425cee9 r1442 Author: David Conrad Date: Mon Feb 15 01:02:46 2010 -0800 Fix compilation on ARM commit b8485e875ed3cb836ac41b11676940e2c6ff6caa r1441 Author: Loren Merritt Date: Thu Jan 28 18:09:07 2010 +0000 Remove unnecessary PIC support macros yasm has a directive to enable PIC globally commit d2277586a7bce99caa448b3d461f6f42e8a20e6d r1440 Author: Jason Garrett-Glaser Date: Sat Feb 13 11:19:38 2010 -0800 Don't even try direct temporal when it would give junk MVs In PbBbP pyramid structure, the last "b" cannot use temporal because L0Ref0(L1Ref0) != L0Ref0. Don't even bother analyzing it, just use spatial. Should improve speed and direct auto effectiveness in CRF and 1-pass modes when b-pyramid is used. Also makes --direct temporal useful with --b-pyramid, since it will fall back to spatial for frames where temporal is broken. commit 520ba2becf677d5ed8c1d7141eb25c65d08a3b3e r1439 Author: David Conrad Date: Sun Oct 4 07:24:42 2009 -0400 iPhone compilation support Also add --sysroot to configure options To build for iPhone 3gs / iPod touch 3g: CC=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc ./configure --host=arm-apple-darwin --sysroot=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk For older devices, add --extra-cflags='-arch armv6 -mcpu=arm1176jzf-s' --extra-ldflags='-arch armv6' --disable-asm commit 2b5a0c693faa4b807d02b923f596a2aff6778760 r1438 Author: David Conrad Date: Fri Jan 8 22:40:09 2010 -0500 ARM NEON versions of weightp functions commit 40dce15a622a82e6cce0e7233aa75831162635b1 r1437 Author: David Conrad Date: Sat Feb 13 01:25:56 2010 -0800 Use #ifdef instead of #if in checkasm commit aa2626c567083432f56368bee9c9d43d7c8e1fef r1436 Author: Jason Garrett-Glaser Date: Sat Feb 13 00:52:31 2010 -0800 Make the ABR buffer consider the distance to the end of the video Should improve bitrate accuracy in 2-pass mode. May also slightly improve quality by allowing more variation earlier-on in a file. Also fix abr_buffer with 1-pass: it does something very different than what it does for 2-pass. Thus, the earlier change that increased it based on threads caused 1-pass ABR to be somewhat less accurate. commit dcef20c00f1248beb7a6a55448976be6cbd3ee5b r1435 Author: Alexander Strange Date: Sat Feb 13 02:22:04 2010 -0500 Mark cli_input/output_t variables as const when possible commit dffb2036daed615908ab666d7f6130abed6d0160 r1434 Author: Alexander Strange Date: Sat Feb 13 02:00:57 2010 -0500 mkv: Write the x264 version into the file header This only updates the "writing application"; matroska_ebml.c is the "muxing application", but the version string for that is still hardcoded. commit f3de1741f1e38c6b0d4262e6290a20b3e35f6692 r1433 Author: Alexander Strange Date: Sat Feb 13 01:41:41 2010 -0500 mkv: Write SimpleBlock instead of Block for frame headers mkvtoolnix writes these by default since 2009/04/13. Slightly simplifies muxer and allows 'mkvinfo -s' to show B-frames as 'B' (but not B-ref frames). commit 9eb5b912e317b4d3d106a55080b7aafd3d0f4af7 r1432 Author: Alexander Strange Date: Mon Nov 10 00:55:20 2008 -0500 Allow | as a separator between psy-rd and psy-trellis values. [,:/] are all taken when setting psy-trellis in a zone in an mencoder option. Also fix a comment typo and remove a useless line of code. commit 41db4e8355e2390c430071c6f5ed9a2c8851e0a6 r1431 Author: Jason Garrett-Glaser Date: Fri Feb 12 21:15:12 2010 -0800 Backport various speed tweak ideas from ffmpeg Add mv0 early termination to spatial direct calculation Up to twice as fast direct mv calculation on near-motionless video. Branchless CAVLC level code adjustment based on trailing ones. A few clocks faster. Check tc value before clipping in C version of deblock functions. Much faster, but nobody uses those anyways. Thanks to Michael Niedermayer for the ideas. commit 58fd85453ec62d829663887b960ff7f2fbbc22d1 r1430 Author: Jason Garrett-Glaser Date: Fri Feb 12 03:33:54 2010 -0800 Implement direct temporal + interlaced This was much easier than I expected. It will also be basically useless until TFF/BFF support gets in, since it requires delta_poc_bottom to be set correctly to work well. commit b3225125169210ee8982be05f3b90e3de0bdd95c r1429 Author: Jason Garrett-Glaser Date: Wed Feb 10 13:44:28 2010 -0800 Allow longer keyints with intra refresh If a long keyint is specified (longer than macroblock width-1), the refresh will simply not occur all the time. In other words, a refresh will take place, and then x264 will wait until keyint is over to start another refresh. commit 9f242312eb692831d716ed5772b5b832aac54866 r1428 Author: Jason Garrett-Glaser Date: Wed Feb 10 12:12:29 2010 -0800 Overhaul sliced-threads VBV Make predictors thread-local and allow each thread to poll the others to get their predicted sizes. Many, many other tweaks to improve quality with small VBV and sliced threads. Note this may somewhat increase the risk of a VBV underflow in such extreme situations (single-frame VBV). This is tolerable, as most relevant use-cases are better off with a few rare underflows (even if they have to drop a slice) than consistent low quality. commit 8463781af4fa0f304865adb78a0e86c8a6536e0c r1427 Author: Jason Garrett-Glaser Date: Tue Feb 9 15:08:31 2010 -0800 Print psy-(rd|trellis) with more precision in userdata SEI commit 8ab4907f5a550ac17356609522b3426650ba3029 r1426 Author: Jason Garrett-Glaser Date: Mon Feb 15 00:55:16 2010 -0800 More formatting fixes in x264 help commit 16a1fddbd43ec2352a6cb44c7890c38c6535b726 r1425 Author: Henrik Gramner Date: Mon Feb 8 15:53:52 2010 -0800 Faster 2x2 chroma DC dequant commit ca954495e0f6cee187886a4213ca49bfd2b30be7 r1424 Author: Yusuke Nakamura Date: Mon Feb 8 01:48:38 2010 -0800 Write PASP atom in mp4 muxing Adds container-level aspect ratio support for mp4. commit bb0990813c7fb047a322c5d463cde5ae8e22c756 r1423 Author: Jason Garrett-Glaser Date: Wed Feb 3 20:27:57 2010 -0800 Fix 2-pass ratecontrol continuation in case of missing statsfile Didn't work properly if MB-tree was enabled. commit 346165169775c5884a9e964afc253561bb11e2ca r1422 Author: Jason Garrett-Glaser Date: Wed Feb 3 20:01:16 2010 -0800 Smarter QPRD Catch some cases in which RD checks can be avoided; reduces QPRD RD calls by 10-20%. commit da9b9d33425f0492235129ae8937fa7edd64e0a6 r1421 Author: Jason Garrett-Glaser Date: Wed Feb 3 18:36:44 2010 -0800 Fix subpel iteration counts with B-frame analysis and subme 6/8 Since subme 6 means "like subme 5, except RD on P-frames", B-frame analysis shouldn't use the RD subpel counts at subme 6. Similarly with subme 8. Slightly faster (and very marginally worse) compression at subme 6 and 8. commit 698bbac16e95a4a161a22b3a88e0aa6f9ed6333f r1420 Author: Jason Garrett-Glaser Date: Wed Feb 3 18:19:29 2010 -0800 Simplify decimate checks in macroblock_encode Also fix a misleading comment. commit 1ec82b87c875c5fa6e66e9cbedb4ec04ac6c058c r1419 Author: Jason Garrett-Glaser Date: Tue Feb 2 03:15:18 2010 -0800 Improve bidir search, fix some artifacts in fades Modify analysis to allow bidir to use different motion vectors than L0/L1. Always try the <0,0,0,0> motion vector for bidir. Eliminates almost all errant motion vectors in fades. Slightly improves PSNR as well (~0.015db). commit 08d4a999b0300e50196afb3ee0e310834028b537 r1418 Author: Jason Garrett-Glaser Date: Mon Feb 1 13:04:47 2010 -0800 Slightly faster predictor_difference_mmxext commit f555cf3758f46f3c4f7a2f05094b16f8f3c25a27 r1417 Author: Jason Garrett-Glaser Date: Fri Jan 29 02:40:41 2010 -0800 Add ability to adjust ratecontrol parameters on the fly encoder_reconfig and x264_picture_t->param can now be used to change ratecontrol parameters. This is extraordinarily useful in certain streaming situations where the encoder needs to adapt the bitrate to network circumstances. What can be changed: 1) CRF can be adjusted if in CRF mode. 2) VBV maxrate and bufsize can be adjusted if in VBV mode. 3) Bitrate can be adjusted if in CBR mode. However, x264 cannot switch between modes and cannot change bitrate in ABR mode. Also fix a bug where x264_picture_t->param reconfig method would not always be frame-exact. Commit sponsored by SayMama video calling. commit fcf70c2f9853d74ac077a7af016e28eef05e2f5a r1416 Author: Yusuke Nakamura Date: Sat Jan 30 13:53:01 2010 -0800 Fix regression in r1406 Bitrate was printed incorrectly for some input framerates. commit 3f3343abfba8a2377a66b6a7f7a8c564ade86bc6 r1415 Author: Loren Merritt Date: Sat Jan 30 12:01:51 2010 -0800 Fix log2f detection, include order, some gcc warnings r1413 caused crashes on any system with malloc.h. Also switch to std=c99 or std=gnu99 if supported by the compiler. Fix visualize support. commit 63b74d874328e630ecb7eaa37cf780c45b992f0e r1414 Author: Jason Garrett-Glaser Date: Fri Jan 29 11:01:44 2010 -0800 Fix abstraction violations in x264.c No calling application--not even x264cli--should ever look inside x264_t. commit 2d2c8616c03586575529bb19cacfd8b6b01c3508 r1413 Author: Diogo Franco Date: Thu Jan 28 17:28:03 2010 -0800 Move -D CFLAGS to config.h commit 3838c301e1ee1718e6f1e037d21bb21525b3eab6 r1412 Author: Steven Walters Date: Thu Jan 28 17:26:40 2010 -0800 Fix stat with large file support commit 6bd24a94c06ca81baa0156ff418be247e658a28f r1411 Author: Diogo Franco Date: Wed Jan 27 20:29:50 2010 -0800 Implement ffms2 version check Depends on ffms2 version 2.13.1 (r272). Tries pkg-config's built-in version checking first. Uses only the preprocessor to avoid cross-compilation issues. commit 38cfabe33e17940870099fcf5d60daae080a3880 r1410 Author: Jason Garrett-Glaser Date: Wed Jan 27 19:41:27 2010 -0800 Fix implicit CBR message to only print when in ABR mode Also make it print outside of debug mode. commit d355878be5616dc871058cb931b281b1d5cfbfbc r1409 Author: Diogo Franco Date: Wed Jan 27 13:11:08 2010 -0800 Add configure check for log2 support Some incredibly braindamaged operating systems, such as FreeBSD, blatantly ignore the C specification and omit certain functions that are required by ISO C. log2f is one of these functions that periodically goes missing in such operating systems. commit 616900186aa2bf2e04205a010daaa2776bc0944a r1408 Author: Diogo Franco Date: Wed Jan 27 10:12:42 2010 -0800 Add config.log support Now, if configure fails, you'll be able to see why. commit f20aace8d4fe7e35df9258e4c5fe773d08550f34 r1407 Author: Diogo Franco Date: Wed Jan 27 09:26:35 2010 -0800 Fix cross-compiling with lavf, add support for ffms2.pc Also update configure script to work with newest ffms. commit d81c26db6909e2e3d9b85b21a2618287dce29575 r1406 Author: Yusuke Nakamura Date: Tue Jan 26 16:01:54 2010 -0800 Improve DTS generation, move DTS compression into libx264 This change fixes some cases in which PTS could be less than DTS. Additionally, a new parameter, b_dts_compress, enables DTS compression. DTS compression eliminates negative DTS (i.e. initial delay) due to B-frames. The algorithm changes timebase in order to avoid duplicating DTS. Currently, in x264cli, only the FLV muxer uses it. The MP4 muxer doesn't need it, as it uses an EditBox instead. commit 3659b8124a809c39d61a28bdf1b235e81c02b06d r1405 Author: Anton Mitrofanov Date: Tue Jan 26 11:41:18 2010 -0800 Various threading-related cosmetics Simplify a lot of code and remove some unnecessary variables. commit 0f985245093047980c1b6148562222265b230dff r1404 Author: Jason Garrett-Glaser Date: Mon Jan 25 11:23:55 2010 -0800 Hardcode the bs_t in cavlc.c; passing it around is a waste Saves ~1.5kb of code size, very slight speed boost. commit 00f933f05df722e4b133d2c57f1f45dba285430c r1403 Author: David Conrad Date: Sat Jan 23 18:05:25 2010 -0800 Fix lavf input with pipes and image sequences x264 should now be able to encode from an image sequence using an image2-style formatted string (e.g. file%02d.jpg). commit 1a1b356a2996629d2c5ad2b568df8df9bff32954 r1402 Author: Jason Garrett-Glaser Date: Thu Jan 21 23:07:11 2010 -0800 Fix bitstream alignment with multiple slices Broke multi-slice encoding on CPUs without unaligned access. New system simply forces a bitstream realignment at the start of each writing function and flushes when it reaches the end. commit 90a249aa40deec9234f9ea7554deb8a418183094 r1401 Author: Jason Garrett-Glaser Date: Thu Jan 21 10:00:07 2010 -0800 Merge nnz_backup with scratch buffer Slightly less memory usage. commit 20fa784d2d9e0d5e524d4e3834699e9ff9b57511 r1400 Author: Steven Walters Date: Wed Jan 20 09:00:54 2010 -0800 Use cross-prefix properly with pkg-config for cross-compiling commit 952aa77c8c7980614cbaa4800e865f4f6a701043 r1399 Author: Jason Garrett-Glaser Date: Mon Jan 18 20:29:33 2010 -0800 Various performance optimizations Simplify and compact storage of direct motion vectors, faster --direct auto. Shrink various arrays to save a bit of cache. Simplify and reorganize B macroblock type writing in CABAC. Add some missing ALIGNED macros. commit bef4e3e601970c9bfd0c94d6621f100cf015e1f8 r1398 Author: Jason Garrett-Glaser Date: Mon Jan 18 15:50:06 2010 -0800 Fix crash on new AMD M300 and similar CPUs Apparently these CPUs have SSE4a, but not misaligned SSE. commit 6cb6086269d789a184cb6262fedb8205d821a44f r1397 Author: Jason Garrett-Glaser Date: Sun Jan 17 19:11:05 2010 -0500 Fix intra refresh with subme < 6 Also improve the quality of intra masking. commit cc65eaba97bb46923dec665e5a91855ac1d97dbf r1396 Author: Jason Garrett-Glaser Date: Sat Jan 16 20:11:29 2010 -0500 Add support for multiple --tune options Tunes apply in the order they are listed in the case of conflicts. Psy tunings, i.e. film/animation/grain/psnr/ssim, cannot be combined. Also clarify --profile, which forces the limits of a profile, not the profile itself. commit e4acb95b119743cc933ff3c8f0410aa7ffe20ed2 r1395 Author: Jason Garrett-Glaser Date: Sat Jan 16 02:50:15 2010 -0500 Various bugfixes and tweaks in analysis Fix the oldest-ever bug in x264: b16x8 analysis used the wrong width for predict_mv. Fix cache_ref calls for slightly better MV prediction in bsub16x16 analysis. Make B-partition analysis consider reference frame costs. Various other minor changes. Overall very slightly improved mode decision and motion search in B-frames. commit 6662db34e524a6ff1f935cce779473d3882d046c r1394 Author: Loren Merritt Date: Thu Jan 14 14:52:12 2010 -0500 More --me tesa optimizations commit 7ff686756e042f625fae904d9e059cd489406ed8 r1393 Author: Jason Garrett-Glaser Date: Thu Jan 14 10:39:10 2010 -0500 Fix typo in configure commit 1d3ab22126c1369a75fc8d5b933159c4a53f35c9 r1392 Author: Jason Garrett-Glaser Date: Thu Jan 14 00:07:30 2010 -0500 Make --fps force CFR mode commit 3d0f1108f982867dde5079bbbf90553487de2ed0 r1391 Author: Jason Garrett-Glaser Date: Wed Jan 13 20:21:31 2010 -0500 Eliminate intentional array overflow in quant matrix handling While it probably never caused problems, it was incredibly ugly and evil. commit 918ca1e55351446478d4dcee5936c5843bf79925 r1390 Author: Jason Garrett-Glaser Date: Wed Jan 13 20:16:13 2010 -0500 Faster --me tesa commit d26e79d982ec6d0aea40e6d0b21ee799994007ca r1389 Author: Anton Mitrofanov Date: Wed Jan 13 15:44:00 2010 -0500 Fix static pthreads + dynamically linked x264 on win32 Add the necessary static pthread initialization code to a new DLLmain function. commit eda7bf0d97786c04a8563606fd43eab4494490d6 r1388 Author: Steven Walters Date: Tue Jan 12 22:55:10 2010 -0500 Add getopt_long to the included getopt.c Fixes option handling on OSs that have a nonworking/missing getopt (e.g. Solaris). commit ecca2f572b584f8f0e006a0f82048e30ada75b9c r1387 Author: Jason Garrett-Glaser Date: Tue Jan 12 20:14:35 2010 -0500 Faster psy-trellis init Remove some unncessary zigzags. commit f6d92e5180bc87747475946efdb888cde254b94f r1386 Author: Jason Garrett-Glaser Date: Tue Jan 12 19:19:07 2010 -0500 Simplfy intra mode availability handling Slightly faster, 1.5kb smaller binary size, less code. commit d260e6bf125e2a3b8541bf589c5d41094601fd21 r1385 Author: Jason Garrett-Glaser Date: Sun Jan 10 15:14:02 2010 -0500 Fix free callback, add x264_encoder_parameters function x264 would try to use the passed param struct after freeing if the param_free callback was set. Probably didn't cause any issues, as probably no programs used the callback in this location yet. A new x264_encoder_parameters function is now available in the API. This function lets the calling application grab the current state of the encoder's parameters. Use this in x264cli to ensure that the param struct used for set_param is updated with whatever changes x264_encoder_open has made to it. Patch partially by Anton Mitrofanov . commit 846694224797ade9fe3dc8861d68b56a95af6148 r1384 Author: David Conrad Date: Sat Jan 9 01:52:33 2010 -0500 Fix x264 compilation on Apple GCC Apple's GCC stupidly ignores the ARM ABI and doesn't give any stack alignment beyond 4. commit a48a48aea05315bb8944e7e8f92fa2a6e30006a4 r1383 Author: Jason Garrett-Glaser Date: Sat Jan 2 03:27:46 2010 -0500 Faster weightp motion search For blind-weight dupes, copy the motion vector from the main search and qpel-refine instead of doing a full search. Fix the p8x8 early termination, which had unexpected results when combined with blind weighting. Overall, marginally reduces compression but should potentially improve speed by over 5%. commit e9f998b97db6e498faa62a60c6fddf3cabfea214 r1382 Author: Jason Garrett-Glaser Date: Thu Dec 31 13:45:27 2009 -0500 More correct padding constants for lowres planes Since lowres analysis isn't interlace-aware, we don't need to double the vertical padding for interlaced video. commit 1b68cbd27b24759f64c72effdae42f184a20546e r1381 Author: Jason Garrett-Glaser Date: Thu Dec 31 02:57:45 2009 -0500 Fix some invalid reads caught by valgrind Temporal predictor calculation was misled by invalid reference counts for I-frames. commit 52a4fbe142926435571fbf2fb3d535e8873627d3 r1380 Author: Jason Garrett-Glaser Date: Tue Dec 22 18:59:29 2009 -0500 Periodic intra refresh Uses SEI recovery points, a moving vertical "bar" of intra blocks, and motion vector restrictions to eliminate keyframes. Attempt to hide the visual appearance of the intra bar when --no-psy isn't set. Enabled with --intra-refresh. The refresh interval is controlled using keyint, but won't exceed the number of macroblock columns in the frame. Greatly benefits low-latency streaming by making it possible to achieve constant framesize without intra-only encoding. Combined with slice-max size for one slice per packet, tests suggest effective resiliance against packet loss as high as 25%. x264 is now the best free software low-latency video encoder in the world. Accordingly, change the API to add b_keyframe to the parameters present in output pictures. Calling applications should check this to see if a frame is seekable, not the frame type. Also make x264's motion estimation strictly abide by horizontal MV range limits in order for PIR to work. Also fix a major bug in sliced-threads VBV handling. Also change "auto" threads for sliced threads to "cores" instead of "1.5*cores" after performance testing. Also simplify ratecontrol's checking of first pass options. Also some minor tweaks to row-based VBV that should improve VBV accuracy on small frames. commit 8b9dcd8d50be201f1bedc9b19331432969f37d98 r1379 Author: Kieran Kunhya Date: Mon Dec 28 10:42:17 2009 -0500 LAVF/FFMS input support, native VFR timestamp handling libx264 now takes three new API parameters. b_vfr_input tells x264 whether or not the input is VFR, and is 1 by default. i_timebase_num and i_timebase_den pass the timebase to x264. x264_picture_t now returns the DTS of each frame: the calling app need not calculate it anymore. Add libavformat and FFMS2 input support: requires libav* and ffms2 libraries respectively. FFMS2 is _STRONGLY_ preferred over libavformat: we encourage all distributions to compile with FFMS2 support if at all possible. FFMS2 can be found at http://code.google.com/p/ffmpegsource/. --index, a new x264cli option, allows the user to store (or load) an FFMS2 index file for future use, to avoid re-indexing in the future. Overhaul the muxers to pass through timestamps instead of assuming CFR. Also overhaul muxers to correctly use b_annexb and b_repeat_headers to simplify the code. Remove VFW input support, since it's now pretty much redundant with native AVS support and LAVF support. Finally, overhaul a large part of the x264cli internals. --force-cfr, a new x264cli option, allows the user to force the old method of timestamp handling. May be useful in case of a source with broken timestamps. Avisynth, YUV, and Y4M input are all still CFR. LAVF or FFMS2 must be used for VFR support. Do note that this patch does *not* add VFR ratecontrol yet. Support for telecined input is also somewhat dubious at the moment. Large parts of this patch by Mike Gurlitz , Steven Walters , and Yusuke Nakamura . commit 27355a2ba90516b0c280e026eb9c35fbf5f27a57 r1378 Author: Jason Garrett-Glaser Date: Tue Dec 15 16:59:00 2009 -0800 More help typo fixes commit b9823cafed9e0cbc887e5fbc27b78a892cb43de1 r1377 Author: Loren Merritt Date: Thu Jan 14 03:07:30 2010 +0000 Fix x264_clz on inputs > 1<<31 (though x264 never generates such inputs) commit 3feaec244c11ad4496ac4f6a630200a89db2d308 r1376 Author: Jason Garrett-Glaser Date: Sun Dec 13 03:16:04 2009 -0800 Don't do sum/ssd analysis if weightp == 1 Typo fixes in comments and help. commit c9cafc75352f036bdcb90f2a26e7233920567b13 r1375 Author: Jason Garrett-Glaser Date: Fri Dec 11 17:22:18 2009 -0800 Fix two bugs in 2-pass ratecontrol last_qscale_for wasn't set during the 2pass init code. abr_buffer was way too small in the case of multiple threads, so accordingly increase its buffer size based on the number of threads. May significantly increase quality with many threads in 2-pass mode, especially in cases with extremely large I-frames, such as anime. commit 85eb4007f2ed36477b7fdc04ed2d63fbb2b7a0fb r1374 Author: Steven Walters Date: Thu Dec 10 19:48:51 2009 -0800 Avisynth-MT and 2.6 compatibility fixes Explain to the user why YV12 conversion is forced with Avisynth 2.6. Fix encoding with Avisynth-MT scripts by inserting the necessary Distributor() call; speeds such scripts back up to expected levels. commit 4322f630325dd8baf48fef45c19789a9d1614c16 r1373 Author: Steven Walters Date: Wed Dec 9 16:03:19 2009 -0800 Fix zone parsing on mingw Due to MinGW evidently being in the hands of a pack of phenomenal idiots, MinGW does not have strtok_r, a basic string function. As such, remove the dependency on strtok_r in zone parsing. Previously, using zones for anything other than ratecontrol failed. commit 28c1d446bc0df176b99a150ca02d91ff7945410c r1372 Author: Jason Garrett-Glaser Date: Wed Dec 9 15:03:44 2009 -0800 More lookahead optimizations Under subme 1, don't do any qpel search at all and round temporal MVs accordingly. Drop internal subme with subme 1 to do fullpel predictor checks only. Other minor optimizations. commit 385df7f0103d57198d09a1f76c7289cd0a902ae8 r1371 Author: Jason Garrett-Glaser Date: Wed Dec 9 05:56:35 2009 -0800 Various minor missing changes from previous commits Boolify sliced threads too Remove unused constants from dct-a.asm Fix a few typos/minor errors in preset documentation commit 65b3d0fd9f8167a6d0772a29e8fcf1a66ee7f8af r1370 Author: Jason Garrett-Glaser Date: Thu Dec 10 16:52:39 2009 -0800 Fix regression in direct=auto/temporal in r1364 Bug caused rare race condition in frame reference handling. This resulted in invalid bitstreams in some B-frames and, very rarely, crashes. commit ec8e58637b97edaea00f022e11d15ee8a81466ab r1369 Author: Jason Garrett-Glaser Date: Tue Dec 8 17:46:55 2009 -0800 Add fast pskip to x264 SEI info header commit 11cfc44b338d914b5ec2337db37ba4d532295e43 r1368 Author: Steven Walters Date: Tue Dec 8 11:36:25 2009 -0800 Minor seeking fix with Avisynth input Seeking past the end of the input with --seek would result in the same frame being repeated over and over. commit de5beaec2078967d08da8ae2483c9f982b0ab07e r1367 Author: Jason Garrett-Glaser Date: Tue Dec 8 03:08:17 2009 -0800 Add support for MB-tree + B-pyramid Modify B-adapt 2 to consider pyramid in its calculations. Generally results in many more B-frames being used when pyramid is on. Modify MB-tree statsfile reading to handle the reordering necessary. Make differing keyint or pyramid between passes into a fatal error. commit ca1112b373bd6c16a57350913a4a6cc4611b2d16 r1366 Author: Jason Garrett-Glaser Date: Mon Dec 7 18:34:05 2009 -0800 Use aliasing-avoidance macros in array_non_zero commit 77fc51070b3c916b3b16888e8ead0f3cb3e09eaa r1365 Author: Cleo Saulnier Date: Mon Dec 7 12:40:14 2009 -0800 MMX version of 8x8 interlaced zigzag Just as fast as SSSE3 on Nehalem (and faster on Conroe/Penryn), so remove the SSSE3 version. commit e8b73a9a4db4dd703528a1eee247b84ac335e395 r1364 Author: Jason Garrett-Glaser Date: Mon Dec 7 00:49:41 2009 -0800 Bring back slice-based threading support Enabled with --sliced-threads Unlike normal threading, adds no encoding latency. Less efficient than normal threading, both performance and compression-wise. Useful for low-latency encoding environments where performance is still important, such as HD videoconferencing. Add --tune zerolatency, which eliminates all x264 encoder-side latency (no delayed frames at all). Some tweaks to VBV ratecontrol and lookahead (in addition to those required by sliced threading). Commit sponsored by a media streaming company that wishes to remain anonymous. commit a8f670b66ac89d75ef09ff87c940cfe3b328ad2d r1363 Author: Alex Jurkiewicz Date: Mon Dec 7 18:17:29 2009 -0800 Add more detailed help for presets/tunes/profiles Shows what options they represent. commit e5faf712fccefd1f29319b1547714f3d894e4dba r1362 Author: Jason Garrett-Glaser Date: Sat Dec 5 03:19:44 2009 -0800 qpel RD no longer needs mbcmp_unaligned commit 733b660f44fa4e8982cb83447f1d2cd7e31b4386 r1361 Author: Loren Merritt Date: Wed Dec 9 00:37:09 2009 +0000 ensure that all boolean options are {0,1} so they print consistently in the options SEI commit 528c100957ae929ae466ec54309cbb1e6193f66e r1360 Author: Jason Garrett-Glaser Date: Sat Dec 5 02:27:30 2009 -0800 Actually do r1356 Somehow commit r1356 got lost in the ether. I'm not sure how, but now it's fixed. commit 495177138cdaf8360156f4d3cb45a14f1abf3266 r1359 Author: Steven Walters Date: Fri Dec 4 12:17:56 2009 -0800 Remove some unused code from x264.c commit 77d0631c35b7e6928759eda0b3d7d229b18f27c9 r1358 Author: Jason Garrett-Glaser Date: Thu Dec 3 15:36:52 2009 -0800 SSSE3 version of zigzag_8x8_field Slightly faster interlaced encoding with 8x8dct. Helps most on Nehalem, somewhat disappointing on Conroe/Penryn. commit 225d1dcd4973cfb8e2be39dc40da26f869814a62 r1357 Author: Jason Garrett-Glaser Date: Wed Dec 2 19:55:45 2009 -0800 Fix crash in interlaced with >8 refs Crash introduced in weightp. commit 4bf27ffa3e5b40d49e201e4e39c4f3b57a84c737 r1356 Author: Jason Garrett-Glaser Date: Tue Dec 1 16:15:15 2009 -0800 Significantly faster qpel-RD Cache the results of MC, like in bidir-RD. Slightly changes output due to the necessary reordering of satd/RD calls. 5-10% faster qpel-RD. commit 83bda2ea78c9aa145a8d6fc7cb122ca4439c822d r1355 Author: David Conrad Date: Tue Dec 1 12:23:09 2009 -0800 Add x264 prefix to functions with ffmpeg equivalents Not important now, but will be when we add libav* input support. commit 636f98f1b06cc51da8399e79ce08bab8c56b82b7 r1354 Author: Jason Garrett-Glaser Date: Mon Nov 30 01:41:24 2009 -0800 10L in r1353 Broke mp4 output. commit 380a201e8e8ba5a13022aeeeaf4b7501e1c79279 r1353 Author: Steven Walters Date: Thu Nov 26 22:37:18 2009 -0800 Enhanced Avisynth input support Requires avisynth_c.h from the Avisynth API headers. Reports errors properly from Avisynth script input. Automatically construct input scripts for almost any input file. Tries ffmpegsource2, DSS2, directshowsource, and many other sourcing methods, based on the input file extension. Automatically converts to YV12. commit d487de421807a0d384b29a0d9dc6c90f180f0e7b r1352 Author: Jason Garrett-Glaser Date: Wed Nov 25 10:40:08 2009 -0800 Much faster weightp Move sum/ssd calculation out of lookahead and do it only once per frame. Also various minor optimizations, cosmetics, and cleanups. commit f3cdc6a4878450850eb07ed0122b9836122bdbe0 r1351 Author: Kieran Kunhya Date: Wed Nov 25 01:26:02 2009 -0800 Fix bugs in fps/timestamp handling in FLV muxer commit 626affea98f4db9208cbf0e3db78f23804defd0c r1350 Author: Jason Garrett-Glaser Date: Tue Nov 24 22:37:02 2009 -0800 Fix bug in weightp analysis Weights weren't reset upon early terminations, so old (wrong) weights could stick around. Small compression improvement. commit a1705b68f5e88e083411d1d1d8fc77cb09304753 r1349 Author: Jason Garrett-Glaser Date: Tue Nov 24 20:24:14 2009 -0800 Minor deblocking optimization, update comments commit 1c2c5688b64fcd62f307b9e00fde228324a0162d r1348 Author: Jason Garrett-Glaser Date: Tue Nov 24 16:21:07 2009 -0800 Fix weightb with delta_poc_bottom Has no effect yet, but will be required once we add TFF/BFF signalling support in interlaced mode. Gives 0.5-0.7% better compression with proper TFF/BFF signalling. commit 5ddd61bbfecb6e782b096ddebef127ab73bee006 r1347 Author: Jason Garrett-Glaser Date: Fri Nov 20 23:27:51 2009 -0800 Give more meaningful error if 1st/2nd pass resolution differ commit 0b0f4a3470c58061d09ee26037314c2f8a4d049b r1346 Author: Steven Walters Date: Fri Nov 20 12:04:13 2009 -0800 Fix extremely rare deadlock with sync-lookahead Patch partially by Anton Mitrofanov. commit ed0467756f5a842249d86fb9622006f3939c72a2 r1345 Author: Jason Garrett-Glaser Date: Fri Nov 20 08:04:28 2009 -0800 Only print weightp stats if there were P-frames commit 4a31a47d88ca01b63d8a06be2592beaedc78b8f3 r1344 Author: Jason Garrett-Glaser Date: Wed Nov 18 13:47:04 2009 -0800 Faster lookahead with subme=1 If it hasn't been clear already, don't use subme=1 as a "fast first pass" option. Use subme=2 instead; 1 and below now enable a fast (lower quality) lookahead mode. commit c0215c8a83aa9b543dd6930185d589d0ed835816 r1343 Author: Jason Garrett-Glaser Date: Mon Nov 16 15:23:58 2009 -0800 Faster weightp analysis Modify pixel_var slightly to return the necessary information and use it for weight analysis instead of sad/ssd. Various minor cosmetics. commit e8501efbd235b1b5321adda8926e7a859beafd3c r1342 Author: Dylan Yudaken Date: Sun Nov 15 16:14:50 2009 -0800 Fix two issues in weightp If analysis decided on an offset of -128, x264 would create non-compliant streams. Fix some cases with nearly all intra blocks where analysis could pick very weird weights. Also add some asserts to check compliancy. commit 4f0a545fa7528b4820141ac6d0b8bbe2e643d905 r1341 Author: Alexander Strange Date: Sat Nov 14 22:16:18 2009 -0800 Allow compilation with non-Apple GCC on OS X commit 1d54b2c7f9110cb7c7af1059cf595db17ed96273 r1340 Author: Alexander Strange Date: Sat Nov 14 22:13:28 2009 -0800 Use __attribute__((may_alias)) for type-punning GCC thinks pointer casts to unions aren't valid with strict aliasing. See http://gcc.gnu.org/onlinedocs/gcc-4.4.2/gcc/Optimize-Options.html#Type_002dpunning. Also use M32() in y4m.c. Enable -Wstrict-aliasing again since all such warnings are fixed. commit 82b80ef96b0ae74187f6f6a482bddb3f859df4f5 r1339 Author: Jason Garrett-Glaser Date: Sat Nov 14 19:58:46 2009 -0800 100l in deadlock fix commit 6f5f8c02aa3d64e45d17e97d24a6593e8a13c2b2 r1338 Author: Kieran Kunhya Date: Sat Nov 14 19:01:09 2009 -0800 FLV muxing support commit e76a4adb1c8ee27748847656450c815f60d2fe6d r1337 Author: Jason Garrett-Glaser Date: Sat Nov 14 18:40:22 2009 -0800 Fix rare deadlock introduced in weightp commit 2a35a019c5e5710fddcee36976921347ef5ae7a7 r1336 Author: Jason Garrett-Glaser Date: Thu Nov 12 12:40:40 2009 -0800 Actually add -Wno-strict-aliasing to configure commit 0e706cc9f3814f817b6bdef25e35ad1060d369b1 r1335 Author: Dylan Yudaken Date: Thu Nov 12 07:03:46 2009 -0800 Various weightp fixes Make weightp results match in threaded vs non-threaded mode. Fix two-pass with slow-firstpass. commit cbd43d1e31fae533de121c7c0dfcc13ebf41aa24 r1334 Author: Jason Garrett-Glaser Date: Thu Nov 12 05:25:32 2009 -0800 Fix all aliasing violations New type-punning macros perform write/read-combining without aliasing violations per the second-to-last part of 6.5.7 in the C99 specification. GCC 4.4, however, doesn't seem to have read this part of the spec and still warns about the violations. Regardless, it seems to fix all known aliasing miscompilations, so perhaps the GCC warning generator is just broken. As such, add -Wno-strict-aliasing to CFLAGS. commit b28d98bbc3174e6f38caea49a7c545204e3930d3 r1333 Author: David Conrad Date: Wed Nov 11 20:53:49 2009 -0800 Fix 10l in weightp on ARM commit 70f8869f1936558b33ee2ec58dbd85004aa6298b r1332 Author: Jason Garrett-Glaser Date: Mon Nov 9 21:22:41 2009 -0800 Fix one (of possibly many) miscompilations in weightp Use NOINLINE and some emms calls to fix emms reordering issues. This issue occurred with some GCC versions if threads > 1 and the phase of the moon was right. Also a cosmetic in x264.c. commit c3e72f64021e535658f61e86dc3a21325e88ae11 r1331 Author: Jason Garrett-Glaser Date: Mon Nov 9 09:18:03 2009 -0800 Fix pixel_ssd on win64 Didn't preserve XMM registers, may or may not have caused problems. commit af612d79aaaddfaac486d602ce3303836c45bbc6 r1330 Author: Steven Walters Date: Sun Nov 8 22:18:35 2009 -0800 Fix weightp logfile parsing on MinGW commit 03639d08bb4a1b93d2c4529a3bfec517dd905879 r1329 Author: Loren Merritt Date: Mon Nov 9 05:27:29 2009 +0000 cosmetics commit 2bedf8945f921774714dacf5f0668e01c1810b46 r1328 Author: David Conrad Date: Sun Nov 8 20:12:54 2009 -0800 Fix weightp on ARM + PPC No ARM or PPC assembly yet though. commit 87de2346225721e8ca68a1b59bc87133fc598a42 r1327 Author: Dylan Yudaken Date: Sun Nov 8 17:59:08 2009 -0800 Weighted P-frame prediction Merge Dylan's Google Summer of Code 2009 tree. Detect fades and use weighted prediction to improve compression and quality. "Blind" mode provides a small overall quality increase by using a -1 offset without doing any analysis, as described in JVT-AB033. "Smart", the default mode, also performs fade detection and decides weights accordingly. MB-tree takes into account the effects of "smart" analysis in lookahead, even further improving quality in fades. If psy is on, mbtree is on, interlaced is off, and weightp is off, fade detection will still be performed. However, it will be used to adjust quality instead of create actual weights. This will improve quality in fades when encoding in Baseline profile. Doesn't add support for interlaced encoding with weightp yet. Only adds support for luma weights, not chroma weights. Internal code for chroma weights is in, but there's no analysis yet. Baseline profile requires that weightp be off. All weightp modes may cause minor breakage in non-compliant decoders that take shortcuts in deblocking reference frame checks. "Smart" may cause serious breakage in non-compliant decoders that take shortcuts in handling of duplicate reference frames. Thanks to Google for sponsoring our most successful Summer of Code yet! commit 3daa02e9c79ec46fd980bcfcd317df45539c91f6 r1326 Author: Steven Walters Date: Sun Nov 8 11:53:48 2009 -0800 Fix assert failure in the case of forced i-frames Note that this applies to non-IDR i-frames, not IDR-frames. This fix is also required for future open-gop. commit 02fe6a5fe20b71d712c14525b14f95f1e7927a91 r1325 Author: Steven Walters Date: Sat Nov 7 17:07:28 2009 -0800 Fix issues relating to input/output files being pipes/FIFOs commit 3d1a1287721a3a8bfd85d0557e4fe8edbd138adc r1324 Author: David Conrad Date: Sat Nov 7 09:25:18 2009 -0800 Various ARM-related fixes Fix comment for mc_copy_neon. Fix memzero_aligned_neon prototype. Update NEON (i)dct_dc prototypes. Duplicate x86 behavior for global+hidden functions. commit 820380f981da35ae4f8fc124cb8b5ee1c4cbad4b r1323 Author: Jason Garrett-Glaser Date: Wed Nov 4 00:03:14 2009 -0800 Fix miscompilation with gcc 4.3 on ARM Aliasing violation in spatial prediction caused nasty artifacts. Shut up two other GCC warnings while we're at it. commit bea99fbf88cc0da3f85f6ae6cccaf483c5d1fc1b r1322 Author: Jason Garrett-Glaser Date: Tue Nov 3 23:15:35 2009 -0800 Fix extremely rare infinite loop in 2-pass VBV Implicit conversion from double->float lost enough precision to cause the loop termination condition to never trigger. Bug report by Tal Aloni. commit 028b3ffa9071042468f2cc51580fa6ef65d6ff95 r1321 Author: Anton Mitrofanov Date: Sat Oct 31 19:51:14 2009 -0700 Fix large file support, broken in r1302 commit 96bad1a71c656f4f05632d685d4b91bd54d5ce58 r1320 Author: Jason Garrett-Glaser Date: Fri Oct 30 18:58:03 2009 -0700 Dramatically reduce size of pixel_ssd_* asm functions ~10k of code size eliminated. commit 678a703fd9528d2b508b542ce5e289b4f0bae3b7 r1319 Author: Loren Merritt Date: Sat Nov 7 06:09:47 2009 +0000 fix bottom-right pixel of lowres planes, which was uninitialized. weirdly, valgrind reported this only with --no-asm. commit fe83a906ee1bb5170b112de717818e278ff59ddb r1318 Author: Jason Garrett-Glaser Date: Thu Oct 29 12:28:37 2009 -0700 Further reduce code size in bime ~7-8 kilobytes saved, ~0.6% faster subme 9. commit 5c7133b0607b220a02e37cf72612c97484384cd8 r1317 Author: Anton Mitrofanov Date: Wed Oct 28 12:57:11 2009 -0700 Fix case in which MB-tree didn't propagate all data correctly Should improve quality in all cases. Also some minor cosmetic improvements. commit 7016c83611ade1f0d54d62eec3a03fccdb43700d r1316 Author: Jason Garrett-Glaser Date: Tue Oct 27 16:01:46 2009 -0700 Take into account chroma MV offset during interlaced motion search Small improvement in interlaced compression. commit d4b7db5c840661a5853369300e704b20c7c3ff53 r1315 Author: Jason Garrett-Glaser Date: Tue Oct 27 15:08:37 2009 -0700 Slightly faster ssse3 width4 chroma MC Cacheline-aware in the same fashion as width8, but not conditional. commit 40a4708b9d869d7b13cb1f1afc65590d2fc90f9b r1314 Author: Jason Garrett-Glaser Date: Tue Oct 27 14:01:46 2009 -0700 Eliminate some rare cases where MB-tree gave incorrect results in B-frames Also get rid of some unnecessary memcpies. commit 35146ef7d37a04e1f43ddb425f0e43311e24c5fc r1313 Author: Anton Mitrofanov Date: Tue Oct 27 12:28:07 2009 -0700 Fix cases in which b-adapt 1 could result in AUTO-type frames. This didn't actually cause any issues, but it removes the need for the fixing-up code that prevented said issues. commit 1f9c733dc27ae279943a3ddd7eaf8a50cbf4dc2d r1312 Author: Jason Garrett-Glaser Date: Mon Oct 26 12:53:07 2009 -0700 Motion compensation optimizations Turning off inlining saves a whole boatload of code size for near-zero speed cost. Simplify offset calculation. Various other optimizations. commit e361348b54d636d2bffd622c96d2255c0640c220 r1311 Author: Jason Garrett-Glaser Date: Sun Oct 25 19:41:10 2009 -0700 Minor CAVLC optimizations commit ec46ace7eab97cbde6fd50ae18de5c6e063fe1de r1310 Author: Loren Merritt Date: Sun Oct 25 19:34:12 2009 +0000 cosmetics commit 6a4277ea792be0c51ccd195df61d92a12b60f02a r1309 Author: Jason Garrett-Glaser Date: Sun Oct 25 09:14:27 2009 -0700 ISC-license x86inc.asm As the assembly abstraction layer is very useful in non-x264 projects, it is now ISC (simplified BSD) so that others, even in commercial projects, can use it as well. commit c9d2c06872347b519f44262bb4ed85198c9ca1b1 r1308 Author: Jason Garrett-Glaser Date: Fri Oct 23 16:20:39 2009 -0700 Various minor CABAC optimizations commit ece74ca07cd4f7729bdf6ba5b8be06c30da3a1af r1307 Author: Lamont Alston Date: Fri Oct 23 11:01:13 2009 -0700 Fix bug in b-pyramid strict Bug caused invalid streams in some situations. commit b1ad8d06bcff3f14ddfc6e550d4d50f2d4847a96 r1306 Author: Jason Garrett-Glaser Date: Fri Oct 23 02:34:49 2009 -0700 Remove non-mod16 warning Compression only "suffers" by an extremely marginal amount and too many people misinterpret the warning. commit b89ca0413c5a7114111ba0c76bcd7e52eb0ede93 r1305 Author: Jason Garrett-Glaser Date: Thu Oct 22 22:38:32 2009 -0700 Fix two warnings + some minor optimizations commit ec3b5bfa4f1e5e53ab962db4341b9f78b9e50c86 r1304 Author: Jason Garrett-Glaser Date: Mon Oct 19 22:38:01 2009 -0700 Fix a typo in b-pyramid help And an errant space in common/macroblock.c commit 3679792d621cc95222d0aef3097c6d16e72852b8 r1303 Author: Henrik Gramner Date: Mon Oct 19 12:57:47 2009 -0700 A bit more write-combining in macroblock_cache_load commit 6169a3f6c01ca95ac5f17d65c76af6830954789d r1302 Author: Steven Walters Date: Sat Oct 24 00:23:50 2009 +0000 split muxers.c into one file per format simplify internal muxer API commit bcba15dbbc0d6be28129b85d541a0bc5050bab40 r1301 Author: Jason Garrett-Glaser Date: Mon Oct 19 02:43:48 2009 -0700 Update fprofile with the latest change to b-pyramid commit 909bdedba6077a90a361641232ba1840094f19fe r1300 Author: Steven Walters Date: Sat Oct 17 12:54:41 2009 -0700 Fix assertion fail and incorrect costs with pyramid+VBV Deal properly with QPfile'd B-refs. x264 should handle multiple B-refs per minigop now, though only via forced frametypes. commit 2eb0458ed6302e082ffe206d325d03d6c75d6d47 r1299 Author: Jason Garrett-Glaser Date: Sat Oct 17 03:04:56 2009 -0700 Improve CRF initial QP selection, fix get_qscale bug If qcomp=1 (as in mb-tree), we don't need ABR_INIT_QP. get_qscale could give slightly weird results with still images commit 513abc7b0584b5ea6dcea4ebd731824ef74ef1a1 r1298 Author: Jason Garrett-Glaser Date: Wed Oct 14 11:32:27 2009 -0700 Print more accurate error message if dump_yuv fails commit cdf623f285073c084631263fd95a753bf25be3bd r1297 Author: Steven Walters Date: Tue Oct 13 09:56:04 2009 -0700 Reduce memory usage of b-adapt 2 trellis Also fix a minor bug where the algorithm ignored the last frame in the trellis. commit e2659dbdc0aed2d2cd4f6538faddf370e7740ada r1296 Author: Lamont Alston Date: Mon Oct 12 23:32:16 2009 -0700 Make B-pyramid spec-compliant The rules of the specification with regard to picture buffering for pyramid coding are widely ignored. x264's b-pyramid implementation, despite being practically identical to that proposed by the original paper, was technically not compliant. Now it is. Two modes are now available: 1) strict b-pyramid, while worse for compression, follows the rule mandated by Blu-ray (no P-frames can reference B-frames) 2) normal b-pyramid, which is like the old mode except fully compliant. This patch also adds MMCO support (necessary for compliant pyramid in some cases). MB-tree still doesn't support b-pyramid (but will soon). commit b826fd5475a5e883f85e26cbf9d2c0acf5efcbd6 r1295 Author: Jason Garrett-Glaser Date: Mon Oct 12 23:28:26 2009 -0700 Add missing free for nal_buffer Fixes a memory leak. commit 813fe72062362a9ee7733fa160e14f5c27ae5fef r1294 Author: Loren Merritt Date: Sun Oct 18 21:47:18 2009 +0000 sync yasm macros to ffmpeg commit 7ae3ed992b70d1f8e806b6eece0b8fc88f8c3fab r1293 Author: Loren Merritt Date: Sat Oct 17 14:54:49 2009 +0000 eliminate some divisions commit e381f6d0093504a545fe4d90e3a6f178c6877cc7 r1292 Author: Jason Garrett-Glaser Date: Mon Oct 12 18:40:28 2009 -0700 Fix glitches with slow-firstpass + weightb + multiref + 2pass Bug in r1277 commit 9045fbed2d696e04d402fc8b545d761ec6c41d34 r1291 Author: Henrik Gramner Date: Mon Oct 12 15:44:13 2009 -0700 Simplify some code in b-adapt 2's trellis commit b47aca5ed2797b8b46a0bd83d58ffdb60dffc1ef r1290 Author: Jason Garrett-Glaser Date: Mon Oct 12 15:38:51 2009 -0700 Fix a very rare integer overflow in slicetype analysis Caused an assert failure when it occurred. Bug is as old as adaptive B-frames. commit 2ceb2cc6e6753328d959e42823b2e6059ed007a7 r1289 Author: Jason Garrett-Glaser Date: Mon Oct 12 13:14:19 2009 -0700 Reduce the aggressiveness of 2-pass VBV Now that B-frames are properly covered, we don't have to be as aggressive. This eliminates some issues with skyrocketing QPs in B-frames in 2-pass VBV. commit a65d36142b765516dd80a6bed5bff7444b24f4aa r1288 Author: Jason Garrett-Glaser Date: Mon Oct 12 11:29:23 2009 -0700 Fix regression: disable flash detection without B-frames commit 287641a7c54d525e0eb74925431541ffb5f9471d r1287 Author: Loren Merritt Date: Sat Oct 10 04:43:00 2009 +0000 change all dct arrays to 1d. the C standard doesn't allow you to iterate 1-dimensionally over 2d arrays, and nothing other than the dsp functions themselves cares about the 2dness of dct. this fixes a miscompilation in x264_mb_optimize_chroma_dc. commit bcc9a4b2e520263b0ba85b61dd7dde78b35160e8 r1286 Author: Jason Garrett-Glaser Date: Sun Oct 11 20:17:50 2009 -0700 Add row-based VBV for B-frames While B-frames still aren't explicitly covered by ratecontrol, this should resolve issues of VBV underflows due to larger-than-expected B-frames. commit 7182ae8d08acef6153cad9b9c27efb4fa985a657 r1285 Author: Jason Garrett-Glaser Date: Sat Oct 10 17:35:03 2009 -0700 Improve VBV, fix bug in 2-pass VBV introduced in MB-tree Bug caused AQ'd row/frame costs to not be calculated (and thus caused underflows). Also make VBV more aggressive with more threads in 2-pass mode. Finally, --ratetol now affects VBV aggressiveness (higher is less aggressive). commit 60c630c01dd4cb125a2bcc08da88873ce3a41dbc r1284 Author: Anton Mitrofanov Date: Thu Oct 8 14:55:26 2009 -0700 Optimize exp2fix8 Slightly faster and more accurate rounding. commit e8b83b788ffe9af4b48b049450c387069fda1266 r1283 Author: Jason Garrett-Glaser Date: Thu Oct 8 04:27:11 2009 -0700 Avoid scenecuts in flashes and similar situations "Flashes" are defined as any scene which lasts a very short period before a previous scene returns. A common example of this is of course a camera flash. Accordingly, look ahead during scenecut analysis and rule out the possibility of certain frames being scenecuts. Also handles cases of tons of short scenes in sequence and avoids making those scenecuts as well. Can only catch flashes of 1 frame in length with b-adapt 1. With b-adapt 2, can catch flashes of length --bframes. Speed cost should be negligible. commit fc4926a2d9a4e355ea6a24c962731f5f8c6bd83a r1282 Author: Jason Garrett-Glaser Date: Tue Oct 6 22:15:10 2009 -0700 Fix bug where x264 generated non-compliant bitstreams with insane SAR values commit 39f6499e3abcf473bdcbade38aba9a7490470e6a r1281 Author: Loren Merritt Date: Wed Sep 30 22:39:13 2009 +0000 rm msvc project files and related ifdefs commit 5cda2cf81a75bfd70a5529d3b6fb01b0a7897a5e r1280 Author: Holger Lubitz Date: Tue Oct 6 15:17:34 2009 -0700 SSE4 version of 4x4 idct 27->24 clocks on Nehalem. This is really just an excuse to use "movsd" in a real function. Add some comments to subsum-related macros in x86util. commit d971ace393dc49b09b930aa22e8b0c70f8a6f386 r1279 Author: Jason Garrett-Glaser Date: Sun Oct 4 19:15:28 2009 -0700 Constrained intra prediction support Enable with --constrained-intra. Significantly reduces compression, but required for the base layer of SVC encodes and maybe some other use-cases. Commit sponsored by a media streaming company that wishes to remain anonymous. commit a88f2d78533af5ff38c01054cf336bdd7f2cf27c r1278 Author: Jason Garrett-Glaser Date: Sun Oct 4 00:48:27 2009 -0700 Slightly improve non-RD p8x8 mode decision Subpartition costs are effectively zero in CABAC if sub-8x8 search is off. commit c318d8fa1e83b8807b66d45b225c905f480703ce r1277 Author: Jason Garrett-Glaser Date: Sat Oct 3 00:59:02 2009 -0700 Reorder reference frames optimally on second pass About +0.1-0.2% compression at normal bitrates, up to +1% at very low bitrates. Only works if the first pass uses the same number of refs as the second (i.e. not with fast first pass). Thus, only worthwhile at insanely slow speeds: as such, enable slow-firstpass by default with preset placebo. Note that this changes the stats file format! commit 4f3ad6a28e1ac017103a77d135a48aaad114d262 r1276 Author: Jason Garrett-Glaser Date: Wed Sep 30 12:13:16 2009 -0700 Fix typo in ratecontrol_summary commit 8be3935a8cef95fe94e0b054f3b6cb904a1f363a r1275 Author: Jason Garrett-Glaser Date: Tue Sep 29 23:32:07 2009 -0700 Clip log2_max_frame_num It's still much higher than it needs to be, but that will be fixed with the upcoming MMCO patch. Also make sure we don't write too large a frame_num or poc in slice header. commit 83ca0f2cec3909b38d55e664bcd3f5c4b1546de8 r1274 Author: Anton Mitrofanov Date: Sat Sep 26 12:44:53 2009 -0700 Fix some issues with 3-pass statsfile handling The value of i_frame during encoder_close was incorrect. commit a4334d41ea61b70fcff308ba988193309bb5608a r1273 Author: Anton Mitrofanov Date: Sat Sep 26 12:42:46 2009 -0700 Fix ctrl-C termation message with few frames encoded commit db518eae22e57b37c806625685faba2f2a857f88 r1272 Author: Jason Garrett-Glaser Date: Fri Sep 25 16:23:52 2009 -0700 Add support for single-frame VBV, improve compliance This allows both constant-framesize and capped-framesize encoding. Literal constant framesize isn't actually supported yet due to the lack of filler support. Example with 30fps video: --vbv-bufsize 200 --vbv-maxrate 6000 will ensure that no frame is ever larger than 200 kilobits. One example use-case of this is for zero-delay streaming where bandwidth costs need to be minimized. If every frame is smaller than 200 kilobits and the client has a 6 megabit connection, every single frame can be instantly sent to the client and handled without any decoder-side buffer. Fix a mistake in VBV calculation--this may have caused the VBV to be slightly non-compliant in some situations without x264 realizing it. Add primitive prediction handling for rows with quantizers lower than their reference. This slightly improves VBV in CBR mode. Various other minor improvements to VBV, mostly to make single-frame VBV work. Commit sponsored by a media streaming company that wishes to remain anonymous. commit 496d79dfcb90066f0254e07d593471f2c885a153 r1271 Author: Jason Garrett-Glaser Date: Thu Sep 24 08:40:45 2009 -0700 Fix 10l in API change frame_num was set to 1, not 0, for the first frame. This broke spec compliance. Didn't actually seem to cause any problems though except for breaking decoding on Quicktime. commit 2b4e823809617d605bc058acba681c37e14e0ed0 r1270 Author: Steven Walters Date: Wed Sep 23 15:04:02 2009 -0700 Allow user-set FPS for inputs other than YUV commit e8b9dfe479a6a945d9cd91b4aae8a3cba06b9db9 r1269 Author: Anton Mitrofanov Date: Wed Sep 23 12:31:53 2009 -0700 Improve threaded frame handling Avoid unnecessary cond_wait commit d5429261cc2a2205d225b0f0c0802d3b565eb7bd r1268 Author: Jason Garrett-Glaser Date: Tue Sep 22 17:30:19 2009 -0700 Attempt to detect miscompilation due to bug in gcc 4.2 I don't know if this bug still affects latest x264, but it can't hurt to try to detect it. Accordingly refuse to open the encoder if detected. Apparently VLC (on Windows) has been distributed for some time with a completely broken x264 due to the use of a completely broken compiler (gcc 4.2). In particular, the MV costs seem to be calculated incorrectly on win32 when linking from an application compiled without -ffast-math to an application with -ffast-math. I am not entirely certain why this occurs, but the result is, unsurprisingly, encoding quality that makes MPEG-2 look good, due to the motion search being completely broken. commit c62060d242879d8271c22a486b286b91147d2ebf r1267 Author: Steven Walters Date: Tue Sep 22 12:14:23 2009 -0700 Really fix encoder_close crash this time Not-entirely-fixed in r1253. commit d166e7f3f8f68a768cf60cb4512f9efe8623b5cb r1266 Author: Jason Garrett-Glaser Date: Sun Sep 20 21:58:08 2009 -0700 Check for 16x16 partitions masquerading as smaller ones Saves a few bits when using qpel-RD. commit c49e14f21c7fd9f7b5d1a82f29cb3b6a1c8ecb70 r1265 Author: David Conrad Date: Sun Sep 20 01:16:51 2009 -0700 Update config.guess/sub; add Snow Leopard support commit d52d2db898fa4e7790964cd656a1da3a0c005881 r1264 Author: Jason Garrett-Glaser Date: Sat Sep 19 09:50:59 2009 -0700 Fix integer overflow in 2-pass VBV Bug caused slight undersizing in 2-pass mode in some cases. commit ca95d6198f5c21ff6904a842b52b893d0fee6aab r1263 Author: Jason Garrett-Glaser Date: Fri Sep 18 14:28:31 2009 -0700 Fix bug with various bizarre commandline combinations and mbtree Second pass would have mbtree on even though the first pass didn't (and thus encoding would immediately fail). commit 91f3e81cf9e030f860abdfe0e0c0a37c5e2a4ac2 r1262 Author: Jason Garrett-Glaser Date: Thu Sep 17 13:02:02 2009 -0700 Add intra prediction modes to output stats Also eliminate some NANs in stat output with intra-only encoding. Marginal speedup: disable stat calculation if log level is below X264_LOG_INFO. Various minor cosmetics. commit c91a3c98a72492a5e167cb6c98c1807fde76c528 r1261 Author: Jason Garrett-Glaser Date: Wed Sep 16 21:34:48 2009 -0700 Overhaul syntax in muxers.c/matroska.c The inconsistent syntax in these files has finally come to an end. commit 031e25d8cc909af2d138f9fedc8252961f34a6ac r1260 Author: Jason Garrett-Glaser Date: Wed Sep 16 20:00:00 2009 -0700 Major API change: encapsulate NALs within libx264 libx264 now returns NAL units instead of raw data. x264_nal_encode is no longer a public function. See x264.h for full documentation of changes. New parameter: b_annexb, on by default. If disabled, startcodes are replaced by sizes as in mp4. x264's VBV now works on a NAL level, taking into account escape codes. VBV will also take into account the bit cost of SPS/PPS, but only if b_repeat_headers is set. Add an overhead tracking system to VBV to better predict the constant overhead of frames (headers, NALU overhead, etc). commit dd026f296748ef370f1651fdbddec6d9238c6cc0 r1259 Author: Jason Garrett-Glaser Date: Mon Sep 14 12:30:38 2009 -0700 Add missing fclose for mbtree input statsfile on second pass Bug report by VFRmaniac commit 8cbb85d7682f78af892ea2f5b0362cc1ef583c02 r1258 Author: Jason Garrett-Glaser Date: Mon Sep 14 11:07:23 2009 -0700 Improve progress indicator behavior Progress indicator will now indicate based on output frame, not input frame. commit b5770ea28a83141252be66870cfabc0ceae626b7 r1257 Author: Jason Garrett-Glaser Date: Mon Sep 14 03:21:14 2009 -0700 Update yasm configure check lzcnt apparently requires yasm 0.6.2. commit 935488e22376c33fbdc38909d9a119ac092e8878 r1256 Author: Jason Garrett-Glaser Date: Sun Sep 13 01:02:37 2009 -0700 Make MV costs global instead of static Fixes some extremely rare threading race conditions and makes the code cleaner. Downside: slightly higher memory usage when calling multiple encoders from the same application. commit 4f6a00704c3e36648a32404aa729a4beff438b38 r1255 Author: Jason Garrett-Glaser Date: Fri Sep 11 17:30:14 2009 -0700 Don't print scenecut message multiple times in verbose mode Occurred mostly with b-adapt 2. commit 411ee507328890fb1fde96b37b6eef854d27101a r1254 Author: Jason Garrett-Glaser Date: Thu Sep 10 02:55:21 2009 -0700 Optimize rounding of luma and chroma DC coefficients Reduce bitrate mostly-losslessly at low quantizers. In some rare cases, bitrate reduction may be as high as 10%. Luma rounding optimization (helps much less than chroma) requires trellis. commit 08c83969dd45a6e550aaa3be11c69bb74d7a478c r1253 Author: Steven Walters Date: Wed Sep 9 12:19:40 2009 -0700 Fix crash if encoder_close is called before delayed frames are flushed Also no longer flush frames when ctrl-Cing x264, so x264 will close faster. commit b9b7c12eed6eb69b9df7ccd1289df5ce9c130a81 r1252 Author: Jason Garrett-Glaser Date: Sun Sep 6 14:55:48 2009 -0700 Improve x264 help Now has three help options: --help, --longhelp, and --fullhelp. --help only shows the most basic options; most users should not need more than these. Add usage examples. Fix typo in a comment. commit e553a4cc858649b951e9dee456c717f5f5dcd3e9 r1251 Author: Jason Garrett-Glaser Date: Sat Sep 5 19:22:21 2009 -0700 Factor out a redundant RD call in qpel-RD Fixes a problem that was supposed to be, but didn't, get fully fixed in r1238. commit 643cef5ea8a089a986e1fe17238ce28b1931ea22 r1250 Author: Jason Garrett-Glaser Date: Sat Sep 5 18:56:18 2009 -0700 Fix RD early-skip Small quality improvement and speedup, was broken by r1214. commit 83a033e15d14fcf954c4cdfa3c7c6cd64808c1f9 r1249 Author: Jason Garrett-Glaser Date: Sat Sep 5 18:55:46 2009 -0700 Faster CAVLC mb header writing for B macroblocks commit e390cbf993d180b1db413746272e232ac3068dad r1248 Author: David Conrad Date: Wed Sep 2 16:14:59 2009 -0700 Compile fixes for pre-ARMv6T2 and/or PIC commit b3efbe51032a0e953140f86423b533b2b6f7101c r1247 Author: Steven Walters Date: Wed Sep 2 12:33:50 2009 -0700 Change priority handling on some OSs Instead of setting the lookahead thread to max priority, lower all the other threads' priorities instead. This is particularly useful when the "max priority" is "realtime", as in Windows, which can cause some problems. commit 5b3c89c592e412fc02fd8001ee361ea50c249153 r1246 Author: Steven Walters Date: Tue Sep 1 18:46:51 2009 -0700 Threaded lookahead Move lookahead into a separate thread, set to higher priority than the other threads, for optimal performance. Reduces the amount that lookahead bottlenecks encoding, greatly increasing performance with lookahead-intensive settings (e.g. b-adapt 2) on many-core CPUs. Buffer size can be controlled with --sync-lookahead, which defaults to auto (threads+bframes buffer size). Note that this buffer is separate from the rc-lookahead value. Note also that this does not split lookahead itself into multiple threads yet; this may be added in the future. Additionally, split frames into "fdec" and "fenc" frame types and keep the two separate. This split greatly reduces memory usage, which helps compensate for the larger lookahead size. Extremely special thanks to Michael Kazmier and Alex Giladi of Avail Media, the original authors of this patch. commit 326113b4f57de6c5a2599c047ab5c7762b1a4b13 r1245 Author: Jason Garrett-Glaser Date: Tue Sep 1 11:36:54 2009 -0700 Force a link error in case of incompatible API This is because the number of bug reports due to miscompiled ffmpeg builds is reaching critical mass. The name of x264_encoder_open is now #defined based on the current X264_BUILD. Note that this changes the calling convention required for dlopen, but not for ordinary calls to x264_encoder_open. commit 775a12cdec150e00813d6df5dbec17c5da385549 r1244 Author: Jason Garrett-Glaser Date: Mon Aug 31 22:44:45 2009 -0700 Get rid of "CBR" descriptor from qcomp Though technically accurate in some vague way, I have never actually seen this option used correctly, rather it has been used by hundreds of people who can't read the documentation and believe that qcomp=0 is what should be used for CBR encoding. commit 2cd00546cdae867265fbbb58304087f776160102 r1243 Author: Loren Merritt Date: Sun Aug 30 20:49:07 2009 +0000 Faster me=tesa But it still spends all too much time in me_search_ref rather than asm. commit 4d553edf178bf0ae01547731a48e1fb08c5cc1f4 r1242 Author: Jason Garrett-Glaser Date: Mon Aug 31 06:36:41 2009 -0700 Multi-slice encoding support Slicing support is available through three methods (which can be mixed): --slices sets a number of slices per frame and ensures rectangular slices (required for Blu-ray). Overridden by either of the following options: --slice-max-mbs sets a maximum number of macroblocks per slice. --slice-max-size sets a maximum slice size, in bytes (includes NAL overhead). Implement macroblock re-encoding support to allow highly accurate slice size limitation. Might be useful for other things in the future, too. commit bfcb4f6c1d49505146be77cf57dcb72f0534907d r1241 Author: Jason Garrett-Glaser Date: Sat Aug 29 17:09:55 2009 -0700 Fix a valgrind warning in b-adapt 2 commit 35627b63c31bcd143413c10dce1ead8015448f7b r1240 Author: Loren Merritt Date: Sat Aug 29 10:31:08 2009 +0000 fix asm symbols for oprofile (regression in r1221) commit 3db6c9da402858abfcbe4aaf676a1b1f89e7f093 r1239 Author: Anton Mitrofanov Date: Fri Aug 28 15:07:12 2009 -0700 Fix bug in intra analysis in B-frames i8x8/i4x4 never got analysed when fast_intra was toggled and RD was off; up to a 2-3% quality improvement in non-RD mode. With this bug dating back to r369, this is probably the second-oldest bug ever fixed in x264. commit d551106235ce955697531df85aeebb996309ea81 r1238 Author: Anton Mitrofanov Date: Fri Aug 28 14:56:44 2009 -0700 Fix bug in b16x16 qpel RD Incorrect cost was used to initialize the search. commit 1b2a1c699a0d5b93d13d9bb5b118b02d261ba193 r1237 Author: Jason Garrett-Glaser Date: Thu Aug 27 15:21:22 2009 -0700 Check minimum chroma QP in addition to luma QP during CQM init Correctly error out if the implied minimum chroma QP is too low. Add missing emms to checkasm macroblock_tree_propagate test. commit e6c973ac5b46fc0d9843d1774b647c97c852c963 r1236 Author: Jason Garrett-Glaser Date: Thu Aug 27 14:16:45 2009 -0700 Faster mbtree propagate and x264_log2, less memory usage Avoid an int->float conversion with a small table. Change lowres_inter_types to a bitfield; cut its size by 75%. Somewhat lower memory usage with lots of bframes. Make log2/exp2 tables global to avoid duplication. commit 448b1387254bbf186b83db0fd393477ea1d01a55 r1235 Author: Jason Garrett-Glaser Date: Wed Aug 26 20:30:47 2009 -0700 Fix keyint=1 + VBV + rc-lookahead commit 0d8efaac52baab0bac67ed0daac07f80110883a4 r1234 Author: Jason Garrett-Glaser Date: Wed Aug 26 20:16:10 2009 -0700 Faster x264_exp2fix8 22->13 cycles on Core 2 with mfpmath=sse commit ee95ca7970140e8b99af233b03828feb250f0af0 r1233 Author: Loren Merritt Date: Thu Aug 27 06:05:57 2009 +0000 compile x86 with fpmath=sse by default commit c8edc12043086b8f52a3b6b2176b70e0d48ff271 r1232 Author: David Conrad Date: Mon Aug 24 17:17:41 2009 -0700 ARM configure: enable NEON-related options by default When compiling for ARM, x264 will compile by default for Cortex A8 unless specified otherwise. To compile for pre-ARMv6, --disable-asm is required. commit 533b473f71f2ccd1f73e3d25cd57fca06ef553b5 r1231 Author: Jason Garrett-Glaser Date: Mon Aug 24 03:28:11 2009 -0700 2-pass VBV fixes Properly run slicetype frame cost with 2pass + MB-tree. Slash the VBV rate tolerance in 2-pass mode; increasing it made sense for the highly reactive 1-pass VBV algorithm, but not for 2-pass. 2-pass's planned frame sizes are guaranteed to be reasonable, since they are based on a real first pass, while 1-pass's, based on lookahead SATD, cannot always be trusted. commit 9754af3c04d2de7b2404132a2c533c9071b6257b r1230 Author: David Conrad Date: Mon Aug 24 01:38:42 2009 -0700 GSOC merge part 8: ARM NEON intra prediction assembly functions (partial) 4x4 dc/h/ddr/ddl, 8x8 dc/h, 8x8c h/v, 16x16 dc/h/v commit a81c398c8e7f9fea2c7848f866007bc6fbb74304 r1229 Author: David Conrad Date: Mon Aug 24 01:10:30 2009 -0700 GSOC merge part 7: ARM NEON deblock assembly functions (partial) Originally written for ffmpeg by Mans Rullgard; ported by David. Luma and chroma inter deblocking; no intra yet. commit dcd9ac9bae832a98d79bf5fc579c9f6c7bfd81a1 r1228 Author: David Conrad Date: Mon Aug 24 00:58:42 2009 -0700 GSOC merge part 6: ARM NEON quant assembly functions (partial) (de)quant 4x4, (de)quant 8x8, (de)quant DC, coeff_last commit e695eda3765caa2b4b9825aeffecdb13e107b3b4 r1227 Author: David Conrad Date: Sun Aug 23 02:03:48 2009 -0700 GSOC merge part 5: ARM NEON dct assembly functions (i)dct4x4dc, (i)dct4x4, (i)dct8x8, (i)dct_dc, zigzag_scan_frame_4x4 commit 2ac8b8deca4475200d279cf711060e7dfef7a252 r1226 Author: David Conrad Date: Sun Aug 23 01:35:10 2009 -0700 GSOC merge part 4: ARM NEON mc assembly functions prefetch, memcpy_aligned, memzero_aligned, avg, mc_luma, get_ref, mc_chroma, hpel_filter, frame_init_lowres commit 8a84fd9d367b7660a34ba575eec17636b2b6a85a r1225 Author: David Conrad Date: Sat Aug 22 23:55:29 2009 -0700 GSOC merge part 3: ARM NEON pixel assembly functions SAD, SADX3/X4, SSD, SATD, SA8D, Hadamard_AC, VAR, VAR2, SSIM commit 00d9fb7d0643748a0f1de33ca15eb300172c07f7 r1224 Author: David Conrad Date: Sat Aug 22 23:40:33 2009 -0700 GSOC merge part 2: ARM stack alignment Neither GCC nor ARMCC support 16 byte stack alignment despite the fact that NEON loads require it. These macros only work for arrays, but fortunately that covers almost all instances of stack alignment in x264. commit 3b4ee7359abdeea0337ec76206518a9d8f8f2140 r1223 Author: David Conrad Date: Thu Aug 20 20:44:09 2009 -0700 Fix unaligned accesses in bitstream writer Fixes x264 on CPUs with no unaligned access support (e.g. SPARC). Improves performance marginally on CPUs with penalties for unaligned stores (e.g. some x86). commit d0ee6f8864c1066fb14672faeb738ff511abc261 r1222 Author: Jason Garrett-Glaser Date: Thu Aug 20 13:08:25 2009 -0700 Fix bug in calculation of I-frame costs with AQ. commit f6bf719c67c109635eb001ff2b48c24d97ff5f0d r1221 Author: David Conrad Date: Wed Aug 19 17:03:02 2009 -0700 GSOC merge part 1: Framework for ARM assembly optimizations x264 will detect which ARM core it's building for and only build NEON asm if the target is ARMv6 or above, then enable NEON at runtime. commit 333100756c0c27c5a71119a3f80abc80d439332a r1220 Author: David Conrad Date: Wed Aug 19 16:18:36 2009 -0700 Fix a bug in checkasm and two OSX fixes MC chroma checkasm test could crash in some situations Remove -lmx, as it's not needed and the iPhone doesn't have it. Remove unused sqrtf emulation; it breaks if math.h is included. commit 441c36cbc814ac13cc565ce5e6566bcbf5f6d6e2 r1219 Author: Jason Garrett-Glaser Date: Wed Aug 19 01:49:47 2009 -0700 Improve QPRD Always check the last macroblock's QP, even if the normal search doesn't reach it. Raise the failure threshold when moving towards the last macroblock's QP. 0.2-1% improved compression. commit d345ab05391e2b32c0d567aaa9945f63ce892016 r1218 Author: Jason Garrett-Glaser Date: Tue Aug 18 21:53:28 2009 -0700 Fix MB-tree with keyint<3 Also slightly improve VBV keyint handling. commit 5e9ae4cb8de4a95a567c6dbfdbaaf8138e695589 r1217 Author: Jason Garrett-Glaser Date: Tue Aug 18 19:25:45 2009 -0700 Fix bug in VBV lookahead + no MB-tree I-frames need to have VBV lookahead run on them as well. commit d6846d3d17ac7289eb3d82f54d19459d3a1a5b21 r1216 Author: Jason Garrett-Glaser Date: Tue Aug 18 18:37:26 2009 -0700 Add support for frame-accurate parameter changes 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. commit 9892984392cd550e65e3f2cd6fd08d6afb083472 r1215 Author: Jason Garrett-Glaser Date: Tue Aug 18 15:46:26 2009 -0700 Fix x264_encoder_reconfig with multithreading New behavior: reconfigging the encoder will result in changes being applied to each of the encoding threads as they finish encoding the current frame. commit c07d292d7b5298327d835d0c458083de29c23204 r1214 Author: Jason Garrett-Glaser Date: Sun Aug 16 03:29:49 2009 -0700 Fix two bugs in QPRD QPRD could in some cases force blocks to skip when they shouldn't be ~(+0.01db) Force QPRD to abide by qpmin/qpmax restrictions. commit 1b6086ceb0c346c959a68478b9c36284fbdd5872 r1213 Author: Jason Garrett-Glaser Date: Sat Aug 15 19:02:31 2009 -0700 Lookahead VBV 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. commit 1febc6bd5dc4f625049273f4d86472ed770e3882 r1212 Author: Jason Garrett-Glaser Date: Fri Aug 14 07:20:07 2009 -0700 Fix bug in b-adapt 1 B-adapt 1 didn't use more than MAX(1,bframes-1) B-frames when MB-tree was off. commit 8236cc979e1b4d8aae1aecbaae28c3017e375a6f r1211 Author: Jason Garrett-Glaser Date: Thu Aug 13 17:13:33 2009 -0700 Fix a potential failure in VBV 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. commit 42d6b17b439fc90793d19788e7b314e2517c1fc2 r1210 Author: Anton Mitrofanov Date: Thu Aug 13 21:40:21 2009 +0000 new API function x264_encoder_delayed_frames. fix x264cli on streams whose total length is less than the encoder latency. commit 62df17ec0523474c8f03e28fb982de1722497288 r1209 Author: Jason Garrett-Glaser Date: Thu Aug 13 14:12:26 2009 -0700 Add no-mbtree to fprofile (and fix pyramid in fprofile) commit 7f8aa6fa1819a62196c1953d85fa6e3d504e39b7 r1208 Author: Jason Garrett-Glaser Date: Sun Aug 9 16:06:52 2009 -0700 Don't print a warning about direct=auto in 2pass when B-frames are off commit 8eb6720e89f441056948818558113f29b3a282c6 r1207 Author: Loren Merritt Date: Thu Aug 13 05:02:59 2009 +0000 fix lowres padding, which failed to extrapolate the right side for some resolutions. 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. commit 9a54c483f5f12aa5614ba0a4a4cfaee19377047e r1206 Author: Loren Merritt Date: Sun Aug 9 04:00:36 2009 +0000 simd part of x264_macroblock_tree_propagate. 1.6x faster on conroe. commit 886d1e9878a6f2424bd005a9cb16843ca8e8d1df r1205 Author: Loren Merritt Date: Sat Aug 8 14:53:27 2009 +0000 MB-tree fixes: 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. commit 3b047a2a7d55d613c6ae49da22c7f30d02a048dc r1204 Author: Jason Garrett-Glaser Date: Sat Aug 8 17:51:01 2009 -0700 Add missing free()s for new data allocated for MB-tree Eliminates a memory leak. commit 6f4054f79d3ff1034d634aabb9f9d9c8eb261bad r1203 Author: Jason Garrett-Glaser Date: Sat Aug 8 12:53:06 2009 -0700 Fix keyframe insertion with MB-tree and no B-frames commit 21a38355ccd46d1dd928341f8b9f6dd69afd9cff r1202 Author: Jason Garrett-Glaser Date: Sat Aug 8 11:26:36 2009 -0700 Fix MP4 output (bug in malloc checking patch) commit 7139b088129707b0daf3fd3bae9647f649deb1ba r1201 Author: Steven Walters Date: Fri Aug 7 16:18:01 2009 -0700 Gracefully terminate in the case of a malloc failure Fuzz tests show that all mallocs appear to be checked correctly now. commit 71506ae7a307545b530663ecab00b06fc424ca48 r1200 Author: Anton Mitrofanov Date: Fri Aug 7 10:44:13 2009 -0700 Fix a potential infinite loop in QPfile parsing on Windows ftell doesn't seem to work properly on Windows in text mode. commit cb0b71fb981a3c6020d628dc7a41855b81df8d54 r1199 Author: Jason Garrett-Glaser Date: Fri Aug 7 10:31:16 2009 -0700 Fix delay calculation with multiple threads Delay frames for threading don't actually count as part of lookahead. commit a1ed468f67476fbbe49e1fbfe1a567be0c052d44 r1198 Author: Jason Garrett-Glaser Date: Thu Aug 6 23:09:46 2009 -0700 Add "veryslow" preset Apparently some people are actually *using* placebo, so I've added this preset to bridge the gap. commit bb66c482242a0747823661b212114c1a2f015fe3 r1197 Author: Jason Garrett-Glaser Date: Tue Aug 4 17:46:33 2009 -0700 Macroblock-tree ratecontrol 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. commit f21e71a04ba65aff9b5a4bfa8a73fd86c463f4ee r1196 Author: Jason Garrett-Glaser Date: Mon Aug 3 20:52:30 2009 -0700 Various 1-pass VBV tweaks 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. commit 5d75a9bd5b942392c4ab64156a266eed64c0793f r1195 Author: Jason Garrett-Glaser Date: Tue Jul 28 20:41:27 2009 -0700 Fix another 10L in QPRD An entry in subpel_iterations was missing. I have no idea how QPRD was working at all without this change. commit 97ed27054005a85e7c49209c20fd0b280917ac02 r1194 Author: Jason Garrett-Glaser Date: Tue Jul 28 01:16:23 2009 -0700 Update help and cleanup in ratecontrol.c Deal with some out-of-date information. commit 0538c56a95cdc41a42a206079276a57d5d76b5a5 r1193 Author: Loren Merritt Date: Tue Jul 28 07:16:31 2009 +0000 15% faster refine_bidir_satd, 10% faster refine_bidir_rd (or less with trellis=2) 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 commit 306c3ee4b1c3cae804185597305725d2484f21b9 r1192 Author: Jason Garrett-Glaser Date: Mon Jul 27 21:03:00 2009 -0700 Faster bidir_rd plus some bugfixes 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. commit d6eed014d0af8f87045d6d5daf3376c486efdea7 r1191 Author: Jason Garrett-Glaser Date: Mon Jul 27 04:45:03 2009 -0700 Add "fastdecode" tune option It does what it says it does. commit 43773d27a6dd74c62b6d29d0ae0a80397469bfbf r1190 Author: Jason Garrett-Glaser Date: Sun Jul 26 12:20:09 2009 -0700 Fix two bugs in QPRD fprofile settings now actually fprofile QPRD. Don't use i_mbrd before initializing it. commit 9d0b5e95bbf3f9077806927264add762952f77ad r1189 Author: Jason Garrett-Glaser Date: Sun Jul 26 03:03:12 2009 -0700 Fix 10l in QPRD Trellis used wrong lambda with trellis=1 commit 4074956df13e058421fb5ba89b872be143742ffd r1188 Author: Jason Garrett-Glaser Date: Sat Jul 25 22:31:06 2009 -0700 Fix a nondeterminism with threads and subme>7 Also add a few more checks to eliminate the need for spel_border. commit 7733721e410acb96fdf740ca95d2a394b2a2b713 r1187 Author: Jason Garrett-Glaser Date: Thu Jul 23 12:20:39 2009 -0700 Add QPRD support as subme=10 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. commit f5e6980b3eb34ed610f5fc36a4378a0ed4277753 r1186 Author: Jason Garrett-Glaser Date: Tue Jul 21 19:56:21 2009 -0700 SSSE3 cachesplit workaround for avg2_w16 Palignr-based solution for the most commonly used qpel function. 1-1.5% faster overall on Core 2 chips. commit 29569051505a78db9dbbc8fda53ab11e7e08b994 r1185 Author: Loren Merritt Date: Wed Jul 22 20:20:52 2009 +0000 shut up valgrind warnings in trellis commit 88b35c2d3bd86b42059e27db365752da9f2cd032 r1184 Author: Anton Mitrofanov Date: Sat Jul 18 16:30:18 2009 -0700 New AQ algorithm option "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. commit f21daff3dc11cf5881f1727c3c9d505f0810d20b r1183 Author: Jason Garrett-Glaser Date: Wed Jul 15 12:43:35 2009 -0700 Cacheline-split SSSE3 chroma MC ~70% faster chroma MC on 32-bit Conroe Also slightly faster SSSE3 intra_sad_8x8c commit 6c13403195d42b2c0ee707e9f2a6e9f9cd81afd6 r1182 Author: Jason Garrett-Glaser Date: Sun Jul 12 12:07:01 2009 -0700 Improve documentation of qp/crf options commit 49bf7673b2f52b2cd8e9c10d8d6e9cbbb5422cf7 r1181 Author: Jason Garrett-Glaser Date: Thu Jul 9 19:02:57 2009 -0700 Merge array_non_zero into zigzag_sub Faster lossless, cleaner code. SSSE3 version of zigzag_sub_4x4_field, faster lossless interlaced coding. commit b63f5919e3f5367a0df3dbf218d5a94d2fdba5fb r1180 Author: James Darnley Date: Thu Jul 9 11:25:55 2009 -0700 Fix bug in reference frame autoadjustment For some types of input file, x264 did the adjustment before width/height were known. commit 96e2229e96d65420d491596affa9aaa068d718d6 r1179 Author: Jason Garrett-Glaser Date: Tue Jul 7 11:13:39 2009 -0700 Fix fprofile settings to match changes in defaults Also add b-adapt 2 to fprofile. commit 3f6713d5c794d4fbfd3131985e33a822a40cb870 r1178 Author: Jason Garrett-Glaser Date: Fri Jul 3 02:33:44 2009 -0700 Slightly faster dequant_flat assembly Eliminate some redundant shifts. commit af2a4ecd7bcefc97c8aa83913c9a2980206f9cd0 r1177 Author: Jason Garrett-Glaser Date: Wed Jul 1 21:14:57 2009 -0700 Totally new preset system for x264.c (not libx264), new defaults 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. commit 72534d466a6bd99b9cbf32c74e667bea608c6dee r1176 Author: Jason Garrett-Glaser Date: Wed Jul 1 16:33:12 2009 -0700 Update Gabriel's email address in AUTHORS commit f4dac817e45b967572f5c4e4af4644dc7d263512 r1175 Author: Jason Garrett-Glaser Date: Tue Jun 30 15:20:32 2009 -0700 Early termination for chroma encoding Faster chroma encoding by terminating early if heuristics indicate that the block will be DC-only. This works because the vast majority of inter chroma blocks have no coefficients at all, and those that do are almost always DC-only. Add two new helper DSP functions for this: dct_dc_8x8 and var2_8x8. mmx/sse2/ssse3 versions of each. Early termination is disabled at very low QPs due to it not being useful there. Performance increase is ~1-2% without trellis, up to 5-6% with trellis=2. Increase is greater with lower bitrates. commit 7fd6a9099f18ec028d6c73890258280e6f8a6c02 r1174 Author: David Conrad Date: Fri Jun 26 13:09:44 2009 -0700 Fix bug in checkasm frame_init_lowres_core check didn't check the C plane. However, all x86 and PPC assembly was correct regardless of the unit test being incorrect. commit f6d31669a2547110b9c1323aa51437296f2f3506 r1173 Author: Jason Garrett-Glaser Date: Wed Jun 24 14:39:15 2009 -0700 Add subpartition cost for sub-8x8 blocks Improves sub-p8x8 mode decision. commit b484fe1bff3cb68b3325a9b77d802789cf77e600 r1172 Author: Jason Garrett-Glaser Date: Wed Jun 24 13:24:18 2009 -0700 Yet more CABAC and CAVLC optimizations Also clean up a lot of pointless code duplication in CAVLC MV coding. commit 2c7cb4c3f111b49d3d961366ed338f38a0555716 r1171 Author: Jason Garrett-Glaser Date: Fri Jun 19 18:49:55 2009 -0700 Various CABAC optimizations and cleanups Faster CABAC CBF context calculation for inter blocks. Add x264_constant_p(), will probably be useful in the future as well. Simpler subpartition functions. Clean up and optimize mvd_cpn a bit more. Various other minor optimizations. commit 364d7dff8dd96f71465bed10594b9f1e78fe6139 r1170 Author: David Wolstencroft Date: Sat Jun 20 21:42:55 2009 +0200 AltiVec version of frame_init_lowres_core. 22.4x faster than C on PPC7450 and 25x on PPC970MP. commit ab85c9b0ae08a237472bfd14558353d5ecb92b3d r1169 Author: Jason Garrett-Glaser Date: Fri Jun 19 16:03:18 2009 -0700 MMX CABAC mvd sum calculation Faster CABAC mvd coding. commit 803c9d94641e57544932114f61f523e19bba6b4d r1168 Author: Jason Garrett-Glaser Date: Fri Jun 19 16:02:39 2009 -0700 Faster MV prediction Smaller code size, plus I get to use goto. commit 6199685d989facfd6105c30b50e30615e784fba3 r1167 Author: Jason Garrett-Glaser Date: Wed Jun 10 10:37:01 2009 -0700 Fix potential crash in checkasm ssim_end4_sse2 requires aligned sums commit b555e3f90b2060542d44bcb1a254d5a7bfc5d23a r1166 Author: Jason Garrett-Glaser Date: Wed Jun 10 10:11:00 2009 -0700 SSSE3, faster SSE2/MMX integral_init4v The real reason I wrote this was an excuse to use shufpd. commit 6841c5e2407e60de92c46bc6c649cd2fc4a13d75 r1165 Author: Mike Frysinger Date: Thu Jun 11 08:29:27 2009 +0000 configure check for uclinux commit a9526973579d7d48bb2730b64a547ad10b7ef6ef r1164 Author: Loren Merritt Date: Thu Jun 11 08:27:46 2009 +0000 fix a crash on frame width <= 48 pixels commit 3f56e271ac3d8a0e054b8b18e63886a6070ef05e r1163 Author: Loren Merritt Date: Wed May 27 20:47:18 2009 +0000 configure check for cc, rather than reporting lack of compiler as an asm error. configure check for -mno-cygwin, since it's removed from gcc4. commit f7bfcfaa36ac3f04447f668f94db73801ca86e4d r1162 Author: Loren Merritt Date: Sun May 24 05:01:26 2009 +0000 a better way to keep track of mv candidates. 2-4% faster dia, hex, and umh. commit 8572d517a52cb46692d2fcc0723fdbd01d1878b6 r1161 Author: Loren Merritt Date: Sun May 24 05:01:19 2009 +0000 reorder some motion estimation patterns. this change is useless on its own, but segregates the bitstream-changing part out of my next optimization. commit 79377d7309844d4e197ddf043fa9f115015fe286 r1160 Author: Loren Merritt Date: Mon May 25 19:16:05 2009 -0400 Fix VBV warning broken in r915 x264 will now correctly warn about maxrate specified without bufsize even when a level is not set. commit 3da3f957c096ad7885312b58d7ab12a7fab10111 r1159 Author: Loren Merritt Date: Mon May 25 07:03:10 2009 +0000 configure check for ssse3-capable binutils commit a2c01c124e4ee4b9d71a4b2a20ed572d439aea7b r1158 Author: Jason Garrett-Glaser Date: Sun May 24 16:58:08 2009 -0400 Fix 10L in r1155 Broke --me esa/tesa due to forgetting to add handling for x264_cost_mv_fpel. commit 37241b84054d5d012994c4567270c1b32dd9a038 r1157 Author: Jason Garrett-Glaser Date: Fri May 22 21:28:15 2009 -0700 Fix bug where satd was incorrectly used with subme<=1 Faster subme<=1 with i4x4 enabled. commit be17f0306ec42c2fc6e572a50d16c3717c7991ce r1156 Author: Jason Garrett-Glaser Date: Fri May 22 20:40:27 2009 -0700 Remove some pointless error handling code in cabac/cavlc commit b6470f07f02342d1abf960b1482e3e9e835fbc5d r1155 Author: Jason Garrett-Glaser Date: Fri May 22 18:40:12 2009 -0700 Save some memory on mv cost arrays Have quantizers that use the same lambda share the same cost array. commit 83d2c126382fb5f012e979b1a80f92fd49f35771 r1154 Author: Jason Garrett-Glaser Date: Fri May 22 16:57:33 2009 -0700 Various CABAC and CAVLC optimizations Backport CAVLC partial-inlining early termination to CABAC (~2-4% faster CABAC residual coding) commit 7b6ce6a005f791f1d82c369d2f1e1c30b9ccbe80 r1153 Author: Loren Merritt Date: Tue May 19 02:47:15 2009 +0000 fix a race condition at the end of thread_input commit fb4e2845497f77e2dae3262e1414de2cdf327ab5 r1152 Author: Jason Garrett-Glaser Date: Mon May 18 22:40:45 2009 -0400 Various trellis speed optimizations commit e86a1734047fb3e3af8dbe17a0e29479e839635b r1151 Author: Jason Garrett-Glaser Date: Sat May 16 12:16:34 2009 -0700 Make i686 the default arch on x86_32 Disabling asm will default to a generic arch. Also fix configure for gcc 4.4. commit 0e050663d16cd5b095723bd00136873aa461d5cd r1150 Author: Jason Garrett-Glaser Date: Fri May 15 20:07:59 2009 -0700 Faster signed golomb coding 3% faster CAVLC RDO and bitstream writing. commit 3b80f2321937ed4962c6e2fcc679765bbf729723 r1149 Author: Jason Garrett-Glaser Date: Thu May 14 04:11:15 2009 -0700 Faster spatial direct MV prediction unroll/tweak col_zero_flag commit 400740ba1a8a7a6001aa9b01e9be0b3d0905856e r1148 Author: Jason Garrett-Glaser Date: Mon May 4 04:19:28 2009 -0700 More CABAC and CAVLC optimizations Simplified function calling for block_residual_write_(cabac|cavlc) and improved sigmap coding. Tried making 0/1-bit specific versions of CABAC asm, but benefit was minimal under GCC 4.3. Helped a decent bit under 3.4, but you shouldn't be using such old versions anyways. commit f526f244cbc21c245064a2a9c5611840dd3b5203 r1147 Author: Jason Garrett-Glaser Date: Wed Apr 29 22:54:52 2009 -0700 Various optimizations in frametype lookahead commit ecae94a0ee6689bec9d32d64cce64cab7790a984 r1146 Author: Jason Garrett-Glaser Date: Sun Apr 26 22:13:17 2009 -0700 Some cosmetics/cleanup Move some macros to x86util.asm that should have been there to begin with. Fix a typo that didn't cause any issues. commit d2e1e1c35c43ea9c90c9211be6202143b69b35b9 r1145 Author: Guillaume Poirier Date: Tue Apr 21 21:18:44 2009 +0000 fix "incompatible types in initialization" compilation issues with GCC 4.3 (which is stricter than previous compiler version) commit 4fc8c03ad568efe3dd2f57db33b0863d29cb63a0 r1144 Author: Guillaume Poirier Date: Tue Apr 21 17:32:21 2009 +0200 fix conversions between vectors with differing element types or numbers of subparts errors commit 755470584932877c4d5ea1b51c2cc2dbd044b7ca r1143 Author: Jason Garrett-Glaser Date: Sat Apr 18 16:07:53 2009 -0700 Add "coded blocks" stat to output information. This measures the total percentage of blocks, intra and inter, which have nonzero coefficients. "y,uvAC,uvDC" refers to luma, chroma DC, and chroma AC blocks. Note that skip blocks are included in this stat. commit a908c88f0bbd4250afbd16b6c55b3c9f613af96d r1142 Author: Jason Garrett-Glaser Date: Fri Apr 17 23:38:29 2009 -0700 Enable asm predict_8x8_filter I'm not entirely sure how this snuck its way out of holger's intra pred patch. commit c74726e1ed0312e2073f0ea8c45804a870512579 r1141 Author: Jason Garrett-Glaser Date: Fri Apr 17 06:00:39 2009 -0700 Remove various bits of dead code found by CLANG. commit 37424f87a43a2dcecba61bc24b46506ced32307c r1140 Author: Jason Garrett-Glaser Date: Tue Apr 14 14:47:02 2009 -0700 Slightly faster SSE4 SA8D, SSE4 Hadamard_AC, SSE2 SSIM shufps is the most underrated SSE instruction on x86. commit 1024283b0321e53a3e08fddb1411429330bf1731 r1139 Author: Jason Garrett-Glaser Date: Thu Apr 9 02:14:41 2009 -0700 Various CABAC optimizations Move calculation of b_intra out of the core residual loop and hardcode it where applicable. Inlining cabac_mb_mvd was unnecessary and wasted tremendous amounts of code size. Inlining only cache_mvd is faster and significantly smaller. commit fe11a6f39e4e8235d685591ec9c0ec86eca4fee9 r1138 Author: Jason Garrett-Glaser Date: Wed Apr 8 05:45:03 2009 -0700 CAVLC optimizations faster bs_write_te, port CABAC context selection optimization to CAVLC. commit 1fda88277f6b2eda27a0f741d58b31532ad0664d r1137 Author: Jason Garrett-Glaser Date: Sun Apr 5 13:01:42 2009 -0700 Faster CABAC RDO Since the bypass case is quite unlikely, especially when doing merged sigmap/level coding, it's faster to use a branch than a cmov. commit 3f9ba82b9788231c879d31d9c4c8ebf4518d07fe r1136 Author: Jason Garrett-Glaser Date: Tue Mar 31 10:36:57 2009 -0700 Activate intra_sad_x3_8x8c in lookahead commit 9d0c378b235182341edd2e95f01d4fd25132ad50 r1135 Author: Jason Garrett-Glaser Date: Tue Mar 31 10:34:35 2009 -0700 MBAFF interlaced coding is not allowed in baseline profile commit b8808bf0a35b83c2fac05e07a504ad164c931960 r1134 Author: Jason Garrett-Glaser Date: Mon Mar 30 19:30:59 2009 -0700 intra_sad_x3_8x8 assembly commit 8df40a4c41eb5e79d0055f2e5af4b214285b9c8c r1133 Author: Jason Garrett-Glaser Date: Mon Mar 30 16:37:46 2009 -0700 intra_sad_x3_4x4 assembly commit d39f8ae1730b07286f1bb281a22d8cd57d0f90b9 r1132 Author: Jason Garrett-Glaser Date: Mon Mar 30 04:07:50 2009 -0700 intra_sad_x3_8x8c assembly Also fix intra_sad_x3_16x16's use of "n" as a loop variable (broke SWAP) commit d3ca4647a247186c2df7760be2a9c649efe34815 r1131 Author: Jason Garrett-Glaser Date: Sun Mar 29 18:27:32 2009 -0700 Shave one instruction off CABAC encode_decision range_lps>>6 ranges from 4-7, so (range_lps>>6)-4 == (range_lps>>6) & 3 commit 847597773aff56a5612a9edbebb40b350c637edf r1130 Author: Jason Garrett-Glaser Date: Thu Mar 26 22:22:23 2009 -0700 Faster probe_skip Add a second chroma threshold after the DC transform. commit c109c8e7db67df7194f2f913a7a4d65217caee26 r1129 Author: Jason Garrett-Glaser Date: Thu Mar 19 12:28:21 2009 -0700 Add missing "static" qualifier to two arrays Should slightly improve performance. commit 682b54d6175f98dfa14fec4d951f4b3b6e686b95 r1128 Author: Jason Garrett-Glaser Date: Tue Mar 17 11:01:57 2009 -0700 SSE2 zigzag_interleave Replace PHADD with FastShuffle (more accurate naming). This flag represents asm functions that rely on fast SSE2 shuffle units, and thus are only faster on Phenom, Nehalem, and Penryn CPUs. commit 8d82fecc3377b3052279f038f2273ade3a5b65cc r1127 Author: Jason Garrett-Glaser Date: Mon Mar 9 23:37:53 2009 -0700 Faster integral_init palignr to avoid unaligned loads is worth it in inith, but not initv. commit 96733ab692b4a268685d65070d6977964a466c91 r1126 Author: Holger Lubitz Date: Mon Mar 9 14:05:16 2009 -0700 Faster SSSE3 hpel_filter_v ~10% faster hpel_filter on 64-bit Penryn. 32-bit version by Jason Garrett-Glaser. commit 10d6ef07409ebe38b5f1e8e4516155a2fe66d4c6 r1125 Author: Jason Garrett-Glaser Date: Sat Mar 7 16:43:09 2009 -0800 Faster SSE2 pixel_var Optimized using the DEINTB method from r1122. ~32% faster var_16x16 on Conroe. commit e1c7f12cb828072b2b5b096195ff3004b83c7785 r1124 Author: Jason Garrett-Glaser Date: Sat Mar 7 00:27:27 2009 -0800 SSSE3 hpel_filter_v Optimized using the same method as in r1122. Patch partially by Holger. ~8% faster hpel filter on 64-bit Nehalem commit 3d780622c1ff19bc3d6a522a65879779a7ddb3dd r1123 Author: Jason Garrett-Glaser Date: Fri Mar 6 18:57:15 2009 -0800 Update some asm copyright headers commit 2dca5f5413051a26cbba4e20f3c77ff69b694ba3 r1122 Author: Holger Lubitz Date: Fri Mar 6 18:16:30 2009 -0800 Vastly faster SATD/SA8D/Hadamard_AC/SSD/DCT/IDCT Heavily optimized for Core 2 and Nehalem, but performance should improve on all modern x86 CPUs. 16x16 SATD: +18% speed on K8(64bit), +22% on K10(32bit), +42% on Penryn(64bit), +44% on Nehalem(64bit), +50% on P4(32bit), +98% on Conroe(64bit) Similar performance boosts in SATD-like functions (SA8D, hadamard_ac) and somewhat less in DCT/IDCT/SSD. Overall performance boost is up to ~15% on 64-bit Conroe. commit f3872178768cca2973f759c479e26f3ac35e55fe r1121 Author: Jason Garrett-Glaser Date: Fri Mar 6 15:28:47 2009 -0800 Update x264 copyright date commit 8544346a43456720f07e6a438cfbb0d84b39779a r1120 Author: Jason Garrett-Glaser Date: Wed Mar 4 03:16:06 2009 -0800 Remove pre-scenecut from fprofile commands as well Also add psy-trellis to fprofile commit 6f0b2a9b18f3af3fd7e495640756e1d5e43343e1 r1119 Author: Jason Garrett-Glaser Date: Tue Mar 3 16:21:52 2009 -0800 Slightly faster 8x16 SAD on Penryn Core 2 Same as MMX 8x16 cacheline SAD, but calls SSE2 8x16 SAD in non-cacheline case. Only Nehalem benefits from sizes smaller than 8x16, and Nehalem doesn't use cacheline functions, so no smaller versions are included. commit 1cc16dcee61496a5fb4da80d7605c1c88e2d371d r1118 Author: Jason Garrett-Glaser Date: Thu Feb 26 19:50:09 2009 -0800 Fix scenecut and VBV with videos of width/height <= 32 Also remove an unused variable commit 3e4946f305317856ed79e0898f25f10859df22ed r1117 Author: Jason Garrett-Glaser Date: Thu Feb 26 14:29:50 2009 -0800 Remove non-pre scenecut Add support for no-b-adapt + pre-scenecut (patch by BugMaster) Pre-scenecut was generally better than regular scenecut in terms of accuracy and regular scenecut didn't work in threaded mode anyways. Add no-scenecut option (scenecut=0 is now no scenecut; previously it was -1) Fix an incorrect bias towards P-frames near scenecuts with B-adapt 2. Simplify pre-scenecut code. commit 7ddb2c7da0621bb853b6702e6f59619c2d1c6a08 r1116 Author: Guillaume Poirier Date: Tue Mar 3 07:44:18 2009 -0800 Add AltiVec version of hadamard_ac. 2.4x faster than the C version. Note this this implementation is pretty naive and should be improved by implementing what's discussed in this ML thread: date: Mon, Feb 2, 2009 at 6:58 PM subject: Re: [x264-devel] [PATCH] AltiVec implementation of hadamard_ac routines commit 11863ace50e918ec75f7c8e22907ebf1000820e1 r1115 Author: Jason Garrett-Glaser Date: Thu Feb 26 12:07:56 2009 -0800 Fix regression in r1085 Deblocking was very slightly incorrect with partitions=all. Bug found by BugMaster. commit a933a3e6a6be918a2ae56e3d94ecea29143b9ea5 r1114 Author: Jason Garrett-Glaser Date: Mon Feb 16 05:56:12 2009 -0800 Optimize neighbor CBP calculation and fix related regression r1105 introduced array overflow in cbp handling commit cc4f807796220a042e386da259ddc38e6ca8e43b r1113 Author: Tal Aloni Date: Fri Feb 13 16:30:14 2009 -0800 Show FPS when importing a raw YUV file commit f43e22a7873ea3811bbc15e30d67681f23249087 r1112 Author: Anton Mitrofanov Date: Wed Feb 11 10:38:56 2009 -0800 Windows 64-bit support A "make distclean" is probably required after updating to this revision. commit d56e13f9016b898a3bd4043b26c2e70c2bb9f6c4 r1111 Author: Jason Garrett-Glaser Date: Wed Feb 11 10:35:56 2009 -0800 Minor fixes and cosmetics Suppress a GCC warning, fix a non-problematic array overflow, one REP->REP_RET. commit 05afd8e02bd83c6c9eba4d41b8d829a383689117 r1110 Author: Manuel Date: Tue Feb 10 12:06:47 2009 -0800 fix 10l in 75b495f2723fcb77f Original thread: date: Mon, Feb 9, 2009 at 9:37 PM subject: [x264-devel] commit: Spare a vec_perm and a vec_mergeh though using a LUT of permutation vectors . (Guillaume Poirier ) commit 75b495f2723fcb77fe7d5c92511136d3fea4cf13 r1109 Author: Guillaume Poirier Date: Mon Feb 9 21:17:33 2009 +0100 Spare a vec_perm and a vec_mergeh though using a LUT of permutation vectors. commit 37f98cb85024d288eab5508a3b04ca1324335693 r1108 Author: Guillaume Poirier Date: Mon Feb 9 21:12:23 2009 +0100 Promote chroma planes to 16 byte alignment. This will allow simplifying vectors loads that can only load 16-bytes aligned data (such as AltiVec). commit b5b9728b9b1cf9e4e54092515fd9fa86cd9023a4 r1107 Author: Jason Garrett-Glaser Date: Mon Feb 9 11:30:54 2009 -0800 Fix 10L in intra pred Forgetting a %define resulted in SIGILL on 32-bit systems without SSE (e.g. Athlon XP). commit 0ee50db35db3e5af0d40936dbc5ff7e2478b1a2c r1106 Author: Jason Garrett-Glaser Date: Sun Feb 8 23:36:40 2009 -0800 Add decimation in i16x16 blocks Up to +0.04db with CAVLC, generally a lot less with CABAC. commit 9bf45f6d397559486b5fe038c3847b0d35c61728 r1105 Author: Jason Garrett-Glaser Date: Sat Feb 7 02:27:16 2009 -0800 Much faster CABAC residual context selection Up to ~17% faster CABAC RDO, ~36% faster intra-only CABAC RDO. Up to 7% faster overall in extreme cases. commit 3927938121ef63d72d9fd429c25202ebd65dd208 r1104 Author: Jason Garrett-Glaser Date: Sat Feb 7 01:57:43 2009 -0800 Faster coeff_last64 on 32-bit commit 32615747d3ab5648b666b4f55531f47b3c075521 r1103 Author: Jason Garrett-Glaser Date: Fri Feb 6 02:59:36 2009 -0800 More intra pred asm optimizations SSSE3 version of predict_8x8_hu SSE2 version of predict_8x8c_p SSSE3 versions of both planar prediction functions Optimizations to predict_16x16_p_sse2 Some unnecessary REP_RETs -> RETs. SSE2 version of predict_8x8_vr by Holger. SSE2 version of predict_8x8_hd. Don't compile MMX versions of some of the pred functions on x86_64. Remove now-useless x86_64 C versions of 4x4 pred functions. Rewrite some of the x86_64-only C functions in asm. commit 711e6e87967aa3813a894fdfcd1e2b7eb48328a6 r1102 Author: Manuel Date: Sun Feb 8 21:35:51 2009 +0100 Speed-up mc_chroma_altivec by using vec_mladd cleverly, and unrolling. Also put width == 2 variant in its own scalar function because it's faster than a vectorized one. commit b69548aa3a0218ba1d4f934edcf8942f2b1682f5 r1101 Author: Holger Lubitz Date: Wed Feb 4 12:46:17 2009 -0800 Merging Holger's GSOC branch part 2: intra prediction Assembly versions of most remaining 4x4 and 8x8 intra pred functions. Assembly version of predict_8x8_filter. A few other optimizations. Primarily Core 2-optimized. commit 122a54a0dbbfd5a8b649a6ca7eb0b7d3c42f89aa r1100 Author: Guillaume Poirier Date: Wed Feb 4 10:04:55 2009 +0000 10l: fix compilation with GCC 4.3+ commit c0be8106d40b2ccbfec37229afaecf236b03762c r1099 Author: Jason Garrett-Glaser Date: Sat Jan 31 05:00:39 2009 -0800 Faster 8x8dct+CAVLC interleave Integrate array_non_zero with the CAVLC 8x8dct interleave function. Roughly 1.5-2x faster than the original separate array_non_zero method. commit 91bffdcc24e59620cc09aa4288f7e0c0b74c8891 r1098 Author: Jason Garrett-Glaser Date: Sat Jan 31 01:00:26 2009 -0800 Measure CBP cost in i8x8 RD refinement ~0.02-0.05db PSNR gain at high quants in intra-only encoding, pretty small otherwise. Allows a small optimization in i8x8 encoding. commit e404f350afc3c52a99d13d22f862cd2ede1438b0 r1097 Author: Guillaume Poirier Date: Sun Feb 1 20:58:00 2009 +0100 Take advantage of saturated signed horizontal sum instructions in the variance computation epilogue since there won't be any overflow triggering an overflow. Suggested by Loren Merritt commit 4c171c3b1c803a173ace823275882b3c9a2ecd24 r1096 Author: Jason Garrett-Glaser Date: Fri Jan 30 03:40:54 2009 -0800 Massive overhaul of nnz/cbp calculation Modify quantization to also calculate array_non_zero. PPC assembly changes by gpoirior. New quant asm includes some small tweaks to quant and SSE4 versions using ptest for the array_non_zero. Use this new feature of quant to merge nnz/cbp calculation directly with encoding and avoid many unnecessary calls to dequant/zigzag/decimate/etc. Also add new i16x16 DC-only iDCT with asm. Since intra encoding now directly calculates nnz, skip_intra now backs up nnz/cbp as well. Output should be equivalent except when using p4x4+RDO because of a subtlety involving old nnz values lying around. Performance increase in macroblock_encode: ~18% with dct-decimate, 30% without at CRF 25. Overall performance increase 0-6% depending on encoding settings. commit 8ae672fe2e0f779e57abe560bafdf41ec1fea533 r1095 Author: Guillaume Poirier Date: Thu Jan 29 01:28:12 2009 -0800 Add PowerPC support for "checkasm --bench", reading the time base register. This isn't ideal since the `time base' register is running at a fraction of the processor cycle speed, so the measurement isn't as precise as x86's rdtsc. It's better than nothing though... commit c9095eb2792b18a264569d46a3d923eafe333f45 r1094 Author: Brad Date: Thu Jan 29 04:35:34 2009 +0000 fix detection of pthread and isfinite on OpenBSD commit 1df50b9287c83d5443d19482345b6842b78081c3 r1093 Author: Loren Merritt Date: Tue Jan 27 05:42:51 2009 +0000 remove $ECHON kludge, which broke on SunOS. bring back `gcc -MT`. remove auto-reconfigure on svn update, which has done nothing since we stopped using svn. fix $AS on sparc (was disabled by mmx check). fix --extra-asflags (was ignored). mark bash scripts as bash, not sh patch partly by Greg Robinson and Jugdish. commit 60f4cd8936af4997cfbd9650ea27152df00c5669 r1092 Author: Loren Merritt Date: Mon Jan 26 14:28:48 2009 +0000 1.6x faster satd_c (and sa8d and hadamard_ac) with pseudo-simd. 60KB smaller binary. commit 71c5a8dca6e5f7bf2330d028989eeeab27701151 r1091 Author: Jason Garrett-Glaser Date: Tue Jan 27 23:27:56 2009 -0800 Hack around a potential failure point in VBV pred_b_from_p can become absurdly large in static scenes, leading to rare collapses of quality with VBV+B-frames+threads. This isn't a final fix, but should resolve the problem in most cases in the meantime. commit 8e2c4b76dd49c44cedf46343e46b292d5a0ca39e r1090 Author: Jason Garrett-Glaser Date: Mon Jan 26 23:43:25 2009 -0800 Much faster chroma encoding and other opts ~15% faster chroma encode by reorganizing CBP calculation and adding special-case idct_dc function, since most coded chroma blocks are DC-only. Small optimization in cache_save (skip_bp) Fix array_non_zero to not violate strict aliasing (should eliminate miscompilation issues in the future) Add in automatic substitutions for some asm instructions that have an equivalent smaller representation. commit 355c445f222eae4f953f1be9f8e1d44a2a07d639 r1089 Author: Guillaume Poirier Date: Mon Jan 26 06:28:23 2009 -0800 add AltiVec implementation of x264_mc_copy_w16_aligned commit 71ac0a34bc0460bf67da68f300e4150bc50d9aae r1088 Author: Guillaume Poirier Date: Fri Jan 23 13:53:06 2009 -0800 add AltiVec implementation of x264_pixel_var_16x16 and x264_pixel_var_8x8 commit 1959672cf6f18da888940261916dbf81248e0598 r1087 Author: Guillaume Poirier Date: Fri Jan 23 01:11:20 2009 -0800 add AltiVec 16 <-> 32 bits conversions macros commit 39a279613d10fa4dbe608f1a2af1eb86686033af r1086 Author: Guillaume Poirier Date: Mon Jan 19 21:29:27 2009 +0100 Replace 16x16=>32 mul + pack + add by a simple 16x16=>16 multiply-add. Suggested by Loren. commit 5fb6417309febda6f73a98494cb935379129e15d r1085 Author: Jason Garrett-Glaser Date: Mon Jan 19 15:17:53 2009 -0800 Eliminate support for direct_8x8_inference=0 The benefit in the most extreme contrived situation was at most 0.001db PSNR, at the cost of slower decoding. As this option was basically useless, it was a waste of code and prevented some other useful optimizations. Remove some unused mc code related to sub-8x8 partitions. Small deblocking speedup when p4x4 is used. Also remove unused x264_nal_decode prototype from x264.h. commit a48d1d0a2ad590d041b79bb152ed47d00451ba8d r1084 Author: Brad Date: Mon Jan 19 05:14:53 2009 -0800 Add AltiVec and CPU numbers detection on OpenBSD. commit 09e76c903d3419619ed326a4dd114369a55bdd6e r1083 Author: Guillaume Poirier Date: Sun Jan 18 22:44:14 2009 +0100 Add AltiVec implementation of predict_8x8c_p. 2.6x faster than scalar C. commit bde164d50f1936b28a9cd66f8be8d9995cc5a01b r1082 Author: Jason Garrett-Glaser Date: Sat Jan 17 15:16:37 2009 -0500 Warn if direct auto wasn't set on the first pass And, if it wasn't, run direct auto as if it was the first pass, rather than simply forcing temporal direct mode on all frames. Also a small tweak to coeff_level_run asm. commit 201f7ad8ad50ff460f79cb44e0bee6aebbf039ca r1081 Author: Brad Date: Sat Jan 17 12:52:28 2009 +0000 Changes the PowerPC ppccommon.h header so it no longer checks for a particular OS such as Linux but instead looks for HAVE_ALTIVEC_H being set. Fixes all *BSD/PowerPC builds. commit 56e91836a12f1b119fb4aae43182f2fc012f1eca r1080 Author: Guillaume Poirier Date: Wed Jan 14 21:56:31 2009 +0100 update x264_hpel_filter_altivec's prototype to match the one of the C version. It changed in commit 045ae4045a1827555b3eaab4fbf3c9809e98c58f (factorization of mallocs) (NB: Altivec implementation wasn't allocating and writing to any scratch memory.) commit d2b6423db8310e5238fd7c0e517b3344578cc08a r1079 Author: Guillaume Poirier Date: Wed Jan 14 21:49:42 2009 +0100 rename vector+array unions to closer match the vector typedefs names. commit 264e447cc4ce267d7e4d078b080716093a78a2c8 r1078 Author: Guillaume Poirier Date: Wed Jan 14 21:13:58 2009 +0100 Add Altivec implementation of all the remaining 16x16 predict routines. commit e46f64824a718ca146724d6cfa104aaba16eb169 r1077 Author: Jason Garrett-Glaser Date: Tue Jan 13 21:11:50 2009 -0500 Cache ref costs and use more accurate MV costs New MV costs should improve quality slightly by improving the smoothness of the field of MV costs (and they're closer to CABAC's actual costs). Despite being optimized for CABAC, they still help under CAVLC, albeit less. MV cost change by Loren Merritt commit 79bfb039de253c986986fbd99935c0d4a95ad503 r1076 Author: Jason Garrett-Glaser Date: Tue Jan 13 20:22:36 2009 -0500 Support forced frametypes with scenecut/b-adapt This allows an input qpfile to be used to force I-frames, for example. The same can be done through the library interface. Document the format of the qpfile in --longhelp and the forcing of frametypes in x264.h Note that forcing B-frames and B-refs may not always have the intended result. Patch partially by Steven Walters . commit 7c4f8297e057a439cf1f1d7cf95d05b9f27063c7 r1075 Author: Jason Garrett-Glaser Date: Tue Jan 13 19:58:44 2009 -0500 Remove an IDIV from i8x8 analysis Only one IDIV is left in macroblock level code (transform_rd) commit b6bb3d4287727b73291f9e9a2bf38589ac397382 r1074 Author: Jason Garrett-Glaser Date: Thu Jan 8 15:07:16 2009 -0500 Fix regression in r1066 With some combinations of video width and other settings, the scratch buffer was slightly too small. This caused heap corruption on some systems. Also prevent merange from being raised during encoding with esa/tesa through encoder_reconfig, as this no longer works. commit 6a4a9beae060d69bbeaeb8c1c3056fb6ae6765f6 r1073 Author: Jason Garrett-Glaser Date: Tue Jan 6 16:55:44 2009 -0500 Disable B-frames in lossless mode They hurt compression anyways, and direct auto was bugged with lossless. commit f586ba52b87ebb6b1d7689603680ef7d3219e09a r1072 Author: Brad Smith Date: Mon Jan 5 22:53:11 2009 +0000 Factorize in ppccommon.h the conditional inclusion of altivec.h on Linux systems. commit 87b6d55ebda8a11186f7b09b5866b05a4584d13d r1071 Author: Brad Smith Date: Mon Jan 5 15:58:32 2009 -0500 Disable __builtin_clz() intrinsic on gcc versions prior to 3.4. The function did not exist before that version. commit 6f7c9be698848e8d9fd116b728af7d718ea43a2f r1070 Author: Jason Garrett-Glaser Date: Thu Jan 1 21:44:00 2009 -0500 Small tweaks to coeff asm Factor out a few redundant pxors Related cosmetics commit ed32ad20d6914d1781c7711574f10a8df49e3e20 r1069 Author: Steven Walters Date: Tue Dec 30 22:20:37 2008 -0500 Use the correct strtok under MSVC Also change one malloc -> x264_malloc commit 390d26ad2ca72b420448c36a747d3ee49b79e75b r1068 Author: Jason Garrett-Glaser Date: Tue Dec 30 22:14:45 2008 -0500 Add stack alignment for lookahead functions Should allow libx264 to be called from non-gcc-compiled applications without adding force_align_arg_pointer. commit 00cef64dd3fff5d4b5b9b0e63314c11bfb7d33e0 r1067 Author: Jason Garrett-Glaser Date: Tue Dec 30 20:47:45 2008 -0500 Add support for SSE4a (Phenom) LZCNT instruction Significantly speeds up coeff_last and coeff_level_run on Phenom CPUs for faster CAVLC and CABAC. Also a small tweak to coeff_level_run asm. commit 045ae4045a1827555b3eaab4fbf3c9809e98c58f r1066 Author: Steven Walters Date: Mon Dec 29 05:14:26 2008 +0000 factor mallocs out of hpel, ssim, and esa. there should now be no memory allocation outside of init-time. commit 681544ef803f3bd0429659495f97455aed1158a0 r1065 Author: Jason Garrett-Glaser Date: Tue Dec 30 03:12:17 2008 +0000 Much faster CAVLC RDO and bitstream writing Pure asm version of level/run coding. Over 2x faster than C. Up to 40% faster CAVLC RDO. Overall benefit up to ~7.5% with RDO or ~5% with fast encoding settings. commit 648e132f7135c7e18625198e3ffe2c6c7d824df6 r1064 Author: Loren Merritt Date: Mon Dec 29 21:52:25 2008 -0500 Cosmetics: cleaner syntax for defining temporary registers in asm Globally define t#[qdwb], so that only t# needs to be locally defined when reorganizing registers commit 84a1ca6ce70fe7bad4922ddc5a72c2e9cd73703b r1063 Author: Jason Garrett-Glaser Date: Sat Dec 27 21:36:14 2008 -0500 Much faster CABAC RDO Since RDO doesn't care about what order bit costs are calculated, merge sigmap and level coding into the same loop in RDO. This is bit-exact for 4x4dct but slightly incorrect for 8x8dct due to the sigmap containing duplicated contexts. However, the PSNR penalty of this is extremely small (~0.001db). Speed benefit is about 15% in 4x4dct and 30% in 8x8dct residual bit cost calculation at QP20. Overall encoding speed benefit is up to 5%, depending on encoding settings. Also remove an old unnecessary CABAC table that hasn't been used for years. commit 40ad1b6d411d1e7d0788d29627804a19977bb6ee r1062 Author: Jason Garrett-Glaser Date: Fri Dec 26 07:35:49 2008 -0500 VLC table optimizations Slightly reorganize VLC tables for ~2% faster block_residual_write_cavlc. Also a small optimization in p8x8 CAVLC. commit 839cd8cf33492213f7878bf14c26b387b6599abd r1061 Author: Loren Merritt Date: Wed Dec 24 22:58:17 2008 -0500 Fix crash in --me esa/tesa introduced in r1058 Also suppress the last mingw warning message commit 42070dff1bc3019a6f56773fce3dd6e328e3a61b r1060 Author: Jason Garrett-Glaser Date: Tue Dec 23 22:33:28 2008 -0500 Optimize variance asm + minor changes Remove SAD argument from var, not needed anymore. Speed up var asm a bit by eliminating psadbw and instead HADDWing at end. Eliminate all remaining warnings on gcc 3.4 on cygwin Port another minor optimization from lavc (pskip) commit 265d61bcdc5e6ce6688e377af9f6c0136724ed59 r1059 Author: Jason Garrett-Glaser Date: Tue Dec 23 18:31:48 2008 -0500 Minor CABAC cleanups and related optimizations Merge the two list tables to allow cleaner MC/CABAC/CAVLC code Remove lots of unnecessary {s Port some very minor opts from lavc commit a4ec1020efb1a2a6757f8f891d78c2dd9344bb91 r1058 Author: Loren Merritt Date: Thu Dec 11 19:47:17 2008 +0000 faster ESA init reduce memory if using ESA and not p4x4 commit 5f8a1490eb0bc2a934c34bc8307bfdc1ade6a92d r1057 Author: Jason Garrett-Glaser Date: Mon Dec 15 23:02:49 2008 -0800 More macroblock_cache optimizations Patch partially by Loren Merritt commit e59ee249829049de338bebc3a2a00f9e471b40f3 r1056 Author: Jason Garrett-Glaser Date: Mon Dec 15 13:15:29 2008 -0800 Faster macroblock_cache_rect Explicit loop unrolling commit 2b8d6a6f957be623186ea2a20bcb13c3637440b8 r1055 Author: Jason Garrett-Glaser Date: Sun Dec 14 18:30:51 2008 -0800 Optimizations in predict_mv_direct Add some early terminations and minor optimizations This change may also fix the extremely rare direct+threading MV bug. commit 918ff3c6a33e170655b61af85f8955ec5590fff8 r1054 Author: David Wolstencroft Date: Sun Dec 14 10:47:28 2008 +0000 Fix visual corruption when picture width was not mod 32. The previous Altivec implemention of mc_chroma assumed that i_src_stride was always mod 16. commit 9089d217078450fad075b5eb61f372572d094a5f r1053 Author: Guillaume Poirier Date: Mon Dec 8 21:11:45 2008 +0100 Add support for FSF GCC version >= 4.3 on OSX. So far, only Apple GCC version was supported. commit ad2c84f76f9fbb4f360caeb87df824beab023bbf r1052 Author: Jason Garrett-Glaser Date: Thu Dec 11 17:31:52 2008 -0800 More accurate refcost for p8x8 CAVLC Slightly better quality, especially in non-RD mode, with CAVLC. commit 549cc55b50df76d5167c0ace75c62595feb753ca r1051 Author: Loren Merritt Date: Wed Dec 10 20:54:17 2008 -0800 use lookup tables instead of actual exp/pow for AQ Significant speed boost, especially on CPUs with atrociously slow floating point units (e.g. Pentium 4 saves 800 clocks per MB with this change). Add x264_clz function as part of the LUT system: this may be useful later. Note this changes output somewhat as the numbers from the lookup table are not exact. commit 877d22e071f1b73fb33c628cc273e2819d10c3de r1050 Author: Jason Garrett-Glaser Date: Wed Dec 10 20:53:13 2008 -0800 Suppress saveptr warnings on Windows GCC commit 0fdd0403cc9cc95637e287ddd1b257d6b65b7ddb r1049 Author: Jason Garrett-Glaser Date: Wed Dec 10 20:52:06 2008 -0800 More small speed tweaks to macroblock.c commit 77028cd3671de855affb02ffefe6bbd99ac7816e r1048 Author: Jason Garrett-Glaser Date: Mon Dec 8 13:44:23 2008 -0800 Much faster CAVLC residual coding Use a VLC table for common levelcodes instead of constructing them on-the-spot Branchless version of i_trailing calculation (2x faster on Nehalem) Completely remove array_non_zero_count and instead use the count calculated in level/run coding. Note: this slightly changes output with subme > 7 due to different nonzero counts being stored during qpel RD. commit f773bf06256a467f6b18418d97ce2c7ddbe5728c r1047 Author: Guillaume Poirier Date: Fri Dec 5 22:26:55 2008 +0100 fix compilation with GCC-4.3+ commit 71d34b4eb454027cd742e6d96e2a70cce8cd163c r1046 Author: Jason Garrett-Glaser Date: Sat Nov 29 23:13:58 2008 -0800 High Profile allows 25% higher maxbitrate/cpb Correct level detection to take this into account. commit cc40e308c919010ef9ae6ff376cda56a58a79f3a r1045 Author: BugMaster Date: Sat Nov 29 14:04:29 2008 -0800 s/nasm/yasm in VS project file commit 6c3e0258776c1117929aec7c12d51b88c214467c r1044 Author: Jason Garrett-Glaser Date: Sat Nov 29 04:49:18 2008 -0800 Cosmetic: update various file headers. commit 2f031b0e31b799072383792358eee376baeb2ba7 r1043 Author: Loren Merritt Date: Sat Nov 29 11:54:02 2008 +0000 add date and compiler to `x264 --version` commit 5df2a7162aecda66b3da8dde501971389b1bbd44 r1042 Author: Jason Garrett-Glaser Date: Fri Nov 28 14:32:11 2008 -0800 10L in r1041 commit 12724e638e8d28ce97bcb9c77d2bb7336b087af3 r1041 Author: Jason Garrett-Glaser Date: Thu Nov 27 19:37:56 2008 -0800 Significantly faster CABAC and CAVLC residual coding and bit cost calculation Early-terminate in residual writing using stored nnz counts To allow the above, store nnz counts for luma and chroma DC Add assembly functions to find the last nonzero coefficient in a block Overall ~1.9% faster at subme9+8x8dct+qp25 with CAVLC, ~0.7% faster with CABAC Note this changes output slightly with CABAC RDO because it requires always storing correct nnz values during RDO, which wasn't done before in cases it wasn't useful. CAVLC output should be equivalent. commit 1591275a92faa3d63186e6de1e9022956113bc1d r1040 Author: Jason Garrett-Glaser Date: Wed Nov 26 23:42:55 2008 -0800 dequant_4x4_dc assembly About 3.5x faster DC dequant on Conroe commit 2338e1301aded556be8b85c6c3b4050e562ed862 r1039 Author: Loren Merritt Date: Thu Nov 27 02:37:46 2008 +0000 fix an overflow in dct4x4dc_mmx (unlikely to have occurred in any real video) commit a7fd9f5da062de323ae89f9a71ede03bfd6ddb6a r1038 Author: Jason Garrett-Glaser Date: Tue Nov 25 16:30:39 2008 -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. commit 0fe9b85f393e00b79c37d8c81aeae2a2f3d41290 r1037 Author: BugMaster Date: Tue Nov 25 15:11:24 2008 -0800 Fix rare warning messages in ratecontrol due to r1020 commit adffb7fa3d3db6d2fa2ad97e0c950afec8889ea5 r1036 Author: BugMaster Date: Tue Nov 25 15:10:43 2008 -0800 Fix MSVC compilation and clean up MSVC build file Remove Release64 which never worked anyways. commit e1013e8152254614696bbc9d92959bc9705d98b1 r1035 Author: Jason Garrett-Glaser Date: Tue Nov 25 01:04:26 2008 -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. commit cab23dd7e6bf4ed501f36e1e6f64d4902d0489c9 r1034 Author: Guillaume Poirier Date: Tue Nov 25 17:27:27 2008 +0100 fix indentation, whitespace cleanup, more consistent indentation of macro backslashes commit 4bf4109aee5b602f8a124b434e18f93ef539bbe6 r1033 Author: David Wolstencroft Date: Sat Nov 22 17:54:38 2008 +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. commit 8215f79c7e19747b3206bcd6245be6cc6e668145 r1032 Author: Loren Merritt Date: Fri Nov 7 05:31:24 2008 +0000 refactor satd. 20KB smaller binary. refactor sa8d. slightly faster. more checkasm for hadamard. commit 3a028c8e50238b7799175bd5a172e5517b4baf8d r1031 Author: Jason Garrett-Glaser Date: Mon Nov 24 21:56:24 2008 -0800 Fix crash with threads and SSEMisalign on Phenom Misalign mask needed to be set separately for each encoding thread. commit f9dba8bb274dffb19394db20912823464efcb8e1 r1030 Author: Jason Garrett-Glaser Date: Fri Nov 21 03:39:11 2008 -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. commit cb3c213850320fb0c1b17ae8bbbbf5d687e43961 r1029 Author: Jason Garrett-Glaser Date: Thu Nov 20 20:11:14 2008 -0800 A few tweaks to decimate asm A little bit faster on both 32-bit and 64-bit commit 83baa7fdd2edf3e2f9522fc8b79e0826bcf190fc r1028 Author: Jason Garrett-Glaser Date: Wed Nov 12 16:50:31 2008 -0800 Nehalem optimization part 2: SSE2 width-8 SAD Helps a bit on Phenom as well ~25% faster width8 multiSAD on Nehalem commit aa14719bf2b78f8fd3da7bbabb0faf142313dae1 r1027 Author: Jason Garrett-Glaser Date: Mon Nov 10 23:34:02 2008 -0800 Add subme=0 (fullpel motion estimation only) Only for experimental purposes and ultra-fast encoding. Probably not a good idea for firstpass. commit 745a48beddc58e2ef121326e9156d3d42590a4b5 r1026 Author: Jason Garrett-Glaser Date: Mon Nov 10 15:34:48 2008 -0800 Fix minor memory leak in r1022 commit fdb6114d1b456e1438374671ec42d1d77cdd05f8 r1025 Author: Jason Garrett-Glaser Date: Mon Nov 10 15:32:06 2008 -0800 r1024 borked checkasm Remove idct/dct2x2 from checkasm as they are no longer in dctf commit 2652abeae5445ffefded5ee7d0853300d0973b37 r1024 Author: Jason Garrett-Glaser Date: Sun Nov 9 17:39:21 2008 -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. commit f13d4637fe9b2f10b8c103500ac9293bfca3ad1f r1023 Author: Jason Garrett-Glaser Date: Sun Nov 9 17:34:31 2008 -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 commit 7cdaf638c3777f2b38fb60181dde7ed4de614cc1 r1022 Author: Jason Garrett-Glaser Date: Sat Nov 8 20:16:17 2008 -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. commit 852579be365549db3ccc1c2906c9a1d2f4a92ac9 r1021 Author: Jason Garrett-Glaser Date: Fri Nov 7 11:39:43 2008 -0800 Faster CABAC residual encoding 6% faster block_residual_write_cabac in RD mode. commit 418cace8646a6f546a9026da47f79fad7285f577 r1020 Author: Jason Garrett-Glaser Date: Wed Nov 5 19:51:59 2008 -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). commit a5ac6a5b8688915553fe6fccee09f1272f3788ac r1019 Author: Jason Garrett-Glaser Date: Wed Nov 5 03:11:45 2008 -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%. commit 41b8069cb74fa3bc905618225be07ee8d35bbc79 r1018 Author: Gabriel Bouvigne Date: Tue Nov 4 09:56:03 2008 -0800 Fix potential infinite loop in VBV under GCC 4.2 commit e4c4568d4f0f234e942b4855391aea7224c41eb6 r1017 Author: Jason Garrett-Glaser Date: Mon Nov 3 22:59:49 2008 -0800 Encoder_reconfig: esa/tesa can only be enabled if they were on to begin with Bug report by kemuri-_9. commit dbc5ef040b1f8a83e7491dc8a2fc8943b1e20c07 r1016 Author: Loren Merritt Date: Thu Oct 30 00:47:09 2008 -0700 Fix bug in hadamard_ac SSE assembly Some extreme inputs could cause overflows. commit a0a1bfac7f4a09159f6ef2bf13fb69548b6c5a02 r1015 Author: Jason Garrett-Glaser Date: Tue Oct 28 20:35:15 2008 -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. commit aa40e41abae051191117ae670cadd9cd50f66b6f r1014 Author: Jason Garrett-Glaser Date: Sat Oct 25 01:50:08 2008 -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 commit d7df1a477b5e0e851d206e8c25da0b275ae0b7cc r1013 Author: Anders Ossowicki Date: Thu Oct 23 22:36:11 2008 -0700 Replace "git-command" with "git command" in version.sh for git 1.6 support commit 990274cd5fd276bb26ac0fa13fc9bc1cbcf7acbc r1012 Author: Loren Merritt Date: Thu Oct 23 13:45:04 2008 -0700 Add assembly version of CAVLC 8x8dct interleave Faster CAVLC encoding and RDO with 8x8dct commit 86a0fe50c6e369d6dacac5b992febb4bd09de85d r1011 Author: Alexander Strange Date: Wed Oct 22 15:55:30 2008 -0700 Add support for psy-rd/trellis to encoder_reconfig commit 4c78f091e625e87b8f82c567af81969c2fd3e671 r1010 Author: Alexander Strange Date: Wed Oct 22 15:00:43 2008 -0700 Fix Darwin speed regression commit 8ca555ef691e20d4eb429b45e178f4c0108b607d r1009 Author: Gabriel Bouvigne Date: Wed Oct 22 14:48:47 2008 -0700 Further improve prediction of bitrate and VBV in threaded mode commit 8fa0bf3d56fa1b02a44f8ee0f673ea998294bd7e r1008 Author: Jason Garrett-Glaser Date: Wed Oct 22 13:37:09 2008 -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. commit d0add77f5f084253202747266f85daa65f7fc9cc r1007 Author: Jason Garrett-Glaser Date: Wed Oct 22 02:20:06 2008 -0700 Faster qpel-RD 3-4% faster qpel-RD; avoid re-checking bmv/pmv during the hex search. commit f451563f93fad8972c0e9b788b30799e777e913a r1006 Author: Jason Garrett-Glaser Date: Wed Oct 22 00:37:00 2008 -0700 Some minor optimizations in RD refinement Don't write b subpartition in CABAC RDO Calculate nonzero count in i4x4 CAVLC RDO commit 84ede33bec64332cc4bc5da1106c53f3cffa919b r1005 Author: Jason Garrett-Glaser Date: Tue Oct 21 20:17:18 2008 -0700 Faster deblocking when p4x4 isn't used Most of the MV checks can be skipped, resulting in faster strength calculation commit ce0b11099e5fa920b8d1bc39389ae9373f921358 r1004 Author: Jason Garrett-Glaser Date: Tue Oct 21 19:38:21 2008 -0700 Print profile and level information upon starting encode Previously level was only printed as part of autodetect, and only in verbose mode. commit 296b39dd863ea90a12d8a52848d1135e387a28f3 r1003 Author: Jason Garrett-Glaser Date: Tue Oct 21 17:10:46 2008 -0700 Fix possible crash in trellis at very low QPs commit f5da8110606c1bdb8f3a194f11574db28855415e r1002 Author: Jason Garrett-Glaser Date: Tue Oct 21 14:59:07 2008 -0700 Add assembly versions of decimate_score 3-7x faster decimation, 1-3% faster overall commit 6d9ef8ad39b0bfa5df0c1305e91ae932aad4997e r1001 Author: Jason Garrett-Glaser Date: Sat Oct 18 03:40:59 2008 -0700 Fix typo in subme8/9 lossless qpel-RD Slightly improves compression. commit 79194caffdc216e338674d88e50adca2f4ea8fa2 r1000 Author: Jason Garrett-Glaser Date: Thu Oct 16 03:17:53 2008 -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. commit cc510478de710f86ab400f610b6e075304d902cb r999 Author: Loren Merritt Date: Thu Oct 2 20:57:08 2008 -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. commit 6768543b76ee5ed65d096444fda2bc282b41dd91 r998 Author: Jason Garrett-Glaser Date: Thu Oct 2 18:11:13 2008 -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. commit 65b837fc75bdbabcc34f5e12048c10d77932eee2 r997 Author: Ralf Terdic Date: Thu Oct 2 08:52:33 2008 -0700 Fix minor memory leak accidentally added with the addition of b-adapt 2 commit c89bc900a3bf0d4c4c728ad378703970b4f14e18 r996 Author: Jason Garrett-Glaser Date: Tue Sep 30 18:34:56 2008 -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. commit 2324c7074585b8b3f56e49ae41df9cbca06f6185 r995 Author: Jason Garrett-Glaser Date: Mon Sep 29 00:11:38 2008 -0700 Fix potential miscompilation of some inline asm Caused problems under some gcc 4.x versions with predictive lossless commit b35a044b95c7eab2c91f55a3ac4100ca26a29d92 r994 Author: Jason Garrett-Glaser Date: Sat Sep 27 16:37:27 2008 -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. commit 37269f42fca115f2083e01135f7bab0b4e9fce3b r993 Author: Jason Garrett-Glaser Date: Fri Sep 26 09:19:56 2008 -0700 Fix typo in progress indicator when using piped input commit e21b11f4ae99ef8ec0e37c1605f72ef18adfa7c3 r992 Author: Loren Merritt Date: Mon Sep 22 04:17:35 2008 -0600 avg_weight_ssse3 commit 972814a9c76c8d718063e27a15328fa638e92c61 r991 Author: Loren Merritt Date: Sat Sep 20 08:41:17 2008 -0600 fix bitstream writer on bigendian 64bit (regression in r903) commit 7265a215167d305cbc818dad6bb413901bb7aca2 r990 Author: Loren Merritt Date: Fri Sep 19 23:52:11 2008 -0600 remove authors whose code no longer exists commit 48734012a4fa151aa26d9e1a5f67d35303a4b4f6 r989 Author: Loren Merritt Date: Mon Sep 15 05:00:26 2008 -0600 more diagnostics when configure finds an unsuitable assembler commit 41c9e22257b7da84299aa55fd8e6564577d4246e r988 Author: Jason Garrett-Glaser Date: Fri Sep 26 09:19:56 2008 -0700 Make x264 progress indicator more concise Now the % indicator should be readable on the header of a minimized window on Windows systems. commit e71168d48b9cb994bbb3895bbf25ebee2893ba4f r987 Author: Jason Garrett-Glaser Date: Sun Sep 21 22:17:34 2008 -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. commit 24961b015bed5dcda178e683a9f46a4945dc4fe3 r986 Author: Jason Garrett-Glaser Date: Sun Sep 21 13:35:00 2008 -0700 Resolve possible crash in bime, improve the fix in r985 commit e256ea1fd2198fb2475e03913b9b3b6bddd3b5da r985 Author: Jason Garrett-Glaser Date: Sat Sep 20 19:36:07 2008 -0700 Fix rare crash issue in b-adapt Regression *probably* in r979 commit 36223eac828a715b63d0211000a6cbd2d466704d r984 Author: Holger Lubitz Date: Sat Sep 20 02:36:55 2008 -0700 Merging Holger's GSOC branch part 1: hpel_filter speedups commit b4b64837d7bb6714f710cb1f2ef85f87f77da739 r983 Author: Loren Merritt Date: Sat Sep 20 12:31:10 2008 -0600 r980 borked weighted bime commit cc0fd8ab09eacaa78941169cbf52123333a8fe2e r982 Author: Jason Garrett-Glaser Date: Sat Sep 20 01:39:16 2008 -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. commit 9e319ff18553055b288c61397b6cff80766a536b r981 Author: Jason Garrett-Glaser Date: Fri Sep 19 09:21:34 2008 -0700 Merge avg and avg_weight avg_weight no longer has to be special-cased in the code; faster weightb commit b4cb6ef372d451d231bf884f551670577f3195d4 r980 Author: Jason Garrett-Glaser Date: Wed Sep 17 21:25:05 2008 -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 commit 6d4af8d257162ac8881a0f96d9552eb928328d95 r979 Author: Jason Garrett-Glaser Date: Wed Sep 17 00:33:37 2008 -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. commit dcb123f72958af61b1803103246cc61e2528c5cb r978 Author: Jason Garrett-Glaser Date: Tue Sep 16 22:44:10 2008 -0700 Add missing free() for f_qp_offset in frame.c commit 2042a196655aae035d1ef8164c4d4f46ce83dbee r977 Author: Gabriel Bouvigne Date: Tue Sep 16 01:54:37 2008 -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. commit 7eaff1792dd1064ff607fec47d0d7d91fdc62641 r976 Author: Gabriel Bouvigne Date: Tue Sep 16 01:53:02 2008 -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. commit 90220ef752a8f2de2f7d53bb266e64ba803bb09b r975 Author: Panagiotis Issaris Date: Mon Sep 15 20:47:50 2008 +0200 Use correct format specifier for uint64_t commit a92bbc2325942d2ceab2ab043727f5943a33bd64 r974 Author: Jason Garrett-Glaser Date: Tue Sep 16 00:31:26 2008 -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. commit f4736691f1052fbe32288a5fd87abce672c7b32f r973 Author: Jason Garrett-Glaser Date: Mon Sep 15 12:22:48 2008 -0700 Fix regression in b-adapt patch: encoder_open failed for multipass encodes without bframes. commit cbdaeb04ec128db18fcdb7480d81785fa7f4f371 r972 Author: Jason Garrett-Glaser Date: Mon Sep 15 10:53:29 2008 -0700 Stop SAR in y4m input from overriding --sar on commandline commit ead885761b88312acf2b7b2b93f35632b8b5b518 r971 Author: Loren Merritt Date: Mon Sep 15 02:24:12 2008 -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 commit abe641635e9dc1209af4e201f9308edd33fe3096 r970 Author: Jason Garrett-Glaser Date: Sun Sep 14 21:36:45 2008 -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. commit 9818865c1f5eccbc04fb51f062cb1b3abff02db0 r969 Author: Jason Garrett-Glaser Date: Sun Sep 14 18:18:15 2008 -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). commit 173b40c276ee187de31ef630fd207a62de1b2cc7 r968 Author: Jason Garrett-Glaser Date: Sat Sep 13 14:03:12 2008 -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! commit 869d5e4146a669f73d8a5ca07b3c04235fda0514 r967 Author: Jason Garrett-Glaser Date: Tue Sep 9 23:51:17 2008 -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. commit bb11e37f87fe53633f531bd3b9d331f987852ed3 r966 Author: Jason Garrett-Glaser Date: Tue Sep 9 23:12:20 2008 -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. commit 3d2983da7bbdbcfa08b12252ab71b0bf19a9ce26 r965 Author: Jason Garrett-Glaser Date: Fri Sep 5 23:14:23 2008 -0700 Revert part of r963 In some rare (but significant) cases, the optimized nal_encode algorithm gave incorrect results. commit e48a952cb74741fbf13d0ec352906dc2f3a61e4b r964 Author: Jason Garrett-Glaser Date: Thu Sep 4 20:13:38 2008 -0700 Predict 4x4_DC asm Also remove 5-year-old unnecessary #define that reduced speed unnecessarily under MSVC-compiled builds commit d21665d886638b08862e41bc68ea62472a646ca1 r963 Author: Jason Garrett-Glaser Date: Thu Sep 4 00:43:54 2008 -0700 Faster NAL unit encoding and remove unused nal_decode Small speedup at very high bitrates commit e0d7f9e53f847909574b603a3e725dddb8154574 r962 Author: Jason Garrett-Glaser Date: Wed Sep 3 22:12:23 2008 -0700 CAVLC cleanup and optimizations Also move some small functions in macroblock.c to a .h file so they can be inlined. commit 954117a7127fbf50540891f9c97ebe7c607be736 r961 Author: Jason Garrett-Glaser Date: Wed Sep 3 21:43:06 2008 -0700 Faster avg_weight assembly Unrolling the loop a bit improves performance commit f4d733a90136fe28b9a9a4c7efdce71c0446aeb5 r960 Author: Jason Garrett-Glaser Date: Wed Sep 3 15:35:22 2008 -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. commit b0c599be2502bbb97266a5e7a971d7dc485e2596 r959 Author: Jason Garrett-Glaser Date: Wed Sep 3 15:32:16 2008 -0700 Add merged SAD for i16x16 analysis Roughly 30% faster i16x16 analysis under subme=1 commit f6229465eb1307ab7250c8faa350887b7b03598c r958 Author: Jason Garrett-Glaser Date: Wed Sep 3 15:15:17 2008 -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. commit 7ce0f2c74ef4890138dddd13c41163baf5df3ac6 r957 Author: Jason Garrett-Glaser Date: Tue Sep 2 11:49:55 2008 -0700 Improve progress indicator Show average bitrate so far during encoding Decrease update interval for longer encodes (max of 10 frames encoded between updates) commit 7b71d586bce87181a4978ee3f8eb775b0481f6d4 r956 Author: Jason Garrett-Glaser Date: Mon Sep 1 10:35:41 2008 -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. commit d4265bb3976dea84ae582cc8d96fe69a72d2332d r955 Author: Holger Lubitz Date: Sun Aug 31 20:55:50 2008 -0600 zigzag asm commit 6b33ca95bf3dfb67014655de4d28304beb34bb61 r954 Author: Guillaume Poirier Date: Sun Aug 31 21:46:31 2008 +0200 fix SOFLAGS used when building gtk frontend patch by Markus Kanet %darkvision A gmx P eu% commit 3727f2b46abd4821c4deea415eeafa42da898eb0 r953 Author: Loren Merritt Date: Wed Aug 20 20:56:56 2008 -0600 remove the distinction between itex and ptex (changes 2pass statsfile format) commit 088631894e19e9a761f80c952e78f1a10f450506 r952 Author: Loren Merritt Date: Wed Aug 20 20:51:39 2008 -0600 hardcode the ratecontrol equation, and remove the rceq option commit 445d87ec5188aa7f6303e0dcf1c943b80ed6c933 r951 Author: Jason Garrett-Glaser Date: Wed Aug 27 13:14:36 2008 -0400 Fix some uses of uninitialized row_satd values in VBV Resolves some issues with QP51 in I-frames with scenecut commit 3c3dc3cde75e72b7c212a9a9ddd623ef8a617e41 r950 Author: Jason Garrett-Glaser Date: Tue Aug 26 14:51:29 2008 -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. commit 60c4f7e359a9de86f79f04039a84b3736a38ef55 r949 Author: Gabriel Bouvigne Date: Mon Aug 25 10:50:45 2008 -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. commit 9d4d168bb484c2a27e9f4b8f5eb360a00a1cf426 r948 Author: Guillaume Poirier Date: Fri Aug 22 21:05:37 2008 +0200 improve generation of Darwin libraries Patch by vmrsss %vmrsss A gmail P com% commit af82aae3649ba73b4d6bf380fb58ba00527d44d7 r947 Author: Jason Garrett-Glaser Date: Thu Aug 21 21:23:08 2008 -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. commit e3a06225cea141b6eef8fface6ee2be5fdf2abec r946 Author: Loic Le Loarer Date: Thu Aug 21 04:19:24 2008 -0600 shut up various gcc warnings commit 82efeea14c5fd03a6ed9c0b8eaa594e5d9407fce r945 Author: Loren Merritt Date: Thu Aug 21 04:15:49 2008 -0600 fix a crash with invalid args and --thread-input (introduced in r921) commit 36caec420e52767e61d49b84fe3bc0748d2f461c r944 Author: Loren Merritt Date: Wed Aug 20 05:36:32 2008 -0600 drop support for x86_32 PIC. commit bff4dbace4256478381c66e4e58cdb4fb3d800cb r943 Author: Loren Merritt Date: Tue Aug 19 01:55:57 2008 -0600 use permute macros in satd move some more shared macros to x264util.asm commit fd5cc6d0a007a4d9c2b8e09215854d2c742fb07f r942 Author: Loren Merritt Date: Wed Aug 20 20:32:13 2008 -0600 cosmetics commit ae8da3e5c85562d1018b9f85c601884022f070a3 r941 Author: Loren Merritt Date: Wed Aug 20 19:00:52 2008 -0600 r940 broke threads commit 2cdc944ab6b231b98e326ff0526c6bd9b69faa99 r940 Author: Jason Garrett-Glaser Date: Wed Aug 20 13:28:15 2008 -0400 Cleanups in macroblock_cache_save/load A bit more loop unrolling, and moving some constant code to the global init function commit bae10fe0da35b61883bc2bfa8514396633136093 r939 Author: Jason Garrett-Glaser Date: Tue Aug 19 14:18:24 2008 -0600 Deblocking code cleanup and cosmetics Convert the style of the deblocking code to the standard x264 style Eliminate some trailing whitespace commit 9881ffdf482017798ab0067f4f894ab53c18e626 r938 Author: Jason Garrett-Glaser Date: Mon Aug 18 23:03:37 2008 -0600 4% faster deblock: special-case macroblock edges Along with a bit of related code reorganization and macroification commit d994e0bca73aab306eb41f84483b9e1a36feb9c7 r937 Author: David Pethes Date: Sat Aug 16 09:43:26 2008 -0600 Add dedicated variance function instead of using SAD+SSD Faster variance calculation commit 7c35ae4abafb8babf1d5456f967920a38d5b572f r936 Author: Loren Merritt Date: Fri Aug 15 03:04:28 2008 -0600 6% faster deblock: remove some clips, earlier termiantion on low qps. commit c6456de1be0008836e9891446cc924f773863cea r935 Author: Jason Garrett-Glaser Date: Thu Aug 14 19:31:42 2008 -0600 Faster deblocking Early termination for bS=0, alpha=0, beta=0 Refactoring, various other optimizations About 30% faster deblocking overall. commit fd1de69b8054ef718b52f5ae1520267a5e5402e8 r934 Author: Loren Merritt Date: Sat Aug 2 08:19:50 2008 -0600 asm cosmetics commit 4b24e98d58ae597ab832852f76ea2795080fa4fc r933 Author: Daniel Vergien Date: Wed Aug 6 08:10:53 2008 -0600 yet another posix-emulating define on solaris commit ad47d25fe0d6fc4e852f219477e80cbc2cc381ce r932 Author: Gabriel Bouvigne Date: Wed Aug 6 07:45:05 2008 -0600 update msvc projectfile commit 26600fe260969e371766f261b53d34c904526259 r931 Author: Loren Merritt Date: Wed Aug 6 07:34:42 2008 -0600 drop support for msvc6 commit 91d865c17da30a27cf934179d30eb8efaa25e5d0 r930 Author: Jason Garrett-Glaser Date: Sat Aug 9 09:36:04 2008 -0600 Prevent VBV from lowering quantizer too much This code seemed to act up unexpectedly sometimes, creating a situation where in 1-pass VBV mode, a frame's quantizer would drop all the way to qpmin and then shoot back upwards to qpmax, causing serious visual issues. This change may decrease bitrate in VBV mode, but that is preferable to the artifacting produced by this code. commit 245833c3f6c6f247a097b49fbc452d2ddce93b10 r929 Author: Jason Garrett-Glaser Date: Sat Aug 9 09:34:37 2008 -0600 Improve subme7 at low QPs and add subme7 support in lossless mode commit 4816918fb7526aed96d9cd94c294b4f708a5f266 r928 Author: Loren Merritt Date: Wed Jul 30 22:35:20 2008 -0600 cosmetics: merge x86inc*.asm commit d1fe0938e588fd2fb37fe4b6fc97d458ae6944a5 r927 Author: Jason Garrett-Glaser Date: Wed Jul 30 15:29:46 2008 -0600 Add missing x264util.asm commit e5eeedc50570a564c3bd00eeabd857feff324158 r926 Author: Jason Garrett-Glaser Date: Wed Jul 30 15:28:21 2008 -0600 Basic sanity checking of qpmax/qpmin options commit 9e864aa0f819db25bf97ff8881041ba3e4d911f3 r925 Author: Jason Garrett-Glaser Date: Wed Jul 30 14:42:29 2008 -0600 Fix regression in r922 set the chroma DC coefficients to zero for residual coding in qpel-rd fix C99ism commit c51c761fdfed0b72e75754311d9eadb457306e84 r924 Author: Holger Lubitz Date: Tue Jul 29 21:36:01 2008 -0600 Refactor asm macros part 2: DCT commit 90b30e6ef1780e9199b584b783689c82f7c7ec72 r923 Author: Holger Lubitz Date: Tue Jul 29 21:26:58 2008 -0600 Refactor asm macros part 1: DCT commit 4e7f5cb0b486a616660e39e32efdd4700b3b379a r922 Author: Jason Garrett-Glaser Date: Tue Jul 29 17:08:38 2008 -0600 Improve intra RD refine, speed up residual_write_cabac a do/while loop can be used for residual_write, but i8x8 had to be fixed so that it wouldn't call residual_write with zero coeffs proper nnz handling added to cabac intra rd refine chroma cbp added to 8x8 chroma rd cbp was tested, but wasn't useful commit c761eb0b9f2c032503bed86118d57d618cfefece r921 Author: Jason Garrett-Glaser Date: Tue Jul 29 13:42:41 2008 -0600 Fix a few more minor memleaks commit 8c8acae0e483b8b048bee3cae8d5539cfbeb0a0c r920 Author: Loren Merritt Date: Fri Jul 25 18:14:31 2008 -0600 stats summary: print distribution of numbers of consecutive B-frames commit cf466eb47e1cd82d3e2114cefdf2f2d16950ae77 r919 Author: Loic Le Loarer Date: Fri Jul 25 16:08:32 2008 -0600 add interlacing to the list of stuff checked by x264_validate_levels commit 91fe97b6c7655fdf3109fb0d1a6404bb36d7a6cd r918 Author: Jason Garrett-Glaser Date: Thu Jul 24 07:58:50 2008 -0600 Fix C99-ism in r907 commit 244f9bef20341d230501dbe7e09a80004d0c0dbb r917 Author: Jason Garrett-Glaser Date: Thu Jul 17 18:17:22 2008 -0600 Faster temporal predictor calculation Split into a separate commit because this changes rounding, and thus changes output slightly. commit aa0e6277769b3fedb77d1cb8efa43f9c957646c0 r916 Author: Jason Garrett-Glaser Date: Thu Jul 17 07:55:24 2008 -0600 Align lowres planes for improved cacheline split performance commit 14046ae09f91272751f3df4d70fb0268321ee557 r915 Author: Loren Merritt Date: Tue Jul 15 20:16:16 2008 -0600 autodetect level based on resolution/bitrate/refs/etc, rather than defaulting to L5.1 if vbv is not enabled (and especially in crf/cqp), we have to guess max bitrate, so we might underestimate the required level. commit fee2f2ce3cda8e39cc4c123afa726933b6b9b877 r914 Author: Loren Merritt Date: Thu Jul 17 20:25:03 2008 -0600 fix bs_write_ue_big for values >= 0x10000. (no immediate effect, since nothing writes such values yet) commit 64848ffdfa740f03948d6860c1d49adc6c5b4f7c r913 Author: BugMaster Date: Wed Jul 16 11:54:51 2008 -0600 Fix lossless mode borked in r901 commit 9c5e557c5544690b22f61614fae9b516c7e53ba1 r912 Author: Jason Garrett-Glaser Date: Sat Jul 12 14:37:58 2008 -0600 Relax QPfile restrictions Allow a QPfile to contain fewer frames than the total number of frames in the video and have ratecontrol fill in the rest. Patch by kemuri9. commit 8a440db9296cf374b0599313aa5876c22c98524b r911 Author: Jason Garrett-Glaser Date: Sat Jul 12 14:10:38 2008 -0600 Limit MVrange correctly in interlaced mode Bug report by Sigma Designs, Inc. commit 0976ead3dd6641d88de51dbbdfd82f8d3079a458 r910 Author: Jason Garrett-Glaser Date: Fri Jul 11 22:53:27 2008 -0600 Fix bug with PCM and adaptive quantization In rare cases CABAC desync could occur, causing bitstream corruption commit 21ee1224f2d939ec716627b4db43d3023f18415c r909 Author: BugMaster Date: Fri Jul 11 16:00:02 2008 -0600 Fix memory leak upon x264 closing Doesn't affect the CLI, but potentially important for programs which call x264 as a shared library. commit 8cd5d60fcc23edcbdb97a190d8ac926db4161eb1 r908 Author: Jason Garrett-Glaser Date: Fri Jul 11 15:45:54 2008 -0600 Fix compilation on PPC systems (borked in r903) Bigendian systems didn't have endian_fix32 defined commit 7f67bb47de843974fd01f090c5ac99c99cd8f1f1 r907 Author: Jason Garrett-Glaser Date: Fri Jul 11 14:16:18 2008 -0600 Add L1 reflist and B macroblock types to x264 info Also remove display of "PCM" if PCM mode is never used in the encode. L1 reflist information will only show if pyramid coding is used. commit ceb2df9ddf03e7eb21bdc81748c7b9978ea64085 r906 Author: Jason Garrett-Glaser Date: Thu Jul 10 08:36:45 2008 -0600 Fix and enable I_PCM macroblock support In RD mode, always consider PCM as a macroblock mode possibility Fix bitstream writing for PCM blocks in CAVLC and CABAC, and a few other minor changes to make PCM work. PCM macroblocks improve compression at very low QPs (1-5) and in lossless mode. commit ca9c628dc66e51f2aabb70298b150dc66f3e4bd2 r905 Author: Loren Merritt Date: Fri Jul 4 21:03:26 2008 -0600 de-duplicate vlc tables commit 3d2b0006a80fca9a8ddad9d0769fa55517fdfcd6 r904 Author: Loren Merritt Date: Fri Jul 4 18:56:30 2008 -0600 faster ue/se/te write commit 8951797a04c4069e1926b5c4bcd2c39eb3b3a266 r903 Author: Jason Garrett-Glaser Date: Fri Jul 4 18:32:32 2008 -0600 faster bs_write commit 58ffd4ea367732710ef8303c8a7b5f185623bb85 r902 Author: Loren Merritt Date: Thu Jul 3 00:37:16 2008 -0600 cosmetics in ssd asm commit 58d7d06f919fa38d4c62acaec1858be6d77f4bab r901 Author: Jason Garrett-Glaser Date: Sun Jul 6 12:59:15 2008 -0600 Various optimizations and cosmetics Update AUTHORS file with Gabriel and me update XCHG macro to work correctly in if statements Add new lookup tables for block_idx and fdec/fenc addresses Slightly faster array_non_zero_count_mmx (patch by holger) Eliminate branch in analyse_intra Unroll loops in and clean up chroma encode Convert some for loops to do/while loops for speed improvement Do explicit write-combining on --me tesa mvsad_t struct Shrink --me esa zero[] array Speed up bime by reducing size of visited[][][] array commit a9af9425820cfba99ae4b378c33c4fee4e99b2ce r900 Author: Jason Garrett-Glaser Date: Sun Jul 6 11:15:19 2008 -0600 Resolve floating point exception with frame_init_lowres mmx In some cases, the mmx version of frame_init_lowres could leave the FPU uninitialized for use in ratecontrol, resulting in floating point exceptions. Since frame_init_lowres is such a time-consuming function, an emms was just put at the end, since it costs almost nothing compared to the total time of frame_init_lowres. commit f8428ed08f6fdb1f7a66be1b2ddc4213792fc49c r899 Author: Eric Petit Date: Fri Jul 4 11:31:32 2008 +0200 Update my email address commit 6b3087c7b5ac20dd8631eb8e3566c8bceee4643a r898 Author: Jason Garrett-Glaser Date: Thu Jul 3 20:05:00 2008 -0600 Update file headers throughout x264 Update "Authors" lists based on actual authorship; highest is most important Update copyright notices and remove old CVS tags from file headers Add file headers to GTK and other sections missing them Update FSF address Other header-related cosmetics commit 79bd5994122b7647b75de057991f3b480d402993 r897 Author: Jason Garrett-Glaser Date: Wed Jul 2 20:59:24 2008 -0600 denoise_dct asm commit 65df9ebc10338d8aa50f0c9470d3180a424d2df7 r896 Author: Loren Merritt Date: Wed Jul 2 20:55:10 2008 -0600 cosmetics in permutation macros SWAP can now take mmregs directly, rather than just their numbers commit 16b8f79bb6825053b6dd0eebb1d24c1bdf112fbb r895 Author: Jason Garrett-Glaser Date: Wed Jul 2 10:43:57 2008 -0600 Fix bug in adaptive quantization In some cases adaptive quantization did not correctly calculate the variance. Bug reported by MasterNobody commit 3440cf193fc13e558d2c6b98024d59e95a7b2774 r894 Author: Loren Merritt Date: Sun Jun 29 00:00:03 2008 -0600 lowres_init asm rounding is changed for asm convenience. this makes the c version slower, but there's no way around that if all the implementations are to have the same results. commit 1c8f807054a0308482d53d4c58ba1d5f5d2ae263 r893 Author: Jason Garrett-Glaser Date: Tue Jul 1 23:42:39 2008 -0600 Optimizations and cosmetics in macroblock.c If an i4x4 dct block has no coefficients, don't bother with dequant/zigzag/idct. Not useful for larger sizes because the odds of an empty block are much lower. Cosmetics in i16x16 to be more consistent with other similar functions. Add an SSD threshold for chroma in probe_skip to improve speed and minimize time spent on chroma skip analysis. Rename lambda arrays to lambda_tab for consistency. commit ad1d7a4a585bc7f995ced5152557a4f5306275bf r892 Author: Gabriel Bouvigne Date: Thu Jun 26 21:09:55 2008 -0600 some asm functions require aligned stack. disable these when compiling with msvc/icc. commit 2ca45934d79a62c1c04771c98eb3ee1d119cdd7a r891 Author: Jason Garrett-Glaser Date: Tue Jun 24 15:27:41 2008 -0600 Move bitstream end check to macroblock level Additionally, instead of silently truncating the frame upon reaching the end of the buffer, reallocate a larger buffer instead. commit a55f1c31d0da2e0bf04916e7f13813c8e902cfd1 r890 Author: Jason Garrett-Glaser Date: Tue Jun 24 12:23:50 2008 -0600 Convert NNZ to raster order and other optimizations Converting NNZ to raster order simplifies a lot of the load/store code and allows more use of write-combining. More use of write-combining throughout load/save code in common/macroblock.c GCC has aliasing issues in the case of stores to 8-bit heap-allocated arrays; dereferencing the pointer once avoids this problem and significantly increases performance. More manual loop unrolling and such. Move all packXtoY functions to macroblock.h so any function can use them. Add pack8to32. Minor optimizations to encoder/macroblock.c commit 2c597171d5126c3ccae7546f6699d6c4d8ec5e3a r889 Author: Loren Merritt Date: Thu Jun 12 03:00:23 2008 -0600 mc_chroma_sse2/ssse3 commit cb29306fabf20ae4935906f18ed7869afcf837c3 r888 Author: Loren Merritt Date: Thu Jun 12 08:43:41 2008 -0600 checkasm --bench=function_name commit 22d3c0409deec7601292c56c7cd0a23427dbc107 r887 Author: Loren Merritt Date: Thu Jun 12 01:39:22 2008 -0600 interleave psnr/ssim computation with reference frame filtering, to improve cache coherency commit 107553614c9ef5a94ba67bbc4361d709a8f91836 r886 Author: Jason Garrett-Glaser Date: Sun Jun 15 11:59:25 2008 -0600 Add more inline asm and a runtime check for MMXEXT support x264 will now terminate gracefully rather than SIGILL when run on a machine with no MMXEXT support. A configure option is now available to build x264 without assembly support for support on such old CPUs as the Pentium 2, K6, etc. commit 63657b5a1fe05034846631377fbd584fd3d5def6 r885 Author: Jason Garrett-Glaser Date: Sun Jun 15 11:51:36 2008 -0600 Use aligned memcpy for x264_me_t struct and cosmetics commit 23132cb6b0e18f3cf8e1f73a729ea65f1095dda0 r884 Author: Jason Garrett-Glaser Date: Sun Jun 15 11:50:17 2008 -0600 Cosmetics and loop unrolling GCC is not very good at loop unrolling in cases where it can perform constant propagation, so the unrolling unfortunately has to be done manually. commit cfaac5c2494bab44ba0b034aff448c4fb27beb1c r883 Author: Jason Garrett-Glaser Date: Thu Jun 12 09:17:49 2008 -0600 Fix regression in 64-bit in r882 i_mvc needs to be 64-bit when used with a 64-bit memory pointer commit 11ae289c685bf901bddb121910c6c50f57625f98 r882 Author: Jason Garrett-Glaser Date: Thu Jun 12 08:09:22 2008 -0600 More tweaks to me.c Added inline MMX version of UMH's predictor difference test Various cosmetics throughout me.c Removed a C99-ism introduced in r878. commit e098505c3329ebacdb479b40969fa22502e2091f r881 Author: Jason Garrett-Glaser Date: Wed Jun 11 18:23:00 2008 -0600 Fix regression in r736 r736 added intra RD refinement to B-frames; however, it is possible for subme=7 to be used without b-rdo. This means intra RD isn't run, and therefore it is possible for intra chroma analysis to not have been run, since update_cache was never called for an intra block, and chroma ME is not required even at subme=7. r801, which removed a memset, made this worse because previously the chroma prediction mode was at least initialized to zero; now it was not initialized at all. Therefore, --no-chroma-me, --subme 7, and no --b-rdo had the potential to crash. This change restricts intra RD refinement to only be run when --b-rdo is enabled (sensible to begin with), thus preventing a crash in this case. commit 2389de25ff7fe6f84c9c885578c0fbaa6b656f4a r880 Author: Jason Garrett-Glaser Date: Tue Jun 10 21:37:57 2008 -0600 Fix regression in r850 Bug resulted in rare incorrect chroma encoding commit 3464b0e7b5c6df009c1959f73966b9666f4949d0 r879 Author: Gabriel Bouvigne Date: Tue Jun 10 18:40:52 2008 -0600 Cosmetics in VBV handling commit a95ecfdf6b5bf7b9ecb23901f68a3f6f89fa55b8 r878 Author: Jason Garrett-Glaser Date: Tue Jun 10 18:34:46 2008 -0600 Tweaks and cosmetics in me.c Use write-combining for predictor checking and other tweaks. commit c74a8e29d4ed7f0ca3887ccc99ab02a4661f4bed r877 Author: Jason Garrett-Glaser Date: Fri Jun 6 14:59:10 2008 -0600 Partially inline trellis quantization Inlining trellis into the 4x4/8x8 trellis wrappers increases trellis speed by about 5-10% through constant propagation. commit 82ea3a45f80de8e18e41b6013ed8f54090203dbe r876 Author: Jason Garrett-Glaser Date: Fri Jun 6 12:32:57 2008 -0600 Various cosmetic changes. commit 8a74b3fdfd2004dc2788660ba7ace5aba32d013b r875 Author: Jason Garrett-Glaser Date: Fri Jun 6 22:57:33 2008 -0600 avg_weight_sse2 commit 86c70b0fccc46752e03d3ed7fc5733dab31b5a41 r874 Author: Loren Merritt Date: Fri Jun 6 23:31:22 2008 -0600 many changes to which asm functions are enabled on which cpus. with Phenom, 3dnow is no longer equivalent to "sse2 is slow", so make a new flag for that. some sse2 functions are useful only on Core2 and Phenom, so make a "sse2 is fast" flag for that. some ssse3 instructions didn't become useful until Penryn, so yet another flag. disable sse2 completely on Pentium M and Core1, because it's uniformly slower than mmx. enable some sse2 functions on Athlon64 that always were faster and we just didn't notice. remove mc_luma_sse3, because the only cpu that has lddqu (namely Pentium 4D) doesn't have "sse2 is fast". don't print mmx1, sse1, nor 3dnow in the detected cpuflags, since we don't really have any such functions. likewise don't print sse3 unless it's used (Pentium 4D). commit 2998b17a64cb41ecf3389cc9f5a44c6f07620487 r873 Author: Loren Merritt Date: Fri Jun 6 23:30:37 2008 -0600 enable ssse3 phadd satd on Penryn. commit 0591b7a64b6ed0043ca65781100cae6887db8a2f r872 Author: Loren Merritt Date: Fri Jun 6 22:59:37 2008 -0600 benchmark most of the asm functions (checkasm --bench). commit 100d067b75ef8b27c288917b3af763fe433af624 r871 Author: Jason Garrett-Glaser Date: Thu Jun 5 11:32:05 2008 -0600 Cosmetic: fix C99-ism commit c98aab086a2d8f99c53b501ec165c2a804d49725 r870 Author: Jason Garrett-Glaser Date: Wed Jun 4 21:28:48 2008 -0600 Use a gaussian window for cplxblur Cplxblur was originally intended to use a gaussian window, but in its current form did not. This change provides a tiny improvement to 2pass ratecontrol. commit ea2648b34da352de8c2e52aa657c83bf28ec0f21 r869 Author: Loren Merritt Date: Mon Jun 2 09:47:50 2008 -0600 cosmetics commit 601b46ebb444c5e5e27fe7684e7507417a623747 r868 Author: Loren Merritt Date: Mon Jun 2 09:40:49 2008 -0600 nasm compatible NX stack commit c4c85baeb5f374e9e1ca9b32954d5a4974cef043 r867 Author: Loren Merritt Date: Mon Jun 2 08:57:59 2008 -0600 CQP is incompatible with AQ commit ba3ac82d860cbd72e146e257d36c571c2d66acbc r866 Author: Jason Garrett-Glaser Date: Sat May 24 13:10:21 2008 -0600 memzero_aligned_mmx commit 02a04f2d03e80be3f66bb76fd1bc775216b0d37c r865 Author: BugMaster Date: Sat May 24 01:09:07 2008 -0600 binmode stdin on mingw, not just msvc commit f88d09450264d597e7b08f83993bed95ba1f7cfa r864 Author: Jason Garrett-Glaser Date: Fri May 23 21:22:29 2008 -0600 omit redundant mc after non-rdo dct size decision, and in b-direct rdo commit 9a9d39a568cf7a9486cc04014e22a4fc99fc0b7f r863 Author: Jason Garrett-Glaser Date: Wed Apr 9 16:46:51 2008 -0600 allow fractional CRF values with AQ. commit 26088fc4526d329a12296b862f10c85fb7801d2f r862 Author: Noboru Asai Date: Mon Jun 2 09:12:29 2008 -0600 fix some uninitialized partitions in rdo commit 7331ea4e381898421a1a908ed57f73126faacd36 r861 Author: Gabriel Bouvigne Date: Mon Jun 2 12:53:01 2008 -0600 2-pass VBV support and improved VBV handling Dramatically improves 1-pass VBV ratecontrol (especially CBR) and provides support for VBV in 2-pass mode. This consists of a series of functions that attempts to find overflows and underflows in the VBV from the first-pass statsfile and fix them before encoding. 1-pass VBV code partially by Dark Shikari. commit c415d98820c96b8eb489736b1c9ed7c5927b077f r860 Author: Alexander Strange Date: Mon Jun 2 12:16:51 2008 -0600 Fix noise reduction in threaded mode. Previously enabling noise reduction with threads had no effect. Note that this is not an optimal solution; each thread still tracks noise reducation separately (unlike in single-threaded mode). commit ce13bb6e8108657599433031df9c260c9f81b49d r859 Author: Loren Merritt Date: Tue May 20 20:15:41 2008 -0600 fix a crash on win32 with threads. r852 introduced an assumption in deblock that the stack is aligned. commit 0903472f2e1bba9eeb6bc54f70747d037a5a6cf9 r858 Author: Loren Merritt Date: Tue May 20 03:58:08 2008 -0600 remove nasm version check. a feature check is all that's needed. silence stderr in yasm version check. commit d86d4bd394fa7ef671f1a914b45fc6517090aa9f r857 Author: Loren Merritt Date: Sun May 18 08:33:34 2008 -0600 cosmetics in cabac commit bd6ce404c3c4c51b0133b8c1a3ebeeb4b60265c6 r856 Author: Jason Garrett-Glaser Date: Sun May 18 07:14:28 2008 -0600 faster residual_write_cabac commit 5c257938de9e0017762395d63925a9747a0ff6e6 r855 Author: Loren Merritt Date: Sun May 18 06:23:57 2008 -0600 change DEBUG_DUMP_FRAME to run-time --dump-yuv commit a50d364ce947f9943458ca70ec6bf26f9e24475f r854 Author: Loren Merritt Date: Sat May 17 03:39:59 2008 -0600 x264_median_mv_mmxext this is the first non-runtime-detected use of mmxext, but it has to be inlined commit 6f74cfa72249651c71acbc83b473e581f202e18c r853 Author: Loren Merritt Date: Sun Apr 20 03:18:19 2008 -0600 factor duplicated code out of deblock chroma mmx commit 1451b1285b37e54209c2216a7eab6f47ed2a0abd r852 Author: Loren Merritt Date: Tue Apr 15 17:52:32 2008 -0600 deblock_luma_intra_mmx commit e11ef38d38d4c83c1788b9be53021239133e348f r851 Author: vmrsss Date: Sat May 17 00:50:22 2008 -0600 write aspect ratio in mp4 commit 18a1d7eed0d0131d3e728d39d1c1cc81c519e1f7 r850 Author: Jason Garrett-Glaser Date: Thu May 15 22:44:12 2008 -0600 omit delta_quant in i16x16 blocks with no residual (all other block types were already covered, but i16x16 cbp is special) commit 911904cabc6f423ad47a057a0bcdf4e94d271736 r849 Author: Jason Garrett-Glaser Date: Thu May 15 06:01:01 2008 -0600 explicit write combining, because gcc fails at optimizing consecutive memory accesses commit b9073299fd9dbc116c0c47ddba925162fe0d1f83 r848 Author: Jason Garrett-Glaser Date: Thu May 15 05:41:43 2008 -0600 force unroll macroblock_load_pic_pointers and a few other minor optimizations commit 76c9f3dbcb15013efd54b9ee87be5ab32e1560a0 r847 Author: Jason Garrett-Glaser Date: Thu May 15 05:14:53 2008 -0600 quant_2x2_dc_ssse3 commit fcee08ae4a37ed51ac09277805ec9e0b9d96cbb5 r846 Author: Jason Garrett-Glaser Date: Sat May 17 00:47:31 2008 -0600 r836 borked lossless cabac nnz commit 9386865f979a21d2a1000b77ac13cc51f16d7fcd r845 Author: Henry Bent Date: Wed May 7 19:49:14 2008 -0600 use elf instead of a.out on netbsd commit ee0c7dcd7d3bd3fc33ebc910453c968c24c88ebf r844 Author: Ning Xin Date: Wed May 7 17:18:44 2008 -0600 fix x264_realloc when not using libc realloc. commit 5e103026a9c1661c3743a851b4fe928982bb0fb9 r843 Author: Loren Merritt Date: Mon May 5 16:28:24 2008 -0600 don't pretend to support win64. remove all related code. it hasn't worked since probably some time in 2005, and won't ever be fixed unless someone steps up to maintain it. commit 97fc930ef25741c504f91b7929d46915cc3e245b r842 Author: Loren Merritt Date: Mon May 5 16:25:19 2008 -0600 cosmetics: replace last instances of parm# asm macros with r# commit 1b75bd4cdea04d70491331743d7506980001ece5 r841 Author: Loren Merritt Date: Mon Apr 28 03:12:29 2008 -0600 remove DEBUG_BENCHMARK commit b55625d5952f8a9a163b4b93699bdafcb1c2cc29 r840 Author: Jason Garrett-Glaser Date: Sun Apr 27 03:10:28 2008 -0600 faster probe_skip commit 27c3071979593d059a0929ca7b0ad82a762626f6 r839 Author: Loren Merritt Date: Tue Apr 22 17:16:25 2008 -0600 drop support for pre-SSE3 assemblers commit 8ce08bee184f75c9d5ce1966e35de3d0eec1a916 r838 Author: Loren Merritt Date: Fri Apr 25 00:33:12 2008 -0600 s/x264_cpu_restore/x264_emms/ no point in giving it a generic name when it's not generic commit 45cc42cc3f5155a9bcbadaaa88c828359884c85b r837 Author: Jason Garrett-Glaser Date: Sun Apr 27 02:37:37 2008 -0600 faster cabac_mb_cbp_luma ported from ffmpeg commit 5dae513218070a3aafc7c56b097bc7ff7ae58526 r836 Author: Jason Garrett-Glaser Date: Fri Apr 25 21:41:40 2008 -0600 remove some redundant nnz counts move some nnz counts from macroblock_encode to cavlc if cabac doesn't need them commit a9057b503939d763a9f17111c41672bfca8beb7e r835 Author: Jason Garrett-Glaser Date: Fri Apr 25 20:43:57 2008 -0600 compute missing nnz count in subme7 cavlc commit 5a562eb9e12ef535be3d8c956b477982707083dd r834 Author: Jason Garrett-Glaser Date: Fri Apr 25 01:47:47 2008 -0600 remove a division in macroblock-level bookkeeping commit 2b3d65e7c2389fc4201dafb69422550e15ef0d85 r833 Author: Jason Garrett-Glaser Date: Thu Apr 24 18:55:30 2008 -0600 omit P/B-skip mc from macroblock_encode if the pixels haven't been overwritten since probe_skip commit 2f75bcc1b74ece41ae39134719bcdefc2a6a0265 r832 Author: Loren Merritt Date: Thu Apr 24 05:17:04 2008 -0600 earlier termination in SEA if mvcost exceeds residual commit 971301a7a1c164620b3e80bcd1e2517d053213c5 r831 Author: Loren Merritt Date: Tue Apr 22 04:00:24 2008 -0600 remove void* arithmetic from r821 commit 5ca01b326a47615337a0eb6d4b25eaa53aa283bb r830 Author: Guillaume Poirier Date: Fri Apr 25 11:29:09 2008 +0200 Fix define of illegal function identifiers (as defined in section "7.1.3 Reserved identiers" of C99 spec) commit ef36548b728491cb5d81c24e7f48c9f216845a3d r829 Author: Guillaume Poirier Date: Fri Apr 25 10:50:48 2008 +0200 Fix define of illegal identifier (as defined in section "7.1.3 Reserved identiers" of C99 spec) "__UNUSED__", and use the one defined in common/osdep.h, i.e. "UNUSED" based on a patch by Diego Biurrun commit ee95c7fb74179d78ebf6c0fbb71af58b3ab341b6 r828 Author: Guillaume Poirier Date: Thu Apr 24 14:46:11 2008 +0200 more consistent include name (in line with other PPC includes) commit 29ae7d14bb675c082098ac6e2ec787a1cd559e23 r827 Author: Guillaume Poirier Date: Thu Apr 24 14:44:24 2008 +0200 fix illegal identifiers in multiple inclusion guards patch by Diego Biurrun % diego A biurrun P de % commit 138601d1df8c1101f74c2e3bcea66040a764314a r826 Author: Jason Garrett-Glaser Date: Tue Apr 22 00:38:37 2008 -0600 AQ now treats perfectly flat blocks as low energy, rather than retaining previous block's QP. fixes occasional blocking in fades. commit 15f3190277ee18b110a1825a7a98e989756659e9 r825 Author: Loren Merritt Date: Sun Apr 20 12:19:46 2008 -0600 checkasm cabac commit f892ee11a99c0b85e577e33bc1e695373b58584a r824 Author: Loren Merritt Date: Sun Apr 20 02:39:31 2008 -0600 s/movdqa/movaps/g commit d940f6e66f418e24daa16f93f649ba9a38b173ce r823 Author: Loren Merritt Date: Sun Apr 20 18:25:53 2008 -0600 --asm to allow testing of different versions of asm without recompile commit 9b52ed57a8897f50d193b4ddbefe9fd19d234098 r822 Author: Loren Merritt Date: Sat Apr 12 01:40:28 2008 -0600 copy left neighbor pixels directly from previous mb instead of main plane commit 44361e9514344c4e4685bca45e8c55a28c3cd395 r821 Author: Jason Garrett-Glaser Date: Wed Apr 9 16:30:34 2008 -0600 cacheline split workaround for mc_luma commit d50f9cbdc47cdb20d066fe19d616e95ef9560358 r820 Author: Guillaume Poirier Date: Wed Apr 16 10:46:15 2008 +0200 add "SECTION_RODATA" before "SECTION .text" to setup the fakegot label used in macho binaries. This fixes compilation with --enable-pic Requires Yasm 0.7.0 or newer Patch by Dave Lee % davelee P com A gmail P com % commit 0414d78c3c44b3be7f3340d959aaaeb73e4b017a r819 Author: Loren Merritt Date: Sun Apr 13 10:29:15 2008 -0600 more hpel fixes commit d4b7d2bca9a333cd88583a035ede864c1368c66c r818 Author: Gabriel Bouvigne Date: Thu Apr 10 08:59:19 2008 -0600 update msvc projectfile commit 69172761934ee2e531fd551d00ba696ad42029d4 r817 Author: Loren Merritt Date: Fri Apr 11 18:48:30 2008 -0600 r810 borked hpel_filter_sse2 on unaligned buffers commit 761630d7f646d4ad3562e7ff55fa7c80f8dce039 r816 Author: Loren Merritt Date: Thu Apr 10 03:17:53 2008 -0600 threads=auto on multicore now implies thread input, just like explicit thread numbers already did commit c9a928bf0b3acf13287147137ea3ceee3c6c81b2 r815 Author: Loren Merritt Date: Tue Apr 8 20:16:50 2008 -0600 dct4 sse2 commit b32dacbaf2294607c31ee3658c85f44b8f40722a r814 Author: Loren Merritt Date: Tue Apr 8 12:19:23 2008 -0600 faster x86_32 dct8 commit a7eec58b62c43f3417d7523a5e337f2f68602ec9 r813 Author: Loren Merritt Date: Mon Apr 7 10:22:03 2008 -0600 macros to deal with macros that permute their arguments commit 0feb9f1b088af1391603bee9da0b1f06b5fb45f6 r812 Author: Loren Merritt Date: Mon Apr 7 08:24:40 2008 -0600 mmx cachesplit sad of non-square sizes checked height instead of width commit 9f0db01e173d7e98bbb711bed871b6320392f62b r811 Author: Loren Merritt Date: Fri Apr 4 01:07:40 2008 -0600 sfence after nontemporal stores commit 2487cdf92f3050830fe2b7ffc4e04cf292823e9e r810 Author: Loren Merritt Date: Wed Apr 2 11:22:43 2008 -0600 simplify hpel filter asm (move control flow to C) and add sse2, ssse3 versions commit 5cc926a4dad3b73da4458a54b194c926f91cacd3 r809 Author: Loren Merritt Date: Thu Apr 3 20:46:36 2008 -0600 more mmx/xmm macros (mova, movu, movh) commit 6cf65da995c454f5d9330a1f07718ec1734f8454 r808 Author: Jason Garrett-Glaser Date: Wed Apr 2 05:06:02 2008 -0600 improve handling of cavlc dct coef overflows support large coefs in high profile, and clip to allowed range in baseline/main commit 08b5132ff6e6a8e986b6699987b49624e4efbef3 r807 Author: Guillaume Poirier Date: Mon Mar 31 10:50:45 2008 +0200 fix shared libs on MacOSX based on a patch by İsmail Dönmez commit 457ce6a50ab44b28406d05fa290549a62a2452f4 r806 Author: Loren Merritt Date: Mon Mar 31 02:27:53 2008 -0600 typo in r803 commit decfd7b9ce0df2d89d39cf002955bce65f02c1d9 r805 Author: Loren Merritt Date: Sun Mar 30 18:08:28 2008 -0600 fix a crash on mp4 muxing with invalid params commit dc4f40ce74c996a1e15021b82ab71ebcb8652d0b r804 Author: Jason Garrett-Glaser Date: Sun Mar 30 17:58:41 2008 -0600 variance-based psy adaptive quantization new options: --aq-mode --aq-strength AQ is enabled by default commit ae3d8b1d6b15f4d2118438dc7d9338686490cf28 r803 Author: Zuxy Meng Date: Sat Mar 29 18:04:23 2008 -0600 fix naming of .dll on mingw commit a09f8f5e3759331b4699ec50c98dea7ce20b748b r802 Author: Loren Merritt Date: Sat Mar 29 17:53:36 2008 -0600 don't distinguish between mingw and cygwin commit 73cfc9e5b8947e4d279a63da8f18253a4c066c89 r801 Author: Jason Garrett-Glaser Date: Sat Mar 29 16:27:54 2008 -0600 remove a memset commit 32390823a9812bc646f6e6e8416b114b31a3028e r800 Author: Loren Merritt Date: Sat Mar 29 16:27:08 2008 -0600 typo. don't evaluate rd pskip when p16x16 found ref>0. commit bd0d9a568b826269ea131889181b57ed986699cd r799 Author: Loren Merritt Date: Sat Mar 29 20:42:51 2008 -0600 r784 borked lossless dc zigzag commit 17e5dac11adae8af7521c95a9dd1d70549a13b64 r798 Author: Loren Merritt Date: Tue Mar 25 07:31:51 2008 -0600 fix an arithmetic overflow that disabled SEA threshold after finding a mv with SAD < mvcost. commit 2f6fd93be1cbcd18dd131ba0d46d3ad0d3e5b72b r797 Author: Guillaume Poirier Date: Tue Mar 25 16:30:04 2008 +0000 fix hpel_filter_altivec picked up by checkasm Patch by Manuel %maaanuuu A gmx.net % and Noboru Asai % noboru P asai A gmail P com % commit 5e0e058c72e6dcf0f432157b48c0b07566535fe6 r796 Author: Loren Merritt Date: Tue Mar 25 00:59:50 2008 -0600 faster residual commit 261873ec7737bd4e71fdce45608ef46b0cc0472d r795 Author: Loren Merritt Date: Mon Mar 24 21:31:46 2008 -0600 nasm doesn't like align(nop) in structs commit 4b18012311fe5e823495169ab9a911e1cb9b3907 r794 Author: Loren Merritt Date: Mon Mar 24 19:25:19 2008 -0600 reduce the size of some cabac arrays commit e403fe9364ad1ea1cd8c3d5055759a538e97bb8b r793 Author: Jason Garrett-Glaser Date: Mon Mar 24 19:21:24 2008 -0600 use cabac context transition table from trellis in normal residual coding too commit 6ae335530efb189b00fd6f3b1b7da5eefd856473 r792 Author: Jason Garrett-Glaser Date: Mon Mar 24 19:12:07 2008 -0600 rearrange cabac struct to reduce code size commit 7255f6843c719b0d21c2c35b94eed39616075710 r791 Author: Jason Garrett-Glaser Date: Mon Mar 24 03:25:25 2008 -0600 higher precision RD lambda improves quality at QP<=12. commit 1035c63eb9ef354670c3c16f23fd3ac2bb88ec19 r790 Author: Loren Merritt Date: Mon Mar 24 01:56:31 2008 -0600 faster cabac_encode_ue_bypass commit bf9bf7acf61da13d9cc45c35291f61e614d7414c r789 Author: Loren Merritt Date: Sun Mar 23 22:14:18 2008 -0600 cabac asm. mostly because gcc refuses to use cmov. 28% faster than c on core2, 11% on k8, 6% on p4. commit 36879873dd9a741700474d80160e98f2d9e61e5c r788 Author: Loren Merritt Date: Sun Mar 23 22:08:07 2008 -0600 cosmetics in cabac commit d4f9f60faf14bd1415f16dd419d1889324db3e1e r787 Author: Loren Merritt Date: Sat Mar 22 20:25:06 2008 -0600 inline cabac_size_decision commit aa5391aae3c8b7327532261d1345c0434ee65ad3 r786 Author: Loren Merritt Date: Sat Mar 22 03:25:03 2008 -0600 cosmetics in DECLARE_ALIGNED commit 192768df4d84ac176be0ed0cc5c759e30b5328df r785 Author: Loren Merritt Date: Sat Mar 22 03:06:18 2008 -0600 don't distinguish between luma4x4 and luma4x4ac commit 36fe32ae368797be584657eed37350faa0e93e78 r784 Author: Loren Merritt Date: Sat Mar 22 02:46:31 2008 -0600 faster lossless zigzag commit 170f57bf8c186427c3e160afb3db6c71e1aafabd r783 Author: Loren Merritt Date: Sat Mar 22 03:14:33 2008 -0600 more alignment commit 9bdc256db55d93541de80e27e54d46b8e8c45cfe r782 Author: Loren Merritt Date: Sat Mar 22 01:49:52 2008 -0600 add tesa and lossless to fprofile commit 5a66f307ef2e71b2f1945a84f408a719ea4cc6a6 r781 Author: Loren Merritt Date: Sat Mar 22 01:46:43 2008 -0600 cosmetics in residual_write commit 571dda602b20b5b461f83e8d07fd3a3d9652c52b r780 Author: Loren Merritt Date: Fri Mar 21 23:24:33 2008 -0600 remove unused bitstream reader commit 5d47436a4dbe0aa14a9da43cc9a57cf5b421539e r779 Author: Loren Merritt Date: Fri Mar 21 18:58:46 2008 -0600 cosmetics in quant asm commit afba69a247ee3ff4ae9781cb63093529175ec135 r778 Author: Loren Merritt Date: Fri Mar 21 18:46:29 2008 -0600 special case dequant for flat matrix commit 02e610262bac2645742cfaa40d018fd43f26e859 r777 Author: Loren Merritt Date: Fri Mar 21 00:04:46 2008 -0600 faster dequant commit e8448ff4a975b058524a0117fffa830e3f56a0e5 r776 Author: Loren Merritt Date: Thu Mar 20 22:08:07 2008 -0600 simplify hpel_filter_c commit 32fb497fe346d3383937a05ee99a031c13a3ac4d r775 Author: Loren Merritt Date: Thu Mar 20 19:35:54 2008 -0600 use x264_mc_copy_w16_sse2 in mc.copy, it was previously only in mc_luma commit adfab36d395dff335c5a34d050c84ac8e7e1b470 r774 Author: Loren Merritt Date: Thu Mar 20 14:00:08 2008 -0600 new ssd_8x*_sse2 align ssd_16x*_sse2 unroll ssd_4x*_mmx commit e1d815e15cc62b52ed67b4fd1538aaa238c70e97 r773 Author: Manuel Date: Thu Mar 20 13:21:16 2008 -0600 update altivec zigzags commit 2be14de6fc2ffa973b411f6ec022ab3292fd0772 r772 Author: Loren Merritt Date: Thu Mar 20 10:41:50 2008 -0600 r768 borked cavlc commit b6a966a3364a4d3788f4bd9023da07b869b5bbde r771 Author: Loren Merritt Date: Thu Mar 20 00:52:11 2008 -0600 cosmetics in intra predict commit 67a130f53f26ac5ecf29ee4bd0ab442e0d87fc70 r770 Author: Jason Garrett-Glaser Date: Thu Mar 20 00:31:42 2008 -0600 faster intra predict 8x8 hu/hd commit 3f48ce7e838aab6d0701150f93166132cb06c6a0 r769 Author: Loren Merritt Date: Wed Mar 19 23:43:19 2008 -0600 reduce zigzag arrays from int to int16_t commit 84452e50633eb7d98a2e5f55ff4c799b2bf30f32 r768 Author: Loren Merritt Date: Wed Mar 19 23:42:20 2008 -0600 reduce the size of some arrays commit f46c3bc88be70eb4ab798cba5e0da75b13038ffc r767 Author: Jason Garrett-Glaser Date: Wed Mar 19 15:01:05 2008 -0600 skip intra pred+dct+quant in cases where it's redundant (analyse vs encode) large speedup with trellis=2, small speedup with trellis=0 and/or subme>=6 commit 123f29a18afc120d9c6ccca1c32e8054124051b2 r766 Author: Loren Merritt Date: Wed Mar 19 14:03:34 2008 -0600 cosmetics in asm commit 1df5f84baf226141548948d94c84a1f3b1792c0b r765 Author: Jason Garrett-Glaser Date: Wed Mar 19 14:00:34 2008 -0600 satd_4x4_ssse3 commit dcf2604a00d57c05a2def4551b75b8a08af024e3 r764 Author: Jason Garrett-Glaser Date: Wed Mar 19 13:40:41 2008 -0600 get_ref_sse2 commit 09499759acc0adc246a63a72099fc85ca1746235 r763 Author: Jason Garrett-Glaser Date: Tue Mar 18 19:17:22 2008 -0600 continue instead of crash when the threading mv constraint is violated. doesn't fix the underlying bug, but hopefully less annoying until we find it. commit 1fc702f8fc5b7640c62f80a5574b15a9b01fdfb7 r762 Author: Loren Merritt Date: Tue Mar 18 18:24:01 2008 -0600 remove remaining reference to clip1.h commit 4c02055a87b79cf00da75456e8666d60fd1785d3 r761 Author: Loren Merritt Date: Tue Mar 18 12:34:10 2008 -0600 fix name mangling again. apparently it's not just a convention, dll build fails if you try to export a non-prefixed name. commit 57741220cfb20e1628a1e671b83687ddaf2958fe r760 Author: Gabriel Bouvigne Date: Mon Mar 17 15:44:40 2008 -0600 update msvc projectfile commit 018a6e0fefcedbe73afffff8dca310e396b6bda4 r759 Author: Loren Merritt Date: Mon Mar 17 15:41:59 2008 -0600 missing #ifdef HAVE_SSE3 commit 205d011e2e8418d7cf90fc58589238d36e941942 r758 Author: Loren Merritt Date: Mon Mar 17 15:41:30 2008 -0600 don't define offsetof since it's standard commit 4d9499b41be91645f27a7ca01e4a5a09d041ecbd r757 Author: Loren Merritt Date: Mon Mar 17 01:23:35 2008 -0600 shut up gcc warning in offsetof commit 2c8600ea161bdf2be733b01e17974fe75a4e31d3 r756 Author: Håkan Hjort Date: Mon Mar 17 01:20:02 2008 -0600 increase alignment of mv arrays commit 91991ba67aa9a7256b4bdf8d1d9be183ec2daa2b r755 Author: Jason Garrett-Glaser Date: Sun Mar 16 23:58:04 2008 -0600 memcpy_aligned_sse2 commit ede2a6e0d305647b82b5c240c981b19f96ba40c2 r754 Author: Loren Merritt Date: Sun Mar 16 22:40:43 2008 -0600 checkasm check whether callee-saved regs are correctly saved x86_32 only for now since x86_64 varargs are annoying commit 357ab3381fbe85eca5d076c1ab5f6814d2a03215 r753 Author: Loren Merritt Date: Sun Mar 16 22:28:20 2008 -0600 fix x86_32 ads which failed to preserve a register commit 5862a17e25bc4eab46cb856b56e04f51814051db r752 Author: Loren Merritt Date: Sun Mar 16 16:34:41 2008 -0600 fix some name mangling issues introduced by the merge commit dafc72cc87c40d4972292d8255781fea70299650 r751 Author: Loren Merritt Date: Sun Mar 16 15:30:40 2008 -0600 remove x264_mc_clip1. it's wrong for sufficiently perverse inputs, and clip_uint8 is faster anyway. commit c4680aceec03d3063cbefa5db7ab4404f32578d8 r750 Author: Loren Merritt Date: Sun Mar 16 13:54:58 2008 -0600 merge x86_32 and x86_64 asm, with macros to abstract calling convention and register names commit 096b39036aad8d363b81e520ad13cee412b0e568 r749 Author: Loren Merritt Date: Sun Mar 9 05:58:55 2008 -0600 git compatible version script commit 397d1bf764246716772004fe7ac8583a82c2a8a5 r748 Author: Loren Merritt Date: Sun Mar 2 17:53:01 2008 -0700 check for broken versions of yasm commit 6e55e8a729d59130f479f22ea5d53852b1ae2e1f r747 Author: Loren Merritt Date: Sun Mar 2 17:27:38 2008 -0700 increase the alignment of the i8x8 edge cache, needed for sse2 intra prediction. patch by Alexander Strange. commit 233a760dc99fe8a6cc401b711ffb3a3c90f8a5fa r746 Author: Loren Merritt Date: Sun Mar 2 16:12:57 2008 -0700 .gitignore commit 1cce7bbcecf5073b5624754d1c7cc0cdb8b65a6a r745 Author: Loren Merritt Date: Sun Mar 2 03:04:07 2008 +0000 pic macros now keep track of which register holds the GOT, so variable access doesn't have to care git-svn-id: svn://svn.videolan.org/x264/trunk@745 df754926-b1dd-0310-bc7b-ec298dee348c commit 01d7b8acc40243402d6d8feadecc1e4da0aa2b20 r744 Author: Loren Merritt Date: Sun Mar 2 02:27:45 2008 +0000 remove x86_64 predict_8x8_ddl_mmxext because sse2 is faster even on amd git-svn-id: svn://svn.videolan.org/x264/trunk@744 df754926-b1dd-0310-bc7b-ec298dee348c commit bce7d0f272db32f741353672cc35e413c8581d41 r743 Author: Loren Merritt Date: Sun Mar 2 02:26:00 2008 +0000 cosmetics in dsp init git-svn-id: svn://svn.videolan.org/x264/trunk@743 df754926-b1dd-0310-bc7b-ec298dee348c commit e4059f859e072ef5ac61c101897bcf67f76e27f1 r742 Author: Loren Merritt Date: Sun Mar 2 02:11:12 2008 +0000 sse2 16x16 intra pred. port the remaining intra pred functions from x86_64 to x86_32. patch by Dark Shikari. git-svn-id: svn://svn.videolan.org/x264/trunk@742 df754926-b1dd-0310-bc7b-ec298dee348c commit c34e1098fec1b950f8265680daa6d3f98d361074 r741 Author: Loren Merritt Date: Sat Mar 1 13:47:05 2008 +0000 some simplifications to mmx intra pred that should have been done way back when we switched to constant fdec_stride. and remove pic spills in functions that have a free caller-saved reg. patch partly by Dark Shikari. git-svn-id: svn://svn.videolan.org/x264/trunk@741 df754926-b1dd-0310-bc7b-ec298dee348c commit 9da2facd2a45c20ff4a225fbbbcba0f3ad644457 r740 Author: Loren Merritt Date: Sat Mar 1 07:30:34 2008 +0000 faster array_non_zero git-svn-id: svn://svn.videolan.org/x264/trunk@740 df754926-b1dd-0310-bc7b-ec298dee348c commit c32cac21f5f634398ca7135a6f8e304c9ea528b4 r739 Author: Loren Merritt Date: Sat Mar 1 04:33:24 2008 +0000 x86_32 sse2 idct8 ported from ffmpeg by Dark Shikari git-svn-id: svn://svn.videolan.org/x264/trunk@739 df754926-b1dd-0310-bc7b-ec298dee348c commit 8f32196651ee0c8fa3659c84e78407602079e0f1 r738 Author: Loren Merritt Date: Sat Mar 1 04:13:55 2008 +0000 checkasm: relax the threshold for floating-point ssim git-svn-id: svn://svn.videolan.org/x264/trunk@738 df754926-b1dd-0310-bc7b-ec298dee348c commit 56fca1c2a6a1338b28f4a1ba5cb3fbf2c6140974 r737 Author: Loren Merritt Date: Sat Mar 1 04:07:44 2008 +0000 checkasm: test idct with the range of coefficients what can really be encountered, as opposed to random numbers which might overflow. git-svn-id: svn://svn.videolan.org/x264/trunk@737 df754926-b1dd-0310-bc7b-ec298dee348c commit 641416d827085d80887a6a1dc21161c98616b7a0 r736 Author: Loren Merritt Date: Mon Jan 28 14:33:42 2008 +0000 intra_rd_refine in B-frames git-svn-id: svn://svn.videolan.org/x264/trunk@736 df754926-b1dd-0310-bc7b-ec298dee348c commit d4d76b9f2b3eea4fe1ec87baf3f7feed53fe27e1 r735 Author: Loren Merritt Date: Sun Jan 27 16:29:54 2008 +0000 print average of macroblock QPs instead of frame's nominal QP git-svn-id: svn://svn.videolan.org/x264/trunk@735 df754926-b1dd-0310-bc7b-ec298dee348c commit ebdc49ffafe04f28381acea368c4c4926c0dfe24 r734 Author: Loren Merritt Date: Sun Jan 27 16:16:37 2008 +0000 update date git-svn-id: svn://svn.videolan.org/x264/trunk@734 df754926-b1dd-0310-bc7b-ec298dee348c commit efeb097a791e8d082f82b17378176bf954a43984 r733 Author: Loren Merritt Date: Sun Jan 27 16:06:31 2008 +0000 remove colorspace conversion support, because it has no business in any codec git-svn-id: svn://svn.videolan.org/x264/trunk@733 df754926-b1dd-0310-bc7b-ec298dee348c commit c1940b923740ef2e75dade431bc47f0c633e5af7 r732 Author: Loren Merritt Date: Sun Jan 27 14:01:40 2008 +0000 misc fixes in checkasm git-svn-id: svn://svn.videolan.org/x264/trunk@732 df754926-b1dd-0310-bc7b-ec298dee348c commit ea9eaa7086e4262405b3aff047da621b6edc8814 r731 Author: Loren Merritt Date: Sun Jan 27 13:39:09 2008 +0000 remove a useless bit of me=umh (originally copied from JM, where it was used for something) git-svn-id: svn://svn.videolan.org/x264/trunk@731 df754926-b1dd-0310-bc7b-ec298dee348c commit a93d7bf14049affb0ef925ba8e0f7f919693bca9 r730 Author: Loren Merritt Date: Sun Jan 27 11:50:50 2008 +0000 fix a memleak in cqm git-svn-id: svn://svn.videolan.org/x264/trunk@730 df754926-b1dd-0310-bc7b-ec298dee348c commit 6f9cb0d93cb51d19c7e50e03b2d08f570bbef087 r729 Author: Loren Merritt Date: Sun Jan 27 11:49:16 2008 +0000 fix a memleak in mkv muxer patch by saintdev git-svn-id: svn://svn.videolan.org/x264/trunk@729 df754926-b1dd-0310-bc7b-ec298dee348c commit fa58b842b47a5e7fd3ac91d8141e800ecdbab0c7 r728 Author: Loren Merritt Date: Sun Jan 27 11:36:11 2008 +0000 satd exhaustive motion search (--me tesa) git-svn-id: svn://svn.videolan.org/x264/trunk@728 df754926-b1dd-0310-bc7b-ec298dee348c commit 2c437ce15c167def5ff0b98759bed56000d782ca r727 Author: Loren Merritt Date: Sun Jan 27 11:09:52 2008 +0000 fix cabac context for nonzero delta_qp of the 2nd mb of a frame in interlaced mode git-svn-id: svn://svn.videolan.org/x264/trunk@727 df754926-b1dd-0310-bc7b-ec298dee348c commit c111a8e2cf2993551c859bfb8459409b0749294e r726 Author: Loren Merritt Date: Sun Jan 27 10:32:36 2008 +0000 fix mapping of mvs to partitions in p4x4_chroma patch by Noboru Asai git-svn-id: svn://svn.videolan.org/x264/trunk@726 df754926-b1dd-0310-bc7b-ec298dee348c commit 3ef36bcf151b4231b2853e770c4a1f208964f046 r725 Author: Loren Merritt Date: Sun Jan 27 10:12:24 2008 +0000 fix mvp for b16x8 and b8x16 L1 search patch by Wei-Yin Chen git-svn-id: svn://svn.videolan.org/x264/trunk@725 df754926-b1dd-0310-bc7b-ec298dee348c commit 47ea39dc0e5df989776f7d5a78cb9033fbd72947 r724 Author: Loren Merritt Date: Sun Jan 27 10:05:20 2008 +0000 shave a couple cycles off cabac functions git-svn-id: svn://svn.videolan.org/x264/trunk@724 df754926-b1dd-0310-bc7b-ec298dee348c commit 6cbea64acf3e6641600e7ac04789989ae61ceaf3 r723 Author: Loren Merritt Date: Sun Jan 27 09:12:39 2008 +0000 faster and smaller x264_macroblock_cache_mv etc git-svn-id: svn://svn.videolan.org/x264/trunk@723 df754926-b1dd-0310-bc7b-ec298dee348c commit 573314cce458b5689aa768a4667927b5affdf0f8 r722 Author: Loren Merritt Date: Sun Jan 27 09:11:01 2008 +0000 configure test for endianness git-svn-id: svn://svn.videolan.org/x264/trunk@722 df754926-b1dd-0310-bc7b-ec298dee348c commit 41d021e339d1ace8bbce7b3bd2cc04eea7385589 r721 Author: Loren Merritt Date: Fri Jan 18 00:42:38 2008 +0000 change the meaning of --ref: it now selects DPB size (including B-frames), rather than L0 size (which B-frames are added to) git-svn-id: svn://svn.videolan.org/x264/trunk@721 df754926-b1dd-0310-bc7b-ec298dee348c commit 5d3a62a22c15fc2a5a8e45a6ecf8e2745066a55b r720 Author: Guillaume Poirier Date: Mon Jan 14 09:54:33 2008 +0000 add / fix support for FreeBSD, based on a patch by Igor Mozolevsky % igor A hybrid-lab P co P uk % git-svn-id: svn://svn.videolan.org/x264/trunk@720 df754926-b1dd-0310-bc7b-ec298dee348c commit 85d88a4260abe6bd931e749a6e0a98cd37020b05 r719 Author: Loren Merritt Date: Wed Jan 9 11:25:09 2008 +0000 shut up some valgrind warnings git-svn-id: svn://svn.videolan.org/x264/trunk@719 df754926-b1dd-0310-bc7b-ec298dee348c commit 810c096dcb7f9b571540200a32e89b31ee964cca r718 Author: Loren Merritt Date: Tue Jan 8 18:10:51 2008 +0000 slightly wrong memory allocation in r717, fixes a potential crash with merange>32 git-svn-id: svn://svn.videolan.org/x264/trunk@718 df754926-b1dd-0310-bc7b-ec298dee348c commit fd9ab6cee508192fe53ffaa52d3d7586004808fa r717 Author: Loren Merritt Date: Sun Jan 6 08:15:04 2008 +0000 convert absolute difference of sums from mmx to sse2 convert mv bits cost and ads threshold from C to sse2 convert bytemask-to-list from C to scalar asm 1.6x faster me=esa (x86_64) or 1.3x faster (x86_32). (times consider only motion estimation. overall encode speedup may vary.) git-svn-id: svn://svn.videolan.org/x264/trunk@717 df754926-b1dd-0310-bc7b-ec298dee348c commit 9f38e6044c4e4a97af6af1dce6689a32603cf40f r716 Author: Loren Merritt Date: Sun Jan 6 08:06:36 2008 +0000 round esa range to a multiple of 4 git-svn-id: svn://svn.videolan.org/x264/trunk@716 df754926-b1dd-0310-bc7b-ec298dee348c commit eb978d2202e2b99bdb3c73659470c0a9a312255d r715 Author: Guillaume Poirier Date: Thu Jan 3 22:24:38 2008 +0000 use define _WIN32 instead of __WIN32__ or WIN32 defines. NSDN reference: http://msdn2.microsoft.com/en-us/library/b0084kay(VS.80).aspx Patch by BugMaster %BugMaster A narod P ru% Original thread: date: Dec 27, 2007 3:18 AM subject: [x264-devel] VS2008 compilation error (need of replacement __WIN32__ with _WIN32) git-svn-id: svn://svn.videolan.org/x264/trunk@715 df754926-b1dd-0310-bc7b-ec298dee348c commit 96a59591e1190a3b4dbcbae79f9b150f09977427 r714 Author: Loren Merritt Date: Fri Dec 21 01:57:14 2007 +0000 tweak x264_pixel_sad_x4_16x16_sse2 horizontal sum. 168 -> 166 cycles on core2. git-svn-id: svn://svn.videolan.org/x264/trunk@714 df754926-b1dd-0310-bc7b-ec298dee348c commit 22fbdf34f4b4fd6a7f7758792b63bb0db7f7c49e r713 Author: Loren Merritt Date: Thu Dec 20 19:24:17 2007 +0000 fix a nondeterminism involving 8x8dct, rdo, and threads. git-svn-id: svn://svn.videolan.org/x264/trunk@713 df754926-b1dd-0310-bc7b-ec298dee348c commit 0d0bbedf31c8c393909454a6035500564efbafda r712 Author: Guillaume Poirier Date: Thu Dec 13 15:43:41 2007 +0000 also test arch-specific x264_zigzag_* implementations in checkasm.c patch by Patch by Noboru Asai % noboru P asai A gmail P com% git-svn-id: svn://svn.videolan.org/x264/trunk@712 df754926-b1dd-0310-bc7b-ec298dee348c commit 9fb4e53f4cbf65d5386da7f3321ddcaf8f5250d3 r711 Author: Guillaume Poirier Date: Mon Dec 10 22:09:13 2007 +0000 Add AltiVec implementation of - x264_zigzag_scan_4x4_frame_altivec() - x264_zigzag_scan_4x4ac_frame_altivec() - x264_zigzag_scan_4x4_field_altivec() - x264_zigzag_scan_4x4ac_field_altivec() each around 1.3 tp 1.8x faster than C version Patch by Noboru Asai % noboru P asai A gmail P com% git-svn-id: svn://svn.videolan.org/x264/trunk@711 df754926-b1dd-0310-bc7b-ec298dee348c commit 795c3c1c2a4f5d4d2ef9025583a21ab400439fa6 r710 Author: Guillaume Poirier Date: Sun Dec 9 15:50:52 2007 +0000 adds AliVec implementation of predict_16x16_p() over 4x faster than C version git-svn-id: svn://svn.videolan.org/x264/trunk@710 df754926-b1dd-0310-bc7b-ec298dee348c commit fec04825ea98af0420fdf11cf0a2b5a268371590 r709 Author: Loren Merritt Date: Tue Dec 4 21:56:18 2007 +0000 revert the x86_32 part of r708. elf shared libraries aren't important enough to be worth the extra lines of code to check for nasm. git-svn-id: svn://svn.videolan.org/x264/trunk@709 df754926-b1dd-0310-bc7b-ec298dee348c commit 2eb91cc12b9db4adb546f990f383265720a822ce r708 Author: Loren Merritt Date: Mon Dec 3 01:17:23 2007 +0000 mark asm functions as hidden git-svn-id: svn://svn.videolan.org/x264/trunk@708 df754926-b1dd-0310-bc7b-ec298dee348c commit b21b675b714735de723d7d2e5602e11f75644c41 r707 Author: Loren Merritt Date: Mon Dec 3 01:16:57 2007 +0000 check whether ld supports -Bsymbolic before using it git-svn-id: svn://svn.videolan.org/x264/trunk@707 df754926-b1dd-0310-bc7b-ec298dee348c commit cda2dead4d316f2b1015a9cbb37765ad7eb57a13 r706 Author: Loren Merritt Date: Sun Dec 2 15:57:43 2007 +0000 reduce the data type used in some tables. 16KB smaller exe. git-svn-id: svn://svn.videolan.org/x264/trunk@706 df754926-b1dd-0310-bc7b-ec298dee348c commit 4b199a95c2df54707186d3fab1b8c9511cfe0458 r705 Author: Loren Merritt Date: Sat Dec 1 18:03:16 2007 +0000 faster removal of duplicate mv predictors git-svn-id: svn://svn.videolan.org/x264/trunk@705 df754926-b1dd-0310-bc7b-ec298dee348c commit f72092d59eeb212bb6db98796c797b53d1f3d966 r704 Author: Loren Merritt Date: Sat Dec 1 15:17:19 2007 +0000 avoid a division in x264_mb_predict_mv_ref16x16. patch by Dark Shikari. git-svn-id: svn://svn.videolan.org/x264/trunk@704 df754926-b1dd-0310-bc7b-ec298dee348c commit c0b1b1af1cc30fe9ae7ad46e5c1ccd7640ceb889 r703 Author: Loren Merritt Date: Sat Dec 1 02:58:34 2007 +0000 avoid a division in umh. patch by Dark Shikari. git-svn-id: svn://svn.videolan.org/x264/trunk@703 df754926-b1dd-0310-bc7b-ec298dee348c commit 3c9aac03ba992811e8cbddf26c76cb6de3cbdcdb r702 Author: Loren Merritt Date: Mon Nov 26 11:44:37 2007 +0000 fix a memleak in h->mb.mvr git-svn-id: svn://svn.videolan.org/x264/trunk@702 df754926-b1dd-0310-bc7b-ec298dee348c commit beeedbd05790c7205e046d8b36ee19b7fd3a07ea r701 Author: Loren Merritt Date: Sun Nov 25 12:38:19 2007 +0000 fix compilation as a shared library on x86_64 (regression in r696) git-svn-id: svn://svn.videolan.org/x264/trunk@701 df754926-b1dd-0310-bc7b-ec298dee348c commit ebd03d46126b828de6cc30e7d45a6ec4f0caa1d1 r700 Author: Guillaume Poirier Date: Wed Nov 21 18:30:49 2007 +0000 add support for x86_64 on Darwin9.0 (Mac OS X 10.5, aka Leopard) Patch by Antoine Gerschenfeld %gerschen A clipper P ens P fr% git-svn-id: svn://svn.videolan.org/x264/trunk@700 df754926-b1dd-0310-bc7b-ec298dee348c commit b5c805e343923f7d12c8bb09cd64682584dc9ca6 r699 Author: Loren Merritt Date: Wed Nov 21 11:52:19 2007 +0000 cover some more options in fprofile. (esa, bime, cqm, nr, no-dct-decimate, trellis2) previously, esa was slower with fprofile than without, since gcc thought it wasn't important. now esa benefits like anything else. git-svn-id: svn://svn.videolan.org/x264/trunk@699 df754926-b1dd-0310-bc7b-ec298dee348c commit d4493c32b2d6f1eee5b7df0026a31562665bff07 r698 Author: Guillaume Poirier Date: Tue Nov 20 18:22:03 2007 +0000 Add AltiVec implementation of x264_pixel_ssd_8x8, 3x faster than C version Overall speed-up: 0.7% with --bframes 3 --ref 5 -m 7 --b-rdo Patch by Noboru Asai %noboru P asai A gmail P com% git-svn-id: svn://svn.videolan.org/x264/trunk@698 df754926-b1dd-0310-bc7b-ec298dee348c commit a2db19e6ca89f40b2523f6964832c69369a3ee29 r697 Author: Loren Merritt Date: Tue Nov 20 08:53:26 2007 +0000 limit mvs to [-512,511.75] instead of [-512,512] git-svn-id: svn://svn.videolan.org/x264/trunk@697 df754926-b1dd-0310-bc7b-ec298dee348c commit 6d6092197676cf4949bff2a1e28a79aa1bbab1ea r696 Author: Loren Merritt Date: Tue Nov 20 06:07:17 2007 +0000 avoid memory loads that span the border between two cachelines. on core2 this makes x264_pixel_sad an average of 2x faster. other intel cpus gain various amounts. amd are unaffected. overall speedup: 1-10%, depending on how much time is spent in fullpel motion estimation. git-svn-id: svn://svn.videolan.org/x264/trunk@696 df754926-b1dd-0310-bc7b-ec298dee348c commit 1dddea2512490c558b82888ccd7497800e5c7766 r695 Author: Loren Merritt Date: Tue Nov 20 05:57:29 2007 +0000 add cache info to cpu_detect. also print sse3. git-svn-id: svn://svn.videolan.org/x264/trunk@695 df754926-b1dd-0310-bc7b-ec298dee348c commit 1cab251509f48fd605616c0c2d1c769552abbc71 r694 Author: Loren Merritt Date: Mon Nov 19 17:10:57 2007 +0000 cosmetics: reorder mc_luma/mc_chroma/get_ref arguments for consistency with other functions git-svn-id: svn://svn.videolan.org/x264/trunk@694 df754926-b1dd-0310-bc7b-ec298dee348c commit 4611e5ca14ba407aa7aa8e00cfeedc822a504c3a r693 Author: Loren Merritt Date: Mon Nov 19 17:08:07 2007 +0000 separate pixel_avg into cases for mc and for bipred git-svn-id: svn://svn.videolan.org/x264/trunk@693 df754926-b1dd-0310-bc7b-ec298dee348c commit edf284268a60110e0ce0474f0b4e3fb772c6935f r692 Author: Guillaume Poirier Date: Sun Nov 18 23:58:18 2007 +0000 add AltiVec implementation of ssim_4x4x2_core, about 4x faster than C version. Overall: 0.1-0.2% faster with default encoding settings Patch by Noboru Asai %noboru P asai A gmail P com% git-svn-id: svn://svn.videolan.org/x264/trunk@692 df754926-b1dd-0310-bc7b-ec298dee348c commit b9eb9117a8f028ec5b727587c823a1c2ae83509e r691 Author: Guillaume Poirier Date: Sun Nov 18 23:47:41 2007 +0000 Add AltiVec implementation ofx264_hpel_filter. Provides a 10-11% overall speed-up with default encoding options Patch by Noboru Asai %noboru P asai A gmail P com% git-svn-id: svn://svn.videolan.org/x264/trunk@691 df754926-b1dd-0310-bc7b-ec298dee348c commit 370e10918eaab9cdfb101c8cadacbd8549434558 r690 Author: Loren Merritt Date: Sun Nov 18 01:45:44 2007 +0000 cosmetics in dsp function selection git-svn-id: svn://svn.videolan.org/x264/trunk@690 df754926-b1dd-0310-bc7b-ec298dee348c commit a6ed1528c30883cb7ee36bc6046809095cae7a1c r689 Author: Loren Merritt Date: Sat Nov 17 10:21:46 2007 +0000 remove sad_pde. it's been unused ever since successive elimination replaced it. git-svn-id: svn://svn.videolan.org/x264/trunk@689 df754926-b1dd-0310-bc7b-ec298dee348c commit 9f6f0b25d41263d3081a21d1d9bae853a1ec8329 r688 Author: Loren Merritt Date: Fri Nov 16 10:27:14 2007 +0000 cosmetics: use symbolic constants for frame padding radius git-svn-id: svn://svn.videolan.org/x264/trunk@688 df754926-b1dd-0310-bc7b-ec298dee348c commit 5324ae5fc9eb5c318ad5e3136d3aca4dd4ae7831 r687 Author: Loren Merritt Date: Fri Nov 16 09:17:58 2007 +0000 move hpel_filter cpu detection to a function pointer like everything else git-svn-id: svn://svn.videolan.org/x264/trunk@687 df754926-b1dd-0310-bc7b-ec298dee348c commit 131603a5579f5dc36388d7e1b6edf1594a2bb039 r686 Author: Loren Merritt Date: Thu Nov 15 10:50:37 2007 +0000 cosmetics: use separate variables for frame width and stride git-svn-id: svn://svn.videolan.org/x264/trunk@686 df754926-b1dd-0310-bc7b-ec298dee348c commit a22fe12c4358ee3bbe205cf6dfded782eedd3886 r685 Author: Guillaume Poirier Date: Mon Nov 12 20:36:33 2007 +0000 Add AltiVec implementation of add4x4_idct, add8x8_idct, add16x16_idct, 3.2x faster on average 1.05x faster overall with default encoding options Patch by Noboru Asai % noboru DD asai AA gmail DD com % git-svn-id: svn://svn.videolan.org/x264/trunk@685 df754926-b1dd-0310-bc7b-ec298dee348c commit ebf8b1ea0e217f05c9efede19c5cdab89ec13aab r684 Author: Guillaume Poirier Date: Mon Nov 12 20:28:30 2007 +0000 add AltiVec implementation of dequant_4x4 and dequant_8x8, 2.8x faster than C, 1.01x faster than previous revision with default encoding options Patch by Noboru Asai % noboru DD asai AA gmail DD com % git-svn-id: svn://svn.videolan.org/x264/trunk@684 df754926-b1dd-0310-bc7b-ec298dee348c commit 1d22eba0d87412862692b2ce1e85c34b89c23a9b r683 Author: Guillaume Poirier Date: Mon Nov 12 12:47:38 2007 +0000 Add AltiVec implementation of quant_2x2_dc, fix Altivec implementation of quant_(4x4|8x8)(|_dc) wrt current C implementation Patch by Noboru Asai % noboru DD asai AA gmail DD com % git-svn-id: svn://svn.videolan.org/x264/trunk@683 df754926-b1dd-0310-bc7b-ec298dee348c commit 0fabcd46823bc8dd3f19d98f23452dba1a8b7cbc r682 Author: Loren Merritt Date: Thu Nov 1 12:21:13 2007 +0000 fix a possible nondeterminism with me=umh + threads. git-svn-id: svn://svn.videolan.org/x264/trunk@682 df754926-b1dd-0310-bc7b-ec298dee348c commit 7da80e549051583d23d8f503665c0fb660b695bb r681 Author: Loren Merritt Date: Mon Oct 29 14:48:46 2007 +0000 use hex instead of dia for rdo mv refinement. ~0.5% lower bitrate at subme=7. patch by Dark Shikari. git-svn-id: svn://svn.videolan.org/x264/trunk@681 df754926-b1dd-0310-bc7b-ec298dee348c commit 35094bec4e0202cbdb710b98fa04ea24375531e0 r680 Author: Loren Merritt Date: Mon Sep 24 13:37:44 2007 +0000 port sad_*_x3_sse2 to x86_64 git-svn-id: svn://svn.videolan.org/x264/trunk@680 df754926-b1dd-0310-bc7b-ec298dee348c commit 673ce32a59310b5494049cce140e5420128331ed r679 Author: Loren Merritt Date: Mon Sep 24 11:24:28 2007 +0000 don't overwrite pthread* namespace, because system headers might define those functions even if we don't want them git-svn-id: svn://svn.videolan.org/x264/trunk@679 df754926-b1dd-0310-bc7b-ec298dee348c commit 5c49545c0277a8da1c29809118a734c461116c54 r678 Author: Loren Merritt Date: Fri Sep 21 20:20:22 2007 +0000 faster 4x4 sad git-svn-id: svn://svn.videolan.org/x264/trunk@678 df754926-b1dd-0310-bc7b-ec298dee348c commit a6edfd669f97154571f203cfa69d634a639800ff r677 Author: Loren Merritt Date: Thu Sep 20 08:10:45 2007 +0000 fix an arithmetic overflow in trellis at high qp. git-svn-id: svn://svn.videolan.org/x264/trunk@677 df754926-b1dd-0310-bc7b-ec298dee348c commit 463437926e73b3d18542804cbef31f277d115cc2 r676 Author: Loren Merritt Date: Sat Sep 15 06:34:05 2007 +0000 implement multithreaded me=esa git-svn-id: svn://svn.videolan.org/x264/trunk@676 df754926-b1dd-0310-bc7b-ec298dee348c commit cde5f334121ba1cf6ae13174337ae49008c1f2a4 r675 Author: Loren Merritt Date: Wed Sep 12 05:42:23 2007 +0000 fix some integer overflows. now vbv size can exceed 2 Gbit. git-svn-id: svn://svn.videolan.org/x264/trunk@675 df754926-b1dd-0310-bc7b-ec298dee348c commit d16a4da48b06671e85578ee022729bb2fb6f59c9 r674 Author: Loren Merritt Date: Sun Sep 9 03:17:20 2007 +0000 allow --vbv-init to take absolute values (in kbit), in addition to the previous fractions of vbv-bufsize. git-svn-id: svn://svn.videolan.org/x264/trunk@674 df754926-b1dd-0310-bc7b-ec298dee348c commit 98494077449c4a66ed55cd5ee5a89b7c62e12dd0 r673 Author: Loren Merritt Date: Fri Sep 7 20:40:13 2007 +0000 remove a bashism git-svn-id: svn://svn.videolan.org/x264/trunk@673 df754926-b1dd-0310-bc7b-ec298dee348c commit 759620535bccdb4d872fcc3b798eb6df68c672db r672 Author: Loren Merritt Date: Sun Sep 2 04:32:17 2007 +0000 reorder headers so that largefile support is defined before the first copy of stdio git-svn-id: svn://svn.videolan.org/x264/trunk@672 df754926-b1dd-0310-bc7b-ec298dee348c commit 71af28517442b4388c031d1ce74fa5096beca9bf r671 Author: Loren Merritt Date: Mon Aug 20 16:44:42 2007 +0000 regression in r669: broke saving of configure args if make has to re-run configure git-svn-id: svn://svn.videolan.org/x264/trunk@671 df754926-b1dd-0310-bc7b-ec298dee348c commit 393daac2d7578e0a9d7d541f25026f22f62d03bc r670 Author: Loren Merritt Date: Sat Aug 18 01:13:22 2007 +0000 regression in r669: --enable-shared should imply --enable-pic on some archs. git-svn-id: svn://svn.videolan.org/x264/trunk@670 df754926-b1dd-0310-bc7b-ec298dee348c commit 113800851647deafdacc9a35ee8a1a761f1c777d r669 Author: Loïc Minier Date: Sun Aug 12 12:46:15 2007 +0000 * Add a --host flag to allow overriding config.guess; this is particularly useful with a 64-bits kernel running a 32-bits userland to build 32-bits apps. * Normalize any host triplet into a quadruplet via config.sub. * Move option parsing before any use of architecture information. git-svn-id: svn://svn.videolan.org/x264/trunk@669 df754926-b1dd-0310-bc7b-ec298dee348c commit 3d51a5ba7966542355f0e3904f6e8319b9ba55c2 r668 Author: Loïc Minier Date: Sun Aug 12 12:36:23 2007 +0000 * Update config.guess. git-svn-id: svn://svn.videolan.org/x264/trunk@668 df754926-b1dd-0310-bc7b-ec298dee348c commit 0ea7d1b2ecb6d744c0af674e7b3b8f85eabf3aaa r667 Author: Loren Merritt Date: Tue Jul 17 11:24:26 2007 +0000 mingw doesn't have strtok_r git-svn-id: svn://svn.videolan.org/x264/trunk@667 df754926-b1dd-0310-bc7b-ec298dee348c commit 85f2fc3252f0fae8031fa9e942577d121cb75cd1 r666 Author: Loren Merritt Date: Tue Jul 17 11:11:19 2007 +0000 move os/compiler specific defines to their own header git-svn-id: svn://svn.videolan.org/x264/trunk@666 df754926-b1dd-0310-bc7b-ec298dee348c commit a18f3dab89e6786233c11723900f8b0126e1494d r665 Author: Loren Merritt Date: Thu Jul 12 23:48:23 2007 +0000 extend zones to support (some) encoding parameters in addition to ratecontrol. git-svn-id: svn://svn.videolan.org/x264/trunk@665 df754926-b1dd-0310-bc7b-ec298dee348c commit d5ddf40b1ae1c267ea3f9e998d6ac1e3a4004e07 r664 Author: Loren Merritt Date: Fri Jul 6 17:08:26 2007 +0000 cosmetics git-svn-id: svn://svn.videolan.org/x264/trunk@664 df754926-b1dd-0310-bc7b-ec298dee348c commit ee62378f91c3cfcc028e771b8bc998b4490cc8a1 r663 Author: Loren Merritt Date: Thu Jun 28 21:26:21 2007 +0000 limit vertical motion vectors to +/-512, since some decoders actually depend on that limit. git-svn-id: svn://svn.videolan.org/x264/trunk@663 df754926-b1dd-0310-bc7b-ec298dee348c commit 303175413b0f1f38d488c7decbce9d7ccb81f647 r662 Author: Guillaume Poirier Date: Fri Jun 22 21:42:41 2007 +0000 Add vertical and horizontal luma deblocking accelerated with Altivec, based on Graham Booker's code written for FFmpeg with slight modifications to re-use x264's macros git-svn-id: svn://svn.videolan.org/x264/trunk@662 df754926-b1dd-0310-bc7b-ec298dee348c commit 9acd233b21bb1c0808b2f4c4c100511b3d6d45a1 r661 Author: Loren Merritt Date: Sat Jun 16 04:09:01 2007 +0000 cosmetics in cpu detection git-svn-id: svn://svn.videolan.org/x264/trunk@661 df754926-b1dd-0310-bc7b-ec298dee348c commit 80090ccfb3493659451c21506d77dcacda6bcab2 r660 Author: Loren Merritt Date: Sat Jun 16 04:02:48 2007 +0000 fix compilation without asm on x86_32 (r658 worked only on x86_64). git-svn-id: svn://svn.videolan.org/x264/trunk@660 df754926-b1dd-0310-bc7b-ec298dee348c commit fedfacea656db5a327fba0c449fe70181539f876 r659 Author: Loren Merritt Date: Sun Jun 10 23:46:31 2007 +0000 exempt 1080p from the non-mod16 warning. git-svn-id: svn://svn.videolan.org/x264/trunk@659 df754926-b1dd-0310-bc7b-ec298dee348c commit 17dd119d8275224ad7f830dcdf4a5458150fcd31 r658 Author: Alex Izvorski Date: Tue Jun 5 18:38:31 2007 +0000 allow compiling without yasm/nasm on x86 and x86-64 platforms git-svn-id: svn://svn.videolan.org/x264/trunk@658 df754926-b1dd-0310-bc7b-ec298dee348c commit 26bed72be4941353b4c79eddf500ce39aaf75490 r657 Author: Alex Izvorski Date: Tue Jun 5 18:32:13 2007 +0000 updated MS VC8/VC7 build, patch by Gabriel Bouvigne git-svn-id: svn://svn.videolan.org/x264/trunk@657 df754926-b1dd-0310-bc7b-ec298dee348c commit a35548661f5f50c22516147b9b164f25d44a69db r656 Author: Alex Izvorski Date: Sat May 26 03:13:08 2007 +0000 replace alloca with malloc everywhere. per manpage, use of alloca is discouraged. this may have a minor effect on the speed of ssim and esa, but that appears too small to measure. git-svn-id: svn://svn.videolan.org/x264/trunk@656 df754926-b1dd-0310-bc7b-ec298dee348c commit ffa4e76d4573303271c768f6ec03c21f0f2f4f02 r655 Author: Loren Merritt Date: Wed May 2 21:33:43 2007 +0000 require a ratecontrol method to be specified, it no longer defaults to cqp=26. git-svn-id: svn://svn.videolan.org/x264/trunk@655 df754926-b1dd-0310-bc7b-ec298dee348c commit b5ef788a7c6d2c7ba2cdb664ffd5544603979495 r654 Author: Loren Merritt Date: Mon Apr 23 08:34:52 2007 +0000 fix nnz computation in cavlc+8x8dct+deblock. (regression in r607) git-svn-id: svn://svn.videolan.org/x264/trunk@654 df754926-b1dd-0310-bc7b-ec298dee348c commit 08b4f6956135d54693b4e618f58fd7f68e654473 r653 Author: Loren Merritt Date: Mon Apr 23 07:09:30 2007 +0000 fix the computation of bits used for vbv. (regression in r651) git-svn-id: svn://svn.videolan.org/x264/trunk@653 df754926-b1dd-0310-bc7b-ec298dee348c commit fe85aca1c58ef4975aee8e6e32b4d57624960367 r652 Author: Loren Merritt Date: Sun Apr 22 03:37:56 2007 +0000 c89 compile fix git-svn-id: svn://svn.videolan.org/x264/trunk@652 df754926-b1dd-0310-bc7b-ec298dee348c commit b3076aef6c40f10260ef7386e3f2e028997da5d5 r651 Author: Loren Merritt Date: Sat Apr 21 11:32:34 2007 +0000 cabac: use bytestream instead of bitstream. 35% faster cabac, 20% faster overall lossless, ~1% faster overall at normal bitrates. git-svn-id: svn://svn.videolan.org/x264/trunk@651 df754926-b1dd-0310-bc7b-ec298dee348c commit 8300d3344b73612ec449a2c2ee259c654fef9d0a r650 Author: Loren Merritt Date: Wed Apr 11 22:21:15 2007 +0000 remove the restriction on number of threads as a function of resolution (it was wrong anyway in the presence of B-frames), and raise the max number of threads in general (though more will have to be done before it can really scale to lots of cores). git-svn-id: svn://svn.videolan.org/x264/trunk@650 df754926-b1dd-0310-bc7b-ec298dee348c commit 8ecf4b912011e9a097d570086553f4685d5dddc5 r649 Author: Loren Merritt Date: Tue Apr 10 22:37:18 2007 +0000 tweak ssse3 quant git-svn-id: svn://svn.videolan.org/x264/trunk@649 df754926-b1dd-0310-bc7b-ec298dee348c commit c266480eb24e7886877f52436056e99fced02cdc r648 Author: Loren Merritt Date: Sat Apr 7 04:53:16 2007 +0000 change some tables from int to int8_t. 13KB smaller executable. git-svn-id: svn://svn.videolan.org/x264/trunk@648 df754926-b1dd-0310-bc7b-ec298dee348c commit 2f66c11a4eeb17950b3aee18cc105572e860ec44 r647 Author: Loren Merritt Date: Fri Apr 6 21:45:33 2007 +0000 faster cabac rdo. up to 10% faster at q0, but negligible at normal bitrates. git-svn-id: svn://svn.videolan.org/x264/trunk@647 df754926-b1dd-0310-bc7b-ec298dee348c commit 3e7b136c8525f73f6e01be260adbfc15c34503d7 r646 Author: Loren Merritt Date: Fri Apr 6 21:17:34 2007 +0000 workaround gcc's inability to align variables on the stack. this crash was introduced in r642, but only because previous versions didn't use sse2 on the stack. git-svn-id: svn://svn.videolan.org/x264/trunk@646 df754926-b1dd-0310-bc7b-ec298dee348c commit 84676d2eba9fc18d62e168b60d7d1118d1c232d3 r645 Author: Loren Merritt Date: Thu Apr 5 16:11:03 2007 +0000 32bit version of ssse3 satd. switch default assembler to yasm. it will still fallback to nasm if you don't have yasm. git-svn-id: svn://svn.videolan.org/x264/trunk@645 df754926-b1dd-0310-bc7b-ec298dee348c commit 71c097b28e1405076f554d3b948885fd69c1774f r644 Author: Loren Merritt Date: Wed Apr 4 19:34:02 2007 +0000 simplify trellis git-svn-id: svn://svn.videolan.org/x264/trunk@644 df754926-b1dd-0310-bc7b-ec298dee348c commit 12681eea55239d21eb8ce0ca058c5d859afedc9f r643 Author: Loren Merritt Date: Wed Apr 4 18:59:20 2007 +0000 fix an arithmetic overflow in trellis with QP >= 42 git-svn-id: svn://svn.videolan.org/x264/trunk@643 df754926-b1dd-0310-bc7b-ec298dee348c commit 10265a0c2a0b29e6252ad3be6fad1569e7a04339 r642 Author: Loren Merritt Date: Wed Apr 4 18:45:25 2007 +0000 2x faster quant. 2% overall. side effects: not bit-identical to the previous algorithm. while the new algorithm covers a wider range of cqms than the previous one did, I couldn't find a good way to fallback to a general version for the extreme cqms. so now it refuses to encode extreme cqms instead of just being slower. lays a framework for custom deadzone matrices, though I didn't add an api. git-svn-id: svn://svn.videolan.org/x264/trunk@642 df754926-b1dd-0310-bc7b-ec298dee348c commit b37ac36e8442dd8fd8f25933b6a0a119d471e8f7 r641 Author: Loren Merritt Date: Wed Apr 4 18:35:51 2007 +0000 when encoding with a cqm, probe_skip now also uses the cqm, instead of the flat matrix git-svn-id: svn://svn.videolan.org/x264/trunk@641 df754926-b1dd-0310-bc7b-ec298dee348c commit e3a07e098f96dfc2dbde8da6cad77ed012d4397e r640 Author: Loren Merritt Date: Wed Apr 4 00:48:55 2007 +0000 cosmetics in asm macros git-svn-id: svn://svn.videolan.org/x264/trunk@640 df754926-b1dd-0310-bc7b-ec298dee348c commit 71943e8acbfdb85d944f2800e49bcb7902afaaf3 r639 Author: Alex Izvorski Date: Tue Apr 3 17:18:17 2007 +0000 use only c-style comments in public header (patch by Vincent Torres) git-svn-id: svn://svn.videolan.org/x264/trunk@639 df754926-b1dd-0310-bc7b-ec298dee348c commit dfb854775c7b52945a84ef756dc88a4ccb7c2d2c r638 Author: Loren Merritt Date: Mon Apr 2 23:56:09 2007 +0000 in hpel search, merge two 16x16 mc calls into one 16x17. 15% faster hpel, .3% overall. git-svn-id: svn://svn.videolan.org/x264/trunk@638 df754926-b1dd-0310-bc7b-ec298dee348c commit e63c3924ef2c9790aa6440fa11dddf1026862f23 r637 Author: Christophe Mutricy Date: Mon Apr 2 19:17:28 2007 +0000 Compile fix git-svn-id: svn://svn.videolan.org/x264/trunk@637 df754926-b1dd-0310-bc7b-ec298dee348c commit dd7e21c6cba26298eac190abcb702b490bd98c5e r636 Author: Loren Merritt Date: Fri Mar 30 20:20:36 2007 +0000 remove private stuff from public headers. no more need for -D__X264__ git-svn-id: svn://svn.videolan.org/x264/trunk@636 df754926-b1dd-0310-bc7b-ec298dee348c commit 87fdea89e007258c2d48156f14b883ef29c02831 r635 Author: Loren Merritt Date: Sat Mar 24 12:58:27 2007 +0000 adjust bitstream buffer sizes for very large frames git-svn-id: svn://svn.videolan.org/x264/trunk@635 df754926-b1dd-0310-bc7b-ec298dee348c commit 8b37cc6aa5e23bf4a529b79745f73dedab1fa4ff r634 Author: Loren Merritt Date: Wed Mar 14 22:41:50 2007 +0000 conflate HAVE_MMXEXT with HAVE_SSE2, since they were never used distinctly. git-svn-id: svn://svn.videolan.org/x264/trunk@634 df754926-b1dd-0310-bc7b-ec298dee348c commit 11ef32f432b8e055c30c99531e25320dbce8f656 r633 Author: Sam Hocevar Date: Wed Mar 14 21:53:47 2007 +0000 * Made -DNEED_ALTIVEC unnecessary, thanks to Guillaume Poirier. git-svn-id: svn://svn.videolan.org/x264/trunk@633 df754926-b1dd-0310-bc7b-ec298dee348c commit 37ad2377b8781330d400985ce12a1ec61067a5e4 r632 Author: Sam Hocevar Date: Wed Mar 14 21:31:50 2007 +0000 * check x264_cpu_detect() before calling AltiVec functions. git-svn-id: svn://svn.videolan.org/x264/trunk@632 df754926-b1dd-0310-bc7b-ec298dee348c commit 8aef0e941d986f10427cc2d3a848162065bdef3a r631 Author: Loren Merritt Date: Wed Mar 14 21:11:11 2007 +0000 ssse3 detection. x86_64 ssse3 satd and quant. requires yasm >= 0.6.0 git-svn-id: svn://svn.videolan.org/x264/trunk@631 df754926-b1dd-0310-bc7b-ec298dee348c commit 1980de9bba111561be5ad3dde37b6f7a29a80a4e r630 Author: Sam Hocevar Date: Wed Mar 14 20:40:24 2007 +0000 * Use -maltivec when building dependencies, or cannot be used. * Do not declare vectors in non-AltiVec files. git-svn-id: svn://svn.videolan.org/x264/trunk@630 df754926-b1dd-0310-bc7b-ec298dee348c commit e1a4ae9ef58f461aa8ca1e0a1f88140a61d03680 r629 Author: Sam Hocevar Date: Wed Mar 14 18:04:06 2007 +0000 * common/cpu.c: runtime AltiVec autodetection on Linux. * configure, Makefile: do not build the whole project with -maltivec because it generates AltiVec code in weird places. git-svn-id: svn://svn.videolan.org/x264/trunk@629 df754926-b1dd-0310-bc7b-ec298dee348c commit f81c3eafa27ad90a02c1d87a9f74b509199ddb63 r628 Author: Loren Merritt Date: Mon Mar 5 15:35:42 2007 +0000 fix a small memleak. patch by Limin Wang. git-svn-id: svn://svn.videolan.org/x264/trunk@628 df754926-b1dd-0310-bc7b-ec298dee348c commit 62fc8a9c507166baaf104e69fd4c055d41fb0dce r627 Author: Guillaume Poirier Date: Sat Mar 3 12:59:23 2007 +0000 compile fix for GCC-3.3 on OSX, based on a patch by Patrice Bensoussan % patrice P bensoussan A free P fr% Note: regression test still do not pass with GCC-3.3, but they never did as far as I can remember. git-svn-id: svn://svn.videolan.org/x264/trunk@627 df754926-b1dd-0310-bc7b-ec298dee348c commit 89930744ed6921c5dfb0ffdfad2ca6059b2e6c6a r626 Author: Loren Merritt Date: Sat Mar 3 12:12:54 2007 +0000 cosmetics in regression test git-svn-id: svn://svn.videolan.org/x264/trunk@626 df754926-b1dd-0310-bc7b-ec298dee348c commit 6e1bbd2ff961ee51d8a5bd566784f19fb194c028 r625 Author: Alex Izvorski Date: Sat Mar 3 11:44:01 2007 +0000 regression testing, run similar to fprofiled: VIDS='vid_720x480.yuv' make test git-svn-id: svn://svn.videolan.org/x264/trunk@625 df754926-b1dd-0310-bc7b-ec298dee348c commit 435b675bac7e89d34644affd69bf88a82ddc9242 r624 Author: Alex Izvorski Date: Wed Feb 28 18:47:04 2007 +0000 add ability to generate doxygen documentation; make dox git-svn-id: svn://svn.videolan.org/x264/trunk@624 df754926-b1dd-0310-bc7b-ec298dee348c commit dac2be0cc94b897749381135e248cd1844f58fda r623 Author: Loren Merritt Date: Thu Feb 22 05:01:38 2007 +0000 oops, scenecut detection failed to activate when using threads and not using B-frames git-svn-id: svn://svn.videolan.org/x264/trunk@623 df754926-b1dd-0310-bc7b-ec298dee348c commit 49d16d48a132b3de8b80a59752e95dbe896e7477 r622 Author: Loren Merritt Date: Mon Jan 29 14:42:42 2007 +0000 extras/getopt.c was BSD licensed. replace with a LGPL version (from glibc). git-svn-id: svn://svn.videolan.org/x264/trunk@622 df754926-b1dd-0310-bc7b-ec298dee348c commit 972172560df8efb3d2162938526b3a3c812710a4 r621 Author: Guillaume Poirier Date: Thu Jan 25 08:32:16 2007 +0000 Fix build issues on Linux. Only gcc-4.x is supported, as on OSX. Cleans up a few inconsistencies in the code too. git-svn-id: svn://svn.videolan.org/x264/trunk@621 df754926-b1dd-0310-bc7b-ec298dee348c commit c9cd0fce3fcdb83fee9a49987abaa9983b4d1cf4 r620 Author: Loren Merritt Date: Sun Jan 21 12:12:04 2007 +0000 tweak block_residual_write_cavlc. up to 1% faster lossless, no difference at normal bitrates. git-svn-id: svn://svn.videolan.org/x264/trunk@620 df754926-b1dd-0310-bc7b-ec298dee348c commit 4c949c31a111c461b0362409baaff4550b7f664f r619 Author: Loren Merritt Date: Sat Jan 20 05:07:44 2007 +0000 don't assume int is exactly 4 bytes git-svn-id: svn://svn.videolan.org/x264/trunk@619 df754926-b1dd-0310-bc7b-ec298dee348c commit cf9e6c5c0ea4771da523d1a95517b2276cca6cf1 r618 Author: Loren Merritt Date: Thu Jan 11 23:55:51 2007 +0000 make array_non_zero() compatible with -fstrict-aliasing git-svn-id: svn://svn.videolan.org/x264/trunk@618 df754926-b1dd-0310-bc7b-ec298dee348c commit 285f98e197be56efde6b2c42832625193c432c54 r617 Author: Christophe Mutricy Date: Tue Jan 9 20:25:32 2007 +0000 Honor CFLAGS and LDFLAGS set by the user git-svn-id: svn://svn.videolan.org/x264/trunk@617 df754926-b1dd-0310-bc7b-ec298dee348c commit 0fe97f423591939454ac7d272fe5fb5dde837b3f r616 Author: Eric Petit Date: Tue Jan 2 14:51:10 2007 +0000 Check whether 'echo -n' works, otherwise try printf (fixes build on current OS X 10.5) git-svn-id: svn://svn.videolan.org/x264/trunk@616 df754926-b1dd-0310-bc7b-ec298dee348c commit bbc68bea7c30988d9f59e2ac99f88f9188f65654 r615 Author: Eric Petit Date: Mon Jan 1 22:41:44 2007 +0000 Check version of nasm on OS X / Intel git-svn-id: svn://svn.videolan.org/x264/trunk@615 df754926-b1dd-0310-bc7b-ec298dee348c commit b630af6c4af3118453d91aae75d2e61c513f2010 r614 Author: Loren Merritt Date: Wed Dec 20 04:22:59 2006 +0000 wrong reference frames were used with refs>=14 + pyramid (regression in r607) git-svn-id: svn://svn.videolan.org/x264/trunk@614 df754926-b1dd-0310-bc7b-ec298dee348c commit 01e1db245d0c1c6119a8316994f2083c6096811a r613 Author: Loren Merritt Date: Tue Dec 19 21:24:47 2006 +0000 enable thread synchronization primitives on linux too git-svn-id: svn://svn.videolan.org/x264/trunk@613 df754926-b1dd-0310-bc7b-ec298dee348c commit 34c6fb35ac799907caed6ad1cbbc287136c6b6c6 r612 Author: Loren Merritt Date: Tue Dec 19 09:35:45 2006 +0000 fix a crash with x264_encoder_headers() + threads git-svn-id: svn://svn.videolan.org/x264/trunk@612 df754926-b1dd-0310-bc7b-ec298dee348c commit dfe7bb017bface15c9ed47ab5924062300a79e5c r611 Author: Loren Merritt Date: Sat Dec 16 00:46:37 2006 +0000 don't skip autodection on configure --enable-pthread git-svn-id: svn://svn.videolan.org/x264/trunk@611 df754926-b1dd-0310-bc7b-ec298dee348c commit ab3b6602d733c9382a17b9e20a4478efd7ae5994 r610 Author: Loren Merritt Date: Sat Dec 16 00:32:38 2006 +0000 more win32threads -> pthreads git-svn-id: svn://svn.videolan.org/x264/trunk@610 df754926-b1dd-0310-bc7b-ec298dee348c commit cc753d6ba6634cfeee9c8b461bc996adf7e1aee6 r609 Author: Loren Merritt Date: Fri Dec 15 23:08:57 2006 +0000 cosmetics: rename list operators to be consistent with Perl, and move them to common/ git-svn-id: svn://svn.videolan.org/x264/trunk@609 df754926-b1dd-0310-bc7b-ec298dee348c commit 87f1430384a1c61035a4ca595e5defecf4b64cb8 r608 Author: Loren Merritt Date: Fri Dec 15 23:06:21 2006 +0000 win32: use pthreads instead of win32threads. for some reason, pthreads is much faster. git-svn-id: svn://svn.videolan.org/x264/trunk@608 df754926-b1dd-0310-bc7b-ec298dee348c commit 7b4f6a1fd95c7e0ab479e116fe59e66e5d1fd107 r607 Author: Loren Merritt Date: Fri Dec 15 23:03:36 2006 +0000 New threading method: Encode multiple frames in prallel instead of dividing each frame into slices. Improves speed, and reduces the bitrate penalty of threading. Side effects: It is no longer possible to re-encode a frame, so threaded scenecut detection must run in the pre-me pass, which is faster but less precise. It is now useful to use more threads than you have cpus. --threads=auto has been updated to use cpus*1.5. Minor changes to ratecontrol. New options: --pre-scenecut, --mvrange-thread, --non-deterministic git-svn-id: svn://svn.videolan.org/x264/trunk@607 df754926-b1dd-0310-bc7b-ec298dee348c commit fa2c1e5430619c6011dfe2ffbebbd59557afa228 r606 Author: Sam Hocevar Date: Tue Dec 12 02:17:44 2006 +0000 * Do not assume anything about sizeof(cpu_set_t). git-svn-id: svn://svn.videolan.org/x264/trunk@606 df754926-b1dd-0310-bc7b-ec298dee348c commit 167abec138939a7475b481c6cf4a3738601f279a r605 Author: Sam Hocevar Date: Mon Dec 11 16:01:49 2006 +0000 * Add support for kFreeBSD (FreeBSD kernel with GNU userland). git-svn-id: svn://svn.videolan.org/x264/trunk@605 df754926-b1dd-0310-bc7b-ec298dee348c commit e8cc72c7acc75df584cece7da9176eb4be6c9d36 r604 Author: Guillaume Poirier Date: Mon Nov 27 21:40:21 2006 +0000 Add Altivec implementations of add8x8_idct8, add16x16_idct8, sa8d_8x8 and sa8d_16x16 Note: doesn't take advantage of some possible aligned memory accesses, so there's still room for improvement git-svn-id: svn://svn.videolan.org/x264/trunk@604 df754926-b1dd-0310-bc7b-ec298dee348c commit 575b238cb5e5bdb18b5541456d6eb4781bcd36d5 r603 Author: Eric Petit Date: Sat Nov 25 16:31:24 2006 +0000 Force alignment of the fake .rodata on MacIntel git-svn-id: svn://svn.videolan.org/x264/trunk@603 df754926-b1dd-0310-bc7b-ec298dee348c commit 4659f518e453250783fd13bedda8a8560e8d32a5 r602 Author: Loren Merritt Date: Thu Nov 23 03:13:18 2006 +0000 don't treat vbv_maxrate as a minrate too if it's higher than target average bitrate. git-svn-id: svn://svn.videolan.org/x264/trunk@602 df754926-b1dd-0310-bc7b-ec298dee348c commit c494e9c5e22d0fbe30deb7f2c1b932ac9fb449b5 r601 Author: Eric Petit Date: Sat Nov 18 14:38:07 2006 +0000 Merges Guillaume Poirier's AltiVec changes: * Adds optimized quant and sub*dct8 routines * Faster sub*dct routines ~8% overall speed-up with default settings git-svn-id: svn://svn.videolan.org/x264/trunk@601 df754926-b1dd-0310-bc7b-ec298dee348c commit 41c111bc13badf2f7fa71165c94d4b528213a8cd r600 Author: Loren Merritt Date: Mon Nov 6 22:49:41 2006 +0000 10% faster deblock mmx functions. ported from ffmpeg. git-svn-id: svn://svn.videolan.org/x264/trunk@600 df754926-b1dd-0310-bc7b-ec298dee348c commit 6eeb78f6a8bc0541ea68fb84ba41c456e56a2589 r599 Author: Loren Merritt Date: Mon Nov 6 22:38:42 2006 +0000 checkasm: ignore insignificant differences in floating-point ssim git-svn-id: svn://svn.videolan.org/x264/trunk@599 df754926-b1dd-0310-bc7b-ec298dee348c commit 485172deeb75ca1eb88ac24b6ab6719b8a16825b r598 Author: Loren Merritt Date: Mon Oct 30 02:31:48 2006 +0000 display final ratefactor in abr when a loose vbv is applied. (still disabled in true cbr) git-svn-id: svn://svn.videolan.org/x264/trunk@598 df754926-b1dd-0310-bc7b-ec298dee348c commit a9d754a37787daccdd88e4d08ec95f9b9ae59a8c r597 Author: Loren Merritt Date: Mon Oct 30 00:09:21 2006 +0000 fix parsing of --deblock %d,%d (beta was ignored) git-svn-id: svn://svn.videolan.org/x264/trunk@597 df754926-b1dd-0310-bc7b-ec298dee348c commit ccac553deccf9646fdc53728f91caa988ee09176 r596 Author: Loren Merritt Date: Sun Oct 29 05:48:57 2006 +0000 compute chroma_qp only once per mb git-svn-id: svn://svn.videolan.org/x264/trunk@596 df754926-b1dd-0310-bc7b-ec298dee348c commit 94a4aede9033614fa810ec88ca92dcd39822b544 r595 Author: Loren Merritt Date: Sun Oct 29 01:17:33 2006 +0000 rd refinement of intra chroma direction (enabled in --subme 7) patch by Alex Wright. git-svn-id: svn://svn.videolan.org/x264/trunk@595 df754926-b1dd-0310-bc7b-ec298dee348c commit e7a4aba997a82cfd5c1d5217d413513d52b6af3e r594 Author: Loren Merritt Date: Wed Oct 18 04:06:44 2006 +0000 fix a crash in avc2avi git-svn-id: svn://svn.videolan.org/x264/trunk@594 df754926-b1dd-0310-bc7b-ec298dee348c commit 41b85c4fa872df880352024aa2d707b1813a4258 r593 Author: Loren Merritt Date: Sun Oct 15 23:39:03 2006 +0000 skip deblocking and motion interpolation when using only I-frames git-svn-id: svn://svn.videolan.org/x264/trunk@593 df754926-b1dd-0310-bc7b-ec298dee348c commit 197a94a8cfff879ef3691eb178b5b617bda03ffb r592 Author: Loren Merritt Date: Fri Oct 13 23:50:57 2006 +0000 cosmetics git-svn-id: svn://svn.videolan.org/x264/trunk@592 df754926-b1dd-0310-bc7b-ec298dee348c commit 93b54ce1fbbbb191e69d8c6e33897037ba5bbfd1 r591 Author: Loren Merritt Date: Fri Oct 13 20:04:58 2006 +0000 allow fractional values of crf git-svn-id: svn://svn.videolan.org/x264/trunk@591 df754926-b1dd-0310-bc7b-ec298dee348c commit 8d1ebe2eeb30a204b588502d69d361ee85187821 r590 Author: Loren Merritt Date: Tue Oct 10 21:26:31 2006 +0000 prefetch pixels for motion compensation and deblocking. git-svn-id: svn://svn.videolan.org/x264/trunk@590 df754926-b1dd-0310-bc7b-ec298dee348c commit 9fadbd7b82a1bd785e206dfef81af066c7470a2f r589 Author: Loren Merritt Date: Tue Oct 10 19:16:39 2006 +0000 fix a crash on interlace + >8 reference frames git-svn-id: svn://svn.videolan.org/x264/trunk@589 df754926-b1dd-0310-bc7b-ec298dee348c commit 4107178cc2998dd37cca106898e16e833a99b50e r588 Author: Loren Merritt Date: Tue Oct 10 05:05:55 2006 +0000 no more decoder. it never worked anyway, and the presence of defunct code was confusing people. git-svn-id: svn://svn.videolan.org/x264/trunk@588 df754926-b1dd-0310-bc7b-ec298dee348c commit 9243c844dfc47d6dea825a0a92bd8a990d6c3cac r587 Author: Loren Merritt Date: Mon Oct 9 23:31:45 2006 +0000 compute pskip_mv only once per macroblock, and store it git-svn-id: svn://svn.videolan.org/x264/trunk@587 df754926-b1dd-0310-bc7b-ec298dee348c commit 0a453377cdac1aa50a4f21be0ddfba2a93719603 r586 Author: Loren Merritt Date: Mon Oct 9 20:55:54 2006 +0000 slightly faster chroma_mc_mmx git-svn-id: svn://svn.videolan.org/x264/trunk@586 df754926-b1dd-0310-bc7b-ec298dee348c commit 42bb1b494e19732fb510fb42f30bf5ae0a66dd71 r585 Author: Loren Merritt Date: Mon Oct 9 17:44:47 2006 +0000 missing emms in plane_copy_mmx git-svn-id: svn://svn.videolan.org/x264/trunk@585 df754926-b1dd-0310-bc7b-ec298dee348c commit 43e4162f3026f964d0bcf4502afe13cdaaa53f4d r584 Author: Loren Merritt Date: Fri Oct 6 23:25:41 2006 +0000 merge center_filter_mmx with horizontal_filter_mmx git-svn-id: svn://svn.videolan.org/x264/trunk@584 df754926-b1dd-0310-bc7b-ec298dee348c commit c485e7e75bf24036c9438467ba854bd17122e277 r583 Author: Loren Merritt Date: Fri Oct 6 05:43:53 2006 +0000 1.5x faster center_filter_mmx (amd64) git-svn-id: svn://svn.videolan.org/x264/trunk@583 df754926-b1dd-0310-bc7b-ec298dee348c commit 299d3ed4ee3c8e875a428bf872bfe791a7ccd687 r582 Author: Loren Merritt Date: Fri Oct 6 00:02:59 2006 +0000 mmx/prefetch implementation of plane_copy git-svn-id: svn://svn.videolan.org/x264/trunk@582 df754926-b1dd-0310-bc7b-ec298dee348c commit 9f05a7fdfc08e0279a825dc851b61c61063564b3 r581 Author: Loren Merritt Date: Thu Oct 5 08:15:55 2006 +0000 no more vfw git-svn-id: svn://svn.videolan.org/x264/trunk@581 df754926-b1dd-0310-bc7b-ec298dee348c commit aabb91c80b714e9a8e2bbdca8beaf5655e9e9540 r580 Author: Loren Merritt Date: Thu Oct 5 07:44:22 2006 +0000 gtk fixes: in Makefile - fix datadir for mingw users - remove the shared lib during the clean rule - use $(ENCODE_BIN) instead of x264_gtk_encode - add some $(DESTDIR) and create some directories when necessary - remove -lintl statfile_length -> statsfile_length fix the "sensitivity" of the widget of update_statfile the logo is now handled correctly on windows added: beginning of multipass support patch by Vincent Torri. git-svn-id: svn://svn.videolan.org/x264/trunk@580 df754926-b1dd-0310-bc7b-ec298dee348c commit 90a9219545cf073847160933d1c7d3e9b761e909 r579 Author: Loren Merritt Date: Thu Oct 5 01:57:00 2006 +0000 accept mencoder's option names as synonyms (api only, not in x264cli) git-svn-id: svn://svn.videolan.org/x264/trunk@579 df754926-b1dd-0310-bc7b-ec298dee348c commit cb8b5dad7dc99c13e591aaf74b84b406ea80b69e r578 Author: Loren Merritt Date: Tue Oct 3 01:39:38 2006 +0000 simplify satd_sse2 git-svn-id: svn://svn.videolan.org/x264/trunk@578 df754926-b1dd-0310-bc7b-ec298dee348c commit 04834f596bb9bec1e8afd7ab7b1eee74ad13df0a r577 Author: Loren Merritt Date: Mon Oct 2 08:31:48 2006 +0000 better error checking in x264_param_parse. add synonyms for a few options. git-svn-id: svn://svn.videolan.org/x264/trunk@577 df754926-b1dd-0310-bc7b-ec298dee348c commit 0cbf0fc27bd391509d788ebb2e06b930bf840925 r576 Author: Loren Merritt Date: Mon Oct 2 02:46:23 2006 +0000 fix some strides that weren't a multiple of 16. git-svn-id: svn://svn.videolan.org/x264/trunk@576 df754926-b1dd-0310-bc7b-ec298dee348c commit 58e12b0e792596ae4eac95df4ae358ca664a6c20 r575 Author: Loren Merritt Date: Sun Oct 1 13:08:42 2006 +0000 tweak motion compensation amd64 asm. 0.3% overall speedup. git-svn-id: svn://svn.videolan.org/x264/trunk@575 df754926-b1dd-0310-bc7b-ec298dee348c commit 6de50f51151c29331040f8c24bf3697c063fe0dd r574 Author: Loren Merritt Date: Sun Oct 1 08:06:22 2006 +0000 strip local symbols from asm .o files, since they confuse oprofile git-svn-id: svn://svn.videolan.org/x264/trunk@574 df754926-b1dd-0310-bc7b-ec298dee348c commit f9cc941183c0b190d09e030a30c537259c3e4088 r573 Author: Loren Merritt Date: Sun Oct 1 07:25:01 2006 +0000 add an option to control direct_8x8_inference_flag, default to enabled. slightly faster encoding and decoding of p4x4 + B-frames, and is needed for strict Levels compliance. git-svn-id: svn://svn.videolan.org/x264/trunk@573 df754926-b1dd-0310-bc7b-ec298dee348c commit 8f0864a9f5755a02158cbb96c215afee95846639 r572 Author: Loren Merritt Date: Sun Oct 1 03:05:15 2006 +0000 allow custom deadzones for non-trellis quantization. patch by Alex Wright. git-svn-id: svn://svn.videolan.org/x264/trunk@572 df754926-b1dd-0310-bc7b-ec298dee348c commit a7cd9cf8ba99e4703805d34eef494d47850f9b99 r571 Author: Loren Merritt Date: Sun Oct 1 02:44:36 2006 +0000 move zigzag scan functions to dsp function pointers. mmx implementation of interlaced zigzag. git-svn-id: svn://svn.videolan.org/x264/trunk@571 df754926-b1dd-0310-bc7b-ec298dee348c commit faec300a71cdb64e1bd27d393de51d2e3d1f5992 r570 Author: Loren Merritt Date: Sun Oct 1 02:41:22 2006 +0000 support interlace. uses MBAFF syntax, but is not adaptive yet. git-svn-id: svn://svn.videolan.org/x264/trunk@570 df754926-b1dd-0310-bc7b-ec298dee348c commit 3b7857057005ebecc9852ef56c9f725d26b94bc4 r569 Author: Loren Merritt Date: Wed Sep 27 06:37:19 2006 +0000 allow --zones in cqp encodes git-svn-id: svn://svn.videolan.org/x264/trunk@569 df754926-b1dd-0310-bc7b-ec298dee348c commit 7960eaf2451a445078a3c55b1ade5efc1948e02f r568 Author: Loren Merritt Date: Tue Sep 26 19:27:07 2006 +0000 cli: fix some typos in vui parameters from r542. patch by Foxy Shadis. git-svn-id: svn://svn.videolan.org/x264/trunk@568 df754926-b1dd-0310-bc7b-ec298dee348c commit 1b93c2a5cccb6ad7aedfd2746c671dcfffe60795 r567 Author: Sam Hocevar Date: Mon Sep 25 10:25:55 2006 +0000 * Add an "all" rule to the Makefile. Ideally "default" should be renamed, but I don't want to break existing scripts. git-svn-id: svn://svn.videolan.org/x264/trunk@567 df754926-b1dd-0310-bc7b-ec298dee348c commit 52b8a0530721abb276c286d95a7827da3529baa4 r566 Author: Loren Merritt Date: Sun Sep 24 21:35:56 2006 +0000 workaround: on some systems, alloca() isn't aligned git-svn-id: svn://svn.videolan.org/x264/trunk@566 df754926-b1dd-0310-bc7b-ec298dee348c commit 7bfc7360d713aa651b71691a9fb85f34104573e4 r565 Author: Loren Merritt Date: Fri Sep 22 16:39:05 2006 +0000 missing picpop git-svn-id: svn://svn.videolan.org/x264/trunk@565 df754926-b1dd-0310-bc7b-ec298dee348c commit 460699ffdfaf263faaebd720c82475d1fb949279 r564 Author: Loren Merritt Date: Wed Sep 13 19:24:13 2006 +0000 fix a buffer overread from r540 git-svn-id: svn://svn.videolan.org/x264/trunk@564 df754926-b1dd-0310-bc7b-ec298dee348c commit 55c208edb7e3a3ad54c1c1412577003b1eb13a69 r563 Author: Loren Merritt Date: Tue Sep 12 23:32:21 2006 +0000 cosmetics (spelling) git-svn-id: svn://svn.videolan.org/x264/trunk@563 df754926-b1dd-0310-bc7b-ec298dee348c commit 8850b6faaf55b83ed3aa86ff9fcb5e35c439b236 r562 Author: Loren Merritt Date: Tue Sep 12 22:21:23 2006 +0000 faster ESA git-svn-id: svn://svn.videolan.org/x264/trunk@562 df754926-b1dd-0310-bc7b-ec298dee348c commit f8652aab3dda281aa446ead0674d7e1f1c6d6e74 r561 Author: Loren Merritt Date: Tue Sep 12 22:18:29 2006 +0000 faster ESA git-svn-id: svn://svn.videolan.org/x264/trunk@561 df754926-b1dd-0310-bc7b-ec298dee348c commit a020d6ec4933d9f431be5bad429289b87efabe17 r560 Author: Sam Hocevar Date: Sun Sep 10 17:37:13 2006 +0000 * Use the autotool's config.guess script instead of uname to check the system and CPU types, to avoid issues when using for instance a 32-bit userland on top of a 64-bit kernel. git-svn-id: svn://svn.videolan.org/x264/trunk@560 df754926-b1dd-0310-bc7b-ec298dee348c commit 477c5bfb641d0c662a98a3474c6a2a441476b5a1 r559 Author: Sam Hocevar Date: Sun Sep 10 17:16:21 2006 +0000 * Add the autotool's config.guess script so that we can use it instead of uname in the configure script. git-svn-id: svn://svn.videolan.org/x264/trunk@559 df754926-b1dd-0310-bc7b-ec298dee348c commit 4a5a03bbba8a8100d84bf5c30709eec133dda282 r558 Author: Loren Merritt Date: Tue Aug 22 07:43:14 2006 +0000 10l in r553 git-svn-id: svn://svn.videolan.org/x264/trunk@558 df754926-b1dd-0310-bc7b-ec298dee348c commit 73657d88d1e1371d684eea805fb88c008e44e96b r557 Author: Loren Merritt Date: Mon Aug 21 00:46:20 2006 +0000 ssim broke on amd64 w/ pic. git-svn-id: svn://svn.videolan.org/x264/trunk@557 df754926-b1dd-0310-bc7b-ec298dee348c commit 1808700e26023fccfabec9e65ee7e4fb18ae57f2 r556 Author: Steve Lhomme Date: Fri Aug 18 20:50:10 2006 +0000 MSVC compatibility fix from Haali git-svn-id: svn://svn.videolan.org/x264/trunk@556 df754926-b1dd-0310-bc7b-ec298dee348c commit f78c224c21e991b55deb637d35b30b06a78d78da r555 Author: Loren Merritt Date: Thu Aug 17 22:49:45 2006 +0000 support changing some more parameters in x264_encoder_reconfig() git-svn-id: svn://svn.videolan.org/x264/trunk@555 df754926-b1dd-0310-bc7b-ec298dee348c commit 7760f1b2e78360542e31eb55db81e84dcb4f95ac r554 Author: Loren Merritt Date: Thu Aug 17 21:57:59 2006 +0000 SSIM computation. (default on, disable by --no-ssim) git-svn-id: svn://svn.videolan.org/x264/trunk@554 df754926-b1dd-0310-bc7b-ec298dee348c commit 127e2fbf0a338549b00f6a3022ce1d2bab1d2acb r553 Author: Loren Merritt Date: Wed Aug 16 20:13:06 2006 +0000 configure: --enable-debug reduces optimization to -O1 git-svn-id: svn://svn.videolan.org/x264/trunk@553 df754926-b1dd-0310-bc7b-ec298dee348c commit dc5d530e13e0aa38218feb7c6c1fc4b75c0b7261 r552 Author: Loren Merritt Date: Wed Aug 16 19:57:08 2006 +0000 cosmetics git-svn-id: svn://svn.videolan.org/x264/trunk@552 df754926-b1dd-0310-bc7b-ec298dee348c commit 12bd065367f7aa0a4efc550dd595142d783a9525 r551 Author: Loren Merritt Date: Fri Aug 4 03:12:43 2006 +0000 gcc -fprofile-generate isn't threadsafe git-svn-id: svn://svn.videolan.org/x264/trunk@551 df754926-b1dd-0310-bc7b-ec298dee348c commit b3f15918ac03a0fc3b6fe1a8311fabedf5fa6b53 r550 Author: Loren Merritt Date: Thu Aug 3 19:49:17 2006 +0000 cli: move some options from --help to --longhelp git-svn-id: svn://svn.videolan.org/x264/trunk@550 df754926-b1dd-0310-bc7b-ec298dee348c commit 64a8b781013148bd351c2a45fdcb6a9aaf26ff4a r549 Author: Loren Merritt Date: Thu Aug 3 18:22:08 2006 +0000 cli: don't try to get resolution from filename unless input is rawyuv git-svn-id: svn://svn.videolan.org/x264/trunk@549 df754926-b1dd-0310-bc7b-ec298dee348c commit de41ef2605bf1d5ded851888438a55a6bf66c42a r548 Author: Loren Merritt Date: Thu Aug 3 18:13:56 2006 +0000 r542 broke --visualize git-svn-id: svn://svn.videolan.org/x264/trunk@548 df754926-b1dd-0310-bc7b-ec298dee348c commit 1ff80a23db8912967238d1d9d4df2aebeeafbd1a r547 Author: Eric Petit Date: Wed Aug 2 18:11:21 2006 +0000 Nicer OS X x264_cpu_num_processors (thanks David) git-svn-id: svn://svn.videolan.org/x264/trunk@547 df754926-b1dd-0310-bc7b-ec298dee348c commit 3493a54ddfd504fdd993c98a321916f98b96b09d r546 Author: Eric Petit Date: Tue Aug 1 15:20:35 2006 +0000 Support OS X and BeOS in x264_cpu_num_processors git-svn-id: svn://svn.videolan.org/x264/trunk@546 df754926-b1dd-0310-bc7b-ec298dee348c commit 86ec16c126168adbb6f615159e26065b4b0000a7 r545 Author: Eric Petit Date: Tue Aug 1 15:18:31 2006 +0000 Fixes contexts allocation with threads=auto git-svn-id: svn://svn.videolan.org/x264/trunk@545 df754926-b1dd-0310-bc7b-ec298dee348c commit eeebca20ad854271fab898f306f1657887ca6588 r544 Author: Loren Merritt Date: Tue Aug 1 02:22:36 2006 +0000 select initial qp for abr and cbr baased on satd and bitrate, rather than cq24. git-svn-id: svn://svn.videolan.org/x264/trunk@544 df754926-b1dd-0310-bc7b-ec298dee348c commit 9e9a869aa7dc3c39a883a5a5886c0bbd82e8b95c r543 Author: Loren Merritt Date: Tue Aug 1 00:17:18 2006 +0000 --threads=auto to detect number of cpus git-svn-id: svn://svn.videolan.org/x264/trunk@543 df754926-b1dd-0310-bc7b-ec298dee348c commit 0b07708cdab6c2f54673930c10d2908c53e19120 r542 Author: Loren Merritt Date: Mon Jul 31 21:59:04 2006 +0000 api addition: x264_param_parse() to set options by name git-svn-id: svn://svn.videolan.org/x264/trunk@542 df754926-b1dd-0310-bc7b-ec298dee348c commit 99b8471e5032bfab1f81cb04fb350ee6fa878561 r541 Author: Loren Merritt Date: Mon Jul 31 06:34:53 2006 +0000 fix a rare NaN in ratecontrol git-svn-id: svn://svn.videolan.org/x264/trunk@541 df754926-b1dd-0310-bc7b-ec298dee348c commit adc4b4f85e3682bd4868df21babcea725c919bef r540 Author: Loren Merritt Date: Sun Jul 30 02:39:05 2006 +0000 move quant_mf[] from x264_t to the heap, and merge duplicate entries git-svn-id: svn://svn.videolan.org/x264/trunk@540 df754926-b1dd-0310-bc7b-ec298dee348c commit 75d6edb847722b1058914a2effcc6d47c5b7971a r539 Author: Loren Merritt Date: Fri Jul 28 21:39:07 2006 +0000 GTK update. patch by Vincent Torri. fixed: cleaning of Makefile time elapsed seems broken ('total time' label replaced by 'time remaining') text entries of the status window are now not editable added: compilation from x264/ (add --enable-gtk option to configure) shared lib creation if --enable-shared is passed to configure x264gtk.pc --b-rdo, --no-dct-decimate git-svn-id: svn://svn.videolan.org/x264/trunk@539 df754926-b1dd-0310-bc7b-ec298dee348c commit 4b2556f688c482e2cbda025a5468bb4853810f89 r538 Author: Loren Merritt Date: Sun Jul 23 19:19:40 2006 +0000 new option: --qpfile forces frames types and QPs. (intended for ratecontrol experiments, not for real encodes) git-svn-id: svn://svn.videolan.org/x264/trunk@538 df754926-b1dd-0310-bc7b-ec298dee348c commit b8692db2efa98c719332979f6dc8fc39af8f1eff r537 Author: Loren Merritt Date: Tue Jul 18 01:10:54 2006 +0000 api change: select ratecontrol method with an enum (param.rc.i_rc_method) instead of a bunch of booleans. git-svn-id: svn://svn.videolan.org/x264/trunk@537 df754926-b1dd-0310-bc7b-ec298dee348c commit 4e7bd4a1f038aeb538bfd07fc2d5ac67c041a0e9 r536 Author: Loren Merritt Date: Sun Jul 16 18:28:39 2006 +0000 slightly faster mmx dct git-svn-id: svn://svn.videolan.org/x264/trunk@536 df754926-b1dd-0310-bc7b-ec298dee348c commit 637470c0dbbadf4b0d8b01c6c2179a4305f2b203 r535 Author: Loren Merritt Date: Sun Jul 16 18:25:38 2006 +0000 OpenBSD build fixes. patch by Vizeli Pascal (pvizeli at yahoo dot de) git-svn-id: svn://svn.videolan.org/x264/trunk@535 df754926-b1dd-0310-bc7b-ec298dee348c commit c6213d2fbb3b9a1a23c7cbe023080e98ee8e35a6 r534 Author: Loren Merritt Date: Sat Jul 8 17:56:22 2006 +0000 mc_chroma width2 mmx git-svn-id: svn://svn.videolan.org/x264/trunk@534 df754926-b1dd-0310-bc7b-ec298dee348c commit eff6a5e204a9d9789b44d1ebf3de510f0f6d4334 r533 Author: Måns Rullgård Date: Wed Jun 28 21:58:58 2006 +0000 make libx264.so symlink relative git-svn-id: svn://svn.videolan.org/x264/trunk@533 df754926-b1dd-0310-bc7b-ec298dee348c commit 360853117fccdd082a6654c34c2c7dc2577f10cd r532 Author: Loren Merritt Date: Mon Jun 12 08:22:09 2006 +0000 GTK update. patch by Vincent Torri. added: direct=auto no-fast-pskip vbv cqm tooltips (without descriptions yet) translations `make clean` for .exe when file exists, ask for override fixes: debug level bug bitrate slider bug mixed-refs can be set only if ref>1 i8x8 can be set only if 8x8 transform is enabled # of threads capped at 4 fourcc can't be removed cosmetics git-svn-id: svn://svn.videolan.org/x264/trunk@532 df754926-b1dd-0310-bc7b-ec298dee348c commit 918c7ef4540f8741ecc23d74f227abd594986fba r531 Author: Loren Merritt Date: Wed May 31 23:55:35 2006 +0000 vfw installer: tweak nsis compression. patch by Francesco Corriga. git-svn-id: svn://svn.videolan.org/x264/trunk@531 df754926-b1dd-0310-bc7b-ec298dee348c commit b5d08311537cf047b1720243f866264abc5150d3 r530 Author: Eric Petit Date: Tue May 30 10:05:56 2006 +0000 Fixed typo that caused x264_encoder_open to always fail git-svn-id: svn://svn.videolan.org/x264/trunk@530 df754926-b1dd-0310-bc7b-ec298dee348c commit 91bbfb98c003715a0a44c31053c6e361b5262995 r529 Author: Loren Merritt Date: Tue May 30 07:07:55 2006 +0000 check some mallocs' return value git-svn-id: svn://svn.videolan.org/x264/trunk@529 df754926-b1dd-0310-bc7b-ec298dee348c commit 0ac281dc97ac8c0b85165062d5f25227c9e0142f r528 Author: Loren Merritt Date: Sun May 28 21:14:24 2006 +0000 make -> $(MAKE) git-svn-id: svn://svn.videolan.org/x264/trunk@528 df754926-b1dd-0310-bc7b-ec298dee348c commit c9155d3e9fbe646e2504c09b5b751f7279900522 r527 Author: Loren Merritt Date: Wed May 24 03:59:19 2006 +0000 convert non-fatal errors to message level "warning". git-svn-id: svn://svn.videolan.org/x264/trunk@527 df754926-b1dd-0310-bc7b-ec298dee348c commit ae4b97a2530da93b750ac6b525941d408294a216 r526 Author: Loren Merritt Date: Mon May 22 23:07:58 2006 +0000 fix a memory alignment. (no effect on x86, but might be needed for other simd) git-svn-id: svn://svn.videolan.org/x264/trunk@526 df754926-b1dd-0310-bc7b-ec298dee348c commit c832ac1af21e82f7418077c6e61d13819420fd61 r525 Author: Loren Merritt Date: Fri May 19 20:10:41 2006 +0000 when using DEBUG_DUMP_FRAME, write decoded pictures in display order. patch by Loic Le Loarer. git-svn-id: svn://svn.videolan.org/x264/trunk@525 df754926-b1dd-0310-bc7b-ec298dee348c commit 361b283acbcc2d4b1ff8171ac2945449936e5b93 r524 Author: Loren Merritt Date: Fri May 19 19:14:29 2006 +0000 non-referenced B-frames should have the same frame_num as the following ref frame, not the previous. patch by Loic Le Loarer. git-svn-id: svn://svn.videolan.org/x264/trunk@524 df754926-b1dd-0310-bc7b-ec298dee348c commit 1ca108eb75a947ad86dc4ab88ecf6e69bd22d358 r523 Author: Loren Merritt Date: Fri May 12 08:17:53 2006 +0000 set the SPS constraint_set[01]_flag based on the profile in use, just in case some decoder cares git-svn-id: svn://svn.videolan.org/x264/trunk@523 df754926-b1dd-0310-bc7b-ec298dee348c commit de1af4c2e5528fae5918ddf00d6ae09a68ea2222 r522 Author: Loren Merritt Date: Wed May 10 16:47:05 2006 +0000 msvc doesn't like C99 named array initializers git-svn-id: svn://svn.videolan.org/x264/trunk@522 df754926-b1dd-0310-bc7b-ec298dee348c commit 7022fe85d84db4a5a95a7b4ac699423277638881 r521 Author: Loren Merritt Date: Wed May 10 16:42:07 2006 +0000 allow sar=1/1. patch by Loic Le Loarer. git-svn-id: svn://svn.videolan.org/x264/trunk@521 df754926-b1dd-0310-bc7b-ec298dee348c commit 0d88274d5d833030ee3f54dfd09ef039f341da01 r520 Author: Loren Merritt Date: Wed May 10 06:09:48 2006 +0000 faster intra search: filter i8x8 edges only once, and reuse for multiple predictions. git-svn-id: svn://svn.videolan.org/x264/trunk@520 df754926-b1dd-0310-bc7b-ec298dee348c commit 3de28cd5878a8be64e1db80ff2453e79acb0040d r519 Author: Loren Merritt Date: Tue May 9 06:11:42 2006 +0000 faster intra search: some prediction modes don't have to compute a full hadamard transform. x86 and amd64 asm. git-svn-id: svn://svn.videolan.org/x264/trunk@519 df754926-b1dd-0310-bc7b-ec298dee348c commit e63f25b44ed1bfd2ccd0ff1e7f1f453c6ba08179 r518 Author: Loren Merritt Date: Sat May 6 17:12:23 2006 +0000 --sps-id, to allow concatenating streams with different settings. git-svn-id: svn://svn.videolan.org/x264/trunk@518 df754926-b1dd-0310-bc7b-ec298dee348c commit 609deaf54ad74816ba061c7022172986694049c9 r517 Author: Loren Merritt Date: Wed May 3 17:59:23 2006 +0000 typo in expand_border_mod16 git-svn-id: svn://svn.videolan.org/x264/trunk@517 df754926-b1dd-0310-bc7b-ec298dee348c commit f5bdc82806070eb101f3c6ab9a5370c4788d7597 r516 Author: Loren Merritt Date: Sun Apr 30 01:21:49 2006 +0000 typo impaired 2pass bitrate prediction. git-svn-id: svn://svn.videolan.org/x264/trunk@516 df754926-b1dd-0310-bc7b-ec298dee348c commit f51297f19065e4ab34179e6e1d785b28fb3ad6be r515 Author: Eric Petit Date: Sat Apr 29 11:13:04 2006 +0000 Let the user choose the compiler with "CC=xxx ./configure" git-svn-id: svn://svn.videolan.org/x264/trunk@515 df754926-b1dd-0310-bc7b-ec298dee348c commit e7141289a2f8d07168d19fc751bb302a9c32a79e r514 Author: Eric Petit Date: Sat Apr 29 11:12:16 2006 +0000 More vector types fixes for gcc 3.3 git-svn-id: svn://svn.videolan.org/x264/trunk@514 df754926-b1dd-0310-bc7b-ec298dee348c commit f3323f8478176852ff8e974217cb59227bbb693e r513 Author: Eric Petit Date: Fri Apr 28 17:13:37 2006 +0000 More vector casts to try and make compilers happier git-svn-id: svn://svn.videolan.org/x264/trunk@513 df754926-b1dd-0310-bc7b-ec298dee348c commit c1f64a50b7563b737c8938ed796f46d3bad354a4 r512 Author: Loren Merritt Date: Tue Apr 25 04:08:21 2006 +0000 Use sa8d instead of satd for i8x8 search. +.01 dB, -.5% speed git-svn-id: svn://svn.videolan.org/x264/trunk@512 df754926-b1dd-0310-bc7b-ec298dee348c commit 8aa294381e5e7725a9ae01ce84d1a8f4ac86a8eb r511 Author: Loren Merritt Date: Mon Apr 24 19:34:06 2006 +0000 Before evaluating the RD score of any mode, check satd and abort if it's much worse than some other mode. Also apply more early termination to intra search. speed at -m1:+1%, -m4:+3%, -m6:+8%, -m7:+20% git-svn-id: svn://svn.videolan.org/x264/trunk@511 df754926-b1dd-0310-bc7b-ec298dee348c commit eb3d83c0a32636674f59bbd7f8fedd430f1e4c2c r510 Author: Sam Hocevar Date: Mon Apr 24 19:01:10 2006 +0000 * common/ppc/pixel.c: fixed illegal implicit casts of vector types. git-svn-id: svn://svn.videolan.org/x264/trunk@510 df754926-b1dd-0310-bc7b-ec298dee348c commit 17b90bf3c3f6a2c5711b68be39df784204b425b8 r509 Author: Sam Hocevar Date: Mon Apr 24 18:49:50 2006 +0000 * Added %$#@#$! support for #@%$!#@ armv4l CPU. git-svn-id: svn://svn.videolan.org/x264/trunk@509 df754926-b1dd-0310-bc7b-ec298dee348c commit 35a5a4f121667717bfd783d3dcbb6e79fc7c8668 r508 Author: Loren Merritt Date: Mon Apr 24 08:27:26 2006 +0000 When evaluating predictors to start fullpel motion search, use subpel positions instead of rounding to fullpel. about +.02 dB, -1.6% speed at subme>=3 patch by Alex Wright. git-svn-id: svn://svn.videolan.org/x264/trunk@508 df754926-b1dd-0310-bc7b-ec298dee348c commit 6b577361fbab9d785787eba3e16a63a23d84be28 r507 Author: Loren Merritt Date: Mon Apr 24 03:52:55 2006 +0000 mmx implementation of x264_pixel_sa8d git-svn-id: svn://svn.videolan.org/x264/trunk@507 df754926-b1dd-0310-bc7b-ec298dee348c commit af751ac37f6397567696ba7eb2479f72ea2c2004 r506 Author: Loren Merritt Date: Thu Apr 20 23:48:46 2006 +0000 10l in r463 (q0 i16x16 dc was permuted) git-svn-id: svn://svn.videolan.org/x264/trunk@506 df754926-b1dd-0310-bc7b-ec298dee348c commit 2735ae7056413fb6d4461618269b971e8ae45915 r505 Author: Loren Merritt Date: Thu Apr 20 20:33:25 2006 +0000 typo in r504 git-svn-id: svn://svn.videolan.org/x264/trunk@505 df754926-b1dd-0310-bc7b-ec298dee348c commit 656b0698c90b7c3b3365416391b6d3706d1afb0d r504 Author: Loren Merritt Date: Thu Apr 20 04:38:45 2006 +0000 update msvc project files. patch by anonymous. git-svn-id: svn://svn.videolan.org/x264/trunk@504 df754926-b1dd-0310-bc7b-ec298dee348c commit 2f95856be50ec7c744ad4d65408846d3dce75491 r503 Author: Loren Merritt Date: Wed Apr 19 09:02:19 2006 +0000 Before, we eliminated dct blocks containing only a small single coefficient. Now that behavior is optional, by --no-dct-decimate. based on a patch by Alex Wright. git-svn-id: svn://svn.videolan.org/x264/trunk@503 df754926-b1dd-0310-bc7b-ec298dee348c commit 9a6815d3cb06e48888bdd1d804ae9eb72adf71bb r502 Author: Eric Petit Date: Mon Apr 17 11:08:58 2006 +0000 Enables more agressive optimizations (-fastf -mcpu=G4) on OS X. Adds AltiVec interleaved SAD and SSD16x16. Overall speedup up to 20%. Patch by anonymous git-svn-id: svn://svn.videolan.org/x264/trunk@502 df754926-b1dd-0310-bc7b-ec298dee348c commit 97ab2190599297ab0edaa62b8a7027117ca74ed5 r501 Author: Loren Merritt Date: Mon Apr 17 01:19:47 2006 +0000 faster cabac_encode_bypass git-svn-id: svn://svn.videolan.org/x264/trunk@501 df754926-b1dd-0310-bc7b-ec298dee348c commit 1927b27504ebee226b5eb1a51461b35e72a6d542 r500 Author: Eric Petit Date: Sun Apr 16 18:24:38 2006 +0000 restored AltiVec dct git-svn-id: svn://svn.videolan.org/x264/trunk@500 df754926-b1dd-0310-bc7b-ec298dee348c commit d0a556549b9ae59c3a30b6c1b0280e6857350da3 r499 Author: Eric Petit Date: Sun Apr 16 16:38:16 2006 +0000 more AltiVec mc, ~4.5% overall speedup git-svn-id: svn://svn.videolan.org/x264/trunk@499 df754926-b1dd-0310-bc7b-ec298dee348c commit 71f11146131d1804311d86535a6aa7d0ff777501 r498 Author: Loren Merritt Date: Wed Apr 12 21:21:59 2006 +0000 slightly faster loopfilter git-svn-id: svn://svn.videolan.org/x264/trunk@498 df754926-b1dd-0310-bc7b-ec298dee348c commit d2ab724f262f831a320ba75b81092bc182bca695 r497 Author: Loren Merritt Date: Wed Apr 12 06:28:52 2006 +0000 3% faster satd_mmx git-svn-id: svn://svn.videolan.org/x264/trunk@497 df754926-b1dd-0310-bc7b-ec298dee348c commit a23a3678b474450876ac297c979bb2ad27afe6f4 r496 Author: Loren Merritt Date: Wed Apr 12 00:45:07 2006 +0000 cosmetics in sad/ssd/satd mmx git-svn-id: svn://svn.videolan.org/x264/trunk@496 df754926-b1dd-0310-bc7b-ec298dee348c commit b3ad52d4860127a9b7348923671b595b98cb4d09 r495 Author: Loren Merritt Date: Tue Apr 11 21:16:44 2006 +0000 store quoted configure options. needed e.g. for multiple args under --extra-cflags. git-svn-id: svn://svn.videolan.org/x264/trunk@495 df754926-b1dd-0310-bc7b-ec298dee348c commit c293b80b3b57789bbac663f0eac0ee26c1bd8eec r494 Author: Loren Merritt Date: Tue Apr 11 10:45:00 2006 +0000 fix a yasm-incompatible syntax in x86 asm git-svn-id: svn://svn.videolan.org/x264/trunk@494 df754926-b1dd-0310-bc7b-ec298dee348c commit ae82d2423aa1d54eb367ca292262bc6bd3dec134 r493 Author: Loren Merritt Date: Tue Apr 11 02:41:43 2006 +0000 yasm noexec stack git-svn-id: svn://svn.videolan.org/x264/trunk@493 df754926-b1dd-0310-bc7b-ec298dee348c commit 283d57ed95a22f104e4f22a6119e2aaeeca39833 r492 Author: Loren Merritt Date: Mon Apr 10 18:46:54 2006 +0000 more interleaved SAD. 25% faster halfpel. git-svn-id: svn://svn.videolan.org/x264/trunk@492 df754926-b1dd-0310-bc7b-ec298dee348c commit 0f4c0eb836912fcbd2376c920a9dd7bf438f4e43 r491 Author: Loren Merritt Date: Mon Apr 10 17:56:02 2006 +0000 more interleaved SAD. 1% faster umh, 6% faster esa. git-svn-id: svn://svn.videolan.org/x264/trunk@491 df754926-b1dd-0310-bc7b-ec298dee348c commit 8947b51f35151f821c3718b01c1e93d517d814b5 r490 Author: Loren Merritt Date: Mon Apr 10 03:03:13 2006 +0000 interleave multiple calls to SAD. 15% faster fullpel motion estimation. git-svn-id: svn://svn.videolan.org/x264/trunk@490 df754926-b1dd-0310-bc7b-ec298dee348c commit bddf5f03ff621a8fdbcc9925453573600984b27d r489 Author: Sam Hocevar Date: Sun Apr 9 13:20:17 2006 +0000 * Added support for ppc64. I'm really fucking tired of having to do this. git-svn-id: svn://svn.videolan.org/x264/trunk@489 df754926-b1dd-0310-bc7b-ec298dee348c commit ac4249d20d47f75ca9aebb04c4b329c2d497100c r488 Author: Måns Rullgård Date: Sat Apr 8 01:33:13 2006 +0000 use LDFLAGS when linking shared lib git-svn-id: svn://svn.videolan.org/x264/trunk@488 df754926-b1dd-0310-bc7b-ec298dee348c commit 85ab23ceca033df09e17d650647cba3d4995f9e8 r487 Author: Felix Paul Kühne Date: Wed Mar 29 06:37:55 2006 +0000 * compilation fix for mingw, darwin (off_t was undefined) git-svn-id: svn://svn.videolan.org/x264/trunk@487 df754926-b1dd-0310-bc7b-ec298dee348c commit 540ed9aafdf7577cf51914676dfc010952c76052 r486 Author: Loren Merritt Date: Mon Mar 27 08:11:37 2006 +0000 GTK: support yuv4mpeg input. patch by Vincent Torri. git-svn-id: svn://svn.videolan.org/x264/trunk@486 df754926-b1dd-0310-bc7b-ec298dee348c commit 5fe3e77f3d9f20286feb1432a63d2d6652dc8777 r485 Author: Loren Merritt Date: Sun Mar 26 20:54:33 2006 +0000 GTK: fix avs input patch by Vincent Torri. git-svn-id: svn://svn.videolan.org/x264/trunk@485 df754926-b1dd-0310-bc7b-ec298dee348c commit a84899e0b4fd16d49cb7085a275cd7bb1ce9f67c r484 Author: Loren Merritt Date: Sun Mar 26 20:40:20 2006 +0000 cli: support yuv4mpeg input. patch by anonymous. git-svn-id: svn://svn.videolan.org/x264/trunk@484 df754926-b1dd-0310-bc7b-ec298dee348c commit e510c09889d83c5d7e85eca83036af36f1284b87 r483 Author: Loren Merritt Date: Sun Mar 26 01:09:09 2006 +0000 GTK: compilation fixes git-svn-id: svn://svn.videolan.org/x264/trunk@483 df754926-b1dd-0310-bc7b-ec298dee348c commit 845feff6507dc682944a8c733f8ee1c8a4da6f09 r482 Author: Loren Merritt Date: Sat Mar 25 23:26:07 2006 +0000 GTK: compilation fixes on mingw, add avs input for the app (if avalaible), add filters for the filechooser, add icon for the main window. patch by Vincent Torri. git-svn-id: svn://svn.videolan.org/x264/trunk@482 df754926-b1dd-0310-bc7b-ec298dee348c commit fc34d38657b89418cb68576889c647a4aa5e8108 r481 Author: Loren Merritt Date: Sat Mar 25 10:13:12 2006 +0000 GTK-based graphical frontend. patch by Vincent Torri. git-svn-id: svn://svn.videolan.org/x264/trunk@481 df754926-b1dd-0310-bc7b-ec298dee348c commit 50aadebc2de139f2003314bfbeea7d7ce1680901 r480 Author: Loren Merritt Date: Sat Mar 25 10:06:15 2006 +0000 silence some gcc warnings git-svn-id: svn://svn.videolan.org/x264/trunk@480 df754926-b1dd-0310-bc7b-ec298dee348c commit 5b6c5effb4c1864b692213cafef9c85e3623573c r479 Author: Loren Merritt Date: Fri Mar 24 21:45:39 2006 +0000 use FDEC_STRIDE instead of a parameter in mmx dct .5% speedup git-svn-id: svn://svn.videolan.org/x264/trunk@479 df754926-b1dd-0310-bc7b-ec298dee348c commit da9158b3ec035e8261e6fe2c5fd77e073425ed08 r478 Author: Sam Hocevar Date: Wed Mar 22 14:21:53 2006 +0000 * configure: support for 64 bits MIPS. git-svn-id: svn://svn.videolan.org/x264/trunk@478 df754926-b1dd-0310-bc7b-ec298dee348c commit 7c013538206535c3abd70eb56a00bed0dccb43c5 r477 Author: Loren Merritt Date: Mon Mar 20 23:32:43 2006 +0000 10l in r473 and stdin git-svn-id: svn://svn.videolan.org/x264/trunk@477 df754926-b1dd-0310-bc7b-ec298dee348c commit 3b66f690bd8a7d1417cedf98aec0df2702338bb2 r476 Author: Loren Merritt Date: Mon Mar 20 23:00:52 2006 +0000 RD subpel motion estimation (--subme 7) git-svn-id: svn://svn.videolan.org/x264/trunk@476 df754926-b1dd-0310-bc7b-ec298dee348c commit 48633d2afd50d9f15b83e6639024c382dd958c76 r475 Author: Loren Merritt Date: Mon Mar 20 22:46:38 2006 +0000 cosmetics in cabac_mb_cbf git-svn-id: svn://svn.videolan.org/x264/trunk@475 df754926-b1dd-0310-bc7b-ec298dee348c commit 50f40fd2a3b63ef89e8f94085ef2ed971a408468 r474 Author: Loren Merritt Date: Sun Mar 19 11:00:02 2006 +0000 separate --thread-input from --threads git-svn-id: svn://svn.videolan.org/x264/trunk@474 df754926-b1dd-0310-bc7b-ec298dee348c commit 36c25b664e28e4e15ce49242af6ac306eb6f7cca r473 Author: Loren Merritt Date: Sat Mar 18 09:20:06 2006 +0000 if --threads > 1, then read the input stream in its own thread. git-svn-id: svn://svn.videolan.org/x264/trunk@473 df754926-b1dd-0310-bc7b-ec298dee348c commit c20906a56b2f17a89b7ba4afc87e78202447e7fb r472 Author: Måns Rullgård Date: Fri Mar 17 22:27:31 2006 +0000 FreeBSD uses ELF git-svn-id: svn://svn.videolan.org/x264/trunk@472 df754926-b1dd-0310-bc7b-ec298dee348c commit 9c61b0cbd68304b8f2860dc2d7df401ad6839b81 r471 Author: Loren Merritt Date: Fri Mar 17 22:10:34 2006 +0000 10l in r470 on x86_64 git-svn-id: svn://svn.videolan.org/x264/trunk@471 df754926-b1dd-0310-bc7b-ec298dee348c commit fdb64099b4da93ffa70af98aad85cc7c6fc564d0 r470 Author: Loren Merritt Date: Fri Mar 17 21:36:27 2006 +0000 some mmxext functions really only required mmx. git-svn-id: svn://svn.videolan.org/x264/trunk@470 df754926-b1dd-0310-bc7b-ec298dee348c commit abffd18fe30bcc0daa344a7dcedab30ddc3e97f6 r469 Author: Loren Merritt Date: Fri Mar 17 07:36:06 2006 +0000 simplify get_ref and mc_luma git-svn-id: svn://svn.videolan.org/x264/trunk@469 df754926-b1dd-0310-bc7b-ec298dee348c commit 9eaa83d4c97cfceaeb6491ae8e7a74c0bd6f397b r468 Author: Loren Merritt Date: Wed Mar 15 04:38:57 2006 +0000 b16x16 wpred analysis used wrong weight git-svn-id: svn://svn.videolan.org/x264/trunk@468 df754926-b1dd-0310-bc7b-ec298dee348c commit 926212b3f0ff67ffc8ea2e3a7b299c016a00404c r467 Author: Loren Merritt Date: Sat Mar 11 03:32:37 2006 +0000 configure: --enable-shared for libx264.so git-svn-id: svn://svn.videolan.org/x264/trunk@467 df754926-b1dd-0310-bc7b-ec298dee348c commit 8f79dcc217245ebdc4aba8be505526c7277c6d3c r466 Author: Loren Merritt Date: Fri Mar 10 18:58:29 2006 +0000 wrong modulus when delta_qp = +26 git-svn-id: svn://svn.videolan.org/x264/trunk@466 df754926-b1dd-0310-bc7b-ec298dee348c commit 78f414d5646e018254339a9a5db08bdf69de6551 r465 Author: Loren Merritt Date: Thu Mar 9 16:56:33 2006 +0000 10l in vbv + 2pass git-svn-id: svn://svn.videolan.org/x264/trunk@465 df754926-b1dd-0310-bc7b-ec298dee348c commit d8e790ca7c0a524ea0aa01bf0d9020530e3dba9a r464 Author: Loren Merritt Date: Thu Mar 9 15:59:08 2006 +0000 macroblock-level ratecontrol: improved vbv strictness, and improved quality when using vbv. git-svn-id: svn://svn.videolan.org/x264/trunk@464 df754926-b1dd-0310-bc7b-ec298dee348c commit 79389771d6bc84a886b754bba995e7d9ac8b48d4 r463 Author: Loren Merritt Date: Thu Mar 9 05:30:08 2006 +0000 keep transposed dct coefs. ~1% overall speedup. git-svn-id: svn://svn.videolan.org/x264/trunk@463 df754926-b1dd-0310-bc7b-ec298dee348c commit ce9b3336d66cff23019d43656baf425491702727 r462 Author: Loren Merritt Date: Thu Mar 9 05:24:02 2006 +0000 tweak rounding of 8x8dct git-svn-id: svn://svn.videolan.org/x264/trunk@462 df754926-b1dd-0310-bc7b-ec298dee348c commit 9331f05948dfcd42461a8aa8b6f0994e594dc74a r461 Author: Loren Merritt Date: Wed Mar 8 19:58:30 2006 +0000 cosmetics in makefile git-svn-id: svn://svn.videolan.org/x264/trunk@461 df754926-b1dd-0310-bc7b-ec298dee348c commit 058c3be5405df19bb0f029956c54251d626ca0f0 r460 Author: Loren Merritt Date: Wed Mar 8 16:03:30 2006 +0000 cosmetics: muxers -> muxers.c git-svn-id: svn://svn.videolan.org/x264/trunk@460 df754926-b1dd-0310-bc7b-ec298dee348c commit a34eec24d5caed8b43f2d1ecf7a0f36b9fe60189 r459 Author: Loren Merritt Date: Mon Mar 6 18:38:44 2006 +0000 no --nr in intra blocks. intra prediction doesn't work well enough for the residual to be indicative of noise. git-svn-id: svn://svn.videolan.org/x264/trunk@459 df754926-b1dd-0310-bc7b-ec298dee348c commit afbbaf9b0229751fe545e1ac8b8f1ca68228d56a r458 Author: Loren Merritt Date: Mon Mar 6 03:21:38 2006 +0000 10l in direct auto + multiref + 1pass git-svn-id: svn://svn.videolan.org/x264/trunk@458 df754926-b1dd-0310-bc7b-ec298dee348c commit 9773268370492490235dee06d46e091f563626d7 r457 Author: Loren Merritt Date: Sun Mar 5 07:01:58 2006 +0000 --direct auto selects direct mode per frame. works best in 2pass (enable in both passes). git-svn-id: svn://svn.videolan.org/x264/trunk@457 df754926-b1dd-0310-bc7b-ec298dee348c commit 126ccb3360e4c9b92ced4c995e618e4129be97a2 r456 Author: Loren Merritt Date: Sun Mar 5 06:59:06 2006 +0000 change default direct mode to spatial git-svn-id: svn://svn.videolan.org/x264/trunk@456 df754926-b1dd-0310-bc7b-ec298dee348c commit 39c6d0824e23a3e6e769812968082026a9df61f8 r455 Author: Loren Merritt Date: Sun Mar 5 06:28:40 2006 +0000 remove TODO. most of it is done, and the rest is out of date. git-svn-id: svn://svn.videolan.org/x264/trunk@455 df754926-b1dd-0310-bc7b-ec298dee348c commit 918a791bb4ed544368cd7389147ab9e18fb6f8d4 r454 Author: Loren Merritt Date: Sun Mar 5 02:26:32 2006 +0000 more amd64 mmx intra prediction git-svn-id: svn://svn.videolan.org/x264/trunk@454 df754926-b1dd-0310-bc7b-ec298dee348c commit 469b4e5032b8183dd04c8cb6f22e9724146bb2f5 r453 Author: Loren Merritt Date: Sun Mar 5 02:16:19 2006 +0000 for i8x8 neighbors, don't assume a new slice starts at the edge of the frame git-svn-id: svn://svn.videolan.org/x264/trunk@453 df754926-b1dd-0310-bc7b-ec298dee348c commit 4fe3aff6fd991a72b8a80b2157092678b13db433 r452 Author: Sam Hocevar Date: Sat Mar 4 02:49:44 2006 +0000 * common/i386/i386inc.asm: got PIC to work for real on OS X x86. git-svn-id: svn://svn.videolan.org/x264/trunk@452 df754926-b1dd-0310-bc7b-ec298dee348c commit 4139febfe8acad10fb759b9d5a8992ed8cad6234 r451 Author: Sam Hocevar Date: Thu Mar 2 20:48:08 2006 +0000 * common/i386/*.asm: don't use the "GLOBAL" reserved word, some versions NASM complain about it. Replaced it with "GOT_ebx". git-svn-id: svn://svn.videolan.org/x264/trunk@451 df754926-b1dd-0310-bc7b-ec298dee348c commit 059410eda5d125c166b5ba050e3ca8152e84a2c7 r450 Author: Sam Hocevar Date: Thu Mar 2 20:46:54 2006 +0000 * configure: activate minor nasm optimisations, such as assembling "add eax, 8" as "add eax, byte 8". git-svn-id: svn://svn.videolan.org/x264/trunk@450 df754926-b1dd-0310-bc7b-ec298dee348c commit b5fda5741bf36e3f03cf0ebac90ddd9dce4f6420 r449 Author: Sam Hocevar Date: Wed Mar 1 22:21:47 2006 +0000 * common/i386: factored the .rodata section declaration into i386inc.asm. git-svn-id: svn://svn.videolan.org/x264/trunk@449 df754926-b1dd-0310-bc7b-ec298dee348c commit 17683d75b1dae07e8dfc901883231b41e73fe8cd r448 Author: Sam Hocevar Date: Wed Mar 1 22:16:16 2006 +0000 * configure common/i386/i386inc.asm: got rid of -DFORMAT_* nasm flags and use built-in preprocessor tests instead. git-svn-id: svn://svn.videolan.org/x264/trunk@448 df754926-b1dd-0310-bc7b-ec298dee348c commit 3723deea1601ba0dbda44ce09f77d6e1019226ac r447 Author: Sam Hocevar Date: Wed Mar 1 22:12:22 2006 +0000 * common/i386/i386inc.asm: tell the ELF linker about our stack properties so that it does not assume the stack has to be executable. git-svn-id: svn://svn.videolan.org/x264/trunk@447 df754926-b1dd-0310-bc7b-ec298dee348c commit 70c140345c62ecb13ffa1af412f1e8f9f10567d2 r446 Author: Loren Merritt Date: Tue Feb 28 19:49:00 2006 +0000 10l in r443 (p4x4 chroma) git-svn-id: svn://svn.videolan.org/x264/trunk@446 df754926-b1dd-0310-bc7b-ec298dee348c commit 3bd4ade21dcbf30287f3a350c25bda26ea667d22 r445 Author: Loren Merritt Date: Mon Feb 27 07:31:36 2006 +0000 copy current macroblock to a smaller buffer, to improve cache coherency and reduce stride computations. part 3: asm git-svn-id: svn://svn.videolan.org/x264/trunk@445 df754926-b1dd-0310-bc7b-ec298dee348c commit 4ecb5f8ed11073fd4e6a4673a1275c430478aefc r444 Author: Loren Merritt Date: Mon Feb 27 07:29:24 2006 +0000 copy current macroblock to a smaller buffer, to improve cache coherency and reduce stride computations. part 2: intra prediction git-svn-id: svn://svn.videolan.org/x264/trunk@444 df754926-b1dd-0310-bc7b-ec298dee348c commit 8f05dffc4574c40557a5a161b18c4e6037aeec48 r443 Author: Loren Merritt Date: Mon Feb 27 07:28:20 2006 +0000 copy current macroblock to a smaller buffer, to improve cache coherency and reduce stride computations. part 1: memory arrangement. git-svn-id: svn://svn.videolan.org/x264/trunk@443 df754926-b1dd-0310-bc7b-ec298dee348c commit 388658234c05e9b282569be052a5977d6cc9e812 r442 Author: Loren Merritt Date: Mon Feb 27 07:18:23 2006 +0000 h->mc.copy() git-svn-id: svn://svn.videolan.org/x264/trunk@442 df754926-b1dd-0310-bc7b-ec298dee348c commit 34cbb9170c3b9daeae91ef4aa2a48c2ec9bdfbc8 r441 Author: Loren Merritt Date: Mon Feb 27 06:32:43 2006 +0000 lowres intra used wrong neighboring pixels git-svn-id: svn://svn.videolan.org/x264/trunk@441 df754926-b1dd-0310-bc7b-ec298dee348c commit bca81cae09973cd349382d8612ad6aaf412444b4 r440 Author: Loren Merritt Date: Thu Feb 23 22:46:21 2006 +0000 trellis=2 slightly affected intra analysis even without subme=6 git-svn-id: svn://svn.videolan.org/x264/trunk@440 df754926-b1dd-0310-bc7b-ec298dee348c commit e5ed306c33a9b03d083660bb521758c76bdf36bd r439 Author: Sam Hocevar Date: Thu Feb 16 22:00:46 2006 +0000 * encoder/ratecontrol.c: OS X support for exp2f and sqrtf. git-svn-id: svn://svn.videolan.org/x264/trunk@439 df754926-b1dd-0310-bc7b-ec298dee348c commit 14b26394bd35f6ab03c6d4b7424ddea893a5bfa1 r438 Author: Loren Merritt Date: Thu Feb 16 01:32:56 2006 +0000 allow delta_qp > 26 git-svn-id: svn://svn.videolan.org/x264/trunk@438 df754926-b1dd-0310-bc7b-ec298dee348c commit 5fbca87deb6e3a79b9d3b6b31ea85fc79e49534f r437 Author: Loren Merritt Date: Tue Feb 14 01:21:43 2006 +0000 ratecontrol didn't always account for header bits, causing an undersize in multipass with --ratetol inf. git-svn-id: svn://svn.videolan.org/x264/trunk@437 df754926-b1dd-0310-bc7b-ec298dee348c commit 12b778b8f4e8501cf06ba3513fc0e824d4a87ac1 r436 Author: Loren Merritt Date: Mon Feb 13 17:36:22 2006 +0000 -q0 --b-rdo wasn't lossless git-svn-id: svn://svn.videolan.org/x264/trunk@436 df754926-b1dd-0310-bc7b-ec298dee348c commit 14f3cc06834e207b37222d93b7c6aea47b17524d r435 Author: Loren Merritt Date: Mon Feb 13 04:34:15 2006 +0000 cosmetics git-svn-id: svn://svn.videolan.org/x264/trunk@435 df754926-b1dd-0310-bc7b-ec298dee348c commit 476a0f93c9aa42a39c3518f891e024ef41b1056e r434 Author: Loren Merritt Date: Sun Feb 12 06:50:19 2006 +0000 allow ',' separator for --filter git-svn-id: svn://svn.videolan.org/x264/trunk@434 df754926-b1dd-0310-bc7b-ec298dee348c commit 8dfd87aeef4c1523d60684ca6c1368007a24aad4 r433 Author: Loren Merritt Date: Sun Feb 12 06:28:22 2006 +0000 VfW: 10l in bime and refs git-svn-id: svn://svn.videolan.org/x264/trunk@433 df754926-b1dd-0310-bc7b-ec298dee348c commit d53108a30cd1b1284c59eb9e8bdfac157a3ddb37 r432 Author: Loren Merritt Date: Sun Feb 12 01:36:21 2006 +0000 more lowres mv clipping fixes git-svn-id: svn://svn.videolan.org/x264/trunk@432 df754926-b1dd-0310-bc7b-ec298dee348c commit eb32d28463ab8433fba16851d4796d041b8de39f r431 Author: Loren Merritt Date: Sat Feb 11 22:04:57 2006 +0000 VfW: cosmetics git-svn-id: svn://svn.videolan.org/x264/trunk@431 df754926-b1dd-0310-bc7b-ec298dee348c commit 60e848749dbcb8a44709675ea391f5c28a8a8c1f r430 Author: Loren Merritt Date: Sat Feb 11 20:11:05 2006 +0000 VfW: support trellis, brdo, nr, bime. patch by Dan Nelson (dnelson at allantgroup dot com). git-svn-id: svn://svn.videolan.org/x264/trunk@430 df754926-b1dd-0310-bc7b-ec298dee348c commit 681b394485671f977a1a19d2279ace4c22eb0177 r429 Author: Loren Merritt Date: Fri Feb 10 21:58:43 2006 +0000 amd64 mmx for some intra pred functions git-svn-id: svn://svn.videolan.org/x264/trunk@429 df754926-b1dd-0310-bc7b-ec298dee348c commit e1d852d2947dfaac201dfb7149070ed341caa64f r428 Author: Loren Merritt Date: Fri Feb 10 20:52:48 2006 +0000 dequant_mmx made incorrect assumptions about extreme inputs. now uses 32bit in more cases. patch by Christian Heine. git-svn-id: svn://svn.videolan.org/x264/trunk@428 df754926-b1dd-0310-bc7b-ec298dee348c commit fed2847ca9c4b9f8240be78145681d12ea85e1e9 r427 Author: Loren Merritt Date: Fri Feb 10 01:16:40 2006 +0000 lowres can reuse the normal mv cost table git-svn-id: svn://svn.videolan.org/x264/trunk@427 df754926-b1dd-0310-bc7b-ec298dee348c commit f959a749aec65753e77a0b5566adb18d6a9af87f r426 Author: Loren Merritt Date: Thu Feb 9 04:51:55 2006 +0000 r422 broke x264_center_filter_mmxext git-svn-id: svn://svn.videolan.org/x264/trunk@426 df754926-b1dd-0310-bc7b-ec298dee348c commit 7125f9174c8d32f66bf9264c2b986dd1c03f4a27 r425 Author: Sam Hocevar Date: Wed Feb 8 12:45:21 2006 +0000 * configure: define FORMAT_ELF under Linux and FORMAT_AOUTB under *BSD. git-svn-id: svn://svn.videolan.org/x264/trunk@425 df754926-b1dd-0310-bc7b-ec298dee348c commit 5d5c5cc213fb25a1fd151af80ab0a4fb614dd32c r424 Author: Sam Hocevar Date: Wed Feb 8 11:07:06 2006 +0000 * common/i386/i386inc.asm: support for ELF, a.out and Mach-O objects. git-svn-id: svn://svn.videolan.org/x264/trunk@424 df754926-b1dd-0310-bc7b-ec298dee348c commit 78d31c22dcc1c42d6b2009b52ba758958dd1bff4 r423 Author: Sam Hocevar Date: Wed Feb 8 09:32:03 2006 +0000 * configure: added a --enable-pic flag. git-svn-id: svn://svn.videolan.org/x264/trunk@423 df754926-b1dd-0310-bc7b-ec298dee348c commit dc454eab263d463d2eeecf627aae31a10a5d080c r422 Author: Sam Hocevar Date: Wed Feb 8 09:26:56 2006 +0000 * Additional fixes to the PIC versions of assembly routines. They now pass all checkasm tests and output streams are bit-by-bit identical, which sounds good. git-svn-id: svn://svn.videolan.org/x264/trunk@422 df754926-b1dd-0310-bc7b-ec298dee348c commit ac9da5dbb4447c64bf9b82e849f4ae233c4413d3 r421 Author: Sam Hocevar Date: Wed Feb 8 09:03:28 2006 +0000 * tools/checkasm.c: print the random seed used for the test, to allow for replays. It looks like dequant_4x4 fails 1 time out of 600, with the following seeds for instance: 1423 1957 2149 2455 3385 3403 3724 4095. git-svn-id: svn://svn.videolan.org/x264/trunk@421 df754926-b1dd-0310-bc7b-ec298dee348c commit bb21f3a920ffefe84a77933c060775b2089a9c6c r420 Author: Loren Merritt Date: Wed Feb 8 00:53:35 2006 +0000 cosmetics in mc_chroma git-svn-id: svn://svn.videolan.org/x264/trunk@420 df754926-b1dd-0310-bc7b-ec298dee348c commit 80b669bbc73e92944954cadc612650ba08b80358 r419 Author: Sam Hocevar Date: Tue Feb 7 19:05:47 2006 +0000 * Oh, so what I thought was unused code was in fact used. This fixes my breakage but makes the code rather slow in PIC mode. I will fix it later. git-svn-id: svn://svn.videolan.org/x264/trunk@419 df754926-b1dd-0310-bc7b-ec298dee348c commit eea893893af7ae49cd9cab333279f0323302db81 r418 Author: Sam Hocevar Date: Tue Feb 7 17:40:56 2006 +0000 * Support for x86 position-independent code (PIC), needed for dynamic libs on Mac OS X Intel. I tried to make this as little intrusive as possible. git-svn-id: svn://svn.videolan.org/x264/trunk@418 df754926-b1dd-0310-bc7b-ec298dee348c commit 97f05071bb3aed659785ec10ccd6824020dfaef8 r417 Author: Loren Merritt Date: Mon Feb 6 21:34:52 2006 +0000 msvc: #define isfinite() git-svn-id: svn://svn.videolan.org/x264/trunk@417 df754926-b1dd-0310-bc7b-ec298dee348c commit 19d07afabccda339852d7d49d3d5b11d538181f3 r416 Author: Loren Merritt Date: Mon Feb 6 06:14:04 2006 +0000 x86 mmx for some intra pred functions git-svn-id: svn://svn.videolan.org/x264/trunk@416 df754926-b1dd-0310-bc7b-ec298dee348c commit d2dada763c6114b6245c6b468dfc2287123d12c5 r415 Author: Loren Merritt Date: Mon Feb 6 05:53:44 2006 +0000 cosmetics: reorganize intra prediction dsp git-svn-id: svn://svn.videolan.org/x264/trunk@415 df754926-b1dd-0310-bc7b-ec298dee348c commit 791495e3d82b982ffa086593956bb96da45973e2 r414 Author: Loren Merritt Date: Mon Feb 6 03:49:38 2006 +0000 too many systems don't have off_t; use uint64_t instead. git-svn-id: svn://svn.videolan.org/x264/trunk@414 df754926-b1dd-0310-bc7b-ec298dee348c commit ce237ab663525259ce64423341ce6893309cee88 r413 Author: Loren Merritt Date: Sat Feb 4 05:39:02 2006 +0000 fix order of frame evaluation in pre-me git-svn-id: svn://svn.videolan.org/x264/trunk@413 df754926-b1dd-0310-bc7b-ec298dee348c commit f116707e12e1ba980c8cf6a091f3290ba4d75af4 r412 Author: Loren Merritt Date: Fri Feb 3 18:23:26 2006 +0000 update AUTHORS git-svn-id: svn://svn.videolan.org/x264/trunk@412 df754926-b1dd-0310-bc7b-ec298dee348c commit 8b498e443950c642fd5f6c1406636f4ab5def27e r411 Author: Loren Merritt Date: Thu Feb 2 04:37:05 2006 +0000 fix a check for NaN in ratecontrol git-svn-id: svn://svn.videolan.org/x264/trunk@411 df754926-b1dd-0310-bc7b-ec298dee348c commit e3b1f110b9eb2286e481febf29a015256a48c576 r410 Author: Loren Merritt Date: Sun Jan 29 08:46:20 2006 +0000 fix mv predictors in pre-me for b-adapt. git-svn-id: svn://svn.videolan.org/x264/trunk@410 df754926-b1dd-0310-bc7b-ec298dee348c commit 6da9fc956cdafd6dde4c334568c18bd7bef292c1 r409 Author: Loren Merritt Date: Mon Jan 23 02:02:50 2006 +0000 print --nr in sei params. tweak ratecontrol param checking. git-svn-id: svn://svn.videolan.org/x264/trunk@409 df754926-b1dd-0310-bc7b-ec298dee348c commit be6cce52d13fc6424e6244bfce03f67894c15d1e r408 Author: Måns Rullgård Date: Thu Jan 19 00:05:42 2006 +0000 I've moved git-svn-id: svn://svn.videolan.org/x264/trunk@408 df754926-b1dd-0310-bc7b-ec298dee348c commit 273dc626b8b4f7cfe166be728038d9d3e9fd1fb7 r407 Author: Måns Rullgård Date: Thu Jan 19 00:05:05 2006 +0000 write correct VUI timing info git-svn-id: svn://svn.videolan.org/x264/trunk@407 df754926-b1dd-0310-bc7b-ec298dee348c commit d125e4373da6f5e50d2e4ab73aab2d97732212c5 r406 Author: Loren Merritt Date: Wed Jan 18 07:42:29 2006 +0000 early termination in UMH search git-svn-id: svn://svn.videolan.org/x264/trunk@406 df754926-b1dd-0310-bc7b-ec298dee348c commit a373f2aef22a54c8d597156429ff7f0ad41f1c9e r405 Author: Loren Merritt Date: Wed Jan 18 07:08:01 2006 +0000 split mv_range enforcement from edge-of-frame clipping. fixes an occasional artifact with long mvs. git-svn-id: svn://svn.videolan.org/x264/trunk@405 df754926-b1dd-0310-bc7b-ec298dee348c commit 61b57afb7b614ab09a0508c4c53ca411f4f675f8 r404 Author: Loren Merritt Date: Wed Jan 18 04:29:18 2006 +0000 cosmetics: suppress warning on unused variables git-svn-id: svn://svn.videolan.org/x264/trunk@404 df754926-b1dd-0310-bc7b-ec298dee348c commit 271c1947a599ccdc3a509260da2d5cd6699148d7 r403 Author: Loren Merritt Date: Tue Jan 17 21:16:28 2006 +0000 cosmetics: simplify #includes git-svn-id: svn://svn.videolan.org/x264/trunk@403 df754926-b1dd-0310-bc7b-ec298dee348c commit 7fb7e61b6247d9571fe7244f03231adbcc1d7e75 r402 Author: Sam Hocevar Date: Mon Jan 16 12:23:35 2006 +0000 * configure: NSLU2 platform support (why oh why) git-svn-id: svn://svn.videolan.org/x264/trunk@402 df754926-b1dd-0310-bc7b-ec298dee348c commit 1d82beb4c26d82d068e84265344e078854907c1e r401 Author: Eric Petit Date: Sun Jan 15 22:29:15 2006 +0000 Re-enabled x86 optims on MacIntel, assume Nasm CVS is installed and -f macho -DPREFIX just seems to do the job git-svn-id: svn://svn.videolan.org/x264/trunk@401 df754926-b1dd-0310-bc7b-ec298dee348c commit 096c4eb70a5b3cc5aebda44e62b4d3dd83edbc9c r400 Author: Eric Petit Date: Sat Jan 14 16:11:48 2006 +0000 Quick compile fix for OS X / Intel Optimizations are disabled at the moment. In order to get them to work, we'd need either nasm to be able to output Mach-O object files, or we should convert the assembly code to something OS X can handle, like gas. git-svn-id: svn://svn.videolan.org/x264/trunk@400 df754926-b1dd-0310-bc7b-ec298dee348c commit 743ad5971608e491bd1d70a31e9bfdc496301eef r399 Author: Loren Merritt Date: Fri Jan 13 06:54:10 2006 +0000 cli: large file support git-svn-id: svn://svn.videolan.org/x264/trunk@399 df754926-b1dd-0310-bc7b-ec298dee348c commit 0abf15d29e904339fb9f606e83e01c9265e54b15 r398 Author: Loren Merritt Date: Tue Jan 10 07:31:29 2006 +0000 dct-domain noise reduction (ported from lavc) git-svn-id: svn://svn.videolan.org/x264/trunk@398 df754926-b1dd-0310-bc7b-ec298dee348c commit 6bf39eaa780ef0877b7d6fe8497df9a38d4baa3d r397 Author: Loren Merritt Date: Mon Jan 9 06:18:39 2006 +0000 early termination within large SADs. ~1% faster UMH, ~4% faster ESA. git-svn-id: svn://svn.videolan.org/x264/trunk@397 df754926-b1dd-0310-bc7b-ec298dee348c commit 73a45ef20dec4dc709e029f175eb20ae8eb099b9 r396 Author: Loren Merritt Date: Thu Jan 5 19:11:38 2006 +0000 mkv: increase nalu size size to 4 bytes. patch by Haali. git-svn-id: svn://svn.videolan.org/x264/trunk@396 df754926-b1dd-0310-bc7b-ec298dee348c commit d3c2f10353e8409932f05be20c11f4eae09974c1 r395 Author: Loren Merritt Date: Wed Jan 4 03:43:15 2006 +0000 less 64bit math: 12% faster trellis git-svn-id: svn://svn.videolan.org/x264/trunk@395 df754926-b1dd-0310-bc7b-ec298dee348c commit 28c0f2419db96278a14d126de3859a67d31d0a84 r394 Author: Loren Merritt Date: Sun Jan 1 10:14:17 2006 +0000 more error checking of input parameters git-svn-id: svn://svn.videolan.org/x264/trunk@394 df754926-b1dd-0310-bc7b-ec298dee348c commit bf1e4d1faba2eff0f54029ccf4d98ce9ef09a757 r393 Author: Loren Merritt Date: Sun Jan 1 09:39:29 2006 +0000 always write sps.vui git-svn-id: svn://svn.videolan.org/x264/trunk@393 df754926-b1dd-0310-bc7b-ec298dee348c commit 7091b47e853fb45ae2d9432ea7ffe085efa31936 r392 Author: Loren Merritt Date: Sat Dec 31 14:16:02 2005 +0000 use some extra packing modes for CQM headers. fix typo in --cqm4p[yc]. git-svn-id: svn://svn.videolan.org/x264/trunk@392 df754926-b1dd-0310-bc7b-ec298dee348c commit a977f764240cb9139c2152448bb85dd89260639f r391 Author: Loren Merritt Date: Fri Dec 30 08:26:42 2005 +0000 MSVC compatibility fixes git-svn-id: svn://svn.videolan.org/x264/trunk@391 df754926-b1dd-0310-bc7b-ec298dee348c commit 2fa8f84b6e108222735c2895b6419ed8c29ef031 r390 Author: Loren Merritt Date: Fri Dec 30 04:56:49 2005 +0000 joint bidirectional motion refinement (--bime) git-svn-id: svn://svn.videolan.org/x264/trunk@390 df754926-b1dd-0310-bc7b-ec298dee348c commit 684d2d58a5e60bec5bd45834e1c87b4b150c4244 r389 Author: Loren Merritt Date: Sat Dec 24 20:59:13 2005 +0000 fix some overflows in mp4 timestamps. patch by Francesco Corriga. git-svn-id: svn://svn.videolan.org/x264/trunk@389 df754926-b1dd-0310-bc7b-ec298dee348c commit 25b40141a3d6569bfdc58a94d3004a89211029d6 r388 Author: Loren Merritt Date: Tue Dec 20 02:57:52 2005 +0000 Successive elimination motion search: same as exhaustive search, but 2-3x faster. git-svn-id: svn://svn.videolan.org/x264/trunk@388 df754926-b1dd-0310-bc7b-ec298dee348c commit a9607af8a776bb00aa463fa926fb4e4661eff1e4 r387 Author: Eric Petit Date: Tue Dec 13 16:32:39 2005 +0000 Fixed cc_check on OS X (gcc -o /dev/null always fails) git-svn-id: svn://svn.videolan.org/x264/trunk@387 df754926-b1dd-0310-bc7b-ec298dee348c commit b914f8081539c243a7a3f5a15a11145e06466da9 r386 Author: Loren Merritt Date: Tue Dec 13 11:24:02 2005 +0000 postpone pskip decision until after p16x16ref0 motion search. reduces the number of erroneous pskips in low-detail regions. git-svn-id: svn://svn.videolan.org/x264/trunk@386 df754926-b1dd-0310-bc7b-ec298dee348c commit cc3308878925bf33c0e2707c9177dd345ed238a5 r385 Author: Loren Merritt Date: Wed Dec 7 17:29:20 2005 +0000 configure: autodetect gpac, avis, pthread, vfw git-svn-id: svn://svn.videolan.org/x264/trunk@385 df754926-b1dd-0310-bc7b-ec298dee348c commit 38fcbfbeb53d402f9431f18709aee37987dcf318 r384 Author: Loren Merritt Date: Mon Dec 5 12:46:46 2005 +0000 --no-fast-pskip patch by Alex Wright. git-svn-id: svn://svn.videolan.org/x264/trunk@384 df754926-b1dd-0310-bc7b-ec298dee348c commit 5ce628fa0413b7d87e87619a65a9e1cabe5cd5be r383 Author: Loren Merritt Date: Mon Dec 5 12:38:46 2005 +0000 cosmetics: config.h is now modified only by configure. make now calls configure if you haven't. git-svn-id: svn://svn.videolan.org/x264/trunk@383 df754926-b1dd-0310-bc7b-ec298dee348c commit f03dbfd42d110e982323f78aac131024e0687590 r382 Author: Loren Merritt Date: Sun Dec 4 21:19:17 2005 +0000 MP4: set "track enabled" flag. patch by Robert Swain. git-svn-id: svn://svn.videolan.org/x264/trunk@382 df754926-b1dd-0310-bc7b-ec298dee348c commit 8443f260777556ebd6132f6448d406c769194e23 r381 Author: Loren Merritt Date: Sat Dec 3 01:50:52 2005 +0000 faster subpel motion search. patch by Alex Wright. git-svn-id: svn://svn.videolan.org/x264/trunk@381 df754926-b1dd-0310-bc7b-ec298dee348c commit 8f0d66cc0973cfb8360fad55b22248fe620def34 r380 Author: Loren Merritt Date: Mon Nov 28 07:43:22 2005 +0000 don't use gnu extensions to grep and sed. git-svn-id: svn://svn.videolan.org/x264/trunk@380 df754926-b1dd-0310-bc7b-ec298dee348c commit 6826cf2faf2692b0bb37780148a89b0e58826f6b r379 Author: Loren Merritt Date: Mon Nov 28 02:03:12 2005 +0000 pkg-config: major.minor.patch version git-svn-id: svn://svn.videolan.org/x264/trunk@379 df754926-b1dd-0310-bc7b-ec298dee348c commit 8e44d938b225c0a4dabad257b471335fdd0fe18d r378 Author: Loren Merritt Date: Mon Nov 28 00:29:10 2005 +0000 `make fprofiled` to automate gcc -fprofile-generate/use git-svn-id: svn://svn.videolan.org/x264/trunk@378 df754926-b1dd-0310-bc7b-ec298dee348c commit 71b75efe735e76d8d6ec4b51cd09b477dc0908cc r377 Author: Loren Merritt Date: Sun Nov 27 23:24:43 2005 +0000 10l git-svn-id: svn://svn.videolan.org/x264/trunk@377 df754926-b1dd-0310-bc7b-ec298dee348c commit bdddcf97476ae25a8bd80339090c399b59b8c2f3 r376 Author: Loren Merritt Date: Sun Nov 27 23:23:49 2005 +0000 param.b_repeat_headers (not yet used) git-svn-id: svn://svn.videolan.org/x264/trunk@376 df754926-b1dd-0310-bc7b-ec298dee348c commit 8c7611c14281f5d597262aa66771f0b9b50366a8 r375 Author: Loren Merritt Date: Tue Nov 22 19:27:54 2005 +0000 support pkg-config. patch by Caro. git-svn-id: svn://svn.videolan.org/x264/trunk@375 df754926-b1dd-0310-bc7b-ec298dee348c commit 78d2f605d0293484d50d58b74489700b65cc0472 r374 Author: Loren Merritt Date: Tue Nov 22 06:59:48 2005 +0000 write encoding options to the userdata SEI and to the 2pass statsfile. check for incompatible options in the 2nd pass. git-svn-id: svn://svn.videolan.org/x264/trunk@374 df754926-b1dd-0310-bc7b-ec298dee348c commit c010ba1dde8fb861417e30c0d4316c6cb33064dd r373 Author: Loren Merritt Date: Tue Nov 22 05:02:33 2005 +0000 change default level to "5.1" git-svn-id: svn://svn.videolan.org/x264/trunk@373 df754926-b1dd-0310-bc7b-ec298dee348c commit 05e6cf0516ff5646c841fa66d96be5e0264b0daa r372 Author: Loren Merritt Date: Tue Nov 22 02:53:53 2005 +0000 skip dequant+idct of decimated blocks. git-svn-id: svn://svn.videolan.org/x264/trunk@372 df754926-b1dd-0310-bc7b-ec298dee348c commit bc478923aefe1e4aa5e0201b2214f1ed8ad8f719 r371 Author: Loren Merritt Date: Tue Nov 22 02:48:39 2005 +0000 after a 1pass ABR, print the value of --crf which would result in the same bitrate. git-svn-id: svn://svn.videolan.org/x264/trunk@371 df754926-b1dd-0310-bc7b-ec298dee348c commit 528cbd1f16cd20b3ee8bbfd5b5edf6634a7f4634 r370 Author: Loren Merritt Date: Tue Nov 22 02:43:11 2005 +0000 subpel search: always check mvp. git-svn-id: svn://svn.videolan.org/x264/trunk@370 df754926-b1dd-0310-bc7b-ec298dee348c commit 429e0603017630feb239e22de3eb279ee02932c9 r369 Author: Loren Merritt Date: Tue Nov 22 02:36:29 2005 +0000 faster b-rdo (skip RD of modes with bad SATD). patch by Alex Wright. git-svn-id: svn://svn.videolan.org/x264/trunk@369 df754926-b1dd-0310-bc7b-ec298dee348c commit 6fe92323b2e007e3a31714fb5b090b732fc24e62 r368 Author: Loren Merritt Date: Fri Nov 18 11:20:07 2005 +0000 RD mode decision for B-frames (--b-rdo) patch by Alex Wright. git-svn-id: svn://svn.videolan.org/x264/trunk@368 df754926-b1dd-0310-bc7b-ec298dee348c commit 322c42ad8ca9ac3d4755e62fadb29c3ef7a4ecf5 r367 Author: Sam Hocevar Date: Fri Nov 11 23:57:18 2005 +0000 * common/amd64/quant-a.asm: added missing GLOBAL flags that prevented PIC builds, thanks to Anssi Hannula. git-svn-id: svn://svn.videolan.org/x264/trunk@367 df754926-b1dd-0310-bc7b-ec298dee348c commit ffd008ebdd6ebbf6f83dbf08315f3765a072261a r366 Author: Sam Hocevar Date: Fri Nov 11 17:46:24 2005 +0000 * configure: added the Alpha platform. git-svn-id: svn://svn.videolan.org/x264/trunk@366 df754926-b1dd-0310-bc7b-ec298dee348c commit 9187a8f84ba24b2825487971ce94db404303393d r365 Author: Loren Merritt Date: Mon Nov 7 07:53:42 2005 +0000 use array_non_zero() when we don't need a full array_non_zero_count() git-svn-id: svn://svn.videolan.org/x264/trunk@365 df754926-b1dd-0310-bc7b-ec298dee348c commit d18bbd3b2e28958b9e153b62033a7f66f6fea0ec r364 Author: Loren Merritt Date: Sun Nov 6 07:07:30 2005 +0000 mmx dequant. up to 3% speedup w/ RD. git-svn-id: svn://svn.videolan.org/x264/trunk@364 df754926-b1dd-0310-bc7b-ec298dee348c commit d447c2d3db71e0b422ed9330ac26410ba9f90622 r363 Author: Loren Merritt Date: Sun Nov 6 00:26:43 2005 +0000 allow --level to understand names in addition to idc git-svn-id: svn://svn.videolan.org/x264/trunk@363 df754926-b1dd-0310-bc7b-ec298dee348c commit 87e5994706c76bd628c7e23f0dca95f05e922a7c r362 Author: Loren Merritt Date: Fri Nov 4 11:39:58 2005 +0000 check (most of) the levels constaints. set default max_mv_range based on level_idc. git-svn-id: svn://svn.videolan.org/x264/trunk@362 df754926-b1dd-0310-bc7b-ec298dee348c commit 1e80b69b3717e019f6cbab071582f9812b85fa4d r361 Author: Loren Merritt Date: Thu Nov 3 22:57:52 2005 +0000 if p16x16 RD decides to code a MB as p_skip, then don't check smaller partitions. git-svn-id: svn://svn.videolan.org/x264/trunk@361 df754926-b1dd-0310-bc7b-ec298dee348c commit 5c43fb3b66b5ccf4ae0c4bd63599bf3f64d4557e r360 Author: Loren Merritt Date: Thu Nov 3 22:20:47 2005 +0000 Trellis RD quantization. around +.2 dB git-svn-id: svn://svn.videolan.org/x264/trunk@360 df754926-b1dd-0310-bc7b-ec298dee348c commit 3f1ed7cee623b64fd66fc60db62275df23177966 r359 Author: Loren Merritt Date: Thu Nov 3 20:16:56 2005 +0000 cosmetics: XCHG macro git-svn-id: svn://svn.videolan.org/x264/trunk@359 df754926-b1dd-0310-bc7b-ec298dee348c commit 662e56b59eee5ddc15e5fb8c53c7cd49bcc39eeb r358 Author: Loren Merritt Date: Thu Nov 3 11:27:24 2005 +0000 skip a few duplicate candidates in qpel search. git-svn-id: svn://svn.videolan.org/x264/trunk@358 df754926-b1dd-0310-bc7b-ec298dee348c commit 2107a4f7204f0a764830b562e86d50f2b979a0b8 r357 Author: Loren Merritt Date: Thu Nov 3 11:26:17 2005 +0000 skip a few duplicate candidates in fullpel hex&umh search. git-svn-id: svn://svn.videolan.org/x264/trunk@357 df754926-b1dd-0310-bc7b-ec298dee348c commit 01c05a79022c2349ddba2f3e101f8a1d26500906 r356 Author: Loren Merritt Date: Thu Nov 3 06:53:59 2005 +0000 cli: arithmetic overflow in bitrate printing git-svn-id: svn://svn.videolan.org/x264/trunk@356 df754926-b1dd-0310-bc7b-ec298dee348c commit db67b818250aa75680df5ff15ff58418e850d321 r355 Author: Loren Merritt Date: Thu Nov 3 06:47:19 2005 +0000 cosmetics in x264_cabac_mb_type git-svn-id: svn://svn.videolan.org/x264/trunk@355 df754926-b1dd-0310-bc7b-ec298dee348c commit 89d2c6a13fc2c864191af2ad86d07dee69a6c75b r354 Author: Loren Merritt Date: Thu Nov 3 06:40:46 2005 +0000 X264_ABS => abs git-svn-id: svn://svn.videolan.org/x264/trunk@354 df754926-b1dd-0310-bc7b-ec298dee348c commit d13a18680572b8ae1075f9a2d53bf57b51eab6ec r353 Author: Loren Merritt Date: Thu Nov 3 02:42:48 2005 +0000 amd64 sse2 8x8dct. 1.45x faster than mmx. git-svn-id: svn://svn.videolan.org/x264/trunk@353 df754926-b1dd-0310-bc7b-ec298dee348c commit 08e19ed8f28e5bb1fdd951eb2bab04c0248f9af1 r352 Author: Loren Merritt Date: Tue Nov 1 03:34:48 2005 +0000 allow 1pass ratecontrol with keyint=1 git-svn-id: svn://svn.videolan.org/x264/trunk@352 df754926-b1dd-0310-bc7b-ec298dee348c commit 9617e25c2ea08d029decb106fa7cf51a13a03706 r351 Author: Loren Merritt Date: Mon Oct 31 04:02:15 2005 +0000 cli: print estimated time left in --progress git-svn-id: svn://svn.videolan.org/x264/trunk@351 df754926-b1dd-0310-bc7b-ec298dee348c commit d484bce60eb3405b2d1bc666a61120dea6bbe294 r350 Author: Loren Merritt Date: Mon Oct 31 02:52:33 2005 +0000 doc/ratecontrol.txt git-svn-id: svn://svn.videolan.org/x264/trunk@350 df754926-b1dd-0310-bc7b-ec298dee348c commit 5aced82614a4be3106eec04ba983d122e9e7f668 r349 Author: Loren Merritt Date: Mon Oct 31 02:50:36 2005 +0000 rm doc/dct.txt git-svn-id: svn://svn.videolan.org/x264/trunk@349 df754926-b1dd-0310-bc7b-ec298dee348c commit b179e4740f7624ea1be4db0682a658fe6822a9e8 r348 Author: Loren Merritt Date: Sun Oct 30 23:42:24 2005 +0000 in constant QP mode, write that QP in the PPS to save a few bits in each slice header. git-svn-id: svn://svn.videolan.org/x264/trunk@348 df754926-b1dd-0310-bc7b-ec298dee348c commit 108f197cb62a9f29b0b671e2eceafd8ccc4ded21 r347 Author: Loren Merritt Date: Sun Oct 30 06:22:29 2005 +0000 faster decimation git-svn-id: svn://svn.videolan.org/x264/trunk@347 df754926-b1dd-0310-bc7b-ec298dee348c commit fa01979f7260543c845d0823d4a7c0774bcf5a16 r346 Author: Loren Merritt Date: Sat Oct 29 04:05:57 2005 +0000 cosmetics: fix an erroneous warning from r340. git-svn-id: svn://svn.videolan.org/x264/trunk@346 df754926-b1dd-0310-bc7b-ec298dee348c commit 8d857c5601be89dc32d995c519c096805249f77f r345 Author: Loren Merritt Date: Sat Oct 29 03:00:50 2005 +0000 cosmetics: change literal cabac_block_cat to an enum. git-svn-id: svn://svn.videolan.org/x264/trunk@345 df754926-b1dd-0310-bc7b-ec298dee348c commit c636f90355a1855b0b2576d79d34541c063daee5 r344 Author: Loren Merritt Date: Sat Oct 29 02:21:39 2005 +0000 cabac: merge i_state with i_mps. bs_write multiple bits at once. git-svn-id: svn://svn.videolan.org/x264/trunk@344 df754926-b1dd-0310-bc7b-ec298dee348c commit 5167ebb2bcfdd525d47abc91329d3588feab0b5f r343 Author: Loren Merritt Date: Sat Oct 29 01:43:29 2005 +0000 remove unused adaptive cabac_idc code git-svn-id: svn://svn.videolan.org/x264/trunk@343 df754926-b1dd-0310-bc7b-ec298dee348c commit 817ef1468a80b20a76b4c12af44e3b85339880d5 r342 Author: Eric Petit Date: Thu Oct 27 10:27:04 2005 +0000 Fixed compilation on PPC (spotted by David Wolstencroft) git-svn-id: svn://svn.videolan.org/x264/trunk@342 df754926-b1dd-0310-bc7b-ec298dee348c commit 109ae085288c0068e2f40bfffd41070bd25dfa8b r341 Author: Loren Merritt Date: Wed Oct 26 08:38:11 2005 +0000 mmx deblocking. 2.5x faster deblocking functions, 1-4% overall. git-svn-id: svn://svn.videolan.org/x264/trunk@341 df754926-b1dd-0310-bc7b-ec298dee348c commit 166601503800e00a33d88eb488da744a486ecb77 r340 Author: Loren Merritt Date: Wed Oct 26 07:04:59 2005 +0000 If frame count is known at init time (cli & vfw), then abort if the 2nd pass exceeds the length of the 1st pass. If it's not known (mencoder), then report a non-fatal error when we run off the end of the 1st pass stats, and switch to constant QP. git-svn-id: svn://svn.videolan.org/x264/trunk@340 df754926-b1dd-0310-bc7b-ec298dee348c commit 75832019417943ed6a68b99bd75f5ef7efe1d998 r339 Author: Loren Merritt Date: Wed Oct 26 06:40:51 2005 +0000 move checkasm to tools/ delete unused stuff in testing/ `make clean` deletes checkasm and avc2avi git-svn-id: svn://svn.videolan.org/x264/trunk@339 df754926-b1dd-0310-bc7b-ec298dee348c commit 6347263823e0fce26593fe36d812ba95931ebcb0 r338 Author: Loren Merritt Date: Wed Oct 26 06:31:35 2005 +0000 checkasm: check 8x8dct, mc average, quant, and SSE2. git-svn-id: svn://svn.videolan.org/x264/trunk@338 df754926-b1dd-0310-bc7b-ec298dee348c commit 57900a1b0caa43372433b7bca25b26d764fadaff r337 Author: Loren Merritt Date: Wed Oct 26 06:30:19 2005 +0000 r336 broke amd64 x264_pixel_sad_16x16_sse2 (though it's not being used) git-svn-id: svn://svn.videolan.org/x264/trunk@337 df754926-b1dd-0310-bc7b-ec298dee348c commit 360eb55eda428cba8d6d4e411ff87e0d5dedbf05 r336 Author: Loren Merritt Date: Tue Oct 25 10:57:29 2005 +0000 Windows 64bit asm. patch by squid_80. git-svn-id: svn://svn.videolan.org/x264/trunk@336 df754926-b1dd-0310-bc7b-ec298dee348c commit 6d969739baac6b9f7e9bcb44c3b7dbc21890dd1b r335 Author: Loren Merritt Date: Mon Oct 24 16:15:11 2005 +0000 delete build/cygwin because it's handled in the main configure/makefile. git-svn-id: svn://svn.videolan.org/x264/trunk@335 df754926-b1dd-0310-bc7b-ec298dee348c commit 0ddc9d5524a48882ac804948775fd7a35b3a07da r334 Author: Loren Merritt Date: Sun Oct 23 09:52:34 2005 +0000 --crf: 1pass quality-based VBR. git-svn-id: svn://svn.videolan.org/x264/trunk@334 df754926-b1dd-0310-bc7b-ec298dee348c commit 06f1dafd17e9ebb1cd9d271fd72eb0c04e2337bc r333 Author: Eric Petit Date: Sun Oct 16 09:53:05 2005 +0000 Added --enable-gprof (patch by Johannes Reinhardt) git-svn-id: svn://svn.videolan.org/x264/trunk@333 df754926-b1dd-0310-bc7b-ec298dee348c commit 2ac5fe040b35546a7d7bc0b463fd4a9cb268ff3b r332 Author: Loren Merritt Date: Sun Oct 16 05:44:50 2005 +0000 cosmetics: remove #if0'ed code patch by Robert Swain. git-svn-id: svn://svn.videolan.org/x264/trunk@332 df754926-b1dd-0310-bc7b-ec298dee348c commit 1647e6d6e147b3e2072b4f36b1ed27df0715ff0d r331 Author: Loren Merritt Date: Sun Oct 16 01:47:30 2005 +0000 faster bs_write git-svn-id: svn://svn.videolan.org/x264/trunk@331 df754926-b1dd-0310-bc7b-ec298dee348c commit b659ca6f53df6f7b1b423112ef0f95e7eb166ef5 r330 Author: Loren Merritt Date: Sat Oct 15 04:11:06 2005 +0000 during RDO, skip the bitstream writing and just calculate the number of bits that would be used. speedup: cabac +4-8%, cavlc +2-4%. git-svn-id: svn://svn.videolan.org/x264/trunk@330 df754926-b1dd-0310-bc7b-ec298dee348c commit 48c2e935e3638a38c988b11204ff52a85bf48fc9 r329 Author: Loren Merritt Date: Sat Oct 15 00:27:17 2005 +0000 Use SAD instead of SATD for halfpel motion search. Move multiref termination after halfpel search. Total: 3-7% speedup and +/-.02 dB. patch by Alex Wright. git-svn-id: svn://svn.videolan.org/x264/trunk@329 df754926-b1dd-0310-bc7b-ec298dee348c commit a8ac858b06ddca09acd98c35456b1008412cbe94 r328 Author: Loren Merritt Date: Thu Oct 13 18:19:38 2005 +0000 VfW: mixed refs. patch by celtic_druid. git-svn-id: svn://svn.videolan.org/x264/trunk@328 df754926-b1dd-0310-bc7b-ec298dee348c commit d69837d312aa09c020416008c26f7008783d8c7f r327 Author: Loren Merritt Date: Mon Oct 10 22:51:26 2005 +0000 allow non-mod16 resolutions git-svn-id: svn://svn.videolan.org/x264/trunk@327 df754926-b1dd-0310-bc7b-ec298dee348c commit 67f2a4791ca35a019dd645818c2c95f2b88c936e r326 Author: Loren Merritt Date: Mon Oct 10 01:29:17 2005 +0000 VfW: prevent duplicate free() in compress_end() git-svn-id: svn://svn.videolan.org/x264/trunk@326 df754926-b1dd-0310-bc7b-ec298dee348c commit 0bde6ae12b9eda914fa51da95bef8beae09ea8f0 r325 Author: Loren Merritt Date: Mon Oct 10 00:32:45 2005 +0000 cosmetics: remove declarations of nonexistent asm functions git-svn-id: svn://svn.videolan.org/x264/trunk@325 df754926-b1dd-0310-bc7b-ec298dee348c commit 015ac5865c81ee94125493aca28d0ccbc0f639b4 r324 Author: Loren Merritt Date: Sun Oct 9 21:55:53 2005 +0000 cosmetics (whitespace) in VfW git-svn-id: svn://svn.videolan.org/x264/trunk@324 df754926-b1dd-0310-bc7b-ec298dee348c commit 54d413b9ad22244599489a0c50e99fafa07b89a1 r323 Author: Loren Merritt Date: Sun Oct 9 21:37:56 2005 +0000 VfW: some reorganization patch by Francesco Corriga. git-svn-id: svn://svn.videolan.org/x264/trunk@323 df754926-b1dd-0310-bc7b-ec298dee348c commit a75462ead66beb222aae1efe1958848c26dc4be6 r322 Author: Loren Merritt Date: Sun Oct 9 06:10:03 2005 +0000 cosmetics: merge some duplicate tables git-svn-id: svn://svn.videolan.org/x264/trunk@322 df754926-b1dd-0310-bc7b-ec298dee348c commit 1c6ccbf543ac7725e46f94bdb24fa6784d315962 r321 Author: Loren Merritt Date: Sun Oct 9 03:32:56 2005 +0000 remove cabac byte-stuffing code, because it just wastes bits in lossless, and does nothing at all at sane bitrates. git-svn-id: svn://svn.videolan.org/x264/trunk@321 df754926-b1dd-0310-bc7b-ec298dee348c commit acee2d5168a39f301b7cda1d4effe943e321e1f8 r320 Author: Loren Merritt Date: Sun Oct 9 00:14:30 2005 +0000 don't allocate lowres planes if they won't be used (i.e. in the 2nd pass). git-svn-id: svn://svn.videolan.org/x264/trunk@320 df754926-b1dd-0310-bc7b-ec298dee348c commit 938c52d2a7285c5872eea2f5d165a1b26699b349 r319 Author: Loren Merritt Date: Sat Oct 8 21:17:44 2005 +0000 cosmetics: move some stuff from macroblock_encode to cache_save git-svn-id: svn://svn.videolan.org/x264/trunk@319 df754926-b1dd-0310-bc7b-ec298dee348c commit a0012bf38d366b1b97e571fe27c665139f3c631c r318 Author: Loren Merritt Date: Sat Oct 8 06:49:29 2005 +0000 new option: --mixed-refs Allows each 8x8 or 16x8 partition to independently select a reference frame, as opposed to only one ref per macroblock. patch mostly by Alex Wright (alexw0885 at hotmail dot com). git-svn-id: svn://svn.videolan.org/x264/trunk@318 df754926-b1dd-0310-bc7b-ec298dee348c commit 68592115c77b8fcd091b32f2d39d8e129a95bbef r317 Author: Loren Merritt Date: Sat Oct 8 04:45:51 2005 +0000 cosmetics in option parsing git-svn-id: svn://svn.videolan.org/x264/trunk@317 df754926-b1dd-0310-bc7b-ec298dee348c commit 4b925a1cfbdd6613449b70283cd6f80adbeb1f27 r316 Author: Loren Merritt Date: Sat Oct 8 03:52:10 2005 +0000 expose the rest of the VUI flags. patch by Christian Heine. git-svn-id: svn://svn.videolan.org/x264/trunk@316 df754926-b1dd-0310-bc7b-ec298dee348c commit aebad793a69d175b139da28aafff6dbfec81d7c1 r315 Author: Sam Hocevar Date: Tue Oct 4 12:08:33 2005 +0000 * common/amd64/mc-a.asm: use RIP-relative addressing in PIC mode. git-svn-id: svn://svn.videolan.org/x264/trunk@315 df754926-b1dd-0310-bc7b-ec298dee348c commit db80497dd2e8bb0cd02c45d73ca74294b0671b61 r314 Author: Loren Merritt Date: Tue Oct 4 07:12:21 2005 +0000 temporal predictors for 16x16 motion search. git-svn-id: svn://svn.videolan.org/x264/trunk@314 df754926-b1dd-0310-bc7b-ec298dee348c commit 7e165477fb69bc107e3fcfdac3e2cb53541870f6 r313 Author: Loren Merritt Date: Sun Oct 2 22:07:12 2005 +0000 slightly faster/cleaner block_residual_write_cabac git-svn-id: svn://svn.videolan.org/x264/trunk@313 df754926-b1dd-0310-bc7b-ec298dee348c commit 4c8ccfe6de4a44cd46bcaf1fc17ae90bfe34d958 r312 Author: Loren Merritt Date: Sun Oct 2 20:12:46 2005 +0000 cosmetics git-svn-id: svn://svn.videolan.org/x264/trunk@312 df754926-b1dd-0310-bc7b-ec298dee348c commit ce3a422466b4df055f5b67116483eee20676939c r311 Author: Loren Merritt Date: Sun Oct 2 05:50:35 2005 +0000 cli: fix a crash on piped input. git-svn-id: svn://svn.videolan.org/x264/trunk@311 df754926-b1dd-0310-bc7b-ec298dee348c commit cb88eb7bf7756e25123cdfffdbdc49abc169ef33 r310 Author: Loren Merritt Date: Sun Oct 2 05:01:39 2005 +0000 stats summary: separately report all 5 partition sizes, and add ref usages git-svn-id: svn://svn.videolan.org/x264/trunk@310 df754926-b1dd-0310-bc7b-ec298dee348c commit bab1d61dd306199747dd8f949bde2a49b20c6f70 r309 Author: Loren Merritt Date: Sun Oct 2 04:03:06 2005 +0000 disposable frames shouldn't get their own coded_frame_num. git-svn-id: svn://svn.videolan.org/x264/trunk@309 df754926-b1dd-0310-bc7b-ec298dee348c commit 31a36aa8621c7bd0264b87421e8d0a490d7c45f5 r308 Author: Loren Merritt Date: Sat Oct 1 19:33:26 2005 +0000 typo in ia32 x264_pixel_avg_weight_w8_mmxext git-svn-id: svn://svn.videolan.org/x264/trunk@308 df754926-b1dd-0310-bc7b-ec298dee348c commit 458e63cadb0c6295273fd85def3aca0098a309e3 r307 Author: Loren Merritt Date: Sat Oct 1 06:48:13 2005 +0000 mmx avg (already existed by not used for bipred) mmx biweighted avg (3x faster than C) git-svn-id: svn://svn.videolan.org/x264/trunk@307 df754926-b1dd-0310-bc7b-ec298dee348c commit 3112619429c0cf781817867f0d124c882740d66f r306 Author: Loren Merritt Date: Sat Oct 1 04:43:31 2005 +0000 cosmetics: move avg function ptrs from pixf to mc. git-svn-id: svn://svn.videolan.org/x264/trunk@306 df754926-b1dd-0310-bc7b-ec298dee348c commit 82d5e6faa6aa8ca8888481019513782ef9701240 r305 Author: Loren Merritt Date: Tue Sep 27 19:59:09 2005 +0000 with B-pyramid, forget old refs in POC order instead of coded order. (before, b_skip was unavailable with pyramid and ref=1) git-svn-id: svn://svn.videolan.org/x264/trunk@305 df754926-b1dd-0310-bc7b-ec298dee348c commit 4223e3874f7268d9ea36f32a2150c3a123881f4b r304 Author: Loren Merritt Date: Mon Sep 26 03:00:10 2005 +0000 typo in r296. patch by lurui. git-svn-id: svn://svn.videolan.org/x264/trunk@304 df754926-b1dd-0310-bc7b-ec298dee348c commit 2a3417b0fe4a806480e49a6dd13ab8d625b03466 r303 Author: Sam Hocevar Date: Sun Sep 25 22:12:56 2005 +0000 * common/amd64/*.asm: use RIP-related addressing in PIC mode. git-svn-id: svn://svn.videolan.org/x264/trunk@303 df754926-b1dd-0310-bc7b-ec298dee348c commit 77997bffd6fdb3727c31f787767aafa11bc62266 r302 Author: Sam Hocevar Date: Sun Sep 25 19:52:57 2005 +0000 * common/amd64/mc-a.asm: removed useless global variables git-svn-id: svn://svn.videolan.org/x264/trunk@302 df754926-b1dd-0310-bc7b-ec298dee348c commit b2e9af98bf5f44363f3877baf7bfa6cce4d64805 r301 Author: Sam Hocevar Date: Sun Sep 25 13:52:58 2005 +0000 * configure: support extra $(ASFLAGS) through --extra-asflags. git-svn-id: svn://svn.videolan.org/x264/trunk@301 df754926-b1dd-0310-bc7b-ec298dee348c commit 1b16298a215393dc741fabb0e7212c0b0ee53846 r300 Author: Loren Merritt Date: Sat Sep 24 19:41:50 2005 +0000 reorganized VfW UI. patch by Antony Boucher, graphic by Jarod. git-svn-id: svn://svn.videolan.org/x264/trunk@300 df754926-b1dd-0310-bc7b-ec298dee348c commit 35f641710900a39ea208860befc9cfe35043f7cd r299 Author: Loren Merritt Date: Sat Sep 24 18:54:49 2005 +0000 MP4 output: update to GPAC 0.4 API. patch mostly by Robert Swain. git-svn-id: svn://svn.videolan.org/x264/trunk@299 df754926-b1dd-0310-bc7b-ec298dee348c commit cfebeac1a475f4a2ee57e5dd3cd1ff0c560f38db r298 Author: Loren Merritt Date: Sat Sep 24 18:22:02 2005 +0000 faster mmx quant 15bit, and add 16bit version. total speedup: ~0.3% patch by Christian Heine. git-svn-id: svn://svn.videolan.org/x264/trunk@298 df754926-b1dd-0310-bc7b-ec298dee348c commit 49ac5e2f921ef940701e31ca7e6246e44480783b r297 Author: Loren Merritt Date: Sat Sep 24 17:04:21 2005 +0000 faster mmx satd. *x16: 20%, *x8: 10%, total: 2-4%. ia32 patch by Christian Heine, amd64 port by me. git-svn-id: svn://svn.videolan.org/x264/trunk@297 df754926-b1dd-0310-bc7b-ec298dee348c commit 76192dcb1cc7720a1e633ba6b0fbdb2fbacbe9bb r296 Author: Loren Merritt Date: Sat Sep 24 16:58:36 2005 +0000 allow i4x4 and i8x8 down-left prediction with emulated top-right samples. based on a patch by Johannes Reinhardt (Johannes dot Reinhardt at uni-konstanz dot de) git-svn-id: svn://svn.videolan.org/x264/trunk@296 df754926-b1dd-0310-bc7b-ec298dee348c commit 690a02b1c9132bfecc88068de757e6b0e5ef7b84 r295 Author: Steve Lhomme Date: Tue Sep 20 16:18:23 2005 +0000 fps patch by Haali git-svn-id: svn://svn.videolan.org/x264/trunk@295 df754926-b1dd-0310-bc7b-ec298dee348c commit 8a5de70e926c334bcf422d21e8995b7be6ecf496 r294 Author: Sam Hocevar Date: Tue Sep 20 15:50:41 2005 +0000 * configure: added support for ia64, mips/mipsel, m68k, arm, s390 and hppa platforms, as well as linux sparc. git-svn-id: svn://svn.videolan.org/x264/trunk@294 df754926-b1dd-0310-bc7b-ec298dee348c commit c4ffed4986fe4706c0c5c2b514ce95668f0b8393 r293 Author: Loren Merritt Date: Wed Sep 14 17:20:17 2005 +0000 MMX quantization functions, and optimization of the C versions. about 3x faster quant_8x8, quant_4x4, quant_4x4_dc, and quant_2x2_dc. total speedup: 4-10%. patch by Alexander Izvorski and Christian Heine. git-svn-id: svn://svn.videolan.org/x264/trunk@293 df754926-b1dd-0310-bc7b-ec298dee348c commit 16f423a00ee91f692d441a31fa99394543995582 r292 Author: Loren Merritt Date: Sat Sep 10 11:23:09 2005 +0000 SSE2 pixel comparison functions P4: SAD 16x*, SSD 16x*, SATD 16x*: 30% faster, SATD 8x8: 15% faster, total: 2-4% faster K8: SSD 16x*: 6% faster, total: not much patch by Alexander Izvorski. git-svn-id: svn://svn.videolan.org/x264/trunk@292 df754926-b1dd-0310-bc7b-ec298dee348c commit 6db6362c9d558d0acea9be1975344d217f453ab9 r291 Author: Loren Merritt Date: Tue Aug 30 17:11:35 2005 +0000 10l in rev290: duplicate declaration of x264_pixel_sub_8x8_mmx. git-svn-id: svn://svn.videolan.org/x264/trunk@291 df754926-b1dd-0310-bc7b-ec298dee348c commit 2d05702f88d1058b2ecd3945cd01269eb86829bb r290 Author: Loren Merritt Date: Mon Aug 29 20:37:31 2005 +0000 mmx 8x8 dct. On a K8: sub16x16_dct8 3806->1461, add16x16_idct8 4852->1297 cycles. total speedup: 1-3%. patch by Christian Heine (sennindemokrit at gmx dot net) git-svn-id: svn://svn.videolan.org/x264/trunk@290 df754926-b1dd-0310-bc7b-ec298dee348c commit 2e5b0b93384f8d48e32b26beb6badb8a3236c29b r289 Author: Eric Petit Date: Mon Aug 29 13:20:45 2005 +0000 VC++ fix (thx fenrir) git-svn-id: svn://svn.videolan.org/x264/trunk@289 df754926-b1dd-0310-bc7b-ec298dee348c commit 2a6e7a685391f4ae465c79111583c91fb26cb5a8 r288 Author: Eric Petit Date: Mon Aug 29 11:20:23 2005 +0000 x264.h: issue an explicit warning when neither stdint.h nor inttypes.h has be included before x264.h git-svn-id: svn://svn.videolan.org/x264/trunk@288 df754926-b1dd-0310-bc7b-ec298dee348c commit 0403fed87a9cea867afa55d45500f6396c326659 r287 Author: Loren Merritt Date: Wed Aug 17 15:18:42 2005 +0000 VfW: SAR wording. patch by Sharktooth. git-svn-id: svn://svn.videolan.org/x264/trunk@287 df754926-b1dd-0310-bc7b-ec298dee348c commit 48af1d03ed42e14b51f5e9c6986bd910aaab5b7a r286 Author: Loren Merritt Date: Tue Aug 16 15:09:41 2005 +0000 cli: workaround to allow "--ratetol inf" on win32. git-svn-id: svn://svn.videolan.org/x264/trunk@286 df754926-b1dd-0310-bc7b-ec298dee348c commit 796da8ed7e5ab52eb64d232c89e7e38bfa77215c r285 Author: Loren Merritt Date: Tue Aug 9 18:48:57 2005 +0000 fix spatial direct mv prediction with B-pyramid. copied from libavcodec. git-svn-id: svn://svn.videolan.org/x264/trunk@285 df754926-b1dd-0310-bc7b-ec298dee348c commit 1459ac0dbca3f1f31557d9d8bb8911cb980aad6b r284 Author: Laurent Aimar Date: Tue Aug 9 07:20:26 2005 +0000 * all: Patch by Mike Matsnev : "The following things were fixed: * AR calculation was broken on previous import * Wrong conditional in write_nalu_mkv() was fixed * Error checking was added in all places" git-svn-id: svn://svn.videolan.org/x264/trunk@284 df754926-b1dd-0310-bc7b-ec298dee348c commit 47673d940a290207345bb13f08c371aa435e92a2 r283 Author: Laurent Aimar Date: Tue Aug 9 07:17:26 2005 +0000 xyuv: bug fixes + autodetect of video size. git-svn-id: svn://svn.videolan.org/x264/trunk@283 df754926-b1dd-0310-bc7b-ec298dee348c commit d9218cb35688033a78f936e963a4ca3572cfdb29 r282 Author: Eric Petit Date: Sun Aug 7 17:17:05 2005 +0000 Run ranlib after make install (OS X needs that) git-svn-id: svn://svn.videolan.org/x264/trunk@282 df754926-b1dd-0310-bc7b-ec298dee348c commit 205910672b5686174b7d6f0a1960d53cd4bd9f9b r281 Author: Loren Merritt Date: Tue Jul 26 16:07:17 2005 +0000 update i_mb_b16x8_cost_table[] for I8x8 mb type (r278 only fixed a symptom). git-svn-id: svn://svn.videolan.org/x264/trunk@281 df754926-b1dd-0310-bc7b-ec298dee348c commit d945b153baa4a81cb40a92e4c09b0e2f16081408 r280 Author: Laurent Aimar Date: Fri Jul 22 15:51:10 2005 +0000 * all: Added matroska writing. Patch by Mike Matsnev. git-svn-id: svn://svn.videolan.org/x264/trunk@280 df754926-b1dd-0310-bc7b-ec298dee348c commit 5552052c55d550b48cb43d33cb3655ea53e4a273 r279 Author: Laurent Aimar Date: Fri Jul 22 15:48:18 2005 +0000 * pixel.*: "I have completed additonal SAD implementations (8x16, 16x8 and 16x16) using Sparc VIS. Overall speedup is roughly 90% from straight C. I'm doing development and testing on a Sun Fire V220, with 2 * 1.5ghz UltraSPARC-III CPUs. I've hand-unrolled each of the loops. Sun's assembler does not appear to have macro functionality built-in and I didn't want to establish an external dependancy on m4. Please let me know if you run into any trouble with the patch." Patch by Phil Jensen. git-svn-id: svn://svn.videolan.org/x264/trunk@279 df754926-b1dd-0310-bc7b-ec298dee348c commit d2715116f9ef8d96d78e81010eda7fdee83cc212 r278 Author: Laurent Aimar Date: Fri Jul 22 15:43:16 2005 +0000 analyse: "It correct the size of array i_mb_b16x8_cost_table from 16 to 17,otherwise,it can result a mismatch of b16x8 mb type cost and can result memory read overflow on it." Patch by lurui. git-svn-id: svn://svn.videolan.org/x264/trunk@278 df754926-b1dd-0310-bc7b-ec298dee348c commit f52a280836003583a11b93883e68ac23881355ac r277 Author: Laurent Aimar Date: Wed Jul 20 15:39:44 2005 +0000 * x264 compilation on NetBSD. Patch by Mike Matsnev. git-svn-id: svn://svn.videolan.org/x264/trunk@277 df754926-b1dd-0310-bc7b-ec298dee348c commit 300e93ef08f5b389da3942474da8ec6fb9c62fda r276 Author: Laurent Aimar Date: Wed Jul 20 15:27:18 2005 +0000 * all: "8x8 SAD written in Sparc Assembly using VIS." Patch by Phil Jensen. git-svn-id: svn://svn.videolan.org/x264/trunk@276 df754926-b1dd-0310-bc7b-ec298dee348c commit 1a0920f5c5c482d18dcbc775a542cb1529d019d0 r275 Author: Loren Merritt Date: Fri Jul 15 16:21:58 2005 +0000 10l: rd score for sub-8x8 partitions used wrong mvs. git-svn-id: svn://svn.videolan.org/x264/trunk@275 df754926-b1dd-0310-bc7b-ec298dee348c commit 0f34713af75421dcf3db067511d26d08ebe36134 r274 Author: Loren Merritt Date: Wed Jul 13 15:52:59 2005 +0000 faster SAD_INC_2x16P for amd64. patch by Josef Zlomek. git-svn-id: svn://svn.videolan.org/x264/trunk@274 df754926-b1dd-0310-bc7b-ec298dee348c commit 86a01ef552f00fcc3225776bd41d7ebfb6507d0b r273 Author: Eric Petit Date: Sun Jul 10 12:51:21 2005 +0000 Fixed win32 handle leakage (thanks Trax) Default enabled support of threads on BeOS git-svn-id: svn://svn.videolan.org/x264/trunk@273 df754926-b1dd-0310-bc7b-ec298dee348c commit da60272bf0c4b65128d673daef4d4d7c09c13ae3 r272 Author: Laurent Aimar Date: Thu Jul 7 07:48:36 2005 +0000 * Add support for UltraSparc (uname -m: sun4u) with Solaris. Patch by Tuukka Toivonen. git-svn-id: svn://svn.videolan.org/x264/trunk@272 df754926-b1dd-0310-bc7b-ec298dee348c commit 95c407157830f714c4914ceaeb850bebd198d14b r271 Author: Laurent Aimar Date: Thu Jul 7 07:37:54 2005 +0000 * Faster SAD_INC_2x16P. Patch by Alexander Izvorski. git-svn-id: svn://svn.videolan.org/x264/trunk@271 df754926-b1dd-0310-bc7b-ec298dee348c commit 90793358d78f5ad79aef3cc09ea80d5ea81bb53b r270 Author: Loren Merritt Date: Tue Jun 21 14:49:27 2005 +0000 example quant matrix file git-svn-id: svn://svn.videolan.org/x264/trunk@270 df754926-b1dd-0310-bc7b-ec298dee348c commit 7b1b45e8a6fc3e36447b7626617978dd7c9d5958 r269 Author: Loren Merritt Date: Tue Jun 21 08:16:01 2005 +0000 --cqmfile reads quant matrices in a JM-compatible format. git-svn-id: svn://svn.videolan.org/x264/trunk@269 df754926-b1dd-0310-bc7b-ec298dee348c commit 7a77a1e7295b99a418c4fad2a5ab91f0dc896115 r268 Author: Loren Merritt Date: Tue Jun 21 04:45:49 2005 +0000 adjust coded buffer size based on input resolution and QP (old default wasn't enough for HD lossless) git-svn-id: svn://svn.videolan.org/x264/trunk@268 df754926-b1dd-0310-bc7b-ec298dee348c commit ca8ead2eb1ac51d9784af6fe7a6a3df1fbf10ada r267 Author: Loren Merritt Date: Mon Jun 20 00:36:05 2005 +0000 update avc2avi for high profile git-svn-id: svn://svn.videolan.org/x264/trunk@267 df754926-b1dd-0310-bc7b-ec298dee348c commit 1ab01bbc01bc482e9891fe843e1ddd14b7625540 r266 Author: Loren Merritt Date: Mon Jun 20 00:08:28 2005 +0000 custom quant matrices git-svn-id: svn://svn.videolan.org/x264/trunk@266 df754926-b1dd-0310-bc7b-ec298dee348c commit 2c4b31daae223b688feb4a6fdef36fce3b1bc6f0 r265 Author: Loren Merritt Date: Fri Jun 17 08:32:56 2005 +0000 VfW: workaround a windows unicode bug. patch by Leowai. git-svn-id: svn://svn.videolan.org/x264/trunk@265 df754926-b1dd-0310-bc7b-ec298dee348c commit 396133936510d57bc2054dd1c1d3d92fa0eb5495 r264 Author: Loren Merritt Date: Fri Jun 17 08:21:48 2005 +0000 lossless mode enabled at qp=0 git-svn-id: svn://svn.videolan.org/x264/trunk@264 df754926-b1dd-0310-bc7b-ec298dee348c commit 2f9a70c0a5b257eb1413601df191556547f307d5 r263 Author: Loren Merritt Date: Tue Jun 14 19:49:16 2005 +0000 VfW: enable RDO. some option dependencies. patch by Francesco Corriga. git-svn-id: svn://svn.videolan.org/x264/trunk@263 df754926-b1dd-0310-bc7b-ec298dee348c commit 15ecd54fc67e75ccd380a7e36720f1a0c2514f94 r262 Author: Loren Merritt Date: Tue Jun 14 19:19:52 2005 +0000 rate-distortion optimized MB types in I- and P-frames (--subme 6) git-svn-id: svn://svn.videolan.org/x264/trunk@262 df754926-b1dd-0310-bc7b-ec298dee348c commit 41c37d9e05416a71c2499f788ea268032da0a6c4 r261 Author: Loren Merritt Date: Sun Jun 12 23:17:12 2005 +0000 more VfW options. patch mostly by celtic_druid. git-svn-id: svn://svn.videolan.org/x264/trunk@261 df754926-b1dd-0310-bc7b-ec298dee348c commit a296ffcc5aa892d5281a9e6b2b4e863dd94e0b69 r260 Author: Loren Merritt Date: Sat Jun 11 21:17:30 2005 +0000 VFW: 8x8 transform, SAR. patch by celtic_druid. git-svn-id: svn://svn.videolan.org/x264/trunk@260 df754926-b1dd-0310-bc7b-ec298dee348c commit 7832f017704235b31c7a33b54a06ab196c1dcc4a r259 Author: Loren Merritt Date: Sat Jun 11 20:32:22 2005 +0000 threads option in vfw. patch by celtic_druid. git-svn-id: svn://svn.videolan.org/x264/trunk@259 df754926-b1dd-0310-bc7b-ec298dee348c commit 8c6e66479e66da8a9a79eacfec9fc2ff39a24464 r258 Author: Loren Merritt Date: Sat Jun 11 19:27:02 2005 +0000 win32 threads enabled by default git-svn-id: svn://svn.videolan.org/x264/trunk@258 df754926-b1dd-0310-bc7b-ec298dee348c commit 96813e36dc54e1e9866dad24a8c0cc7a748f0d4a r257 Author: Loren Merritt Date: Sat Jun 11 19:15:35 2005 +0000 vfw installer nsis script. patch by Francesco Corriga. git-svn-id: svn://svn.videolan.org/x264/trunk@257 df754926-b1dd-0310-bc7b-ec298dee348c commit 8025723ee4a1c99e3e833ce963d05e5eb8c74606 r256 Author: Loren Merritt Date: Sat Jun 11 05:52:38 2005 +0000 print 8x8 transform usage % in stats summary. git-svn-id: svn://svn.videolan.org/x264/trunk@256 df754926-b1dd-0310-bc7b-ec298dee348c commit 26aa962acdc90204f7c915be91ead00ebcc5f30d r255 Author: Loren Merritt Date: Wed Jun 8 17:16:20 2005 +0000 revert 216, another try at max_dec_frame_buffering. disable adaptive cabac_idc by default; 0 is always best anyway. git-svn-id: svn://svn.videolan.org/x264/trunk@255 df754926-b1dd-0310-bc7b-ec298dee348c commit c4f5de5230b584189c57db18f68d73f19d653d00 r254 Author: Loren Merritt Date: Wed Jun 8 00:38:03 2005 +0000 typo in cabac tables git-svn-id: svn://svn.videolan.org/x264/trunk@254 df754926-b1dd-0310-bc7b-ec298dee348c commit 2b5a6b2bd914a9d3ff9c304062c93f28c58ff532 r253 Author: Loren Merritt Date: Sun Jun 5 20:39:58 2005 +0000 cosmetics git-svn-id: svn://svn.videolan.org/x264/trunk@253 df754926-b1dd-0310-bc7b-ec298dee348c commit 916136c96d49961ff944b6ef2feeedfc7a90af98 r252 Author: Loren Merritt Date: Sun Jun 5 18:39:21 2005 +0000 fix i8x8 decision with chroma_me git-svn-id: svn://svn.videolan.org/x264/trunk@252 df754926-b1dd-0310-bc7b-ec298dee348c commit 8614594835ce25879c0d01ca88625ea444d577f2 r251 Author: Loren Merritt Date: Sun Jun 5 11:07:28 2005 +0000 SATD-based decision for 8x8 transform in inter-MBs. Enable 8x8 intra. CLI options: --8x8dct, --analyse i8x8. git-svn-id: svn://svn.videolan.org/x264/trunk@251 df754926-b1dd-0310-bc7b-ec298dee348c commit 6bf1398b824c013184548277eb8f2dbccd4d6fc5 r250 Author: Eric Petit Date: Sun Jun 5 10:17:10 2005 +0000 Use win32 native threads (you still have to --enable-pthread to use them, though) git-svn-id: svn://svn.videolan.org/x264/trunk@250 df754926-b1dd-0310-bc7b-ec298dee348c commit 46a487299946e8a2130c3629bfaac1252ff068c4 r249 Author: Loren Merritt Date: Sun Jun 5 01:09:38 2005 +0000 slightly faster 8x8 dct git-svn-id: svn://svn.videolan.org/x264/trunk@249 df754926-b1dd-0310-bc7b-ec298dee348c commit 398a6bf064d7ce46b0cb0edc66323473009d5e06 r248 Author: Loren Merritt Date: Sat Jun 4 06:23:56 2005 +0000 remove unused tables from SPS/PPS. reduces overhead when syncing threads. git-svn-id: svn://svn.videolan.org/x264/trunk@248 df754926-b1dd-0310-bc7b-ec298dee348c commit 1729616639eada4977171af3611f3040113f1f01 r247 Author: Loren Merritt Date: Fri Jun 3 09:58:25 2005 +0000 10l (debug stuff in 246) git-svn-id: svn://svn.videolan.org/x264/trunk@247 df754926-b1dd-0310-bc7b-ec298dee348c commit 1ab45c8f7411f7b4453ddff66919910e823ed33b r246 Author: Loren Merritt Date: Fri Jun 3 05:33:15 2005 +0000 8x8 transform and 8x8 intra prediction. (backend only, not yet used by mb analysis) git-svn-id: svn://svn.videolan.org/x264/trunk@246 df754926-b1dd-0310-bc7b-ec298dee348c commit e46db68534f54a52c9df7595d8bd8fd4c8b21b53 r245 Author: Loren Merritt Date: Wed Jun 1 06:49:00 2005 +0000 cosmetics git-svn-id: svn://svn.videolan.org/x264/trunk@245 df754926-b1dd-0310-bc7b-ec298dee348c commit 7f988086c20dc28cafdec793af7900fcb477a25a r244 Author: Loren Merritt Date: Wed Jun 1 05:31:39 2005 +0000 fix a bug with cabac + B-frames + mref + slices. call visualization per frame instead of per slice. git-svn-id: svn://svn.videolan.org/x264/trunk@244 df754926-b1dd-0310-bc7b-ec298dee348c commit b1f4d5b12789e6d608288b71ebefa59acf4fba86 r243 Author: Måns Rullgård Date: Mon May 30 19:47:02 2005 +0000 accept the standard --prefix etc. options git-svn-id: svn://svn.videolan.org/x264/trunk@243 df754926-b1dd-0310-bc7b-ec298dee348c commit c77e709785fab74313a6c443c4f2f00fb9a86b70 r242 Author: Loren Merritt Date: Mon May 30 01:52:00 2005 +0000 tweak cflags git-svn-id: svn://svn.videolan.org/x264/trunk@242 df754926-b1dd-0310-bc7b-ec298dee348c commit e85db920bb31a699b38c057f51a3eb68bb1b719d r241 Author: Eric Petit Date: Sun May 29 20:27:09 2005 +0000 Fixed multithreading on BeOS (pthread emulation required) git-svn-id: svn://svn.videolan.org/x264/trunk@241 df754926-b1dd-0310-bc7b-ec298dee348c commit 10851d0e11e90e814c37695aa244f113b21415f2 r240 Author: Loren Merritt Date: Sun May 29 18:28:49 2005 +0000 multithreading (via slices) git-svn-id: svn://svn.videolan.org/x264/trunk@240 df754926-b1dd-0310-bc7b-ec298dee348c commit 36f6321d4dd1b87331bec691ba1bdd3c6ec19b22 r239 Author: Loren Merritt Date: Tue May 24 05:10:38 2005 +0000 move zones parsing to ratecontrol.c; allows passing in zones as a string. git-svn-id: svn://svn.videolan.org/x264/trunk@239 df754926-b1dd-0310-bc7b-ec298dee348c commit 470e1b284f31e294119c7bc457a762488b34dd60 r238 Author: Loren Merritt Date: Tue May 24 04:16:54 2005 +0000 UMHex motion seach (but no early termination yet) git-svn-id: svn://svn.videolan.org/x264/trunk@238 df754926-b1dd-0310-bc7b-ec298dee348c commit c8b1a477d2d145698b065d7c20cd10be2f75e94d r237 Author: Loren Merritt Date: Tue May 24 01:34:57 2005 +0000 Zoned ratecontrol. git-svn-id: svn://svn.videolan.org/x264/trunk@237 df754926-b1dd-0310-bc7b-ec298dee348c commit 0072b802fb9205be3606f45ec9cc6f5111c3ec3e r236 Author: Loren Merritt Date: Mon May 23 08:57:02 2005 +0000 fix rounding of intra dequant when qp<=3 git-svn-id: svn://svn.videolan.org/x264/trunk@236 df754926-b1dd-0310-bc7b-ec298dee348c commit 7c02f091422b68fa01d48645eb2f04bbf409fb79 r235 Author: Loren Merritt Date: Sat May 21 20:49:06 2005 +0000 API: x264_encoder_reconfig(). (not yet used by any frontend) git-svn-id: svn://svn.videolan.org/x264/trunk@235 df754926-b1dd-0310-bc7b-ec298dee348c commit 7fef6efa884a0fdad75181564a916ac94f81e3b3 r234 Author: Eric Petit Date: Thu May 19 15:42:48 2005 +0000 Makefile: in target "install", first create the directories if they don't already exist git-svn-id: svn://svn.videolan.org/x264/trunk@234 df754926-b1dd-0310-bc7b-ec298dee348c commit 809c516abe16bf051beb9d053d673a26906aa43c r233 Author: Eric Petit Date: Sun May 15 20:19:22 2005 +0000 Optimized subXxX_dct git-svn-id: svn://svn.videolan.org/x264/trunk@233 df754926-b1dd-0310-bc7b-ec298dee348c commit f025abc9c0006c0a67d112afc6daff78c4fa7aad r232 Author: Eric Petit Date: Sat May 14 15:49:36 2005 +0000 s/==/=/ git-svn-id: svn://svn.videolan.org/x264/trunk@232 df754926-b1dd-0310-bc7b-ec298dee348c commit 04ded39b9ba4e8f0b983efcc056292f25d544b9f r231 Author: Eric Petit Date: Sat May 14 07:08:08 2005 +0000 ppc/: compile fixes for Linux/PPC (courtesy of Rasmus Rohde) and for gcc < 4 git-svn-id: svn://svn.videolan.org/x264/trunk@231 df754926-b1dd-0310-bc7b-ec298dee348c commit 94829ef6e277315e635df05d669848b5216f00d3 r230 Author: Loren Merritt Date: Fri May 13 16:54:03 2005 +0000 visualize reference pic numbers. misc cleanups in visualization. patch by Tuukka Toivonen. git-svn-id: svn://svn.videolan.org/x264/trunk@230 df754926-b1dd-0310-bc7b-ec298dee348c commit 4d5c7a033fbe7e7b168381a9fa15e8c2eb1a6a2f r229 Author: Eric Petit Date: Fri May 13 15:30:18 2005 +0000 ppc/*: more tuning on satd (+5%) git-svn-id: svn://svn.videolan.org/x264/trunk@229 df754926-b1dd-0310-bc7b-ec298dee348c commit e0bd8066395df74d5f2edc851c048512a0fed4ba r228 Author: Loren Merritt Date: Fri May 13 08:03:42 2005 +0000 CLI option: --seek git-svn-id: svn://svn.videolan.org/x264/trunk@228 df754926-b1dd-0310-bc7b-ec298dee348c commit 036494a60f7850c1613c5084fe9a11c7821cb5a7 r227 Author: Loren Merritt Date: Thu May 12 23:03:49 2005 +0000 CLI option: --visualize Displays the encoded video along with MB types and motion vectors. patch by Tuukka Toivonen. git-svn-id: svn://svn.videolan.org/x264/trunk@227 df754926-b1dd-0310-bc7b-ec298dee348c commit 31c91bd71f1cc7fd0988892657a3574dc534f628 r226 Author: Loren Merritt Date: Thu May 12 19:48:10 2005 +0000 fix an uninitialized value in slicetype_analyse git-svn-id: svn://svn.videolan.org/x264/trunk@226 df754926-b1dd-0310-bc7b-ec298dee348c commit 92ea0c5c30a74408e931227765009ef8aaee1542 r225 Author: Loren Merritt Date: Wed May 11 17:58:00 2005 +0000 port recent MC asm changes to amd64. patch by Josef Zlomek. git-svn-id: svn://svn.videolan.org/x264/trunk@225 df754926-b1dd-0310-bc7b-ec298dee348c commit d926e41d04312639d762d79af3867d61ce340591 r224 Author: Eric Petit Date: Wed May 11 16:22:18 2005 +0000 ppc/*: + Removed unused code + Optimized mc chroma 4xH and satd 8x4 and 4x8 + Won a bunch of cycles by not trusting gcc about inlining and unrolling properly (about 17% faster globally) git-svn-id: svn://svn.videolan.org/x264/trunk@224 df754926-b1dd-0310-bc7b-ec298dee348c commit aecc6ab057616f32eb0643b36db2d5b04d7a07ea r223 Author: Loren Merritt Date: Wed May 11 15:57:43 2005 +0000 New ratecontrol options: 1pass ABR. VBV constraint for ABR and 2pass. There is no longer a dedicated CBR mode: use ABR+VBV. VfW now uses ABR instead of CQP for 1st of multipass. git-svn-id: svn://svn.videolan.org/x264/trunk@223 df754926-b1dd-0310-bc7b-ec298dee348c commit 540fba7a1404909074eb08e76b98d7f9d36fd5e9 r222 Author: Loren Merritt Date: Wed May 11 00:15:34 2005 +0000 use a predicted mv as starting point for subpel refinement. git-svn-id: svn://svn.videolan.org/x264/trunk@222 df754926-b1dd-0310-bc7b-ec298dee348c commit dcb0aebebeb197c75fc5f0f49185f6afb6fd90ec r221 Author: Loren Merritt Date: Tue May 10 08:21:36 2005 +0000 slight speedup in halfpel interpolation. patch by Mathieu Monnier. git-svn-id: svn://svn.videolan.org/x264/trunk@221 df754926-b1dd-0310-bc7b-ec298dee348c commit 22a567bbe57fec9cf4beacca7517cc6d9139e091 r220 Author: Loren Merritt Date: Fri May 6 19:38:40 2005 +0000 Cleaner allocation of tmp space in halfpel interpolation; fixes some valgrind/nasm warnings. patch by Mathieu Monnier. git-svn-id: svn://svn.videolan.org/x264/trunk@220 df754926-b1dd-0310-bc7b-ec298dee348c commit ca4a34dfe0e6d93ce7598dd18c3c6af8c611d7e5 r219 Author: Loren Merritt Date: Tue May 3 08:25:31 2005 +0000 "2pass failed to converge" is no longer considered fatal. git-svn-id: svn://svn.videolan.org/x264/trunk@219 df754926-b1dd-0310-bc7b-ec298dee348c commit ab2cdf4b804f9e97a112fa4be96c1306522746e4 r218 Author: Loren Merritt Date: Sat Apr 30 01:20:50 2005 +0000 Updated MSVC project files. thanks to Bonzi. git-svn-id: svn://svn.videolan.org/x264/trunk@218 df754926-b1dd-0310-bc7b-ec298dee348c commit e0a640413f484d1db034a9ecbd0fa472204f273a r217 Author: Loren Merritt Date: Mon Apr 25 18:39:32 2005 +0000 cosmetics. silence some gcc warnings. amd64 doesn't need a separate copy of the c/h files, only the asm. git-svn-id: svn://svn.videolan.org/x264/trunk@217 df754926-b1dd-0310-bc7b-ec298dee348c commit d2ad6a20941a4f25b69c88d136e7450d10b035be r216 Author: Loren Merritt Date: Fri Apr 22 04:05:35 2005 +0000 10l (214 wrote wrong DPB size in SPS -> B-pyramid broke) git-svn-id: svn://svn.videolan.org/x264/trunk@216 df754926-b1dd-0310-bc7b-ec298dee348c commit 7229a11c2fe117e0511cd76fa264baf25be92a5f r215 Author: Loren Merritt Date: Thu Apr 21 09:20:43 2005 +0000 CLI (mp4): return to 'capture' output mode, remove useless SetCtsPackMode() (fixed in gpac). Note: requires gpac cvs-20050419 or later. patch by bobo. git-svn-id: svn://svn.videolan.org/x264/trunk@215 df754926-b1dd-0310-bc7b-ec298dee348c commit 9b44391701779bfb0d291592d1d81c70bcf6c116 r214 Author: Loren Merritt Date: Tue Apr 19 23:09:29 2005 +0000 combined L0 & L1 reference lists are limited to a total of 16 pics. git-svn-id: svn://svn.videolan.org/x264/trunk@214 df754926-b1dd-0310-bc7b-ec298dee348c commit 41f9b8134c332599555bb44c3d0b8e94af44ebf9 r213 Author: Loren Merritt Date: Tue Apr 19 18:44:42 2005 +0000 amd64 asm patch, part2. by Josef Zlomek ( josef dot zlomek at xeris dot cz ) git-svn-id: svn://svn.videolan.org/x264/trunk@213 df754926-b1dd-0310-bc7b-ec298dee348c commit 413d8fa90917044e0ffaffb7009ccbc8059c61b0 r212 Author: Loren Merritt Date: Tue Apr 19 18:35:45 2005 +0000 amd64 asm patch, part1. git-svn-id: svn://svn.videolan.org/x264/trunk@212 df754926-b1dd-0310-bc7b-ec298dee348c commit 7d35ba6bf080610d8f144f4270e961c69ba14f1c r211 Author: Loren Merritt Date: Tue Apr 19 08:45:36 2005 +0000 Allow manual selection of fullpel ME method. New method: Exhaustive search. based on a patch by Tuukka Toivonen. git-svn-id: svn://svn.videolan.org/x264/trunk@211 df754926-b1dd-0310-bc7b-ec298dee348c commit 0c641421898f5c3087d52abcfd35ab617d101010 r210 Author: Loren Merritt Date: Tue Apr 19 01:42:12 2005 +0000 misc makefile changes. propogate --extra-cflags to vfw. 'make clean' removes x264.exe and vfw. tweak dependencies. git-svn-id: svn://svn.videolan.org/x264/trunk@210 df754926-b1dd-0310-bc7b-ec298dee348c commit 1519835f0fa218993ed031a2247ec88eb5906dd7 r209 Author: Loren Merritt Date: Mon Apr 18 02:00:58 2005 +0000 10l (CLI: fflush after progress update) git-svn-id: svn://svn.videolan.org/x264/trunk@209 df754926-b1dd-0310-bc7b-ec298dee348c commit da4c0384503bd7b2fa7752ef2045e5060e5df0cd r208 Author: Loren Merritt Date: Sun Apr 17 18:43:17 2005 +0000 CLI: progress indicator git-svn-id: svn://svn.videolan.org/x264/trunk@208 df754926-b1dd-0310-bc7b-ec298dee348c commit a61378bea90edd13a0e9b907917f7645e9266750 r207 Author: Loren Merritt Date: Sat Apr 16 20:21:06 2005 +0000 VfW: build from main makefile git-svn-id: svn://svn.videolan.org/x264/trunk@207 df754926-b1dd-0310-bc7b-ec298dee348c commit c6f3d17ffa67ad27f126bf579a08a443023ad0d3 r206 Author: Eric Petit Date: Fri Apr 15 17:26:09 2005 +0000 [mp4] ftyp & moov boxes at the begining of the file, (thanks to jeanlf for comments) patch by bobololo git-svn-id: svn://svn.videolan.org/x264/trunk@206 df754926-b1dd-0310-bc7b-ec298dee348c commit 74eecd32358de0799a1b9bad041ebb6550002769 r205 Author: Loren Merritt Date: Thu Apr 14 23:04:48 2005 +0000 CLI: --fps had side-effects. fixed. git-svn-id: svn://svn.videolan.org/x264/trunk@205 df754926-b1dd-0310-bc7b-ec298dee348c commit 78ca42c56ec53e153fef1b2a1a612191c840d797 r204 Author: Loren Merritt Date: Thu Apr 14 21:59:00 2005 +0000 CLI: cosmetics git-svn-id: svn://svn.videolan.org/x264/trunk@204 df754926-b1dd-0310-bc7b-ec298dee348c commit e06dfd4ac1cd0c80525f2dfbacbce28c543770fc r203 Author: Loren Merritt Date: Thu Apr 14 19:45:08 2005 +0000 Makefile: strip x264cli. tweak stats summary. git-svn-id: svn://svn.videolan.org/x264/trunk@203 df754926-b1dd-0310-bc7b-ec298dee348c commit 29facf8bf218a7c7c47ca48c8b7abb6672d6544e r202 Author: Laurent Aimar Date: Wed Apr 13 14:25:32 2005 +0000 * x264.c: Fix ctts box creation. Patch by bobololo from Ateme. git-svn-id: svn://svn.videolan.org/x264/trunk@202 df754926-b1dd-0310-bc7b-ec298dee348c commit 1014aa4e4fa0097e98754afbcf68245a14480710 r201 Author: Eric Petit Date: Wed Apr 13 03:43:07 2005 +0000 common/ppc: more cleaning, optimized a bit git-svn-id: svn://svn.videolan.org/x264/trunk@201 df754926-b1dd-0310-bc7b-ec298dee348c commit 77404162c8588abc9b720b88e20fac34dfe31139 r200 Author: Loren Merritt Date: Tue Apr 12 20:38:40 2005 +0000 CLI: require output file (don't default to stdout). warn if trying to use mp4 or avis when not supported. misc cleanup. git-svn-id: svn://svn.videolan.org/x264/trunk@200 df754926-b1dd-0310-bc7b-ec298dee348c commit fe905276b25c8aa202379d0b5c0115d7b5b631c8 r199 Author: Eric Petit Date: Tue Apr 12 18:45:24 2005 +0000 configure: use -falign-loops=16 on OS X common/ppc/: added AltiVecized mc_chroma + cleaning checkasm.c: really fixed MC tests git-svn-id: svn://svn.videolan.org/x264/trunk@199 df754926-b1dd-0310-bc7b-ec298dee348c commit a1b9531707b835e6934cadfb78249149f6351d7e r198 Author: Loren Merritt Date: Tue Apr 12 17:33:10 2005 +0000 Configure tweaks. Allow avis-input in mingw. Turn off debug by default. git-svn-id: svn://svn.videolan.org/x264/trunk@198 df754926-b1dd-0310-bc7b-ec298dee348c commit 35d85ca65d77f4013cfc37b2dd76b9ef87db144d r197 Author: Eric Petit Date: Tue Apr 12 16:34:48 2005 +0000 checkasm.c: fixed MC tests git-svn-id: svn://svn.videolan.org/x264/trunk@197 df754926-b1dd-0310-bc7b-ec298dee348c commit c0abfd39627fcb3e2f6c9aed7ebbed7dfda9230e r196 Author: Loren Merritt Date: Tue Apr 12 03:34:25 2005 +0000 CLI: MP4 muxing. patch by bobo from Ateme. git-svn-id: svn://svn.videolan.org/x264/trunk@196 df754926-b1dd-0310-bc7b-ec298dee348c commit e1b747ff05b28ee786425d48be53376c620a1cdc r195 Author: Eric Petit Date: Mon Apr 11 21:21:05 2005 +0000 Cygwin fixes git-svn-id: svn://svn.videolan.org/x264/trunk@195 df754926-b1dd-0310-bc7b-ec298dee348c commit b7c3b444753d5ddce3b87249c96a207c85301075 r194 Author: Eric Petit Date: Mon Apr 11 20:52:31 2005 +0000 configure: ooops, restored -g ratecontrol.c: OS X has exp2f in -lmx checkasm: quick compile fix git-svn-id: svn://svn.videolan.org/x264/trunk@194 df754926-b1dd-0310-bc7b-ec298dee348c commit ecbf942b1e46e1a4df0e8fd87db538342d968059 r193 Author: Måns Rullgård Date: Mon Apr 11 20:00:49 2005 +0000 add x86_64 to configure git-svn-id: svn://svn.videolan.org/x264/trunk@193 df754926-b1dd-0310-bc7b-ec298dee348c commit 7d9ac7c215bc0b77c538d100c92498e847e1cfa8 r192 Author: Eric Petit Date: Mon Apr 11 19:41:28 2005 +0000 set svn:ignore git-svn-id: svn://svn.videolan.org/x264/trunk@192 df754926-b1dd-0310-bc7b-ec298dee348c commit 6490f4398d9e28e65d7517849e729e14eede8c5b r191 Author: Eric Petit Date: Mon Apr 11 19:28:03 2005 +0000 Added a configure to detect the platform/system/etc so people don't have to edit the Makefile (will work for Linux/OS X/BeOS/FreeBSD, feel free to modify for others), and we can now remove the Jamfile which was broken most of the time anyway. git-svn-id: svn://svn.videolan.org/x264/trunk@191 df754926-b1dd-0310-bc7b-ec298dee348c commit b12cb05a8fee91c50dc3d1d3c2569a801cc1a5e3 r190 Author: Loren Merritt Date: Sun Apr 10 23:35:01 2005 +0000 Makefiles: better dependencies for SEI version number git-svn-id: svn://svn.videolan.org/x264/trunk@190 df754926-b1dd-0310-bc7b-ec298dee348c commit 90a6fd3e4e8685f990c7f9fe05c8718e77c0e080 r189 Author: Måns Rullgård Date: Thu Apr 7 23:26:51 2005 +0000 Forgot rbsp_trailing_bits in AUD NAL git-svn-id: svn://svn.videolan.org/x264/trunk@189 df754926-b1dd-0310-bc7b-ec298dee348c commit e103917aa0cbb702ba09c2507565398d7f129c2e r188 Author: Måns Rullgård Date: Thu Apr 7 23:11:06 2005 +0000 Optionally use access unit delimiter NAL units. git-svn-id: svn://svn.videolan.org/x264/trunk@188 df754926-b1dd-0310-bc7b-ec298dee348c commit d4663a41a4bb0c67eb861046ed2917111257883f r187 Author: Loren Merritt Date: Tue Apr 5 21:32:52 2005 +0000 VfW: cleaner install on win98. patch by Riccardo Stievano. git-svn-id: svn://svn.videolan.org/x264/trunk@187 df754926-b1dd-0310-bc7b-ec298dee348c commit 990e58b646629a2937e76794b97892d7806a932e r186 Author: Loren Merritt Date: Tue Apr 5 20:50:13 2005 +0000 new util: countquant for 2pass statsfiles git-svn-id: svn://svn.videolan.org/x264/trunk@186 df754926-b1dd-0310-bc7b-ec298dee348c commit b780e711dd0a1e97535c690f84e9726eefa95c2c r185 Author: Loren Merritt Date: Tue Apr 5 20:39:47 2005 +0000 print svn version number in SEI info and in CLI/VfW. git-svn-id: svn://svn.videolan.org/x264/trunk@185 df754926-b1dd-0310-bc7b-ec298dee348c commit ea9308c6b3bfc891a2dcebe1dc89e0c301c57066 r184 Author: Måns Rullgård Date: Thu Mar 31 21:20:41 2005 +0000 Make reconstructed frame available to caller. git-svn-id: svn://svn.videolan.org/x264/trunk@184 df754926-b1dd-0310-bc7b-ec298dee348c commit 6dcb0e4b6d827b9c79f402ff91049b2830b8a743 r183 Author: Loren Merritt Date: Thu Mar 31 06:03:22 2005 +0000 make install git-svn-id: svn://svn.videolan.org/x264/trunk@183 df754926-b1dd-0310-bc7b-ec298dee348c commit 11de51977d28b9ff242aa137f9c270b0f1b3f465 r182 Author: Loren Merritt Date: Thu Mar 31 05:59:11 2005 +0000 free() -> x264_free() git-svn-id: svn://svn.videolan.org/x264/trunk@182 df754926-b1dd-0310-bc7b-ec298dee348c commit de97a12a8b976acad6afdbeda54e4bfbdd9bf8b5 r181 Author: Loren Merritt Date: Mon Mar 28 05:08:43 2005 +0000 CLI: flush B-frames at the end of the encode git-svn-id: svn://svn.videolan.org/x264/trunk@181 df754926-b1dd-0310-bc7b-ec298dee348c commit 0df24cf995faf3169fe15d808e4fff00c18ad7dc r180 Author: Loren Merritt Date: Sun Mar 27 20:49:59 2005 +0000 convert mc's inline asm to nasm (slight speedup and msvc compatibility). patch by Mathieu Monnier. git-svn-id: svn://svn.videolan.org/x264/trunk@180 df754926-b1dd-0310-bc7b-ec298dee348c commit 48c34d0bffd57ba7c73f20bd6c892b4b06131140 r179 Author: Loren Merritt Date: Sun Mar 27 06:58:35 2005 +0000 buffer overruns in slicetype_decision. patch by Mathieu Monnier. git-svn-id: svn://svn.videolan.org/x264/trunk@179 df754926-b1dd-0310-bc7b-ec298dee348c commit a1c2c04693de8fe2d7712249c06c7a6406d0b422 r178 Author: Loren Merritt Date: Thu Mar 17 17:35:11 2005 +0000 tweak usage message git-svn-id: svn://svn.videolan.org/x264/trunk@178 df754926-b1dd-0310-bc7b-ec298dee348c commit ac93ce1bb01701ddc0faa79eeb1079288b6e3543 r177 Author: Loren Merritt Date: Wed Mar 16 22:02:02 2005 +0000 Simplify inter analysis option names. (psub16x16 -> p8x8) patch by Robert Swain. git-svn-id: svn://svn.videolan.org/x264/trunk@177 df754926-b1dd-0310-bc7b-ec298dee348c commit 04557605de60718c172ce6d1fc26b30d6fd2ee8b r176 Author: Loren Merritt Date: Wed Mar 16 21:52:59 2005 +0000 173 broke .depend when debugging was enabled git-svn-id: svn://svn.videolan.org/x264/trunk@176 df754926-b1dd-0310-bc7b-ec298dee348c commit bf7f679c793a2db2580e00f87eb3bed45b47a805 r175 Author: Loren Merritt Date: Wed Mar 16 20:50:19 2005 +0000 early termination for intra4x4 analysis git-svn-id: svn://svn.videolan.org/x264/trunk@175 df754926-b1dd-0310-bc7b-ec298dee348c commit ee5b2be9406eb8b9b11180f406febc944fd8845d r174 Author: Måns Rullgård Date: Tue Mar 15 12:09:00 2005 +0000 Check/fix range of x264_param_t.rc.i_qp_constant. git-svn-id: svn://svn.videolan.org/x264/trunk@174 df754926-b1dd-0310-bc7b-ec298dee348c commit 94086b8bb5885f76093e74b5a5b0f4d4db287c95 r173 Author: Eric Petit Date: Tue Mar 15 07:21:18 2005 +0000 Cleaned up and fixed Makefile for OS X and BeOS (hopefully FreeBSD too) It defaults for x86/linux, others: uncomment the lines for your platform & OS at the beginning of the Makefile git-svn-id: svn://svn.videolan.org/x264/trunk@173 df754926-b1dd-0310-bc7b-ec298dee348c commit cb6a40f00d1f5f14b9c14974309b43955a0b83ed r172 Author: Loren Merritt Date: Tue Mar 15 02:30:16 2005 +0000 macroblock_analyse: simplify cost comparisons. (cosmetic) CLI: enable cabac by default. git-svn-id: svn://svn.videolan.org/x264/trunk@172 df754926-b1dd-0310-bc7b-ec298dee348c commit 79fa69451ad4552c2dd84fcd3c5e75da136af17f r171 Author: Loren Merritt Date: Mon Mar 14 22:47:19 2005 +0000 Chroma ME (P-frames only). git-svn-id: svn://svn.videolan.org/x264/trunk@171 df754926-b1dd-0310-bc7b-ec298dee348c commit abbd6c56da04a9e10d10a4bd158104826e8fc81a r170 Author: Loren Merritt Date: Mon Mar 14 13:05:57 2005 +0000 SSE optimized chroma MC. patch by Radek Czyz. git-svn-id: svn://svn.videolan.org/x264/trunk@170 df754926-b1dd-0310-bc7b-ec298dee348c commit 553b8295bac6b6fd9d91e591bca1299923f0fc96 r169 Author: Loren Merritt Date: Sun Mar 13 23:36:42 2005 +0000 167 broke psnr calculation for non-mod-32 inputs git-svn-id: svn://svn.videolan.org/x264/trunk@169 df754926-b1dd-0310-bc7b-ec298dee348c commit 70da43b22cd394160c4358a33330446bc104c78e r168 Author: Eric Petit Date: Sun Mar 13 18:49:51 2005 +0000 sqrtf requires -lmx on Mac OS X git-svn-id: svn://svn.videolan.org/x264/trunk@168 df754926-b1dd-0310-bc7b-ec298dee348c commit e72f431c685731663d2824aa768218927490e704 r167 Author: Loren Merritt Date: Sun Mar 13 10:25:11 2005 +0000 use mmx ssd for psnr calculation. git-svn-id: svn://svn.videolan.org/x264/trunk@167 df754926-b1dd-0310-bc7b-ec298dee348c commit be2f0e088810860ab760d8d362a9450aaf917a29 r166 Author: Loren Merritt Date: Sun Mar 13 08:26:52 2005 +0000 revert 164. blame Spyder. git-svn-id: svn://svn.videolan.org/x264/trunk@166 df754926-b1dd-0310-bc7b-ec298dee348c commit 73522c84014f240abe7ee70c6e98657b08f97b44 r165 Author: Loren Merritt Date: Sun Mar 13 07:04:16 2005 +0000 SSD comparison function (not yet used). Cosmetics in mmx SAD. git-svn-id: svn://svn.videolan.org/x264/trunk@165 df754926-b1dd-0310-bc7b-ec298dee348c commit c68f34e555e22f4687d985ade6d81ea87cc73f29 r164 Author: Loren Merritt Date: Sat Mar 12 00:23:50 2005 +0000 VfW: reject YUY2 and RGB input formats git-svn-id: svn://svn.videolan.org/x264/trunk@164 df754926-b1dd-0310-bc7b-ec298dee348c commit fd527e3760074a19637c503d0f828d97b7c079fd r163 Author: Måns Rullgård Date: Fri Mar 11 18:10:35 2005 +0000 Really fix QP override. git-svn-id: svn://svn.videolan.org/x264/trunk@163 df754926-b1dd-0310-bc7b-ec298dee348c commit a2245645c8b3948de32f2c27f8cb0acb86e4d2d4 r162 Author: Loren Merritt Date: Fri Mar 11 02:15:25 2005 +0000 write VUI bitstream restrictions git-svn-id: svn://svn.videolan.org/x264/trunk@162 df754926-b1dd-0310-bc7b-ec298dee348c commit 29dee22af6b6174f54bb621f1038c0604a42d21e r161 Author: Loren Merritt Date: Thu Mar 10 23:03:55 2005 +0000 AVI & Avisynth input (win32 only). patch by bobo from Ateme. git-svn-id: svn://svn.videolan.org/x264/trunk@161 df754926-b1dd-0310-bc7b-ec298dee348c commit 79ebb19964a115ab8de21fe1e90162ff9954b283 r160 Author: Loren Merritt Date: Thu Mar 10 21:42:24 2005 +0000 expose option "chroma qp offset" git-svn-id: svn://svn.videolan.org/x264/trunk@160 df754926-b1dd-0310-bc7b-ec298dee348c commit 2fc52995de23f963e67ac408dc247ee3bf68c952 r159 Author: Måns Rullgård Date: Thu Mar 10 19:42:05 2005 +0000 Fix per-frame QP override broken in rev 137. git-svn-id: svn://svn.videolan.org/x264/trunk@159 df754926-b1dd-0310-bc7b-ec298dee348c commit 99b10e79b55520264a29ae4b82d67cd60005faab r158 Author: Måns Rullgård Date: Tue Mar 8 01:08:40 2005 +0000 Don't include x264.o in the library. git-svn-id: svn://svn.videolan.org/x264/trunk@158 df754926-b1dd-0310-bc7b-ec298dee348c commit 9f97e90ef5f3df22a560c10ad49a658041c88629 r157 Author: Loren Merritt Date: Sun Mar 6 21:07:10 2005 +0000 VfW: expose B pyramid and weighted B prediction. patch by Riccardo Stievano. git-svn-id: svn://svn.videolan.org/x264/trunk@157 df754926-b1dd-0310-bc7b-ec298dee348c commit 4fbdc5c1ee77497e6455cd72a895383fb99a77fe r156 Author: Loren Merritt Date: Sun Mar 6 11:39:08 2005 +0000 10l git-svn-id: svn://svn.videolan.org/x264/trunk@156 df754926-b1dd-0310-bc7b-ec298dee348c commit 1f735a32c9626b86b608c9604170b3f4c4549159 r155 Author: Loren Merritt Date: Sun Mar 6 09:50:17 2005 +0000 buffer overrun when bframes == X264_BFRAME_MAX git-svn-id: svn://svn.videolan.org/x264/trunk@155 df754926-b1dd-0310-bc7b-ec298dee348c commit c90534d6c85664c7a161cbe70a7928cb65f19e18 r154 Author: Loren Merritt Date: Sun Mar 6 05:12:25 2005 +0000 Adaptive B skipped some POC numbers (slightly reducing b_direct efficiency). git-svn-id: svn://svn.videolan.org/x264/trunk@154 df754926-b1dd-0310-bc7b-ec298dee348c commit d0bd44f769543e81280a5a97bbe985c6dfd86cf1 r153 Author: Loren Merritt Date: Sat Mar 5 09:34:53 2005 +0000 avc2avi: Use POC to determine frame boundaries (frame_num couldn't distinguish consecutive B-frames). Fix keyframe flag to mark IDR only, not all I slices. git-svn-id: svn://svn.videolan.org/x264/trunk@153 df754926-b1dd-0310-bc7b-ec298dee348c commit f01e3d5f2bffe3a033ecbaa608be6b4f3aca9c60 r152 Author: Loren Merritt Date: Sat Mar 5 04:16:05 2005 +0000 allow 16 refs (instead of 15) git-svn-id: svn://svn.videolan.org/x264/trunk@152 df754926-b1dd-0310-bc7b-ec298dee348c commit c47bb1ffbe630609fda9bd7c9488bae7f0078a4e r151 Author: Loren Merritt Date: Sat Mar 5 00:37:25 2005 +0000 report version number in decimal instead of hex git-svn-id: svn://svn.videolan.org/x264/trunk@151 df754926-b1dd-0310-bc7b-ec298dee348c commit 91536acdb42ec9615a50f5b9f3af34b6c6408049 r150 Author: Loren Merritt Date: Fri Mar 4 12:52:35 2005 +0000 New option: "B-frame pyramid" keeps the middle of 2+ consecutive B-frames as a reference, and reorders frame appropriately. git-svn-id: svn://svn.videolan.org/x264/trunk@150 df754926-b1dd-0310-bc7b-ec298dee348c commit 9591b0383829c707791b7797a68a79008349e198 r149 Author: Loren Merritt Date: Thu Mar 3 04:36:46 2005 +0000 smarter parsing of resolution from commandline git-svn-id: svn://svn.videolan.org/x264/trunk@149 df754926-b1dd-0310-bc7b-ec298dee348c commit 4337ee8de793cb5c6f0dee3b0a851041466fec7e r148 Author: Eric Petit Date: Thu Mar 3 03:02:27 2005 +0000 ratecontrol.c: fixed exp2f on BeOS so rate control works properly git-svn-id: svn://svn.videolan.org/x264/trunk@148 df754926-b1dd-0310-bc7b-ec298dee348c commit 4b2ba852564a05a651f9312651cc402043089648 r147 Author: Loren Merritt Date: Wed Mar 2 22:44:31 2005 +0000 Fix a buffer overrun with very long MVs. git-svn-id: svn://svn.videolan.org/x264/trunk@147 df754926-b1dd-0310-bc7b-ec298dee348c commit ccf61cef868c38bb71d746fcc03f583d93fd3e4c r146 Author: Loren Merritt Date: Mon Feb 28 19:01:58 2005 +0000 wrong stride in lowres image git-svn-id: svn://svn.videolan.org/x264/trunk@146 df754926-b1dd-0310-bc7b-ec298dee348c commit b04a2601088a855361169a3eb5236e8b998f7e70 r145 Author: Loren Merritt Date: Mon Feb 28 18:50:55 2005 +0000 10l (fast1stpass was slower than non-fast) git-svn-id: svn://svn.videolan.org/x264/trunk@145 df754926-b1dd-0310-bc7b-ec298dee348c commit d05adbc7f35e461879f1559a095b82b7253d78cd r144 Author: Loren Merritt Date: Fri Feb 25 03:10:04 2005 +0000 Disable deblocking filter in frames of sufficiently low QP that it would have no effect. (Saves a little CPU time in the decoder.) git-svn-id: svn://svn.videolan.org/x264/trunk@144 df754926-b1dd-0310-bc7b-ec298dee348c commit d836d8f9b7ae3962ac0f5a325f43ca9d6a87a7ff r143 Author: Loren Merritt Date: Fri Feb 25 00:46:56 2005 +0000 Simplify x264_frame_expand_border. git-svn-id: svn://svn.videolan.org/x264/trunk@143 df754926-b1dd-0310-bc7b-ec298dee348c commit 067f22c153eaf19e1ba5ec35deef96a8fb3eae4e r142 Author: Loren Merritt Date: Thu Feb 24 13:09:55 2005 +0000 Altivec functions for MC using the cached halfpel planes. Patch by Fredrik Pettersson . git-svn-id: svn://svn.videolan.org/x264/trunk@142 df754926-b1dd-0310-bc7b-ec298dee348c commit 323b54ffa0bbcfe82b02cb0d204e9ba5121264fd r141 Author: Loren Merritt Date: Thu Feb 24 13:01:21 2005 +0000 Don't use uninitialize MVs in x264_mb_predict_mv_ref16x16. git-svn-id: svn://svn.videolan.org/x264/trunk@141 df754926-b1dd-0310-bc7b-ec298dee348c commit 92f6f36f1d58fd9809263aba16ddeb78ec2ee47d r140 Author: Loren Merritt Date: Thu Feb 24 13:00:34 2005 +0000 Implicit weights in B16x16 analysis were swapped. patch by Radek Czyz. git-svn-id: svn://svn.videolan.org/x264/trunk@140 df754926-b1dd-0310-bc7b-ec298dee348c commit c2b0c8a0e11ef079e82789f79d54c30c9b2364ae r139 Author: Loren Merritt Date: Thu Feb 24 08:31:12 2005 +0000 Cosmetics: Some renaming. Move the rest of slice type decision from encoder.c to slicetype_decision.c git-svn-id: svn://svn.videolan.org/x264/trunk@139 df754926-b1dd-0310-bc7b-ec298dee348c commit 24a6672ecaa6bccc65c4043248c1787e3161062c r138 Author: Loren Merritt Date: Thu Feb 24 08:17:31 2005 +0000 Take into account keyint_max in B-frame decision. git-svn-id: svn://svn.videolan.org/x264/trunk@138 df754926-b1dd-0310-bc7b-ec298dee348c commit 68c13530b5ffc28325aee408f4cd19ab7da06715 r137 Author: Loren Merritt Date: Wed Feb 23 19:58:02 2005 +0000 Preliminary adaptive B-frame decision (not yet tuned). Fix flushing of delayed frames when the encode finishes. git-svn-id: svn://svn.videolan.org/x264/trunk@137 df754926-b1dd-0310-bc7b-ec298dee348c commit e2efb4b7d5885112a32b5b710958fe9fa5458bbf r136 Author: Loren Merritt Date: Tue Feb 22 22:08:07 2005 +0000 Write x264's version in a SEI message. git-svn-id: svn://svn.videolan.org/x264/trunk@136 df754926-b1dd-0310-bc7b-ec298dee348c commit 3ada9c0514d0d785dec7de1f5d092fbda7a629cb r135 Author: Loren Merritt Date: Tue Feb 22 10:46:28 2005 +0000 VfW: Enable weighted B prediction when max B-frames > 1. Enforce max reference frames <= 15. patch by Riccardo Stievano. git-svn-id: svn://svn.videolan.org/x264/trunk@135 df754926-b1dd-0310-bc7b-ec298dee348c commit 834eac288ff5e8d40a1a751d61a59d77d67c0537 r134 Author: Loren Merritt Date: Tue Feb 22 05:19:02 2005 +0000 Add: implicit weighted prediction for B-frames. Slightly optimize x264_mb_mc_01xywh. Fix an error in B16x8 cost. git-svn-id: svn://svn.videolan.org/x264/trunk@134 df754926-b1dd-0310-bc7b-ec298dee348c commit 47706e75fdf80b0c0011e2d697e5e181060a08fe r133 Author: Loren Merritt Date: Sun Feb 20 01:52:12 2005 +0000 Oops, increment API number. git-svn-id: svn://svn.videolan.org/x264/trunk@133 df754926-b1dd-0310-bc7b-ec298dee348c commit d7443f67331e392b580564f815a34c5762f71f03 r132 Author: Loren Merritt Date: Sun Feb 20 01:26:03 2005 +0000 Configurable level. Levels are still not enforced; it's up to the user to select a level compatible with the rest of the encoding options. Patch by Jeff Clagg . git-svn-id: svn://svn.videolan.org/x264/trunk@132 df754926-b1dd-0310-bc7b-ec298dee348c commit 15450dbe916e971793989dc44762e1bda23ca153 r131 Author: Loren Merritt Date: Sat Feb 19 06:18:22 2005 +0000 Always use the tempfile and rename method for multipass stats, so that VfW knows whether the previous pass completed. git-svn-id: svn://svn.videolan.org/x264/trunk@131 df754926-b1dd-0310-bc7b-ec298dee348c commit b1f47ea51c7057ebc0d8938a224662cc6fe23c80 r130 Author: Loren Merritt Date: Fri Feb 18 07:47:35 2005 +0000 More tweaks to bitrate prediction. Change error messages when 2pass fails to converge. git-svn-id: svn://svn.videolan.org/x264/trunk@130 df754926-b1dd-0310-bc7b-ec298dee348c commit 0606b3ac325a3cb3fd1fe648d9a6468ab731f7d5 r129 Author: Loren Merritt Date: Thu Feb 17 19:31:15 2005 +0000 Improved 2pass bitrate predictor. No real change most of the time, but allows correct ratecontrol on some pathological videos that used to diverge completely. Also improves prediction when 2nd pass bitrate is very different from 1st pass. The new qscale2bits() has no simple inverse, so I also had to change rc_eq to output qscale instead of bits. git-svn-id: svn://svn.videolan.org/x264/trunk@129 df754926-b1dd-0310-bc7b-ec298dee348c commit 3b2116cdd0aceff59036a17c6f9aa32592de4851 r128 Author: Loren Merritt Date: Wed Feb 16 04:59:21 2005 +0000 Some defines needed by MSVC, and convert the DSP files to DOS-style newlines. Patch by Radek Czyz. git-svn-id: svn://svn.videolan.org/x264/trunk@128 df754926-b1dd-0310-bc7b-ec298dee348c commit d688918e861714e23f8fa7bdaaa6bf47ffec0395 r127 Author: Loren Merritt Date: Mon Feb 14 23:32:38 2005 +0000 Precalculate lambda*bits for all allowed mvs. 1-2% speedup. git-svn-id: svn://svn.videolan.org/x264/trunk@127 df754926-b1dd-0310-bc7b-ec298dee348c commit ac411e297aaaec200b33b6dab082e12c55c3b7ef r126 Author: Loren Merritt Date: Mon Feb 14 11:08:00 2005 +0000 Deblock B-frames. (Not yet used, since B-frames aren't kept as references.) git-svn-id: svn://svn.videolan.org/x264/trunk@126 df754926-b1dd-0310-bc7b-ec298dee348c commit 50a924885b78abc24dba59bb6717095bcde15d1b r125 Author: Loren Merritt Date: Mon Feb 14 05:58:50 2005 +0000 Simplify x264_mb_mc_01xywh() git-svn-id: svn://svn.videolan.org/x264/trunk@125 df754926-b1dd-0310-bc7b-ec298dee348c commit b2d78b5c7a423a75f0cb555173d92011b4accc44 r124 Author: Loren Merritt Date: Mon Feb 14 04:10:15 2005 +0000 Save some memcopies in halfpel ME. Patch by Radek Czyz. git-svn-id: svn://svn.videolan.org/x264/trunk@124 df754926-b1dd-0310-bc7b-ec298dee348c commit 46141bf206dc672c3ab2b50850df702305ecb8ff r123 Author: Loren Merritt Date: Sun Feb 13 09:49:42 2005 +0000 Cache half-pixel interpolated reference frames, to avoid duplicate motion compensation. 30-50% speedup at subq=5. Patch by Radek Czyz. git-svn-id: svn://svn.videolan.org/x264/trunk@123 df754926-b1dd-0310-bc7b-ec298dee348c commit d81fa19a0af848bd97b2250e1405b5fac54820b1 r122 Author: Loren Merritt Date: Sat Feb 12 12:26:52 2005 +0000 In N-pass mode if stat_in and stat_out are the same file, instead save to a temp file and overwrite stat_in only when the encode finishes. git-svn-id: svn://svn.videolan.org/x264/trunk@122 df754926-b1dd-0310-bc7b-ec298dee348c commit dc270b76915975ab1ea6e16992aa79e96e6801f7 r121 Author: Loren Merritt Date: Fri Feb 11 19:04:44 2005 +0000 VfW: x264_log now creates a window for error messages git-svn-id: svn://svn.videolan.org/x264/trunk@121 df754926-b1dd-0310-bc7b-ec298dee348c commit ef4d1fa4a99a23420708083c66e882d7cfd21d9f r120 Author: Loren Merritt Date: Thu Feb 10 22:11:39 2005 +0000 cosmetics git-svn-id: svn://svn.videolan.org/x264/trunk@120 df754926-b1dd-0310-bc7b-ec298dee348c commit 6f298b9d889536c5dc14fc08faa95447a322a1cd r119 Author: Loren Merritt Date: Thu Feb 10 21:54:40 2005 +0000 bs_align_1() didn't actually write all ones. (so encoded streams with cabac were technically invalid, though no decoder cares.) Patch by Tuukka Toivonen. git-svn-id: svn://svn.videolan.org/x264/trunk@119 df754926-b1dd-0310-bc7b-ec298dee348c commit ca4ae5219a95e05e80e707ce6828b79276e1f795 r118 Author: Loren Merritt Date: Tue Feb 8 23:30:33 2005 +0000 VfW: tweak option names git-svn-id: svn://svn.videolan.org/x264/trunk@118 df754926-b1dd-0310-bc7b-ec298dee348c commit 85c92e1be46a3fa90e81121a03bfb8479e87a2da r117 Author: Loren Merritt Date: Sun Feb 6 06:47:42 2005 +0000 VfW: use separate stats files for each pass of an N-pass encode. git-svn-id: svn://svn.videolan.org/x264/trunk@117 df754926-b1dd-0310-bc7b-ec298dee348c commit 70ce7a4be261f638a614918ed0e822b7f60d8269 r116 Author: Loren Merritt Date: Sat Feb 5 22:55:48 2005 +0000 VfW: Enable multipass by default, increase the configurable range of I and B quant ratios. core: Tweak error messages. git-svn-id: svn://svn.videolan.org/x264/trunk@116 df754926-b1dd-0310-bc7b-ec298dee348c commit 2796ba0138a59efa32357f9dc708eefe01c55882 r115 Author: Loren Merritt Date: Fri Feb 4 01:20:55 2005 +0000 r114 didn't completely fix the problem, trying again. git-svn-id: svn://svn.videolan.org/x264/trunk@115 df754926-b1dd-0310-bc7b-ec298dee348c commit 33140d0984c7415ed0441858022e777794934550 r114 Author: Loren Merritt Date: Thu Feb 3 11:03:17 2005 +0000 Another MV clipping fix. git-svn-id: svn://svn.videolan.org/x264/trunk@114 df754926-b1dd-0310-bc7b-ec298dee348c commit 917924591931e63df4458eb90d5d8bce4bff035d r113 Author: Loren Merritt Date: Tue Feb 1 10:13:51 2005 +0000 Simplify x264_cabac_mb_type. git-svn-id: svn://svn.videolan.org/x264/trunk@113 df754926-b1dd-0310-bc7b-ec298dee348c commit 7927c9ec8c4991040728d64893490c8ecb3d9b44 r112 Author: Loren Merritt Date: Mon Jan 31 12:20:23 2005 +0000 More accurate clipping rectangle for motion search. (slight compression improvement for high-motion scenes) git-svn-id: svn://svn.videolan.org/x264/trunk@112 df754926-b1dd-0310-bc7b-ec298dee348c commit 5b750c35db61a4d26e8801c175da422d11748aad r111 Author: Eric Petit Date: Fri Jan 28 15:17:51 2005 +0000 encoder/encoder.c: gcc < 3 compile fix git-svn-id: svn://svn.videolan.org/x264/trunk@111 df754926-b1dd-0310-bc7b-ec298dee348c commit 3f098e9644a31f17490f05d0ecea08e6443aa110 r110 Author: Loren Merritt Date: Fri Jan 28 13:47:14 2005 +0000 Change default level from 2.1 to 4.0 until I get around to calculating actual levels. git-svn-id: svn://svn.videolan.org/x264/trunk@110 df754926-b1dd-0310-bc7b-ec298dee348c commit bccb009f9fa67797da6cd3da742ad9a27266b12b r109 Author: Loren Merritt Date: Fri Jan 28 02:51:21 2005 +0000 Clipping mvs to within picture + emulated border when running motion compensation. git-svn-id: svn://svn.videolan.org/x264/trunk@109 df754926-b1dd-0310-bc7b-ec298dee348c commit c16119a2ccf2dff2328628dd9ded4681f5502c38 r108 Author: Loren Merritt Date: Thu Jan 27 11:33:14 2005 +0000 Fix clipping of mvs in probe_pskip. (Previously it mixed up fullpel with qpel.) This should eliminate the black blocks that sometimes appeared in high motion, low detail scenes. git-svn-id: svn://svn.videolan.org/x264/trunk@108 df754926-b1dd-0310-bc7b-ec298dee348c commit 6558c8322f175e3970c8a2f351dd7f8f66e130d2 r107 Author: Loren Merritt Date: Tue Jan 25 22:25:05 2005 +0000 Fix length of strings stored in the registry. Patch by Riccardo Stievano. git-svn-id: svn://svn.videolan.org/x264/trunk@107 df754926-b1dd-0310-bc7b-ec298dee348c commit 084175d95978011c837e4363616f5cac5794bc07 r106 Author: Loren Merritt Date: Mon Jan 24 22:55:48 2005 +0000 registry values for min/max keyint were mixed up git-svn-id: svn://svn.videolan.org/x264/trunk@106 df754926-b1dd-0310-bc7b-ec298dee348c commit 79f73aa2f5a5a6d16dadbc10c7ae9647fae76a29 r105 Author: Loren Merritt Date: Sun Jan 23 09:38:42 2005 +0000 VfW: expose option "Nth pass" (i.e. simultaneously read and update the multipass stats file). Patch by Riccardo Stievano. git-svn-id: svn://svn.videolan.org/x264/trunk@105 df754926-b1dd-0310-bc7b-ec298dee348c commit 0292410a8da029c45625c9f8670c9bf16c828c12 r104 Author: Loren Merritt Date: Fri Jan 21 08:22:47 2005 +0000 add "make NDEBUG=1" to strip library git-svn-id: svn://svn.videolan.org/x264/trunk@104 df754926-b1dd-0310-bc7b-ec298dee348c commit 66ee02bdb20e5fe43f3dabbaa10e61d49a945a03 r103 Author: Loren Merritt Date: Tue Jan 18 21:32:20 2005 +0000 finish subpixel motion refinement for B-frames (up to 6% reduced size of B-frames at subq <= 3) git-svn-id: svn://svn.videolan.org/x264/trunk@103 df754926-b1dd-0310-bc7b-ec298dee348c commit 37c0a244e49e607855a55a06b4b911eaadbc4604 r102 Author: Loren Merritt Date: Tue Jan 18 12:19:39 2005 +0000 VfW: expose the 2pass ratecontrol option: qcomp ("bitrate variability"). Some rearranging of the advanced configuration dialogue. Patch by Riccardo Stievano . git-svn-id: svn://svn.videolan.org/x264/trunk@102 df754926-b1dd-0310-bc7b-ec298dee348c commit c80d310f2af65750dafc3decdab6c1df2cbbc5e3 r101 Author: Loren Merritt Date: Mon Jan 17 04:29:24 2005 +0000 VfW: Support ip_factor and pb_factor, some cleanups. patch by Riccardo Stievano git-svn-id: svn://svn.videolan.org/x264/trunk@101 df754926-b1dd-0310-bc7b-ec298dee348c commit 19ed02568e95f69e2dd33f9b8d8cd1ff900f268b r100 Author: Loren Merritt Date: Sat Jan 15 11:28:44 2005 +0000 Use floats instead of int64 in log messages, since win32 (incl. mingw) doesn't understand %lld. Also display MB statistics in percent instead of number. git-svn-id: svn://svn.videolan.org/x264/trunk@100 df754926-b1dd-0310-bc7b-ec298dee348c commit 4394c4d549caac00dedfeacffa14857839365f04 r99 Author: Loren Merritt Date: Sat Jan 15 10:28:51 2005 +0000 finished printf -> x264_log conversion. git-svn-id: svn://svn.videolan.org/x264/trunk@99 df754926-b1dd-0310-bc7b-ec298dee348c commit 04bb83346e4c7ba29c4f6b0c5e376ebde81a899b r98 Author: Loren Merritt Date: Fri Jan 14 21:38:13 2005 +0000 Don't apply keyframe boost to I-frames that are followed by another I. git-svn-id: svn://svn.videolan.org/x264/trunk@98 df754926-b1dd-0310-bc7b-ec298dee348c commit 7b46f42d142f790ecf053f952ce024b467eac762 r97 Author: Loren Merritt Date: Fri Jan 14 01:04:28 2005 +0000 New VfW option: "fast 1st pass" automatically disables some partitions and reduces ME quality and number of reference frames. Removed option direct_pred=none, since it provides no benefits. Patch by Riccardo Stievano . git-svn-id: svn://svn.videolan.org/x264/trunk@97 df754926-b1dd-0310-bc7b-ec298dee348c commit 177e211333d91a06ec2df3ac87c12336812d32e6 r96 Author: Loren Merritt Date: Thu Jan 13 19:47:51 2005 +0000 vfw: tweak wording and defaults git-svn-id: svn://svn.videolan.org/x264/trunk@96 df754926-b1dd-0310-bc7b-ec298dee348c commit b80ed7030d5979bfa2da92a2584078c7f844f28f r95 Author: Måns Rullgård Date: Thu Jan 13 18:18:05 2005 +0000 From Riccardo Stievano : here's a patch that fixes the VfW frontend after the changes made in revision 93 (GOP size management). Default values for i_keyint_max and i_keyint_min have been set to 250 and 10, respectively. git-svn-id: svn://svn.videolan.org/x264/trunk@95 df754926-b1dd-0310-bc7b-ec298dee348c commit 0a7090477d28a3f708a7b1edb89845e10b71191d r94 Author: Loren Merritt Date: Thu Jan 13 06:11:22 2005 +0000 My last change of IDR decision broke in 2pass mode. fixed by remembering which frames are IDR. Disable benchmarking, as it was very slow for some people, and we already know that all the time is spent in macroblock analysis. git-svn-id: svn://svn.videolan.org/x264/trunk@94 df754926-b1dd-0310-bc7b-ec298dee348c commit 648328088b1c4bfb3afcbc92b6711cb7b7b5e068 r93 Author: Loren Merritt Date: Wed Jan 12 09:50:38 2005 +0000 Changes the mechanics of max keyframe interval: Now enforces min and max GOP sizes, and allows variable numbers of non-IDR I-frames within a GOP. git-svn-id: svn://svn.videolan.org/x264/trunk@93 df754926-b1dd-0310-bc7b-ec298dee348c commit 5b13c839df14fdd8b94724230ec2e92cba3164a1 r92 Author: Loren Merritt Date: Wed Jan 12 05:23:16 2005 +0000 MinGW compatible resource.rc by Radek Czyz git-svn-id: svn://svn.videolan.org/x264/trunk@92 df754926-b1dd-0310-bc7b-ec298dee348c commit 8379464a55722872e63cb6b2120e81ed5ac80781 r91 Author: Loren Merritt Date: Wed Jan 12 04:45:10 2005 +0000 strict QP offset for B-frame vs following P-frame strict QP offset for I-frame vs GOP average git-svn-id: svn://svn.videolan.org/x264/trunk@91 df754926-b1dd-0310-bc7b-ec298dee348c commit 0af83ad2ddca90ba0a4066d67513a32798395ce6 r90 Author: Loren Merritt Date: Tue Jan 11 06:20:37 2005 +0000 r72 broke B-frames without intra4x4. fixed. git-svn-id: svn://svn.videolan.org/x264/trunk@90 df754926-b1dd-0310-bc7b-ec298dee348c commit 5ccb93c1a78a8dfeb1953426b89494f6f5d36fec r89 Author: Loren Merritt Date: Mon Jan 10 09:29:31 2005 +0000 updated VfW interface by Radek Czyz git-svn-id: svn://svn.videolan.org/x264/trunk@89 df754926-b1dd-0310-bc7b-ec298dee348c commit fc2e7ba68bfcb5b22f510839b6f0b3da333671fd r88 Author: Loren Merritt Date: Sat Jan 8 02:51:24 2005 +0000 improved mv prediction: 1-3% better compression of B-frames early termination for B-frame ref search: up to 20% faster with lots of refs. git-svn-id: svn://svn.videolan.org/x264/trunk@88 df754926-b1dd-0310-bc7b-ec298dee348c commit 7fc5f99d43b5c2498b368e6f5c1620f591bd2a45 r87 Author: Loren Merritt Date: Fri Jan 7 18:45:11 2005 +0000 allow constant qp on Nth pass (e.g. for forcing frame types) git-svn-id: svn://svn.videolan.org/x264/trunk@87 df754926-b1dd-0310-bc7b-ec298dee348c commit 094266b31789338c7a6b91f96aa2fc8c1bd72f94 r86 Author: Loren Merritt Date: Fri Jan 7 11:08:55 2005 +0000 disable subme=0 (the huge bitrate penalty wasn't worth the speed) renumber direct_pred git-svn-id: svn://svn.videolan.org/x264/trunk@86 df754926-b1dd-0310-bc7b-ec298dee348c commit 3a11b25d31f7eac4ccc4252b5525a6554c6d22ba r85 Author: Loren Merritt Date: Wed Jan 5 09:15:35 2005 +0000 oops, last patch had some debug statements git-svn-id: svn://svn.videolan.org/x264/trunk@85 df754926-b1dd-0310-bc7b-ec298dee348c commit 0ad06e691819f2a2a05f673b50afe8b676d48f44 r84 Author: Loren Merritt Date: Wed Jan 5 07:08:40 2005 +0000 fix: "x264 -A all" didn't include b8x8 types. add: "make NDEBUG=1" to strip library update TODO with B-frame status git-svn-id: svn://svn.videolan.org/x264/trunk@84 df754926-b1dd-0310-bc7b-ec298dee348c commit 53295729673187df0ab1143c08fae578b5447376 r83 Author: Loren Merritt Date: Wed Jan 5 06:59:29 2005 +0000 Reorganize frame type selection: No longer produces consecutive I-frames when B-frames are enabled. Not thoroughly tested, but works for me. Fix scenecut detection when B-frames are present: Can now produce IDR, but is slower since it re-encodes more frames. This might reduce compression ratio in the presence of quick fade-ins. 2pass ratecontrol deals more gracefully with completely skipped frames. git-svn-id: svn://svn.videolan.org/x264/trunk@83 df754926-b1dd-0310-bc7b-ec298dee348c commit b1d946cd95c7b4d3ab618b9bbb0191949a49ad4c r82 Author: Loren Merritt Date: Mon Jan 3 03:47:49 2005 +0000 remove Makefile.cygwin because build/cygwin/Makefile is more up to date. put correct object file names in .depend git-svn-id: svn://svn.videolan.org/x264/trunk@82 df754926-b1dd-0310-bc7b-ec298dee348c commit 456e8fdc5d5a20ad14a41e83db21b9aa5529c476 r81 Author: Loren Merritt Date: Mon Jan 3 02:32:44 2005 +0000 reduce default verbosity, add option -v git-svn-id: svn://svn.videolan.org/x264/trunk@81 df754926-b1dd-0310-bc7b-ec298dee348c commit 007c6f71c2b0d2868dfc46edaf24a5c27eceab47 r80 Author: Loren Merritt Date: Fri Dec 31 02:33:21 2004 +0000 remove relative include paths, to avoid conflicts with libtool git-svn-id: svn://svn.videolan.org/x264/trunk@80 df754926-b1dd-0310-bc7b-ec298dee348c commit b42bd7463a00b65f1e2d5e2c10ff374531e997f6 r79 Author: Loren Merritt Date: Fri Dec 31 01:56:26 2004 +0000 rename *.asm to avoid conflicts with libtool git-svn-id: svn://svn.videolan.org/x264/trunk@79 df754926-b1dd-0310-bc7b-ec298dee348c commit dabd095c2a59ec95f83428555a329049e4ab165f r78 Author: Loren Merritt Date: Thu Dec 30 23:58:06 2004 +0000 list default settings in --help git-svn-id: svn://svn.videolan.org/x264/trunk@78 df754926-b1dd-0310-bc7b-ec298dee348c commit fc1380db831cab2d90a8a116848d9263bd83b871 r77 Author: Loren Merritt Date: Thu Dec 30 04:01:58 2004 +0000 replace EPZS diamond with a hexagon search pattern. early termination for multiple reference frame search (up to 1.5x faster). git-svn-id: svn://svn.videolan.org/x264/trunk@77 df754926-b1dd-0310-bc7b-ec298dee348c commit ab0c769d9813d82f9d7d6f82cce289ae2e466db8 r76 Author: Loren Merritt Date: Wed Dec 29 21:18:14 2004 +0000 sps->i_num_ref_frames was set higher than necessary git-svn-id: svn://svn.videolan.org/x264/trunk@76 df754926-b1dd-0310-bc7b-ec298dee348c commit e33ed4c9fc447b7e4bc057e85f9ee83b07b714e1 r75 Author: Loren Merritt Date: Wed Dec 29 12:08:50 2004 +0000 new option: --fps git-svn-id: svn://svn.videolan.org/x264/trunk@75 df754926-b1dd-0310-bc7b-ec298dee348c commit d5322b4e055d3710ea48a1d3cb336b5264a9621e r74 Author: Loren Merritt Date: Wed Dec 29 10:53:03 2004 +0000 various cleanups in macroblock caching. store motion data for each reference frame (but not yet used). git-svn-id: svn://svn.videolan.org/x264/trunk@74 df754926-b1dd-0310-bc7b-ec298dee348c commit 9df283c3b29afdcb20387997b09893e450075976 r73 Author: Loren Merritt Date: Tue Dec 28 10:14:19 2004 +0000 more accurate cost for psub8x8 modes. git-svn-id: svn://svn.videolan.org/x264/trunk@73 df754926-b1dd-0310-bc7b-ec298dee348c commit 4e5e3770a6b2366676232fe5f335f572f6cdefcb r72 Author: Loren Merritt Date: Thu Dec 23 04:33:36 2004 +0000 implement macroblock types B_16x8, B_8x16 tweak thresholds for comparing B mb types git-svn-id: svn://svn.videolan.org/x264/trunk@72 df754926-b1dd-0310-bc7b-ec298dee348c commit efbf4ad58c26c6a609a43a2b636ce50e1272f101 r71 Author: Loren Merritt Date: Wed Dec 22 21:09:45 2004 +0000 simplify x264_mb_predict_mv_direct16x16_temporal git-svn-id: svn://svn.videolan.org/x264/trunk@71 df754926-b1dd-0310-bc7b-ec298dee348c commit 457eaa93110fa95c393794d85bde7943b2d325bd r70 Author: Loren Merritt Date: Wed Dec 22 20:52:13 2004 +0000 option '--frames' limits number of frames to encode. patch by Tuukka Toivonen git-svn-id: svn://svn.videolan.org/x264/trunk@70 df754926-b1dd-0310-bc7b-ec298dee348c commit dfbbcec847ddb9b9bbc4549671c6ce7533a7c098 r69 Author: Loren Merritt Date: Wed Dec 22 20:29:19 2004 +0000 simplify calvc mb type git-svn-id: svn://svn.videolan.org/x264/trunk@69 df754926-b1dd-0310-bc7b-ec298dee348c commit 199ff7406b76dc1c10b756053398bf8a834bcf5c r68 Author: Loren Merritt Date: Fri Dec 17 10:57:02 2004 +0000 implement macroblock types B_SKIP, B_DIRECT, B_8x8 git-svn-id: svn://svn.videolan.org/x264/trunk@68 df754926-b1dd-0310-bc7b-ec298dee348c commit b6954ba2bba2f4fc002e8be4f57d7f3b43871c33 r67 Author: Loren Merritt Date: Tue Dec 14 02:04:02 2004 +0000 rename 'core/' to 'common/', which avoids conflicts with libtool git-svn-id: svn://svn.videolan.org/x264/trunk@67 df754926-b1dd-0310-bc7b-ec298dee348c commit da49faec0719a3e774177356c66a4b41ddd0b10c r66 Author: Loren Merritt Date: Wed Dec 8 05:01:57 2004 +0000 cleanup stats reporting report B macroblock types report average QP git-svn-id: svn://svn.videolan.org/x264/trunk@66 df754926-b1dd-0310-bc7b-ec298dee348c commit bc0a1e9b79d725680418be2bf7cf584a739ca47b r65 Author: Loren Merritt Date: Wed Dec 8 02:28:58 2004 +0000 apply ip_factor and pb_factor in constant quantiser encodes. git-svn-id: svn://svn.videolan.org/x264/trunk@65 df754926-b1dd-0310-bc7b-ec298dee348c commit 25b542c01b85c6da7bea789fc60f1f22d7281488 r64 Author: Loren Merritt Date: Wed Dec 1 21:23:06 2004 +0000 save a little bit of memory git-svn-id: svn://svn.videolan.org/x264/trunk@64 df754926-b1dd-0310-bc7b-ec298dee348c commit 0f65f519a8539602e08fd87d9c21b0b3f34a80d8 r63 Author: Loren Merritt Date: Mon Nov 22 07:34:17 2004 +0000 multiple hypothesis mv prediction: 1-3% improved compression, and .5-1% faster git-svn-id: svn://svn.videolan.org/x264/trunk@63 df754926-b1dd-0310-bc7b-ec298dee348c commit 2489b6a66d960d46db325a15314ac82fc9f3ed1a r62 Author: Laurent Aimar Date: Thu Nov 18 12:30:27 2004 +0000 * analyse: we can do 4x4 Horizontal Up mode when LEFT is avaible. Thanks Stephen Henry for the report. git-svn-id: svn://svn.videolan.org/x264/trunk@62 df754926-b1dd-0310-bc7b-ec298dee348c commit 71f820d76b4a38b4ed73a12a8aeb93589b18527a r61 Author: Loren Merritt Date: Wed Nov 17 18:40:26 2004 +0000 improved 2pass ratecontrol: ensures that I-frames have comparable quantizer to the following P-frames, and produces more consistent quality in areas of fluctuating complexity. git-svn-id: svn://svn.videolan.org/x264/trunk@61 df754926-b1dd-0310-bc7b-ec298dee348c commit 7972ae1f284b1130abb6cc4f3fe963dcb0ee48c8 r60 Author: Loren Merritt Date: Fri Nov 12 07:14:24 2004 +0000 more informative error message when 2pass fails to converge git-svn-id: svn://svn.videolan.org/x264/trunk@60 df754926-b1dd-0310-bc7b-ec298dee348c commit 30c6a09063e499f47077edab206fd79992914ef7 r59 Author: Måns Rullgård Date: Thu Nov 11 12:37:24 2004 +0000 #include git-svn-id: svn://svn.videolan.org/x264/trunk@59 df754926-b1dd-0310-bc7b-ec298dee348c commit a0b32b7cc24d59826f311dcd2e64945a80803dc2 r58 Author: Loren Merritt Date: Thu Nov 4 09:19:34 2004 +0000 cleanup spacing of frame stats with verbose logging. git-svn-id: svn://svn.videolan.org/x264/trunk@58 df754926-b1dd-0310-bc7b-ec298dee348c commit bdf9b10610bf0141ede5812a70d889f7b557560d r57 Author: Loren Merritt Date: Thu Oct 28 20:10:53 2004 +0000 typo in x264_cabac_mb_sub_b_partition (see ITU-T H.264 clause 9.3.3.1.2) git-svn-id: svn://svn.videolan.org/x264/trunk@57 df754926-b1dd-0310-bc7b-ec298dee348c commit e917887b2e16e5d00d67fa8da7cd828a456fd75d r56 Author: Eric Petit Date: Wed Oct 27 19:14:24 2004 +0000 Typo git-svn-id: svn://svn.videolan.org/x264/trunk@56 df754926-b1dd-0310-bc7b-ec298dee348c commit 851989ac7c839ee2bf42c74a6fd90b5eb78f0a69 r55 Author: Eric Petit Date: Wed Oct 27 19:06:47 2004 +0000 + No need to emulate memalign on OS X + Fixed Makefile for OS X (Original patch by Peter Handel) git-svn-id: svn://svn.videolan.org/x264/trunk@55 df754926-b1dd-0310-bc7b-ec298dee348c commit 57554925f4075d00708be958853d5b2e9a9f6487 r54 Author: Måns Rullgård Date: Wed Oct 27 15:43:15 2004 +0000 Conditionally inits 1pass rc, only if it's enabled. This prevents a couple of irrelevant warnings from appearing in constant QP mode. (Loren Merritt ) git-svn-id: svn://svn.videolan.org/x264/trunk@54 df754926-b1dd-0310-bc7b-ec298dee348c commit c9a501a467f06277ed72ba5e222ba00b018364eb r53 Author: Måns Rullgård Date: Mon Oct 25 09:40:23 2004 +0000 Oops, changing those types messed up some vprintf's. fixed. (Loren Merrit ) git-svn-id: svn://svn.videolan.org/x264/trunk@53 df754926-b1dd-0310-bc7b-ec298dee348c commit 46d0385cdd96b8d0753016bb255108a3adb3ba86 r52 Author: Måns Rullgård Date: Tue Oct 19 21:35:18 2004 +0000 filesize (bits) in a 32 bit int will overflow after 250MB, screwing up 2pass ratecontrol. (patch by Loren Merritt ) git-svn-id: svn://svn.videolan.org/x264/trunk@52 df754926-b1dd-0310-bc7b-ec298dee348c commit 3f7206dc5bfb84ff4e1fb494d9ecf09e98baa937 r51 Author: Måns Rullgård Date: Mon Oct 11 10:13:05 2004 +0000 fix compilation on FreeBSD (from Loren Merritt (thanks to Igla)) git-svn-id: svn://svn.videolan.org/x264/trunk@51 df754926-b1dd-0310-bc7b-ec298dee348c commit 48937c64c13904973f83495b64afdf4223f647f5 r50 Author: Laurent Aimar Date: Wed Sep 29 16:05:24 2004 +0000 * ratecontrol: Patch by Loren Merritt : " This patch * calculates average QP as a float, providing slightly improved ratecontrol if the first pass was CBR. * fixes the reported QP if you set both b_stat_read and b_stat_write, allowing 3 pass encoding (or just examination of the 2nd pass's stats)." git-svn-id: svn://svn.videolan.org/x264/trunk@50 df754926-b1dd-0310-bc7b-ec298dee348c commit e3ae8a7d1a3953c0f261cba6e1b161cfc7f1b0d6 r49 Author: Laurent Aimar Date: Wed Sep 29 16:02:18 2004 +0000 * all: Patch by Loren Merritt. " This patch makes scene-cut detection based on the relative cost of I-frame vs P-frame, rather than just on the number of I-blocks used. It also makes the scene-cut threshold configurable. This doesn't have a very large effect: Most scene cuts are obvious to either algorithm. But I think this way is better in some less clear cut cases, and sometimes finds a better spot for an I-frame than just waiting for the max I-frame interval." git-svn-id: svn://svn.videolan.org/x264/trunk@49 df754926-b1dd-0310-bc7b-ec298dee348c commit 79a2bb78b970e55e92bb4a74ff5f88dc6d0a6851 r48 Author: Laurent Aimar Date: Wed Sep 22 07:37:43 2004 +0000 * ratecontrol: added 'b' flag to fopen. git-svn-id: svn://svn.videolan.org/x264/trunk@48 df754926-b1dd-0310-bc7b-ec298dee348c commit 48e288644ed493a77b5935e90010973a4e15faf6 r47 Author: Laurent Aimar Date: Wed Sep 22 07:07:48 2004 +0000 * all: Patches by Loren Merritt: "Improved patch. Now supports subpel ME on all candidate MB types, not just on the winner. subpel_refine: (completely different scale from before) 0 => halfpel only 1 => 1 iteration of qpel on the winner (same as x264 r46) 2 => 2 iterations of qpel (about the same as my earlier patch, but faster 3 => halfpel on all MB types, qpel on the winner 4 => qpel on all 5 => more iterations benchmarks: mencoder dvd://1 -ovc x264 -x264encopts qp_constant=19:fullinter:cabac:iframe=200:psnr subpel_refine=1: PSNR Global:46.82 kb/s:1048.1 fps:17.335 subpel_refine=2: PSNR Global:46.83 kb/s:1034.4 fps:16.970 subpel_refine=3: PSNR Global:46.84 kb/s:1023.3 fps:14.770 subpel_refine=4: PSNR Global:46.87 kb/s:1010.8 fps:11.598 subpel_refine=5: PSNR Global:46.88 kb/s:1006.9 fps:10.824" And "The current code for calculating the cost of encoding which reference frame a MB is predicted from, introduces a bias towards ref0 and against P16x16. Removing this bias produces an improvement of .4% - 2% bitrate, depending on content and number of reference frames." git-svn-id: svn://svn.videolan.org/x264/trunk@47 df754926-b1dd-0310-bc7b-ec298dee348c commit f9bd35a32d8de87c67749c1628ea7693a2b83460 r46 Author: Laurent Aimar Date: Sun Aug 29 12:02:50 2004 +0000 * x264: added --ipratio --pbratio in help section. git-svn-id: svn://svn.videolan.org/x264/trunk@46 df754926-b1dd-0310-bc7b-ec298dee348c commit 8c6f6fa0db394e65fa9b4272deec859c9cb67aac r45 Author: Laurent Aimar Date: Sun Aug 29 11:32:34 2004 +0000 * ratecontrol: path by Loren Merritt. "Use average qp instead of last qp in the frame for 2pass rc. (Improves quality and rate accuracy if the first pass was cbr.)" git-svn-id: svn://svn.videolan.org/x264/trunk@45 df754926-b1dd-0310-bc7b-ec298dee348c commit d46df39630925245993e3ecde07adce618d3c30a r44 Author: Laurent Aimar Date: Sat Aug 28 22:30:44 2004 +0000 * x264: added --quiet and --no-psnr. git-svn-id: svn://svn.videolan.org/x264/trunk@44 df754926-b1dd-0310-bc7b-ec298dee348c commit cba0cd394dfd87f82daa4b621dd9b701fca5bb9f r43 Author: Laurent Aimar Date: Sat Aug 28 22:19:47 2004 +0000 * eval.c: lalala ;) git-svn-id: svn://svn.videolan.org/x264/trunk@43 df754926-b1dd-0310-bc7b-ec298dee348c commit 8a5aa764ab46fd04dd60acfa3a6641742c4b0daa r42 Author: Laurent Aimar Date: Sat Aug 28 22:19:15 2004 +0000 * added Loren Merritt. git-svn-id: svn://svn.videolan.org/x264/trunk@42 df754926-b1dd-0310-bc7b-ec298dee348c commit 58b7012e219b64752168084fa028e76792b6f42a r41 Author: Laurent Aimar Date: Sat Aug 28 22:16:48 2004 +0000 * all: added eval.c (I hope libx264.dsp is correct, I can't test). git-svn-id: svn://svn.videolan.org/x264/trunk@41 df754926-b1dd-0310-bc7b-ec298dee348c commit 9116d300befee74c92ff3ac9fe7625a57dafab48 r40 Author: Laurent Aimar Date: Sat Aug 28 22:14:26 2004 +0000 * all: 2pass patch by Loren Merritt "Mostly borrowed from libavcodec. There is not much theoretical basis behind my choice of defaults for rc_eq, qcompress, qblur, and ip_factor." git-svn-id: svn://svn.videolan.org/x264/trunk@40 df754926-b1dd-0310-bc7b-ec298dee348c commit 67b673006c7b13a3435e89ccf0a83ebbdd23937c r39 Author: Laurent Aimar Date: Sat Aug 28 19:24:08 2004 +0000 * all: first part of the 2pass patch by Loren Merritt (only the header/textures bits computed for now). git-svn-id: svn://svn.videolan.org/x264/trunk@39 df754926-b1dd-0310-bc7b-ec298dee348c commit 0a7d38ca3a65133af46a438d00ff25948a78019a r38 Author: Laurent Aimar Date: Sun Aug 22 15:01:46 2004 +0000 * all: include stdarg.h (needed for x264_log) git-svn-id: svn://svn.videolan.org/x264/trunk@38 df754926-b1dd-0310-bc7b-ec298dee348c commit 63e5a5c8865f76d9fb0af10ee238fdb1bea1178c r37 Author: Måns Rullgård Date: Wed Aug 18 09:28:56 2004 +0000 Use x264_log() in ratecontrol.c git-svn-id: svn://svn.videolan.org/x264/trunk@37 df754926-b1dd-0310-bc7b-ec298dee348c commit f246a87fa64a4febe10a17e983f1b656d7914625 r36 Author: Laurent Aimar Date: Tue Aug 17 21:08:23 2004 +0000 * encoder/encoder.c: oops. (fixed compilation). git-svn-id: svn://svn.videolan.org/x264/trunk@36 df754926-b1dd-0310-bc7b-ec298dee348c commit dab6f065ffd7ab2ecc591ef22e0d556a3516a48f r35 Author: Laurent Aimar Date: Tue Aug 17 20:39:03 2004 +0000 * all: more fprintf -> x264_log. git-svn-id: svn://svn.videolan.org/x264/trunk@35 df754926-b1dd-0310-bc7b-ec298dee348c commit f53a7ae05c5f348baf1322d6d233aba899287df0 r34 Author: Laurent Aimar Date: Tue Aug 17 20:27:05 2004 +0000 * all: added a x264_param_t.analyse.b_psnr git-svn-id: svn://svn.videolan.org/x264/trunk@34 df754926-b1dd-0310-bc7b-ec298dee348c commit 72eced43c35ecce69b422c2da228ae044430c038 r33 Author: Laurent Aimar Date: Tue Aug 17 20:03:46 2004 +0000 * encoder/encoder.c: kb/s with k=1000 (more consistant). Patch by Loren Merritt git-svn-id: svn://svn.videolan.org/x264/trunk@33 df754926-b1dd-0310-bc7b-ec298dee348c commit a01315f4e71b38b63ca08f9453b3409bf4f044b8 r32 Author: Laurent Aimar Date: Tue Aug 17 19:56:36 2004 +0000 * all: introduced a x264_log function. It's not yet used everywhere but we should start using it :) git-svn-id: svn://svn.videolan.org/x264/trunk@32 df754926-b1dd-0310-bc7b-ec298dee348c commit 5ffe5a90e7553c20f40dcb1ae372579a941280cb r31 Author: Eric Petit Date: Mon Aug 16 08:52:05 2004 +0000 OS X is missing exp2f() git-svn-id: svn://svn.videolan.org/x264/trunk@31 df754926-b1dd-0310-bc7b-ec298dee348c commit 348de7f684821ffbb5e8a3a52969986de00c89c8 r30 Author: Eric Petit Date: Mon Aug 16 08:47:51 2004 +0000 Fixed warnings with PPC 64 git-svn-id: svn://svn.videolan.org/x264/trunk@30 df754926-b1dd-0310-bc7b-ec298dee348c commit 2885471d5ea17e4e84b9e2551d8c1e2049bb3d7f r29 Author: Måns Rullgård Date: Fri Aug 13 13:36:14 2004 +0000 Add my svn user name. git-svn-id: svn://svn.videolan.org/x264/trunk@29 df754926-b1dd-0310-bc7b-ec298dee348c commit ed61d8ee02dabbfc7c667ee4711e5c9cd95f2032 r28 Author: Måns Rullgård Date: Fri Aug 13 13:34:47 2004 +0000 Bugfix. git-svn-id: svn://svn.videolan.org/x264/trunk@28 df754926-b1dd-0310-bc7b-ec298dee348c commit 6b20e508a7f7110b4c951fbdc4a971cc5c14494d r27 Author: Måns Rullgård Date: Thu Aug 12 20:52:24 2004 +0000 Include timing info in VUI. Change frame rate from float to fraction (sorry for the inconvenience). git-svn-id: svn://svn.videolan.org/x264/trunk@27 df754926-b1dd-0310-bc7b-ec298dee348c commit 2b3cd6c669b64046a54b32577946bc262360d8ae r26 Author: Måns Rullgård Date: Thu Aug 12 13:07:41 2004 +0000 Add TAGS rule. git-svn-id: svn://svn.videolan.org/x264/trunk@26 df754926-b1dd-0310-bc7b-ec298dee348c commit 444615252b766c95c3dcbb11327c379101929468 r25 Author: Måns Rullgård Date: Wed Aug 11 20:24:20 2004 +0000 Fixes by Loren Merritt (lorenm at u.washington.edu). git-svn-id: svn://svn.videolan.org/x264/trunk@25 df754926-b1dd-0310-bc7b-ec298dee348c commit 78292e08d9e9770b1c74766368670eeeb3f02e3e r24 Author: Måns Rullgård Date: Wed Aug 11 01:02:05 2004 +0000 Get rid of integer overflows that caused the rate control to go haywire in some situations. git-svn-id: svn://svn.videolan.org/x264/trunk@24 df754926-b1dd-0310-bc7b-ec298dee348c commit 374baca15e0ce069cadd4c32633f915b6f8294b0 r23 Author: Laurent Aimar Date: Mon Aug 9 00:05:22 2004 +0000 * encoder: correct range for i_idr_pic_id is 0..65535 (Not 0..65534) git-svn-id: svn://svn.videolan.org/x264/trunk@23 df754926-b1dd-0310-bc7b-ec298dee348c commit 07a0494bd1b2c1ec05866d09bf84d0564d6e5080 r22 Author: Laurent Aimar Date: Sun Aug 8 21:36:41 2004 +0000 ratecontrol: patch by Loren Merritt "The new cbr mode fails to completely disable itself when encoding in constant QP mode. The per-block QPs are then randomized between QP+4 and QP-2 based on uninitialized ratecontrol parameters." git-svn-id: svn://svn.videolan.org/x264/trunk@22 df754926-b1dd-0310-bc7b-ec298dee348c commit 249259d03700724183b879cd504a172d9c2d35f6 r21 Author: Laurent Aimar Date: Sun Aug 8 19:15:10 2004 +0000 * ratecontrol: patch by Måns Rullgård "This patch fixes a small bug (divide by 0 possible) in the rate control." git-svn-id: svn://svn.videolan.org/x264/trunk@21 df754926-b1dd-0310-bc7b-ec298dee348c commit e96703d73226f61149e2c815a03f8443a620ffff r20 Author: Laurent Aimar Date: Sun Aug 8 16:18:49 2004 +0000 * encoder: simpler scene cut detection (seems better but do not check size anymore, so need more testing). git-svn-id: svn://svn.videolan.org/x264/trunk@20 df754926-b1dd-0310-bc7b-ec298dee348c commit 11e1b0c27fdd2213007fdb91f40d0fc2a1c11569 r19 Author: Laurent Aimar Date: Sun Aug 8 14:23:50 2004 +0000 * all: Change the way PSNR is computed (based on a patch by Loren Merritt Using SQE(DeltaSourceReconstructed) = Sum( delta^2 ) PSNR( SQE, Size ) = -10Ln(SQE / 255^2 / Size )/Ln(10) ) Y+U+V : Union of YUV planes. Now there is - Mean PSNR : Sum( PSNR( SQE(Y/U/V), Size(Y/U/V) ) / TotalFrames - Average PSNR: Sum( PSNR( SQE(Y+U+V), Size(Y+U+V) ) ) / TotalFrames - Global PSNR: PSNR( Sum( SQE(Y+U+V) ), Size(Y+U+V)*TotalFrames ) Mean PSNR is used by the JM, and Average/Overall is used on Doom9 for example. git-svn-id: svn://svn.videolan.org/x264/trunk@19 df754926-b1dd-0310-bc7b-ec298dee348c commit 9168b245fb9b7e84e4c55faba839b89a4b54a48b r18 Author: Laurent Aimar Date: Sat Aug 7 16:02:20 2004 +0000 * x264.h: increased X264_BUILD. git-svn-id: svn://svn.videolan.org/x264/trunk@18 df754926-b1dd-0310-bc7b-ec298dee348c commit 20c19c4b3a001c9e02775fdba040725a438db795 r17 Author: Laurent Aimar Date: Fri Aug 6 18:06:09 2004 +0000 * all: Patch from Måns Rullgård "Here's a patch that adds some kind of rate control. I suppose it is by no means perfect, but it's much better than constant quantizer. It also has a very crude scene change detection that sometimes avoids a buffer underflow by reencoding oversized P/B frames as I frames." git-svn-id: svn://svn.videolan.org/x264/trunk@17 df754926-b1dd-0310-bc7b-ec298dee348c commit 30a244d00365a81999c82bdd3dd8beb0d036d36a r16 Author: Eric Petit Date: Mon Aug 2 07:05:05 2004 +0000 Linux PPC AltiVec fix git-svn-id: svn://svn.videolan.org/x264/trunk@16 df754926-b1dd-0310-bc7b-ec298dee348c commit b0495a99ee0b65b03be7d6961ddb70ef7e38dcf0 r15 Author: Eric Petit Date: Wed Jul 28 21:39:06 2004 +0000 BeOS fixes (no stdint.h, no libm) git-svn-id: svn://svn.videolan.org/x264/trunk@15 df754926-b1dd-0310-bc7b-ec298dee348c commit bf06e99e9b054a3f671a6f3f0c62d9b204057b0b r14 Author: Eric Petit Date: Tue Jul 27 08:34:59 2004 +0000 Attempt to fix build on Linux PPC git-svn-id: svn://svn.videolan.org/x264/trunk@14 df754926-b1dd-0310-bc7b-ec298dee348c commit 86ca49033ad85660dc88f82ab721263f4d29290e r13 Author: Laurent Aimar Date: Fri Jul 23 18:14:59 2004 +0000 * encoder.c, analyse.c, macroblock: fixed when using a qp per MB. (Buggy for pskip and mb with null cbp luma and chroma). * dct*: fixed order of idct. git-svn-id: svn://svn.videolan.org/x264/trunk@13 df754926-b1dd-0310-bc7b-ec298dee348c commit 55eb54c7e47a8f98f4382a953e03ee414972c36f r12 Author: Laurent Aimar Date: Fri Jul 16 18:26:19 2004 +0000 * cpu.asm: mmh trashing ebp,esi and edi isn't a good idea I fear ;) git-svn-id: svn://svn.videolan.org/x264/trunk@12 df754926-b1dd-0310-bc7b-ec298dee348c commit a8703c8933f51715c25118eb83487072a548934e r11 Author: Laurent Aimar Date: Tue Jun 29 22:41:42 2004 +0000 * all: fixed ss2 runtime selection. git-svn-id: svn://svn.videolan.org/x264/trunk@11 df754926-b1dd-0310-bc7b-ec298dee348c commit 02713c2401b471fb3bfa4541e8b867dfd06628cc r10 Author: Min Chen Date: Fri Jun 18 02:00:40 2004 +0000 update & SSE2 support git-svn-id: svn://svn.videolan.org/x264/trunk@10 df754926-b1dd-0310-bc7b-ec298dee348c commit 77bce7d16d8a2fc12aff32997def2f966975617c r9 Author: Min Chen Date: Thu Jun 17 09:01:19 2004 +0000 update git-svn-id: svn://svn.videolan.org/x264/trunk@9 df754926-b1dd-0310-bc7b-ec298dee348c commit c7631faf30ef78cc254a7ad8a7552e65824507d8 r8 Author: Min Chen Date: Thu Jun 17 08:58:43 2004 +0000 remove some unused code git-svn-id: svn://svn.videolan.org/x264/trunk@8 df754926-b1dd-0310-bc7b-ec298dee348c commit 8d3d88be0fe3a22ea39861321eed015efb454359 r7 Author: Min Chen Date: Mon Jun 14 05:47:51 2004 +0000 support for build checkasm.exe git-svn-id: svn://svn.videolan.org/x264/trunk@7 df754926-b1dd-0310-bc7b-ec298dee348c commit b2e2e34b3415cb9429475c1b828dcb2c36855308 r6 Author: Laurent Aimar Date: Thu Jun 10 18:13:38 2004 +0000 * build fix (thx xxcd). git-svn-id: svn://svn.videolan.org/x264/trunk@6 df754926-b1dd-0310-bc7b-ec298dee348c commit 4fb5f9aa45f1a71fd718eaabd0992b8086887fa0 r5 Author: VideoLAN Date: Thu Jun 10 07:32:18 2004 +0000 * TODO: test. git-svn-id: svn://svn.videolan.org/x264/trunk@5 df754926-b1dd-0310-bc7b-ec298dee348c commit a511bbecc348964c9de501a954c08f1b3bd4644d r4 Author: Laurent Aimar Date: Wed Jun 9 19:35:31 2004 +0000 * vfw/* : oops... git-svn-id: svn://svn.videolan.org/x264/trunk@4 df754926-b1dd-0310-bc7b-ec298dee348c commit 166ed2dd0b3ef0a89f64371e78c70a1b8f874ddd r3 Author: Laurent Aimar Date: Wed Jun 9 19:35:07 2004 +0000 * mc-c.c compilation fix for gcc >= 3.3 git-svn-id: svn://svn.videolan.org/x264/trunk@3 df754926-b1dd-0310-bc7b-ec298dee348c commit 602c87d5a3fb75cf7404bae08ecc3d5bc5ab1372 r2 Author: Laurent Aimar Date: Thu Jun 3 19:29:57 2004 +0000 * all: re-import of CVS. git-svn-id: svn://svn.videolan.org/x264/trunk@2 df754926-b1dd-0310-bc7b-ec298dee348c commit 5dc0aae2f900064d1f58579929a2285ab289a436 r1 Author: Laurent Aimar Date: Thu Jun 3 19:29:33 2004 +0000 * all: re-import of the CVS. git-svn-id: svn://svn.videolan.org/x264/trunk@1 df754926-b1dd-0310-bc7b-ec298dee348c