2014-12-23 Satoshi Nakagawa * source/encoder/rdcost.h, source/encoder/search.cpp: rdcost: unify scaleChromaDist*() [5f9f7194267b] [tip] 2014-12-23 Gopu Govindaswamy * source/encoder/encoder.cpp: encoder: allocate memory for inter and intra analysis data based on slicetype [9fdab427a191] * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: remove redundant argument in compressIntraCU [c4ec3f22846b] 2014-12-20 Satoshi Nakagawa * source/encoder/search.cpp: fix 4:4:4 rd<=1 [8d2f418829c8] 2014-12-18 David T Yuen * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm, source/common/x86/dct8.h: asm: idct[8x8] sse2 12232 -> 3500 over c code 3550 -> 3500 over intrinsic [7b816fdb393d] 2014-12-17 Steve Borho * source/PPA/ppaCPUEvents.h, source/encoder/frameencoder.cpp: ppa: emit one event per CTU for more clarity, disable frame threads events The frame threads are generally uninteresting when WPP is in use [78ae7996a1ce] * source/PPA/ppaCPUEvents.h, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/encoder/slicetype.cpp, source/x265.cpp: ppa: refine event names Drop the unused names, remove uninteresting events. Try to cover the main thread pool tasks and the frame encoder times. [6cbd7d26b2a1] * source/PPA/ppa.cpp, source/PPA/ppa.h, source/PPA/ppaApi.h: ppa: simplify interfaces, enforce coding style [952a2a361fcb] * source/common/common.h, source/encoder/analysis.cpp, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/x265.cpp: ppa: minimize code foot-print of profiling events This will allow us to add support for more profiling systems without littering the code [3315d6c0ced1] * doc/reST/cli.rst, source/x265.h: doc: improve documentation for --stats and multi-pass in general [42fb030a4c43] 2014-12-16 Min Chen * source/encoder/nal.cpp: fix: output wrong WppEntryOffset when emulating start code at end of WPP row [295d033cb091] 2014-12-16 Aasaipriya Chandran * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: chroma_hpp[16x16] for colorspace i420 in avx2 improve 1540c->969c [775ebb4694ad] * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: chroma_hpp[32x32] for colorspace i420 in avx2 improve 6189c->3537c [619c0e654f5b] 2014-12-13 Steve Borho * source/encoder/api.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h: encoder: combine create() and init() functions They were always called back-to-back() and their functionality was non-distinct. It also now checks for abort errors at startup and returns a NULL from the encoder open function (early aborts are usually malloc failures) [6ba7be7b1697] * source/CMakeLists.txt, source/cmake/CMakeASM_YASMInformation.cmake: cmake: eoln and white-space fixes, slight refactor [ee36b6311aaf] 2014-12-12 Steve Borho * source/encoder/analysis.h: analysis: typo [d00a5b93c07e] * source/CMakeLists.txt, source/cmake/CMakeASM_YASMInformation.cmake: cmake: allow position independent code to be generally configurable (fixes #91) Allow the builder to over-ride the default [afdcb68dace4] 2014-12-11 Steve Borho * source/encoder/entropy.cpp, source/encoder/entropy.h: entropy: add methods to estimate CU mode decision costs [e0374c37e745] 2014-12-12 Steve Borho * source/common/pixel.cpp: pixel: nits [750839e8e0cf] * doc/reST/cli.rst, source/common/param.cpp, source/x265.h: api: change default AQ mode to 1 We've received a lot of feedback that AQ mode 2 is often problematic, but AQ mode 1 is generally safe and useful. [cbf5cad2e12b] 2014-12-12 Divya Manivannan * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: luma_vps[4x4] in avx2: improve 337c->219c [6f770a6b24f0] 2014-12-11 Steve Borho * build/README.txt: build: update README to not be so specific about yasm 1.2.0 [b1c2ef980dfe] 2014-12-10 Steve Borho * source/encoder/reference.cpp: reference: avoid weighting pixels when plane is unweighted Just because the luma plane is weighted does not mean either of the chroma planes are also weighted. If the weight parameters for a given plane are not present, then just directly use the un-weighted reference plane. [ae50be4c3a6e] 2014-12-11 Aasaipriya Chandran * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: chroma_hpp[4x4] for colorspace i420 in avx2 improve 217c->192c [667e4ea0899f] 2014-12-10 Steve Borho * doc/reST/cli.rst: doc: describe what happens when psy-rd is too high for bitrate [9c3b478a60b2] 2014-12-10 Divya Manivannan * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: chroma_vpp[32x32] for colorspace i420 in avx2: improve 3881c->1933c [04d145864dd6] 2014-12-10 Steve Borho * source/encoder/analysis.cpp: analysis: avoid redundant MC work [9e244ebe21d2] * source/encoder/analysis.cpp: analysis: fix chroma predictions for 2Nx2N bidir at zero mv Valgrind discovered that the chroma predictions were not in fact predicted [0dc816f49c01] * source/x265.h: api: add some blank lines [ab1e1e0ca75c] 2014-12-09 Divya Manivannan * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.h: asm: chroma_vpp[4x4] for colorspace i422 in avx2: improve 228c->184c [5f16dc82652a] 2014-12-10 Steve Borho * source/common/lowres.cpp, source/common/lowres.h, source/encoder/frameencoder.cpp, source/encoder/motion.cpp, source/encoder/reference.cpp, source/encoder/reference.h, source/encoder/slicetype.cpp: reference: weight chroma planes of reference pictures if using chroma satd [6c32c8d4e0a1] 2014-12-08 Steve Borho * doc/reST/cli.rst, source/encoder/analysis.cpp, source/encoder/frameencoder.cpp, source/encoder/motion.cpp, source/encoder/motion.h, source/encoder/search.cpp, source/encoder/slicetype.cpp: motion: chroma ME [CHANGES OUTPUTS] include chroma distortion in satd decisions when --subme > 2 and chroma blocks are multiples of 4x4 This required making the MotionEstimate class more aware of PicYuv and its indexing scheme so that it could find the correct chroma pixels to interpolate. This allowed me to merge the setSourcePlane() method into the lookahead's version of setSourcePU. This requires further work. The Reference class needs to generate weighted chroma planes if subpel refine will use chroma residual cost. Until this is fixed, the chroma subpel steps will use unweighted reference pixels. [afd5620c77a4] 2014-12-09 Steve Borho * source/common/pixel.cpp, source/common/primitives.cpp: primitives: use NULL chroma satd func pointers for blocks not capable of satd If the block is not a multiple of 4x4, then chroma satd measurements are not possible, so we will disable chroma residual measurements for these block sizes (and thus only measure luma residual) [4c97d85c8488] * source/common/primitives.cpp: primitives: use luma satd functions for chroma, where applicable The commented lines should be considered TODO items for the assembly team [29489f2fc2c7] * source/common/pixel.cpp, source/common/primitives.h: primitives: add a chroma satd table that is indexed by luma partition There are a number of chroma partitions that have dimensions of 2 or 6 and those cannot use satd (which is 4x4 based), so we degrade them down to SAD which makes me unhappy. [47c490836fd8] 2014-12-08 Steve Borho * source/common/lowres.h, source/encoder/reference.cpp, source/encoder/reference.h: reference: move reconPic pointer to base class so it is available to ME [dd55fd39745c] * source/encoder/motion.cpp: motion: sync argument names between the header and the cpp file [e2b958539e6a] * source/common/yuv.cpp: yuv: fix size check in copyFromYuv The target buffer needs to be as large as or larger than the source. The fact that this check has never failed tells me all users of this function have equal sized arguments. [15be837edb36] * source/encoder/search.cpp: search: rename index variable to puIdx for consistency [1cab6a4c0ab8] * source/common/yuv.cpp, source/common/yuv.h, source/encoder/analysis.cpp, source/encoder/motion.cpp, source/encoder/motion.h, source/encoder/search.cpp: motion: add a version of setSourcePU which can accept fenc from another Yuv The analysis code has already gone through the trouble of loading the CU's fenc pixels from the source picture into a much smaller Yuv buffer with small strides. This allows us to avoid accessing the fenc PicYuv in a performance critical portion of the encoder. We utilize the Yuv class to copy the PU, since it already has logic for calculating part offsets for luma and chroma [1d1f803a3eec] * source/encoder/motion.cpp, source/encoder/motion.h, source/encoder/search.cpp, source/encoder/slicetype.cpp, source/encoder/slicetype.h: motion: use Yuv instance to hold fenc PU pixels (preparing for chroma ME) This required making an init function which accepts the encoder color space. We use 4:0:0 for lookahead since it does not keep chroma planes. Note that I explicitly renamed this Yuv instance fencPUYuv to make sure people understand it is not a duplicate of the fencYuv kept by the Analysis structure; it will often be a sub- partition of the CU fenc yuv. [e640c8461495] * source/encoder/slicetype.cpp: slicetype: cleanups - use bufSATD method where applicable [b5b05c94ae7c] * source/common/yuv.cpp: yuv: plumb in support for mono-chrome YUV buffers The need for this will be obvious in the next commit [5a44d694ed9b] 2014-12-09 Aasaipriya Chandran * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: chroma_hpp[8x8] for colorspace i420 in avx2 improve 530c->373c [88498ec9b10b] 2014-12-08 Steve Borho * source/common/x86/asm-primitives.cpp: asm: fix x86 link errors [b376435b31c1] 2014-12-09 Deepthi Nandakumar * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: chroma_vpp[16x16] for colorspace i420 in avx2: improve 998c->978c [d042d1ea2d69] 2014-12-05 Divya Manivannan * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: chroma_vpp[8x8] for colorspace i420 in avx2: improve 338c->269c [fee9fb1f9762] 2014-12-06 Satoshi Nakagawa * source/common/cudata.h, source/encoder/analysis.cpp, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/search.cpp, source/encoder/search.h: refine tuDepth related [53f7efef5ebd] 2014-12-05 Steve Borho * source/cmake/version.cmake: cmake: do not use a cache string for version found in hg_archive.txt (refs #84) This was not passing the tagged version number to version.cpp [35d086074bb5] 2014-12-04 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: rc : fix bug in deciding qp for first frame in CRF [1458ad34157c] * source/encoder/rdcost.h, source/encoder/sao.cpp: rc: fix chroma qp and chroma lambda derivations. fix the chroma qp values for Main10 profile, derive chroma qp from luma qp values according to the HEVC spec. improves quality at high qps. [a1e76461c0d4] 2014-12-05 Deepthi Nandakumar * source/encoder/analysis.cpp: analysis: comments [4ae9691c1a23] 2014-12-05 Satoshi Nakagawa * source/encoder/analysis.cpp: fix chroma distortion for 4:2:2 [42df5c8bdb25] 2014-12-04 Steve Borho * source/encoder/CMakeLists.txt: cmake: disable idiotic uninitialized local variable warnings from VC If the compiler is not going to make any minimal attempt to figure out if a variable was initialized, I am not going to make any attempt to look at their stupid warnings. [c9fd35f97e6d] 2014-12-04 Divya Manivannan * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm, source/common/x86/ipfilter8.h: asm: chroma_vpp[4x4] for colorspace i420 in avx2: improve 228c->184c [23e637065aec] 2014-12-04 Steve Borho * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: cache m_bChromaSa8d and reduce redundant work Renamed some 'part' variables to 'puIdx' to avoid variable shadow warnings and for consistency with search.cpp [cc327e846dac] 2014-12-04 Deepthi Nandakumar * source/encoder/analysis.cpp: analysis: add chroma distortion to rdLevels 3 and 4 At these rdLevels, inter/bidir and merge candidate decisions were being taken based on luma sa8dCost only. This will increase bitrate and lower ssim slightly, with better subjective quality. Also fixed some naming nits. [1d2a11f6a33f] * doc/reST/cli.rst, source/CMakeLists.txt, source/common/param.cpp, source/encoder/frameencoder.cpp, source/encoder/search.cpp, source/x265.cpp, source/x265.h: noiseReduction: allow separate strengths to be specified for intra and inter CUs [ec06f5878e8b] 2014-12-04 Aarthi Thirumalai * source/common/x86/asm-primitives.cpp: primitives: fix build error in refactor of chroma p2s primitive. [511dde5ac1de] 2014-12-03 Steve Borho * source/common/ipfilter.cpp, source/common/lowres.cpp, source/common/pixel.cpp, source/common/predict.cpp, source/common/primitives.cpp, source/common/primitives.h, source/common/quant.cpp, source/common/shortyuv.cpp, source/common/x86/asm-primitives.cpp, source/common/yuv.cpp, source/encoder/search.cpp, source/test/ipfilterharness.cpp, source/test/pixelharness.cpp: primitives: cleanup EncoderPrimitives, refactor chroma p2s primitive No behavior changes [b1b5f06fe9ce] * source/common/pixel.cpp, source/common/primitives.h: primitives: remove unused chroma lowres primitive [bfeee4ac5463] * source/encoder/search.cpp: search: avoid AMVP selection if both MVs are the same This is a simple work avoidance optimization, should have no effect on outputs [2f66c3284c35] * source/common/CMakeLists.txt, source/common/primitives.cpp: cmake: remove buggy workarounds for partial SIMD support (fixes #92) In the past, there were a number of primitives written in SIMD intrinsics that could work without compiling with YASM. Most of those are now gone, and we generally require YASM for SIMD support. This commit remoes support for using the few remaining SIMD intrinsics without having YASM to provide implementations of x265_emms(), x265_cpu_cpuid(), etc. Fixing a bug in the process. [d7b5e73fc91a] * doc/reST/cli.rst: doc: fix typo (closes #83) [7192725cbb0a] * doc/reST/cli.rst, source/common/param.cpp, source/x265.cpp, source/x265.h: param: allow NR values from 1..99, clarify docs (closes #87) [21b869f9f706] * doc/reST/Makefile, doc/reST/conf.py, doc/reST/x265.rst: doc: add support for reST generated man-pages (closes #89) This patch was attached to issue #89 by djcj [ff08fd9b294c] * source/common/constants.cpp: constants: adjust lambda tabels for 10bit encodes (fixes #55) Since samples are 10bits, where two bits of extra resolution has been added to add more granularity, distortion also has two extra bits. A typical resolution for this problem is to down-shift distortion by 2 bits everywhere, before adding lambda * bits to calculate RD cost. Instead, we multiply lambda by 4 (essentially shift it up by two bits) so distortion and lambda * bits are both at the higher scale. lambda2 uses the square of the up-shifted lambda, so it has the doubled up-shift same as the squared distortion values used for RDO. Example output change: ./x265 /Volumes/video/sintel_trailer_2k_480p24.y4m o.bin --ssim --no-info Main: 195.67 kb/s, SSIM Mean Y: 0.9833338 (17.782 dB) Main10 before: 363.49 kb/s, SSIM Mean Y: 0.9888182 (19.515 dB) Main10 after: 206.54 kb/s, SSIM Mean Y: 0.9855121 (18.390 dB) [014a1e0fb58b] 2014-12-03 Gopu Govindaswamy * source/encoder/encoder.cpp: encoder: fix binary mismatch for analysis load vs save with same bitrate [50d2b92ecc89] 2014-12-02 Steve Borho * Merge [de54cffaecf2] 2014-11-27 Divya Manivannan * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: luma_vpp[8x16, 8x32] in avx2: improve 1139c->774c, 1968c->1452c [2e055cbc9046] * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: luma_vpp[12x16] in avx2: improve 1977c->1418c [ef4ca8474f5c] * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: luma_vpp[24x32] in avx2: improve 5637c->3695c [8aeeaf6950f7] * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: luma_vpp[48x64] in avx2: improve 21298c->14696c [d97b1c9f5106] 2014-12-02 Deepthi Nandakumar * source/x265.cpp: x265: add ratetol to command line help [f636a0aadd68] 2014-12-01 Deepthi Nandakumar * source/CMakeLists.txt, source/encoder/encoder.cpp, source/x265.h: encoder: free csv file name Since strdup is used uniformly for filenames, csvfn cannot be const. [bde1753de250] 2014-11-27 Divya Manivannan * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: luma_vpp[8x16, 8x32] in avx2: improve 1139c->774c, 1968c->1452c [5ee693e4b5fa] * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: luma_vpp[12x16] in avx2: improve 1977c->1418c [e280ce2e5076] * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: luma_vpp[24x32] in avx2: improve 5637c->3695c [e1ca311bbb5b] * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: luma_vpp[48x64] in avx2: improve 21298c->14696c [984271a3aae9] 2014-11-30 Deepthi Nandakumar * source/x265.cpp: x265: remove validateFanout [d9f835ddd112] 2014-11-27 Satoshi Nakagawa * source/common/pixel.cpp, source/common/primitives.h, source/common/quant.cpp, source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h, source/test/pixelharness.cpp, source/test/pixelharness.h: primitives: refactor tskip related [90401d77a05d] 2014-11-28 Satoshi Nakagawa * source/common/dct.cpp, source/common/quant.h, source/common/x86/dct8.asm, source/common/x86/dct8.h, source/encoder/search.cpp: nits [e2db5f3c6df8] 2014-11-28 Deepthi Nandakumar * source/common/param.cpp: param: disable b-intra in B frames when tune grain is true. [d32249002258] 2014-11-25 Gopu Govindaswamy * source/encoder/encoder.h: encoder: make all member fields public [af6b68f0feaa] 2014-11-26 Steve Borho * doc/reST/cli.rst, doc/reST/presets.rst: doc: restructure documentation with better grouping, improve cross- refs [dfe0803ae6be] * doc/reST/introduction.rst: doc: fix a sphinx build warning [f488b394693b] * doc/reST/presets.rst: doc: improve readability of film grain section [03bd64057e72] * doc/reST/cli.rst, doc/reST/presets.rst: doc: add cbr to the list of tunings, add helpful cross-refs [071dbe651364] 2014-11-27 Aarthi Thirumalai * source/CMakeLists.txt, source/common/param.cpp, source/encoder/ratecontrol.cpp, source/x265.cpp, source/x265.h: rc: introduce cli option to tune for cbr. [8e602ed5ca4c] 2014-11-25 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: rc: improve the frame size planning with respect to vbv buffer occupancy and the lookahead window. [2870269cdd60] * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: rc: adjust qp for B frames from ABR feedback in case of CBR. limits the bitrate fluctuation for CBR with respect to the target bitrate set. [576c675adf92] * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: rc: limit bit amortization in ABR to longer sequences [11342c8376dd] 2014-11-26 Steve Borho * source/encoder/ratecontrol.cpp: rc: use c-style typecasts [c67b4f3a5e3c] 2014-11-19 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: rc: tune midframe vbv logic for B frames [8f5fa9538e13] 2014-11-21 Aarthi Thirumalai * source/encoder/slicetype.cpp: slicetype: fix vbv lookahead data collection for all frames within the lookahead window. [52246e09727d] 2014-11-26 Divya Manivannan * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: luma_hpp[8x8, 8x16, 8x32] in avx2: improve 623c->523c, 1384c->1083c, 2555c->2058c [01d82aa06285] 2014-11-26 Aasaipriya Chandran * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: Luma_hpp[48x64] avx2 asm code : improved 25053c->17882c [bb7303bb00d1] 2014-11-26 Divya Manivannan * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: luma_hpp[8x4] in avx2: improve 357c->261c [a88ddc970748] 2014-11-26 Aasaipriya Chandran * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: Luma_hpp[32x8 , 32x16 , 32x24 , 32x32 , 32x64] avx2 asm code: improved 2032c->1556c, 4238c->3014c, 6696c->4801c, 8697c->6433c, 16823c->12297c [b0153f354186] 2014-11-26 Divya Manivannan * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: luma_vpp[64x16] in avx2: improve 7245c->4910c [5700875b428f] * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: luma_vpp[64x32, 64x48, 64x64] in avx2: improve 14150c->9810c, 21132c->14684c, 28663c->19616c [db518f7c8474] 2014-11-25 Divya Manivannan * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: luma_vpp[32x8] in avx2: improve 2047c->1472c [d57c28a3010b] * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: luma_vpp[32x24] in avx2: improve 5562c->3899c [dedc5a8589a6] * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: luma_vpp[32x16] in avx2: improve 3808c->2491c [3db00b06aea6] * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: luma_vpp[32x32, 32x64] in avx2: improve 7247c->4909c, 14365c->9774c [adf15e303c37] * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: luma_vpp[16x32, 16x64] in avx2: improve 3875c->2463c, 7499c->4894c [45456cd145d8] 2014-11-25 Aasaipriya Chandran * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: avx2 for Luma_hpp[16x4, 16x8, 16x12, 16x16 , 16x32, 16x64] 619c->458c, 1174c->812c, 1694c->1112c, 2291c->1535c, 4846c->3207c, 9294c->6104c [d11d3120361f] * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: avx2 for luma_hpp[64x64, 64x48, 64x32, 64x16] 33137c->22606c , 24826c->17202c , 16726c->11560c , 7830c->5534c [1e8a0f1e0889] 2014-11-22 Steve Borho * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: do not use bitmaps for framefilter if not WPP The non-WPP row loop wants to do frame filter work in between each row, with a m_filterRowDelay lag. If we use the functions which update the bitmap, it would allow a worker thread to process a filter row before it was ready. In short, the non-WPP path was never intended to work in the presence of a thread pool. This was causing crashes when --no-wpp --pmode||--pme was used. [8011e2a68b88] 2014-11-24 Steve Borho * source/encoder/frameencoder.cpp: frameencoder: release row lock while waiting during VBV restarts This fixes what appears to have been an old deadlock bug that has just recently become very reproducible [82f6e4847d57] 2014-11-21 Divya Manivannan * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: luma_vpp[16x4] in avx2: improve 734c->497c [3c6f703f94ea] * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: luma_vpp[16x8] in avx2: improve 1195c->745c [fc83cf5299ae] * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: luma_vpp[16x12] in avx2: improve 1644c->1018c [65017182318c] 2014-11-21 Praveen Tiwari * source/common/dct.cpp: idct32_c: C code optimization [346fccbba4de] * source/common/dct.cpp: idct16_c: optimization [388c893d3825] * source/common/dct.cpp: idct8_c: optimization [f7d7c480b85d] * source/common/dct.cpp: idct4_c: optimization [69a472a77b49] * source/common/dct.cpp: dct32_c: optimization [a60dfb900169] * source/common/dct.cpp: dct16_c: optimization [7e94ea285179] * source/common/dct.cpp: dct8_c: optimization [d426e93e240c] * source/common/dct.cpp: dct4_c: C code optimization [d4376e113855] * source/common/dct.cpp: idst4_c: optimization [8f373c20bc41] * source/common/dct.cpp: dst4_c: optimization [49b66c57972d] 2014-11-21 Satoshi Nakagawa * source/common/pixel.cpp, source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: fix copy16to16_shl [5a8da9cb52e8] 2014-11-20 Steve Borho * source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/search.cpp, source/encoder/search.h: analysis: explicit locking for pmode and pme parameters We've found a repro case involving --no-wpp --pmode --pme --preset slower where time starved worker threads get stuck in the findJob() routine and pushed off the CPU in the mean time the master thread moves on to another CU. This caused very hard to reproduce crashes. [2f8df4c972b9] 2014-11-20 David T Yuen * source/common/vec/dct-sse3.cpp: Updated intrinsic of idct8 sse3 for new input format [2abf89f5c4f2] 2014-11-20 Divya Manivannan * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: luma_vpp[16x16] in avx2: improve 2141c->1284c [2a2142982602] * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: luma_vpp[8x4] in avx2: improve 498c->257c [c2fd1b7d5d99] * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: luma_vpp[8x8] in avx2: improve 701c->387c [562c43f738e4] 2014-11-20 Steve Borho * source/encoder/encoder.cpp: encoder: nits and alloc zero fix intraData needs to be zerod on allocation else if one of the later allocs failed some of the pointers will be uninitialized and passed to X265_FREE() [80dcd3dfb805] 2014-11-20 Praveen Tiwari * source/common/dct.cpp: Fix for C code mismatch This patch is for fix the the binary mismatch in encoded output introduced during refactorizaton of the transform/quant path. Basically it is original version of code to make sure all valid inputs are copied in input buffer, in other hand it is not fully optimized code but this patch is quick fix for the problem and allow us to optimze one function at a time. [1d17ec0cb954] 2014-11-20 Satoshi Nakagawa * source/common/pixel.cpp: fix for old gcc [ed587d360b97] 2014-11-20 Deepthi Nandakumar * build/icl32/build-all.bat, build/icl32/make-makefile.bat, build/icl64/build-all.bat, build/icl64/make-makefile.bat: build: remove icl32 and icl64 scripts Typical Windows ICL users link with Visual Studio [3649fabf90d3] 2014-11-20 Praveen Tiwari * source/common/x86/ipfilter8.asm: luma_hpp[4x4]: AVX2 asm code bug fix [4b637cb9b792] 2014-11-20 Gopu Govindaswamy * source/encoder/encoder.cpp: encoder: fix analysis file read [0c25a6eac0ca] 2014-11-20 Satoshi Nakagawa * source/encoder/analysis.cpp: fix for rd=0 [b33cbe130c63] * source/common/cudata.cpp, source/common/cudata.h, source/encoder/analysis.cpp, source/encoder/frameencoder.cpp, source/encoder/search.cpp: replace char to int8_t, where it should be signed char [14a8bb7bbcab] 2014-11-19 Praveen Tiwari * source/common/x86/asm-primitives.cpp: disable denoiseDct asm code until fixed for Mac OS [f236adb703f5] 2014-11-16 Satoshi Nakagawa * source/common/dct.cpp, source/common/ipfilter.cpp, source/common/picyuv.h, source/common/pixel.cpp, source/common/predict.cpp, source/common/primitives.h, source/common/quant.cpp, source/common/quant.h, source/common/shortyuv.cpp, source/common/vec/dct-sse3.cpp, source/common/vec/dct-ssse3.cpp, source/common/x86/blockcopy8.h, source/common/x86/dct8.h, source/common/x86/ipfilter8.h, source/common/x86/mc.h, source/common/x86/pixel-util.h, source/common/x86/pixel.h, source/common/yuv.cpp, source/encoder/analysis.cpp, source/encoder/rdcost.h, source/encoder/search.cpp: primitives: clarify constness [99b5cebf8193] 2014-11-18 Steve Borho * source/common/dct.cpp: dct: fix gcc warnings [34cb58c53859] 2014-11-18 Praveen Tiwari * source/common/dct.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/quant.cpp, source/common/quant.h, source/common/vec/dct-sse3.cpp, source/common/vec/dct-sse41.cpp, source/common/vec/dct-ssse3.cpp, source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h, source/common/x86/dct8.asm, source/common/x86/dct8.h, source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm, source/test/mbdstharness.cpp, source/test/mbdstharness.h, source/test/pixelharness.cpp, source/test/pixelharness.h: refactorizaton of the transform/quant path. This patch involves scaling down the DCT/IDCT coefficients from int32_t to int16_t as they can be accommodated on int16_t without any introduction of encode error, this allows us to clean up lots of DCT/IDCT intermediate buffers, optimize enode efficiency for different cli options including noise reduction by reducing data movement operations, accommodating more number of coefficients in a single register for SIMD operations. This patch include all necessary changes for the transfor/quant path including unit test code. [8bee552a1964] 2014-11-19 Satoshi Nakagawa * source/common/common.h: fseeko for mingw32 [cb9bb697fcaa] 2014-11-19 Steve Borho * source/common/threading.h: threadind: fixes for VC11 Win32 includes, prune two unused functions [2b830f08d948] 2014-11-18 Steve Borho * source/common/wavefront.cpp: wavefront: fix msvc warning warning C4800: 'unsigned long' : forcing value to bool 'true' or 'false' (performance warning) [e29c618cd9a7] * source/common/param.cpp, source/common/quant.cpp, source/common/threading.h, source/common/threadpool.cpp, source/common/wavefront.cpp, source/common/wavefront.h, source/common/winxp.h, source/encoder/entropy.cpp, source/encoder/slicetype.cpp: threading: use 32bit atomic integer operations exclusively The 32bit operations have better portability and have less onerous alignment restrictions. [814b687db30e] * source/common/constants.cpp, source/common/constants.h, source/common/primitives.cpp, source/encoder/api.cpp, source/test/intrapredharness.cpp: constants: remove init/destroyROM functions [d3389bb9efd0] * source/x265.h: api: fix range limit docs for RQT limit params [d059cfa88f1a] * source/encoder/frameencoder.cpp: frameencoder: white-space nits [29a374b62920] * source/encoder/analysis.cpp: analysis: drop MATCH_NON_PMODE macro this was a debugging feature, it's not being tested which means it will get broken and so it's best just to keep the code clean [dc61091d5cc4] * source/common/threading.cpp: threading: don't use this-> We don't do this anywhere else [3731d9bc7b88] * source/common/threading.cpp, source/common/threading.h, source/common/threadpool.cpp, source/common/threadpool.h: threading: copyright comment format nits be consistent with our other files [a7b9b90e1bdd] * source/common/param.cpp: param: use strdup() on input strings uniformly [ad532c30bc95] 2014-11-18 Deepthi Nandakumar * source/encoder/encoder.cpp: encoder: init filename to NULL [2f0062f0791b] 2014-11-17 Gopu Govindaswamy * source/common/common.h, source/encoder/analysis.cpp, source/encoder/search.cpp: search: fix binary mismatch and inconsistent crash for share inter information [854fcbb50220] * source/encoder/encoder.cpp: encoder: force slicetype using analysis file [05d824463602] 2014-11-17 Satoshi Nakagawa * source/common/cudata.cpp, source/common/lowres.h, source/common/mv.h, source/encoder/bitcost.h, source/encoder/motion.cpp, source/encoder/motion.h, source/encoder/slicetype.cpp: modify MV default constructor to do nothing [7a1ec67bd004] 2014-11-17 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: vbv: tune vbv predictors for better mapping of predicted bits to encoded bits [27d36c4b4a27] 2014-11-16 Deepthi Nandakumar * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: cleanups, init pointers, variable names are made self- explanatory [ed2ba7a90567] 2014-11-12 Gopu Govindaswamy * source/encoder/analysis.cpp: analysis: fix binary mismatch for share intra save and load mode with same cli [10b8d3fbe408] 2014-11-14 Steve Borho * source/x265.cpp: cli: fix analysis filename argument This showed up as a GCC warning about an unused variable, but having the arg handled here prevented the org from being passed to x265_param_parse() [8191e0d02455] * source/encoder/encoder.cpp: encoder: add prefix to FREAD and FWRITE macros to avoid MacOSX macro conflict /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform /Developer/SDKs/MacOSX10.10.sdk/usr/include/sys/fcntl.h:111:9: note: previous definition is here #define FWRITE 0x0002 [b617dca5ce12] * source/common/common.h, source/common/frame.h, source/encoder/encoder.h: common: move analysis reuse structs to common.h files in common/ shouldn't include encoder.h [72f1222903a3] 2014-11-14 Satoshi Nakagawa * source/encoder/analysis.cpp: analysis: encodeResidue() directly write to reconPic [c3096034934f] 2014-11-14 Deepthi Nandakumar * source/CMakeLists.txt, source/common/common.h, source/common/frame.h, source/common/param.cpp, source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/api.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h, source/x265.cpp, source/x265.def.in, source/x265.h: analysis save/load: refactor full implementation 1. Move analysis inter/intra data into encoder 2. Encoder allocates and frees memory for x265 analysis, remove api calls 3. Inter and intra data allocated based on sliceType only 4. frame record size is now variable [58c2e06c2e4a] 2014-11-13 Satoshi Nakagawa * source/encoder/analysis.cpp: analysis: don't add the cost of picture boundary CU to avgCost [CHANGES OUTPUT] [64314f8061f1] 2014-11-13 Steve Borho * source/cmake/FindVLD.cmake: cmake: hack to avoid escaping problems in cmake 3.1 parser Fix suggested by Mario *LigH* Rohkrämer [17f2fb0996db] 2014-11-13 Satoshi Nakagawa * source/common/cudata.cpp, source/encoder/analysis.cpp, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/sao.cpp: nits [03974d78f241] 2014-11-12 Steve Borho * source/encoder/rdcost.h: rdcost: lower the psy-rd scale factor for I slices to 96/256 Based on Santhoshini's testing, this is better at preventing artifacts [18aefbde72ab] 2014-11-11 Satoshi Nakagawa * source/common/cudata.cpp, source/common/cudata.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: refine initializeGeoms() [98fb658f3229] 2014-11-11 Steve Borho * source/encoder/analysis.cpp: analysis: fix bidir non-determinism in --pmode --rd 5 [306ef9782a30] * source/common/param.cpp, source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: Merge [fa2fedd97ff2] 2014-11-10 Steve Borho * source/common/quant.cpp: quant: allow --nr in all slice types evenly [38fa64a5c51c] 2014-11-06 Deepthi Nandakumar * source/common/common.h, source/common/quant.cpp, source/common/quant.h: noiseReduction: apply only for I and P, move NoiseReduction to quant.h This doubles the number of quant nr categories; intra blocks now use the lower half. [ed89e58b44e8] 2014-11-10 Steve Borho * doc/reST/cli.rst, source/common/param.cpp: param: raise --nr limit to 2000 [27f293dd9eee] * doc/reST/presets.rst, source/common/param.cpp: param: remove --b-intra from --tune grain, document rdoq restriction [64ccc616be33] 2014-11-09 Steve Borho * source/encoder/rdcost.h: rdcost: experimental slice-type based psy-rd scale factor [4f3fd7ab8868] 2014-11-08 Steve Borho * source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/search.cpp: analysis: RDO based BIDIR decisions At RD 0, 1, and 2, this changes 2Nx2N bidir from a SATD decision to an SA8D decision. At RD 3 and 4, if the bidir SA8D cost is within 17/16 of the best inter cost, then it makes an RDO decision between bestInter and Bidir (allowing psy-rd to influence the decision, which is the whole point) At RD 5 and 6, 2Nx2N BIDIR is yet another RD choice at the same level as 2Nx2N inter and rect and amp. (psy) RDO picks the best mode for each block. [4c6c28cc93d9] 2014-11-11 Deepthi Nandakumar * source/x265.cpp: x265: more meaningful error messages in analysis [838e41fb256b] * source/encoder/api.cpp: api: cleanup [3c01e8881946] * source/encoder/api.cpp: api: replace analysis data with pre defined constant [b4effa4dd53b] * source/x265.cpp: x265: create and initialise recon object if analysis mode is enabled [47b290236ca3] * source/common/param.cpp: param: add default value to analysis mode [5c397e744cfd] 2014-11-11 Gopu Govindaswamy * source/encoder/analysis.cpp, source/encoder/api.cpp, source/x265.cpp, source/x265.h: x265: remove redundant variables from intra and inter analysis structure [ad5177c86756] * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h, source/x265.h: analysis: Dump best MV statistics and re-use this for analysis load mode This patch fixes a bug in inter slices in analysis=load|save mode. Inter data for all partitions is now saved correctly. [c8004323493e] 2014-11-10 Satoshi Nakagawa * source/common/cudata.cpp, source/common/cudata.h, source/common/deblock.cpp, source/encoder/analysis.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/search.cpp: cleanup SIZE_NONE. empty CU has MODE_NONE. [32513a4c3bd4] 2014-11-09 Steve Borho * source/encoder/search.cpp: search: fixup [1e04e178a349] 2014-11-08 Steve Borho * source/encoder/reference.cpp, source/encoder/reference.h, source/encoder/search.cpp: reference: add methods for querying CU/PU pointers [9687a9d1205a] * source/encoder/analysis.cpp: analysis: delay initialization of prediction cu in RD 5 and 6 [b9147e641ce6] 2014-11-09 Satoshi Nakagawa * source/encoder/analysis.cpp: fix typo [3dc9857c59d3] 2014-11-08 Steve Borho * source/encoder/analysis.cpp: analysis: delay initialization of prediction cu until just before use This avoids initializing CUs that may never be used because of various early-outs [3f2d68368554] * source/encoder/search.cpp, source/encoder/search.h: search: keep AMVP candidates in mode structure This fixes some work replication in --pme and will also make handling BIDIR as a seperate prediction easier. [6124c837b3ab] * source/encoder/motion.h, source/encoder/search.cpp, source/encoder/slicetype.h: motion: remove trivial set methods; make some members public [53c146f7eb9f] 2014-11-07 Steve Borho * source/encoder/frameencoder.cpp: nr: fix denoise offset memcopy size [0912563c4ac1] * source/encoder/entropy.h: entropy: pass context model (state) to bitsCodeBin as uint32_t Should be slightly more efficient [a67b848d6c04] * source/encoder/entropy.cpp: entropy: nit [b55799a2f5ad] * source/encoder/entropy.cpp: entropy: ensure X265_CHECK() has braces [0fd8e0c5272a] * source/encoder/entropy.cpp, source/encoder/entropy.h: entropy: inline methods which mapped to encodeBin() calls [640d2936e699] * source/encoder/entropy.cpp, source/encoder/entropy.h: entropy: inline bit counting functions [ca7873cab172] * source/encoder/entropy.cpp: entropy: use bitsCodeBin in intra mode bit estimate functions [84fc74874406] * source/encoder/entropy.cpp, source/encoder/entropy.h: entropy: rename encodeBinContext to bitsCodeBin, make const The function is not modifying the context, so there is no need to pass as a reference, and the function can be const. Also, group the bit counting RDO functions together [a1ee9422183b] * source/encoder/entropy.cpp: entropy: white-space nits [429742055057] 2014-11-07 Satoshi Nakagawa * source/encoder/search.cpp: fix bug in 522baf03fbbd [f2130a4dc876] 2014-11-07 Deepthi Nandakumar * source/encoder/search.cpp: search: fix warnings [7338b1f1f43d] 2014-11-07 Satoshi Nakagawa * source/encoder/analysis.cpp: fix typo [4f034e3adef8] 2014-11-05 Ashok Kumar Mishra * source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/search.cpp, source/encoder/search.h: [REVIEW PATCH/OUTPUT CHANGED]search: removed multiple encode Coefficients from estimateResidualQT() Tried to remove multiple encode coefficients from estimateResidualQT() function. Coefficients are encoded in three stages: Once for calculation of distortion and twice for split and unsplit block cost calculation. I have given comments where I have changed the code. [eb5a9eb03dd6] * source/encoder/search.cpp, source/encoder/search.h: search: made a function for null cost calculation in xEstimateResidualQT() [522baf03fbbd] * source/encoder/search.cpp, source/encoder/search.h: search: made separate functions for encoding cbfs in xEstimateResidualQT() [0b7c709335b2] 2014-11-07 Satoshi Nakagawa * source/common/cudata.cpp, source/common/cudata.h: cudata: remove default argument [bc4f3dab51db] 2014-11-06 Steve Borho * doc/reST/presets.rst: doc: fix sub-title depth Single dash was already used by a higher section [0ebd0b00bf9b] * doc/reST/cli.rst, doc/reST/presets.rst, source/common/param.cpp: param: add --tune grain [ec5588025568] * source/encoder/search.cpp: search: ugly bias hack for bidir with psy-rd [e33e09549c0c] * doc/reST/cli.rst: docs: document RC params, at least minimally [beac946dac85] * source/x265.h: api: cleanup comments [8ceaab303bfa] * source/x265.cpp: cli: cleanup CLI help, add 'verbose' tier Remove a lot of uncommon features from the initial help output, require --log-level debug --help to see it all [f599a4df57ac] * source/common/param.cpp, source/x265.cpp: api: expose rate control params via x265_param_parse() and CLI Adds range checks for qCompress, which has documented limits. The others have very minimal explanations; so I'm not adding them to the CLI help. Users should not touch them unless they know what they are doing. Note this commit doesn't bump X265_BUILD since no new params were added. [b37cda5d3092] 2014-11-05 Steve Borho * source/common/deblock.cpp: deblock: fix type conversion warnings [4a3997fd4fc1] 2014-11-05 Satoshi Nakagawa * source/common/deblock.cpp, source/common/deblock.h, source/common/quant.cpp, source/common/slice.h, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/framefilter.cpp, source/encoder/rdcost.h, source/encoder/sao.cpp: refine deblocking filter [65e14d5a5728] 2014-11-04 Gopu Govindaswamy * source/x265.cpp: cli: bug fix for validatefanout param analysis-mode=save and load [2a8f3d5820a6] 2014-11-04 gopi jayaraman * source/encoder/encoder.cpp: encoder: use 6 frameNumThreads for cpucount 32 and above [0dcc6a1d8f02] 2014-11-04 Steve Borho * source/x265.h: api: add void to functions that take no parameters for -Wstrict- prototypes [0d44fcb269a6] * source/common/deblock.cpp, source/common/frame.cpp, source/common/frame.h, source/common/framedata.h, source/common/predict.cpp, source/encoder/analysis.cpp, source/encoder/dpb.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/encoder/ratecontrol.cpp, source/encoder/sao.cpp, source/encoder/search.cpp, source/encoder/slicetype.cpp, source/encoder/weightPrediction.cpp: frame: rename m_reconPicYuv -> m_reconPic, m_origPicYuv -> m_fencPic the fooPicYuv names were potentially confusing, preferred names: PicYuv* fooPic; Yuv* fooYuv; [67bf055c13d5] * source/encoder/motion.cpp, source/encoder/motion.h: motion: remove unused sa8d pointer and bufSA8D method [59a08101dfc6] 2014-11-04 Gopu Govindaswamy * source/common/cudata.h, source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/api.cpp, source/encoder/encoder.cpp, source/encoder/search.cpp, source/encoder/search.h, source/x265.cpp, source/x265.h: search: dump and share the best motion statistics for inter(P&B) slices [d5f6133b99d4] 2014-11-03 Steve Borho * doc/reST/cli.rst: docs: fix reST parsing issues [a8ec469d7fb1] 2014-11-03 Min Chen * source/common/primitives.h, source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm: cleanup: remove unused asm calcrecon [5637b495e2e1] * source/common/x86/ipfilter8.asm: asm: fix typo error in interp_8tap_vert_pp_4x4_avx2 [ee88b63aced0] 2014-11-03 Satoshi Nakagawa * source/common/cudata.cpp, source/common/cudata.h, source/common/quant.cpp, source/encoder/analysis.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/search.cpp: cleanup CUData::m_skipFlag [2e60f3b81981] 2014-10-31 Steve Borho * source/encoder/encoder.cpp: encoder: make it clear that --fast-cbf is innefective at lower rd levels This begs the question of whether the feature should exist, or whether it should be added to the lower RD levels [eebb372eec89] * source/common/param.cpp: param: show options using their CLI / param_parse names [c32a733a819b] 2014-10-30 Steve Borho * .hgtags: remove dead non-release tags anyone interested in archeology can still find them; there's no sense to keep them on the tip since we stopped tracking last known good more than a year ago [75cb2ab1ecec] 2014-10-31 Steve Borho * source/encoder/encoder.cpp: Merge with stable [ae8a661acdc4] * .hgtags: Added tag 1.4 for changeset 5e604833c5aa [d2db9c1ab44b] * source/encoder/encoder.cpp: encoder: emit an Active Parameter Sets SEI in stream headers if interlaced The APS is technically required if we're going to be emitting picture timing SEI which we do for HRD and for interlaced inputs. The lack of APS for interlaced content was causing a warning from the HM decoder and on Windows the decoder would later crash. [5e604833c5aa] [1.4] 2014-10-30 Steve Borho * source/encoder/slicetype.cpp: slicetype: fix an msvc warning [c369e6a12710] 2014-10-30 Min Chen * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: AVX2 version luma_vpp[4x4], improve 391c -> 302c [f0f073deb207] * source/common/x86/ipfilter8.asm: asm: replace constant table tab_c_512 by pw_512 [b39313659e71] * source/common/x86/ipfilter8.asm: asm: replace constant table tab_c_128 by pb_128 [7bb7f03d3e6b] 2014-10-30 Nicolas Morey-Chaisemartin * source/common/lowres.cpp, source/common/lowres.h, source/encoder/slicetype.cpp: lowres: save intra mode in lowres [7047fec7140a] 2014-10-30 Steve Borho * doc/reST/api.rst: doc: make a note about how to ensure the version number is accurate [f807d346663e] * source/encoder/encoder.cpp: encoder: fix some obviously incorrect comments [de28d1b07e6f] * doc/reST/cli.rst, source/common/param.cpp, source/encoder/encoder.cpp, source/x265.cpp, source/x265.h: Merge with stable [0f14e29eceb1] * source/encoder/encoder.cpp: encoder: give more warnings when features are automatically disabled and add comments describing why the combinations are prevented. Some of them are simply impossible, the option would have no affect and so it is best not to pretend it is enabled. Some will not be useful (have a negative impact on performance with no compression improvement). And others are just currently broken and not typically used. [ba3193adff60] * doc/reST/cli.rst, source/common/param.cpp, source/x265.cpp, source/x265.h: api: allow --psy-rdoq values up to 50; it can be beneficial for film grain [73c243602b07] * source/encoder/analysis.cpp: analysis: remove TODO comment, I've given up on the idea [31d648740464] 2014-10-29 Gopu Govindaswamy * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: search: move m_bestME[] from search to Mode structure [a147b3b6c2f7] 2014-10-29 Steve Borho * doc/reST/cli.rst, doc/reST/threading.rst, source/x265.h: docs: improve --pmode documentation, the feature is fully functional [9b73a4d2210a] * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: inline checkBestMode(), improve comments [86ca1de606e3] * source/encoder/analysis.cpp: Merge with stable [2b7d08c60105] * source/test/CMakeLists.txt, source/test/testpool.cpp: cmake: remove obsolete pool test [393eb6c95e7c] * source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/frameencoder.cpp, source/encoder/search.cpp, source/encoder/search.h: search: nits - pull Mode out of Search class, remove unused NUM_LAYERS [2bcf4e77b4bf] * source/encoder/analysis.cpp: analysis: do not allow top-skip and depth earlyout in --pmode with --rd 5/6 Now outputs match or are better than those without --pmode [476acb7a4088] 2014-10-29 Min Chen * source/common/x86/asm-primitives.cpp: asm: correct wrong index name [3995c5e0f313] 2014-10-29 Steve Borho * source/encoder/analysis.cpp: analysis: clarify --rd 1 [2a719b6e07ee] * source/encoder/analysis.cpp: analysis: add #if to make pmode exactly match non-pmode This switch will throw away the hard work of some worker thread, so it should only be used for debugging. With the flag enabled, pmode matches non-pmode output exactly for RD levels 2, 3 and 4. But RD 5 and 6 still have problems. [e92170188568] * doc/reST/cli.rst, doc/reST/presets.rst: Merge with stable [31ed48cdbefe] * doc/reST/cli.rst, doc/reST/lossless.rst, doc/reST/presets.rst: docs: update preset table and various command line options [812ce345a14d] * source/encoder/analysis.cpp, source/encoder/search.cpp: Merge with stable [210967feb8c3] 2014-10-30 Satoshi Nakagawa * source/common/predict.cpp, source/common/predict.h, source/encoder/analysis.cpp, source/encoder/search.cpp: fix rd=0,1 [41220fab15c1] 2014-10-29 Ashok Kumar Mishra * source/encoder/search.cpp: search: nit [27827068b3ec] 2014-10-29 Steve Borho * doc/reST/cli.rst, source/CMakeLists.txt, source/common/param.cpp, source/encoder/encoder.cpp, source/x265.cpp, source/x265.h: api: expose deblocking filter offsets as public params, deprecate --[no-]lft It was always a bit unfortunate to base the deblock param name on loop filter when HEVC has two (deblock and SAO). Now we support --deblock=: and similar options as x264 does [f58a1cc0126a] * source/x265.h: api: improve comment for bEnableCbfFastMode [f834d2e8195f] * source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/search.cpp, source/encoder/search.h: search: relocate intra in inter functions to search.cpp [fe3b88e11f44] * source/encoder/analysis.cpp, source/encoder/search.cpp: Merge with stable [f5603998be03] * source/encoder/analysis.cpp: analysis: fix for --rd 0, do not assume a CU is only inter or intra [3aec7242d0be] * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: search: split generateCoeffRecon() into its two callers, improve comments The function consisted of a big if (inter) else (intra) expression and it had only two callers, one which knew it was inter and one which knew it was intra. [7c2b831e52fb] 2014-10-29 gopi jayaraman * source/encoder/analysis.cpp: analysis: rect cost compare typo fix for pmode [da5ba239bf59] 2014-10-28 Steve Borho * source/encoder/search.cpp: search: ensure RDOQ entropy state is always initialized for chroma intra Fixes non-determinism seen in --preset slow and lower [afb216f71318] * doc/uncrustify/apply-to-all-source.py, doc/uncrustify/drag- uncrustify.bat, source/Lib/COPYING.HM, source/Lib/README.txt, source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPicYuvMD5.cpp, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.h, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/common/vec/blockcopy- sse3.cpp, source/encoder/cturow.cpp, source/encoder/cturow.h, source/encoder/predict.cpp, source/encoder/predict.h: Merge with default (prep for 1.4 release) [24b4177ea1ec] * source/encoder/search.cpp: search: trModeC -> tuDepthC [7cfc1edb083f] * source/encoder/entropy.cpp: entropy: simplify loadIntraDirModeLuma [42566b53b96d] * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: search: make getIntraRemModeBits() const [c561b0e99684] * source/encoder/analysis.cpp, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/search.cpp: search: add a fast method for estimating non-MPM intra mode signal cost [9cdc7c61d3fb] * source/encoder/analysis.cpp, source/encoder/search.cpp: search: move getIntraDirLumaPredictor() into getIntraRemModeBits() [9cc367aa2b40] * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: search: use fast-path to get mpm mode signal cost inline single caller of getIntraModeBits [5b1d67874dd3] * source/encoder/entropy.cpp, source/encoder/entropy.h: entropy: make a fast const method for getting MPM mode signal cost [7400828ccd0e] * source/encoder/search.cpp: search: simplify checks for 2x2 chroma blocks "log2TrSize == 2 && m_csp != X265_CSP_I444" essentially means that the chroma transform would be 2x2, aka log2TrSizeC == 1. In offsetSubTUCBFs(), the chroma tu size is not calculated but implied. We should be able to skip the X265_CSP_I444 check since the function should only be called by 4:2:2 encodes that code two half- sized chroma blocks per luma block [90e1b515a364] * source/encoder/search.cpp: search: remove redundant work from residualTransformQuantInter() [252f886f4871] * source/common/cudata.cpp, source/common/cudata.h, source/encoder/analysis.cpp, source/encoder/entropy.cpp, source/encoder/search.cpp: cudata: split getQuadtreeTULog2MinSizeInCU() into intra/inter functions The caller usually knows what the CU prediction mode is [98573a12738d] * source/encoder/search.cpp: search: remove redundant logic [689e105ae41f] * doc/uncrustify/apply-to-all-source.py, doc/uncrustify/drag- uncrustify.bat: doc: remove uncrustify helper scripts I don't expect a lot of whole-new file development or wholesale style enforcement. Leave the config script in place for new developers. [f91c01f6ca83] 2014-10-28 Ashok Kumar Mishra * source/encoder/search.cpp: [OUTPUT CHANGED for 422] made loops for chroma components in xEstimateResidualQT() The output change for 422 is valid. Initially the no. of bits(cbf and coeff.) were calculated per block and per chroma component. Now the no. of bits are calculated per chroma component. [554dd4aad4a0] 2014-10-27 Steve Borho * source/encoder/search.h: search: sync up argument names between source and header [fa79ec52c34d] * source/encoder/search.cpp, source/encoder/search.h: search: remove x prefixes from inter residual coding functions [da3191896381] * source/encoder/search.cpp, source/encoder/search.h: search: use Cost instances to accumulate costs in xEstimateResidualQT [efe17882bca5] * source/encoder/search.cpp: search: nits [4ad4ba77a339] * source/common/cudata.cpp, source/common/cudata.h: cudata: coding style nits * reorder arguments so outputs are listed first * pass const by reference * return single integer output rather than pass by reference * A == 0 ? B : C => A ? C : B; * standardized variable names (puIdx, absPartIdx, etc) [4afcdb09550e] * source/common/cudata.cpp, source/common/cudata.h: cudata: perform MV scaling directly within POC distance function this avoids some code duplication and is also a bit more efficient [59df6b4fe1d7] * source/encoder/encoder.cpp, source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: remove top-level Encoder pointer from Slicetype Move the slice type assignment earlier to happen even before the picture is given to the lookahead [3ccb20b6c022] * source/encoder/encoder.cpp: encoder: nit cleanup of code copying data from input picture [84f4cb50fe46] * source/common/cudata.cpp, source/common/deblock.cpp, source/common/frame.h, source/common/predict.cpp, source/common/predict.h, source/common/quant.cpp, source/encoder/analysis.cpp, source/encoder/dpb.cpp, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/encoder/ratecontrol.cpp, source/encoder/sao.cpp, source/encoder/slicetype.cpp, source/encoder/slicetype.h: fix some header include loops [fd95b6a592ee] * source/common/frame.cpp, source/common/frame.h, source/encoder/encoder.cpp: frame: initialize and re-initialize m_bChromaExtended fixes some non-determinism [0fc522bebda5] 2014-10-27 Nicolas Morey-Chaisemartin * source/common/param.cpp, source/encoder/encoder.cpp, source/encoder/search.cpp: Set tuQTMaxLog2Size to MIN(5, maxLog2CUSize) This allows 32x32 TUs even when --ctu 32 is used, for instance [14388f2a7a88] * doc/reST/cli.rst, source/common/param.cpp, source/x265.cpp: Add CLI option to enable/disable Temporal MVP [f6f662559bde] * source/CMakeLists.txt, source/common/cudata.cpp, source/common/param.cpp, source/common/slice.h, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/x265.h: Add flag to enable/disable temporal MVP [ef27c0eb2fd6] 2014-10-27 Min Chen * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm, source/common/x86/ipfilter8.asm, source/common/x86/ipfilter8.h: asm: AVX2 version of luma_pp[4x4], improve 320c -> 188c [52ba1fb2227e] 2014-10-27 Steve Borho * source/encoder/analysis.cpp: analysis: simplify logic slightly, combine conditionals [d62838b20805] * source/encoder/analysis.cpp: analysis: fix a typo in --rd 5 --rect [685127dfd466] * source/encoder/analysis.cpp: analysis: allow AMP to work at 64x64 with --pmode and --rd 5 [0f71dcb02c59] * source/encoder/search.cpp: search: leave a helpful comment to avoid unfortunate reordering [26e1574a5424] * source/common/predict.cpp, source/common/predict.h, source/encoder/search.cpp: predict: cache color space dimension shifts, use in search.cpp [c36cfbbb7133] * source/encoder/analysis.cpp: analysis: in RD 5/6 ignore redundant merge candidates [f5f26b4b6487] * source/encoder/analysis.cpp: analysis: use same MV range check in merge functions [07482bd07946] * source/encoder/analysis.cpp, source/encoder/search.cpp: analysis: defer broadcast sets of merge mv field data until final selection The MC / encode functions do not need for the ME sub-parts to be set. This is only needed by later neighbor parts [3d5b73b500d4] * source/encoder/search.cpp: search: use member variable from Predict for csp There's no need to derefernece the CU for the color space [14ad8ed3792e] * source/encoder/entropy.cpp: entropy: nit [3abbf77f3c5a] * source/encoder/search.cpp, source/encoder/search.h: search: simplify handling of TU size edge case in extractIntraResultChromaQT [bea22ebe6af1] * source/encoder/search.cpp, source/encoder/search.h: search: fixes for chroma tskip coding with placebo preset Move the tskip decision after the special logic that deals with 4x4 luma, etc A couple of places where tskip == 0 was implied needed to actually set the flag [453d131f974b] * source/encoder/search.cpp: search: trMode -> tuDepth, improve clarity [93a1d11c0a6e] * source/common/cudata.h: cudata: remove unused setDepthSubParts [9e74e80f2192] * source/common/cudata.h, source/encoder/search.cpp: cudata: setTrIdxSubParts() -> setTUDepthSubParts() [a2d70700d53b] * source/common/cudata.cpp, source/common/cudata.h, source/common/deblock.cpp, source/common/quant.cpp, source/encoder/analysis.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/encoder/search.cpp: cudata: renames (m_depth, m_trIdx) -> (m_cuDepth, m_tuDepth) No behavior changes [288db4430fcd] * doc/reST/cli.rst: docs: update --tu-intra-depth / --tu-inter-depth docs (refs #71) [654ea07f93de] * source/encoder/entropy.cpp: entropy: improve check strings and comments [97ca46e10144] * source/encoder/search.cpp: search: further --rd-penalty 2 fixes (refs #71) [b0eaff8d1d1a] * source/encoder/analysis.cpp: analysis: invalidate slave entropy contexts, to help find bugs this function has no effect in non-checked builds [8fd59b57e5e0] * source/encoder/analysis.cpp: analysis: checkIntraInInter_rd0_4() needs the entropy context to be initialized [5a3c867cdf57] 2014-10-25 Steve Borho * source/encoder/analysis.cpp: analysis: further work on --pmode for --rd 5/6 Still needs debugging. The results with --pmode enabled have worse compression than without, when used with --rd 5. That should be un- possible. [69277ae804d0] 2014-10-24 gopi jayaraman * source/encoder/analysis.cpp: analysis: adding support for --rd 5/6 in compressInterCU_dist() and parallelModeAnalysis() [9e221c8530bc] 2014-10-26 Steve Borho * source/encoder/entropy.cpp: entropy: readability nits [78af768201c7] * source/common/common.h: common: add support for debug breaks in Xcode [3e4aee59e21d] * source/common/param.cpp: param: fix w-s spacing in log messages for --rdpenalty and chroma offsets and some nit fixes with braces while I was in the area [d9ce2644307a] 2014-10-27 Deepthi Nandakumar * source/encoder/analysis.cpp: analysis: motionCompensation(chroma) needs to be performed for asymmetric merge also This fixes a bug introduced in commit (372a8230110a) for rd2 rect/amp options [1b555ddd7667] * source/encoder/motion.cpp: motion: this emms is required [d32f1ad8d061] * source/encoder/analysis.cpp: analysis: cleanup [5fd8b40075a6] 2014-10-27 Satoshi Nakagawa * source/common/cudata.h, source/encoder/frameencoder.cpp: cugeom: fix uninitialized reported by valgrind [3a8f6f685436] 2014-10-25 Steve Borho * source/common/cudata.cpp: cudata: validate subCU size against current analysis depth [67d73bffd1fd] * source/common/cudata.cpp, source/common/cudata.h: cudata: make sure per-part buffers are allocate for g_maxCUSize There are memsets which rely on the data being consecutive, and for this to work they have to be the correct length. This fixes some X265_CHECK failures and possibly some odd behavior with --ctu 32 or --ctu 16 [d3a3d6cad8db] * source/encoder/search.cpp: search: improve comments in mergeEstimation() [5186635c0536] * source/encoder/search.cpp: search: turn some redundant clears of tskip flags into runtime checks [72f2b87c86eb] * source/encoder/search.cpp: search: cleanup residualQTIntraChroma There was a bug where it was reading tskip before setting it to zero, but fortunately we never allow analysis to set tskip anyway. [4d3797830500] * doc/reST/cli.rst: docs: update --tskip and --cu-lossless docs [f81a2cec4183] * source/encoder/encoder.cpp: encoder: issue warning and disable --pmode if rdlevel < 2 [4e7f9bca6f39] * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: search: remove resiYuv from Mode, keep tmpResiYuv in m_rqt[] The residual buffer is always very short lived; there is no reason to keep a copy of it per mode. [08be12894acd] * source/encoder/search.h: search: updateCandList() can be a static method [4e8edad1f2e6] * source/encoder/search.cpp, source/encoder/search.h: search: inline updateModeCost [e69a8546897a] * source/encoder/encoder.cpp: encoder: issue warnings and explicitly disable tskip or culossless if rd < 3 the analysis code is quite incapable of making these RDO decisions at these RD levels. It's best that these tools never appear to be enabled at these RD RD levels, and to explain why [b2aa1fd68ffa] * source/encoder/search.cpp: search: prevent warnings about unused bCheckSplit value [5e8e0e5fb760] * source/common/pixel.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/test/pixelharness.cpp, source/test/pixelharness.h: primitives: remove unused calcrecon primitive (assembly needs cleanup) [daa0e77083a7] * source/encoder/analysis.cpp, source/encoder/frameencoder.cpp, source/encoder/motion.cpp, source/encoder/search.cpp, source/encoder/slicetype.cpp, source/encoder/weightPrediction.cpp: trim x265_emms(), try to only use prior to floating point operations [64bb88dc7cb6] * source/encoder/search.cpp: search: avoid a context save at the last recursion depth [d7fbf10efe61] * source/encoder/search.cpp: search: improve comments and readability of residualTransformQuantIntra [58545ea1f6af] * source/encoder/search.cpp, source/encoder/search.h: search: keep recon QT in pixels, instead of shorts This changes outputs, apparently because SSE is now comparing fenc against the clipped recon instead of the un-clipped recon. This was punishing residuals which were close to the pixel dynamic range limits. The user never sees un- clipped pixels, and external distortion metrics always use clipped recon, so it makes sense to do the same here (never mind the obvious perf benefits) [567491c02bf7] * source/encoder/search.cpp, source/encoder/search.h: search: remove tskip analysis out of luma chroma normal path [1ea467c9bb22] * source/encoder/search.cpp: search: nit. splitted is not a word [794bf8c060d4] * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: search: rename methods that read coeff and recon from RQT struct at final depths also reorder arguments and pass reconYuv as a reference [69ee86fd7284] * source/encoder/search.cpp: search: give offsetSubTUCBFs a basic comment [67ae716977fd] 2014-10-24 Steve Borho * source/encoder/search.cpp, source/encoder/search.h: search: simplify RDO chroma intra coding, changes tskip outputs Since the TU layers above tskip's 4x4 are not encoding their residual (they only need distortion, not RD cost) there is no reason to try to preserve the entropy coder state. This gives slightly better compression than before, when tskip is enabled, and I believe it makes the code a lot more maintainable. [2261ad40ffe8] 2014-10-25 Steve Borho * source/encoder/search.cpp: search: simplify initTrDepth [ddafaee9bf39] * source/encoder/search.cpp: search: reconYuv as ref [f97c6f14a975] * source/encoder/search.cpp: search: improve a variable name [b51aceca9bd8] * source/encoder/search.cpp, source/encoder/search.h: search: rename a couple chroma intra helper methods [6f964d4cc8ef] 2014-10-24 Steve Borho * source/encoder/search.cpp, source/encoder/search.h: search: rename tmpCoeff to coeffRQT, tmpShortYuv to reconQtYuv / resiQtYuv Explain why these buffers are allocated to max CU size at every layer, fix a few nits [847c45521c19] * source/encoder/search.cpp: search: fix 4:2:2 chroma tskip bit-cost estimation [0fc9c36d0c92] * source/common/yuv.cpp, source/common/yuv.h: yuv: add copyPartToPart* methods for recon RQT finalization We're switching reconQt to be kept in pixels rather than shorts [d918b786a3e6] * source/common/shortyuv.cpp, source/common/shortyuv.h: shortyuv: use absPartIdx for CU/TU part offset like everywhere else [0922d96a74a6] 2014-10-24 Praveen Tiwari * source/common/x86/pixel-util8.asm: weight_sp: pshufd to handle width 6 for SSE version of asm code Backout of 2cb8cdaa7df5 [1a07740f85f5] 2014-10-24 Ashok Kumar Mishra * source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/search.cpp: search: refactored xEstimateResidualQT() to remove cbf flag settings [759c6cbf54fa] * source/encoder/search.cpp: search: remove redundant cbf flags setting in xEstimateResidualQT() [363bd8ef6c6b] 2014-10-24 Praveen Tiwari * source/common/quant.cpp: quant.cpp: nits [5f0838850cb5] 2014-10-24 Ashok Kumar Mishra * source/encoder/search.cpp: search: remove unnecessary set of cbf flags in xEstimateResidualQT() [a0c07b8e583b] 2014-10-23 Steve Borho * source/CMakeLists.txt: cmake: add -Wno-array-bounds if the compiler supports it These warnings have proven to always be spurious [e3a3d17b821c] 2014-10-23 Ashok Kumar Mishra * source/encoder/search.cpp: [OUTPUT CHANGED for 444] : considering cbf bits for best cost estimation for 444 format [cfa3750f72a5] 2014-10-23 Steve Borho * source/encoder/analysis.cpp: analysis: cleanup checkInter functions [daed2d3f67ba] * source/encoder/analysis.cpp: analysis: remove unnecessary set of skip flags in checkInter_rd5_6() initSubCU() does this already, and the pred's cu is not being reused [79f0d5f296ef] * source/common/quant.cpp, source/common/quant.h, source/encoder/analysis.cpp, source/encoder/encoder.cpp, source/encoder/search.cpp, source/encoder/search.h: search: large mostly mechanical change to pass cu by reference [b2005914aeb7] * source/common/cudata.h: cudata: remove unused method [260eee4634a5] * source/common/predict.cpp, source/common/predict.h, source/encoder/analysis.cpp, source/encoder/search.cpp: predict: enforce calling conventions, fix wrong side-effects use references and consts where possible, order arguments to follow the convention of memcpy (dest, src) This exposed a bug in addWeightBi() and addWeightUni(), they were modifying the PU size variables directly instead of making chroma versions. This explains why it seemed to best necessary at times to make seemingly redundant calls to prepMotionCompensation. as a side-effect, this commit also removes the 1k 'avg' buffer that bidir allocated on the stack and instead uses the existing tmpPredYuv [ff804d8ab03d] * source/common/predict.cpp, source/common/predict.h, source/encoder/analysis.cpp, source/encoder/search.cpp: predict: rename members for clarity, save work in singleMotionEstimation() The first thing singleMotionEstimation() did was call getPartIndexAndSize() to get the PU part index and dimensions. Then it called prepMotionCompensation() which did the exact same thing, storing its outputs into member variables. (after predInterSearch() had already done it twice as well) Now singleMotionEstimation() and predInterSearch() both directly use the variables initialized by prepMotionCompensation(). Now when the master thread calls its own singleMotionEstimation(), there is much less redundant work [c942de89cbed] * source/encoder/search.cpp: search: fix a change of outputs from f3bd6e5a880a, always zero unused refs it's not clear why this affects outputs, but it seems better to err on the side of the data being initialized. [8ac590040e8c] * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: search: re-combine --pme with --no-pme code paths [f8ee24fbbede] * source/common/cudata.cpp, source/common/cudata.h: cudata: cache numPartInCUSize as a class static The obliviates a lot of pointer dereferences in some key functions [2763d49b2e23] * source/encoder/entropy.cpp: entropy: drop last use of g_winUnitX, g_winUnitY [77210e81c4ad] * source/common/cudata.cpp, source/common/deblock.cpp, source/common/framedata.cpp, source/common/framedata.h, source/common/predict.cpp, source/common/slice.h, source/encoder/encoder.cpp: slice: move numPartitions and numPartInCUSize from FrameData to SPS these fields never change, so it made no sense to have copies in every FrameData they are based on CTU size, so SPS made sense [17c5d2cc1335] * source/common/cudata.h: cudata: remove default arguments for getPUAboveRightAdi(), getPUBelowLeftAdi() [077015265a08] * source/common/cudata.cpp, source/common/cudata.h, source/common/framedata.cpp, source/encoder/analysis.cpp: cudata: simplify allocation / initialization interfaces the callers shouldn't need to know details about partitions or coeff buffer sizes [ebaeb6aa5dda] * source/encoder/search.cpp: search: use intptr_t for picture stride variables [fa3e1744f125] * source/common/cudata.cpp, source/common/cudata.h, source/encoder/analysis.cpp, source/encoder/frameencoder.cpp: cudata: push more data type casts out to callers [bb5814a49de5] * source/common/cudata.cpp, source/common/cudata.h, source/encoder/analysis.cpp: cudata: use static array of absolute depth broadcast set functions this commit changed the value arguments to these set functions to match the data type of their array, forcing one cast in analysis.cpp to avoid a warning. [f593e0455cbc] 2014-10-22 Steve Borho * source/encoder/analysis.cpp: analysis: encodeResidue rewrite, much improved --rd 0 it's not clear --rd 0 is always correct, but I can encode long clips without hash mistakes and at reasonable bitrates (compared to previous --rd 0). I suspect there is still problems with passing in residual to residualTransformQuantInter() and getting it back in the same ShortYuv instance [bd865dd464bc] * source/common/frame.cpp, source/common/frame.h, source/common/framedata.h, source/common/quant.cpp, source/common/quant.h, source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/search.cpp: nr: move noise reduction arrays to Quant, simplify its upkeep This cleans up a number of layering violations and makes the array management more robust [ce304756a6e4] * source/CMakeLists.txt, source/Lib/COPYING.HM, source/Lib/README.txt, source/Lib/TLibCommon/ContextTables.h, source/common/CMakeLists.txt, source/common/contexts.h, source/common/quant.cpp, source/common/quant.h, source/encoder/entropy.cpp, source/encoder/entropy.h: cleanup enough of the context tables to bring them into common/ This was the last file under Lib/ so the whole folder is now removed. [fd03d43c1a97] * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TypeDef.h, source/common/CMakeLists.txt, source/common/common.cpp, source/common/common.h, source/common/constants.cpp, source/common/constants.h, source/common/cudata.cpp, source/common/cudata.h, source/common/dct.cpp, source/common/deblock.h, source/common/intrapred.cpp, source/common/ipfilter.cpp, source/common/loopfilter.cpp, source/common/param.cpp, source/common/picyuv.h, source/common/pixel.cpp, source/common/primitives.cpp, source/common/quant.h, source/common/scalinglist.cpp, source/common/shortyuv.h, source/common/slice.h, source/common/vec/dct-sse3.cpp, source/common/vec/dct-sse41.cpp, source/common/vec/dct-ssse3.cpp, source/common/x86/asm-primitives.cpp, source/common/yuv.h, source/encoder/bitcost.cpp, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/motion.cpp, source/encoder/search.cpp, source/encoder/slicetype.cpp, source/test/ipfilterharness.cpp, source/test/mbdstharness.cpp: pull TComRom into common/constants. bring CommonDef and TypeDefs into various A number of enums were pulled into cudata.h, one went to slice.h. All the defines went into common.h [bddf8ccf4c94] * source/common/cudata.cpp: cudata: nits, use m_encData directly [63cb0c68d0c0] * source/encoder/search.h: search: use proper allocation size for m_rqt, fix --preset placebo The entropy contexts need to be addressed from 0..4 (full depth) even if the buffers are only allocated to CU depth 0..3 [a09b45ead8e0] * source/encoder/analysis.cpp: analysis: fix --rd 1,2 behavior (broken by 84933c3136ec) Also includes some fixes for --rd 0 [372a8230110a] * source/common/cudata.cpp: cudata: avoid 'char subscript' warnings from GCC [6716ce0bb043] * source/common/framedata.cpp, source/common/framedata.h, source/encoder/encoder.cpp: framedata: param is now unused [01e865efd595] * source/common/frame.cpp, source/common/framedata.cpp, source/common/framedata.h, source/common/slice.h, source/encoder/encoder.cpp, source/encoder/framefilter.cpp, source/encoder/ratecontrol.cpp: slice: move numCUsInFrame from FrameData to SPS [9b55f47f2043] * source/encoder/framefilter.cpp, source/encoder/framefilter.h: framefilter: optimize row-height operations [a485e3377861] * source/common/cudata.cpp, source/common/frame.cpp, source/common/frame.h, source/common/picyuv.cpp, source/common/picyuv.h, source/common/slice.cpp, source/common/slice.h, source/encoder/dpb.cpp, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/encoder/framefilter.h, source/encoder/ratecontrol.cpp, source/encoder/reference.cpp, source/encoder/sao.cpp, source/encoder/search.cpp, source/encoder/slicetype.cpp, source/encoder/weightPrediction.cpp: slice: move numCuInWidth, numCuInHeight to SPS, remove Frame pointer Since the SPS defines the picture size and CTU size, it makes sense to keep these values there. It's a bit annoying removing m_frame from Slice, but all of its users didn't really want the frame itself, except in a couple instances (most already had the frame pointer) [fe8200af773f] * source/common/cudata.cpp, source/common/cudata.h, source/common/deblock.cpp, source/common/predict.cpp, source/encoder/framefilter.cpp: cudata: keep a FrameData pointer instead of a Frame pointer 90% of the dereferences of m_frame were to access m_frame->m_encData. For good reason, all of the encode data needed by the CU is in m_encData. A few places need to get to the orig pic. [57f9b1f41b0c] * source/common/cudata.cpp, source/common/cudata.h, source/encoder/frameencoder.cpp: cudata: pass picWidth and picHeight to calcCTUGeoms() this was the only method which used m_frame for anything other than accessing m_encData [5d4828d1b706] * source/common/cudata.cpp, source/common/cudata.h, source/encoder/analysis.cpp: cudata: simplify setQPSubCUs() [7b87661b8fef] * source/common/cudata.cpp, source/common/cudata.h, source/encoder/analysis.cpp, source/encoder/search.cpp: cudata: consistent names for consistent functionality [19f79fa18526] * source/common/cudata.cpp, source/common/cudata.h, source/encoder/analysis.cpp, source/encoder/search.cpp: cudata: no need to pass part size to setAll*, it can look it up itself It only needed the part size in the past when these were TComCUMvField methods and they had no access to the part size array [c55083482d74] * source/encoder/search.cpp: search: use helper function to set transform depth [583484b4a5e7] * source/common/cudata.cpp, source/common/cudata.h, source/encoder/search.cpp: cudata: simplify clearCbf() [59a39ac95108] * source/common/cudata.cpp, source/common/cudata.h: cudata: hoist a number of trivial functions to cudata.h for inlining [3a4708b0116c] * source/common/common.h, source/common/cudata.h, source/common/frame.h: cudata: clean up a couple defines [fa10e7328429] * source/encoder/search.cpp: search: remove unnecessary parens [2c42168b58b8] * source/common/cudata.cpp, source/common/cudata.h, source/encoder/analysis.cpp, source/encoder/search.cpp: cudata: remove depth argument to setInterDirSubParts() Inter dir is coded at the PU level, so it is always at the current depth [9430c148eb87] * source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/common/CMakeLists.txt, source/common/cudata.cpp, source/common/cudata.h, source/common/deblock.cpp, source/common/framedata.cpp, source/common/framedata.h, source/common/predict.cpp, source/common/predict.h, source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/entropy.cpp, source/encoder/search.cpp, source/encoder/search.h: cudata: merge motion field data directly into the CUData TComCUMvField didn't add anything except overhead [dbfa9c03d8a3] * source/Lib/TLibCommon/TComMotionInfo.h, source/common/cudata.cpp, source/common/cudata.h, source/encoder/analysis.cpp, source/encoder/search.h: mvfield: move TComMvField into cudata as MVField The structure is only used for collecting merge candidates now, and does not need any constructor [b7ca971f2a57] * source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h: mvfield: combine mv buffers into a single allocation [bbe34d78a627] * source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/encoder/analysis.cpp, source/encoder/search.cpp: mvfield: remove unnecessary depth arguments to set functions mv and refidx are CU level data, not TU level, so there is never any need to set the values for a depth other than 0. Remove support for NxN parts from the switch statement, made the template function protected [62f736e7ca47] * source/encoder/search.cpp: search: nits [6da134a66e0f] * source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/encoder/analysis.cpp, source/encoder/search.cpp: mvfield: remove setAllMvField wrapper When you see how the code unwound, certain optimizations may become possible [cdbb818ed024] * source/Lib/TLibCommon/TComMotionInfo.h, source/common/cudata.cpp: mvfield: remove setMvField() method [c1453d40d1cf] * source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/common/cudata.cpp, source/common/cudata.h, source/common/framedata.cpp, source/encoder/analysis.cpp: mvfield: pass objects by reference, const when possible [d5d7033e1a04] * source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/common/cudata.cpp: cudata: replace clearMvField() with m_partSet calls [4831aa891f00] * source/common/cudata.cpp: cudata: copy mvfield data from CTU in copyFromPic (more --rd 0 fixes) [b0c6b3a9ccf4] * source/encoder/entropy.cpp: entropy: remove only reference to TComCUMvField outside of cudata.h [564f07d41a6e] * source/encoder/search.cpp: search: avoid unnecessary memcopies in inter prediction Calling setAllMvField() twice is wasteful. At least one, perhaps both, of them will be overwritten by the final prediction. Better to set the REF_NOT_VALID manually for uni-predition on the 'other' list. [f3bd6e5a880a] * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/common/cudata.cpp, source/encoder/search.cpp: defs: remove last traces of REF_PIC_LIST enums, NOT_VALID -> REF_NOT_VALID [ed57e2e5c2b6] * source/Lib/TLibCommon/TComMotionInfo.h, source/common/cudata.cpp: mvfield: remove getRefIdx and getMvd access methods [7b94b7de0af5] * source/Lib/TLibCommon/TComMotionInfo.h, source/common/cudata.cpp, source/common/deblock.cpp, source/common/predict.cpp: mvfield: remove getMv access method [eec157891d46] * source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/encoder/analysis.cpp: mvfield: remove default arguments, use consistent variable names, cleanup [a453285d756d] * source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/encoder/entropy.cpp, source/encoder/search.cpp: mvfield: class to struct, remove setMvd method [7b17ecc90937] * doc/reST/cli.rst: docs: improve documentation for tskip options [8aa71d43db99] * source/encoder/search.cpp: search: fix --rdpenalty 2, make logic explicit (closes #71) [ca0090c8fc69] 2014-10-21 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util.h, source/common/x86/pixel-util8.asm: asm: avx2 asm code for 8bpp and 16bpp vesion of scale1D_128to64 module [47095aafe91a] 2014-10-21 Praveen Tiwari * source/common/x86/pixel-util8.asm: weight_sp: sse version of asm code optimization [2cb8cdaa7df5] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util.h, source/common/x86/pixel-util8.asm: weight_pp: avx2 asm code as per new interface [b6bd42615b37] 2014-10-21 Steve Borho * source/encoder/analysis.cpp, source/encoder/search.cpp: fix checked build errors [61ce6f790f25] * source/common/picyuv.cpp, source/common/picyuv.h, source/encoder/encoder.cpp, source/encoder/encoder.h: picyuv: cache offset arrays in the top-level encoder All PicYuv generated for a given encoder would generate the same offset arrays, so they might as well all point to the same memory [3465ef1eb7fc] * source/common/cudata.cpp, source/common/cudata.h, source/encoder/analysis.cpp: cudata: add a helper function for not-present CUs [f8c3748eb24d] * source/common/cudata.h: cudata: comment nits [7a2b895d7577] * source/encoder/search.cpp: search: move auto var initialization to avoid goto warning [884bb04709a4] * source/common/cudata.cpp, source/common/cudata.h, source/common/deblock.cpp, source/common/quant.cpp, source/encoder/analysis.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/encoder/search.cpp: cudata: consistent naming rules for part data (singular, no b prefix for flags) [943ebf4f2cf4] * source/common/cudata.cpp: cudata: cleanup copy methods, fill in missing copies in copyFromPic() [70cb93a0fc26] * source/common/cudata.h: cudata: reorder and white-space nits [ea81e3999545] * source/common/cudata.cpp, source/common/cudata.h: cudata: inline single caller of getPartPosition [2e5df75752c4] * source/common/cudata.h: cudata: consistent use of absPartIdx [bdffb50ff2fd] * source/common/cudata.cpp, source/common/cudata.h, source/encoder/analysis.cpp: cudata: remove unused setCUTransquantBypassSubParts [708b65ea888d] * source/common/cudata.cpp, source/common/cudata.h, source/encoder/analysis.cpp, source/encoder/framefilter.cpp: cudata: m_cuTransquantBypass will not be set without lossless being enabled [19baf4ddfe2f] * source/common/cudata.cpp: cudata: nits [e4fcdc4f802a] * source/common/cudata.cpp, source/common/cudata.h, source/encoder/analysis.cpp, source/encoder/search.cpp: cudata: define copy and broadcast set methods Pruned a couple of functions which were only called once and were redundant or could have been done more simply. [196c2544685b] * source/common/cudata.cpp, source/common/cudata.h, source/encoder/analysis.cpp, source/encoder/search.cpp: cudata: simplify setPartSizeSubParts and friends These fields are always broadast-set to all sub-parts of the CU [668dbdd70654] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/common/CMakeLists.txt, source/common/cudata.cpp, source/common/cudata.h, source/common/deblock.cpp, source/common/deblock.h, source/common/framedata.cpp, source/common/framedata.h, source/common/predict.cpp, source/common/predict.h, source/common/quant.cpp, source/common/quant.h, source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/sao.cpp, source/encoder/search.cpp, source/encoder/search.h: bring TComDataCU into common/ as CUData [a560d44d2cbd] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/common/predict.cpp, source/common/predict.h, source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/search.cpp, source/encoder/search.h: rebrand CU/cuData as CUGeom/cuGeom [b7503f180eb4] * source/encoder/encoder.cpp: encoder: improve comment, frame encoders to not use the worker pool [34c830359f33] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: pre-calculate the set of unique geoms for the picture size Now the geom sets only need to be calculated once, and they occupy a minimum amount of memory. [fe480c4b66be] * source/encoder/frameencoder.h: frameencoder: group pointer members together for better alignment [ca1be14a7d81] * source/Lib/TLibCommon/TComDataCU.cpp: cu: nits [d76b2094d5e6] * source/Lib/TLibCommon/TComDataCU.cpp: cu: use memset in setQPSubParts() [0f452547704c] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h: cu: inline single use of setSubPart into setInterDirSubParts [50d30aaa9823] * source/Lib/TLibCommon/TComDataCU.h: cu: remove unused enum NDBFBlockBorderTag [902fdb066b70] * source/Lib/TLibCommon/TComDataCU.cpp: cu: repair original intent of getLastCodedQP(), fix 73c6c9086577 [8ea4c8a389cd] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp: cu: remove m_cuLocalData from CU, use child offsets instead of absolute indices This commit also removes a redundant 'tld.analysis.m_quant.setQPforQuant()' from frameencoder.cpp. This belonged in compressCTU() and was actually one of the first things it does. [411149951603] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/frameencoder.cpp: cu: pass m_cuLocalData to loadCTUData() This is prep-work for removing m_cuLocalData from TComDataCU and having only a few instances of the array. [13d410a45434] * source/Lib/TLibCommon/TComDataCU.cpp: cu: style nits, no behavior change [8ab3817fcf97] * source/encoder/search.cpp, source/encoder/search.h: search: m_qtTempCoeff[ttype][qtLayer] -> m_rqt[qtLayer].tmpCoeff[ttype] [f7f4d9b59430] * source/encoder/search.cpp, source/encoder/search.h: search: m_qtTempShortYuv[qtlayer] -> m_rqt[layer].tmpShortYuv one less malloc to fail [5a3e8a4a51de] * source/encoder/search.cpp, source/encoder/search.h: search: move inter search temp Yuv buffers into RQTData This makes their allocation (and stride) per depth, which is hopefully a little more cache friendly [062c06517722] * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: search: rename m_rdContexts to m_rqt since its purpose has expanded [1d3b861ff5bb] 2014-10-21 gopi jayaraman * source/encoder/search.cpp: search: --pme bug fixes with slave threads tie up case [f5fc662b07cb] 2014-10-20 Steve Borho * source/encoder/search.cpp: search: move the destroy() method to after initSearch() [60633acf5a3a] * source/common/frame.cpp: frame: initialize m_reconPicYuv pointer [4cff05a46557] 2014-10-21 Deepthi Nandakumar * source/encoder/search.cpp: search: make split choice logic cleaner [e66f78a6df4f] * source/encoder/search.cpp: search: rename variables to mightSplit and mightNotSplit [b507a636f7e6] 2014-10-20 Steve Borho * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: search: use small struct to accumulate costs [535b9ca17dd3] * source/encoder/search.cpp: search: remove shadow variable [06f5d1594eca] * source/encoder/search.cpp: search: improve comments [dad2c503c21e] * source/encoder/search.cpp: search: avoid redundant work in typical path [0dd4b62f7331] * source/encoder/search.cpp, source/encoder/search.h: search: inline single caller of xGetIntraBitsLuma, avoid extra copies [ce76838b769f] * source/encoder/search.cpp, source/encoder/search.h: search: inline single call of calcIntraLumaRecon This allows some much needed clarity and to avoid some redundant work [791d9a3ad651] * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: search: rename xRecurIntraCodingQT to codeIntraLumaQT, save a bit of work [2cb88ddefc43] * source/encoder/search.cpp: search: combine xRecurIntraCodingQT() bCheckFull sections [8eae86316959] * source/encoder/search.cpp: search: add tmpBits to xRecurIntraCodingQT [4a0498664e3f] * source/encoder/search.cpp: search: remove remnants of tqbypass from xRecurIntraCodingQT, improve var names [f81c1e3a8788] * source/encoder/search.cpp, source/encoder/search.h: search: create a per-depth temp buffer for temporary recon blocks [9642b0dc0798] * source/encoder/search.cpp: search: fix --rdpenalty=2 at --rd 0,1 It needed the same fix for not skipping 32x32 if TU recursion is too restricted [0995d74b9b9c] * source/encoder/search.cpp: search: use member variable access to current slice and frame, not the cu's [8d170703b186] * doc/reST/cli.rst, source/encoder/search.cpp: search: clarify --rdpenalty [d0725a830b8d] * source/encoder/search.cpp: search: simplify checkTransformSkip logic drop !!qp condition, this doesn't appear necessary. we already check for TQ bypass [6df8c27c184a] * source/encoder/encoder.cpp: encoder: make assignments to Frame::m_intraData and m_interData unconditional The check doesn't help anyone. If pic_in->analysisData.intraData was NULL, the Frame fields are entirely uninitialized. [b874ac8f5427] * source/encoder/search.cpp: search: remove redundant clearCbf call The logic would not get here if cu->getQtRootCbf(0) didn't return zero, which implies all three CBF flags are already zero [5f15e0a7ce9a] * source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/search.cpp, source/encoder/search.h: search: move checkIntra from Analysis to Search This function didn't belong in Analysis [42bc2e852217] * source/encoder/search.cpp, source/encoder/search.h: search: rename xSetResidualQTData to saveResidualQTData and simplify [7c5713ba1712] * source/encoder/search.cpp, source/encoder/search.h: search: do not return CBF=0 distortion from xEstimateResidualQT() it can be calculated easily if needed [1882fb0d0d53] * source/encoder/analysis.cpp: analysis: nit [3fad706c702e] * doc/reST/cli.rst: doc: update description of --cu-lossless [e16426ff0679] * source/encoder/analysis.cpp: analysis: do not try lossless if best mode had no distortion [eb284bc32580] * source/encoder/analysis.cpp: analysis: copy inter prediction when evaluating lossless [60bf2a917454] 2014-10-20 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: rc: fix error in vbv due to access of unreferenced refFrame data [6d1b8b8c0d7a] 2014-10-20 Praveen Tiwari * source/common/pixel.cpp, source/common/primitives.h, source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm, source/encoder/reference.cpp, source/encoder/slicetype.cpp, source/encoder/weightPrediction.cpp, source/test/pixelharness.cpp: weighted prediction pixel, interface simplification [b2f534e54325] 2014-10-20 Gopu Govindaswamy * source/encoder/analysis.cpp: analysis: share the depth, best modes and partitions based on cuAddr - bug fix [87515a42e79c] 2014-10-20 Steve Borho * source/Lib/TLibCommon/TComDataCU.cpp: cu: clear transform skip flags in lossless CU copy [18d9c6d2f212] * source/Lib/TLibCommon/TComDataCU.h: cu: re-order part data defines to match allocation order (nit) [562f844b8f5a] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/search.cpp: analysis: try lossless encode of only the best mode for each CU This involved some subtle changes in behavior. TComDataCU::initCTU and initSubCU now initialize m_cuTransquantBypass to the global --lossless flag, so in the first pass of analysis it will always be all non-lossless (typical) or all lossless (when --lossless is enabled). Before this change, when "--cu-lossless and !--lossless" the encoder would try both lossless and non-losseless coding of every option evaluated for RDO. This roughly doubled the work performed by the encoder, and because the same TComDataCU instance was being used for both, it was fragile After this change, the encoder will only try lossless once per CU using the best mode found during non-lossless RDO, using a seperate TComDataCU instance. [cf127f22ef3b] * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: search: --pme needs master instance to be passed to slave function The slave was read its own m_listSelBits instead of those pre- computed by the master, and then even worse it was updating its own m_bestME (holding its own output lock) instead of the master's. [5179bb833cea] * source/encoder/analysis.cpp: analysis: nits [c02dda2693b9] * source/encoder/analysis.cpp: analysis: only call checkDQP once per CU, use a consistent reconPic write policy [089e256fb32a] 2014-10-20 Deepthi Nandakumar * source/encoder/search.cpp: search: cleanup [7eab67ffff81] 2014-10-20 Steve Borho * source/common/framedata.cpp, source/common/framedata.h: framedata: add pointer to active param structure for that picture today, this is always the single global param. in the future it may be different [c15bb6a0d01f] 2014-10-19 Steve Borho * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/common/framedata.h, source/encoder/analysis.cpp, source/encoder/frameencoder.cpp: cu: move more statistics into FrameData [32b5ab08cb51] * source/encoder/search.cpp: search: nit [1e09d0395826] * source/encoder/analysis.cpp: analysis: fix for --rd 0, always generate chroma prediction for best merge [75e42b9db526] 2014-10-20 Deepthi Nandakumar * source/common/common.h, source/common/pixel.cpp: pixel: add signed accumulators, these were causing errors in new primitives [d24d7c1a43f5] * source/encoder/analysis.cpp: analysis: split flag cost is added only if the depth is less than max depth removes (some) CHECKED_BUILD errors. [d1cd4a753d9e] 2014-10-19 Steve Borho * source/encoder/analysis.cpp: analysis: add emergency intra check for --pmode if all other choices somehow fail, we should always be able to code intra [9da983792c7d] * source/encoder/frameencoder.cpp: frameencoder: handle non-present CUs correctly when collecting stats [b575d5bf01e8] * source/encoder/analysis.cpp: analysis: handle no-valid-merge more cleanly, simplify compressInterCU_rd0_4 checkMerge2Nx2N_rd0_4() will set md.bestMode if any of them were valid, else it will be left NULL. Fixes some rare decoder asserts when no valid modes is coded [84933c3136ec] 2014-10-18 Steve Borho * source/encoder/ratecontrol.cpp: rc: fix error message [a480618a85a3] * source/encoder/ratecontrol.cpp: rc: use curEncData.m_numCUsInFrame Note that the CU count was wrongly calculated before as height * height, broken by me a couple days ago in 14d5345e257a [426a279be2b8] * source/common/framedata.cpp, source/common/framedata.h, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp: framedata: change 'structure of arrays' to 'array of structures' for RC stats This uses fewer mallocs, fewer memsets, and generally better data locality. It doesn't hurt that the code is more readable. [6a5d1543b769] * source/common/frame.cpp, source/common/frame.h, source/common/framedata.cpp, source/common/framedata.h, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp: frame: move rate control data to FrameData, cleanup variable names [16cf099c8a78] * source/common/framedata.cpp: framedata: fix license header [3810e534830c] * source/encoder/framefilter.cpp, source/encoder/sao.cpp, source/encoder/sao.h: sao: move lossless sample restoration functions to framefilter.cpp These are only called by the framefilter code, and are not directly related to SAO itself. [99fccc2a5063] 2014-10-15 Satoshi Nakagawa * source/common/common.h, source/encoder/frameencoder.cpp, source/encoder/sao.cpp, source/encoder/sao.h: sao: refine sao merge mode [f38d218c62d4] 2014-10-17 Ashok Kumar Mishra * source/encoder/search.cpp: search: removed redundant context store [0a94dccf7c9a] * source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/search.cpp: search: removed redundant getAllowedChromaDir function call [15a7b8d0698e] 2014-10-18 Steve Borho * doc/reST/cli.rst, source/common/param.cpp, source/encoder/analysis.cpp: analysis: allow --b-intra to work with RD levels < 5 (no behavior change) This changes no existing presets. This flag used to default to be on, but it was ignored at RD levels 0..4. Now it defaults to off, but is enabled by all the presets that use RD 5 and 6. This commit re-orders the tools log line to place similar options near each other [b9e3cec471c7] * source/encoder/CMakeLists.txt: cmake: use -Wno-uninitialized, to avoid confusing clang or older GCC [66687fc129ff] 2014-10-17 Steve Borho * source/common/param.cpp: param: do not enable fast CBF at faster presets (no behavior change) This flag has never had any effect at the RD levels these presets use, so this never had any effect, except showing 'cfm' in the logged tools list. [6e7567637dcb] * source/encoder/analysis.cpp: analysis: fix --pmode crash, do not look at intra results if not P_SLICE [0123cf455f17] * doc/reST/cli.rst, source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: allow --amp to actually work with RD levels < 5 This changes none of the presets or defaults, it just allows --preset medium --rect --amp to perform as the user would expect [ff8fb2e06847] * source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/encoder.cpp: analysis: don't pass global variables to create methods [03f5fcca39be] * source/encoder/analysis.cpp: analysis: nits [8bc599ad83ea] * source/encoder/analysis.cpp: analysis: consistent use of subPartIdx [e089d34046d5] * source/encoder/analysis.cpp: analysis: streamline parallelModeAnalysis [807ef6c02d64] * source/common/predict.cpp, source/common/predict.h: predict: keep ref indices, rather than mvField pointers [3f100d527ab3] * source/common/CMakeLists.txt: cmake: remove source group for TLibCommon/ in MSVC Allow the remaining files to be grouped with the rest of common/ for now [73ed4c1d2387] * source/test/CMakeLists.txt, source/test/testharness.h: cmake: newer GCC/MinGW define __rdtsc and do not like our redefinition [b6eb92d35ccb] * source/encoder/CMakeLists.txt: cmake: quiet -Wmaybe-uninitialized warnings in encoder/ gcc >= 4.8 is catching false positives from Clip3 (std::min<>(std::max<>)) when the arguments are all known at compile time. Just shut-up, please. [c818548cf7c1] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/common/CMakeLists.txt, source/common/deblock.cpp, source/common/frame.cpp, source/common/frame.h, source/common/framedata.cpp, source/common/framedata.h, source/common/piclist.cpp, source/common/predict.cpp, source/common/slice.cpp, source/encoder/analysis.cpp, source/encoder/dpb.cpp, source/encoder/dpb.h, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h, source/encoder/sao.cpp, source/encoder/search.cpp, source/encoder/slicetype.cpp, source/encoder/weightPrediction.cpp: pull TComPicSym into common/ as FrameData Document the nature in how these are reused by multiple pictures. Frame::m_picSym was renamed to Frame::m_encData to make the relationship more clear. [f3ede27baeee] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/common/deblock.cpp, source/common/lowres.h, source/common/picyuv.cpp, source/common/picyuv.h, source/common/pixel.cpp, source/common/predict.cpp, source/common/predict.h, source/common/primitives.h, source/common/slice.cpp, source/encoder/analysis.cpp, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/encoder/ratecontrol.cpp, source/encoder/sao.cpp, source/encoder/slicetype.cpp, source/encoder/weightPrediction.cpp: picsym: remove trivial access methods, cleanup Remove redundant data, use intptr_t more consistently for picture strides. Yuv stride can stay as int, the strides are never more than 64 bytes. Use uint32_t for block counters Rename getCU() as getPicCTU() for clarity [14d5345e257a] * source/common/picyuv.cpp: picyuv: fix 16bpp warning [7cccfdf67502] 2014-10-17 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util8.asm: asm: avx2 assembly code for 16bpp version of transpose(8, 16, 32 and 64) [f590933a138a] 2014-10-17 Steve Borho * source/encoder/analysis.cpp: analysis: actually count numRefs, combine depth counters [53f8765fadbd] * source/encoder/analysis.cpp: analysis: further simplify top-skip math By multiplying both sides by (cuData.numPartitions >> 2) the dynamic range of the algorithm is increased by up to 8 bits. Removing the intermediate value allow the combination of the two conditional expressions [0829d64dd762] * source/encoder/analysis.cpp: analysis: fix msvc warnings [5eb2916cc8ed] * source/encoder/analysis.cpp: analysis: prevent redundant recon work for --rd 3 and 4 [daf4e836f261] * source/Lib/TLibCommon/TComDataCU.cpp: cu: cleanup getPartIndexAndSize() [56fe32e3b7eb] 2014-10-16 Steve Borho * source/encoder/analysis.cpp: analysis: fix for --rd 0, it does not generate recon (just prediction) [6b0b2b6cd3b5] * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: split --pmode into its own recursive analysis function This simplifies compressInterCU_rd0_4() and allows us to limit --pmode to sane rd levels 2, 3, and 4. [90fffd9a337f] * source/encoder/analysis.cpp: analysis: it should only be necessary to copy recon when not split [bad798574b22] * source/encoder/analysis.cpp: analysis: combine stat collections at the end of CU analysis [c53f9f7df61e] * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: move recursion early-out logic to a helper function [6e772638b9e3] * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: move topSkip into a helper function This will allow us to break up compressInterCU_rd0_4 [774ab320f9c9] * source/encoder/analysis.cpp: analysis: simplify addSplitFlagCost slightly [35c589d92f51] * source/encoder/analysis.cpp: analysis: fix typo in addSplitFlagCost [d5777c2b4179] * source/Lib/TLibCommon/TComDataCU.h, source/encoder/entropy.cpp: cu: remove trivial getCtxInterDir() [f33aad115fa1] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h: cu: cleanup more copy and init methods [79a8b694ae25] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/frameencoder.cpp: cu: streamline initCTU and initSubCU [cb5875b1e89f] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/frameencoder.cpp: cu: rename initCU() to initCTU() [d7496c92aa33] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/frameencoder.cpp: cu: pass initial QP to initCU [cfe4c070c59d] * source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp, source/encoder/entropy.cpp, source/encoder/search.cpp: cu: remove merge index wrappers, document how mvp idx is reused [2febbee05401] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h: cu: remove unused isFirstAbsZorderIdxInDepth [b0c8b1ab5603] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/entropy.cpp, source/encoder/search.cpp: cu: remove m_mvpIdx access methods [d790ac5a2ed9] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h: cu: store each CU's data sequentially in memory This should be more cache friendly [9d489eb535d3] * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: search: use consistent absPartIdx for PU offset [44d321c78d21] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/search.cpp: cu: remove m_lumaIntraDir access methods [776da39f9999] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/entropy.cpp, source/encoder/search.cpp: cu: remove m_chromaIntraDir access methods [71d6ff5b0e09] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/entropy.cpp: cu: remove interDir access methods [c46d2e9e43ef] * source/Lib/TLibCommon/TComDataCU.h: cu: white-space cleanups [c9978e9f94dd] * source/Lib/TLibCommon/TComDataCU.h: cu: make setSubPart protected, group getSCUAddr() with encode helper functions [ff8a34e35d8d] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp, source/encoder/entropy.cpp, source/encoder/search.cpp: cu: remove m_bMergeFlags access methods [72b5cc8ea5f7] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp, source/encoder/search.cpp: cu: remove m_cbf access methods [2cd6eec80775] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/common/deblock.cpp, source/common/quant.cpp, source/encoder/entropy.cpp, source/encoder/search.cpp: cu: remove m_trIdx access methods [404a8abfbad5] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/common/deblock.cpp, source/common/predict.cpp, source/encoder/analysis.cpp, source/encoder/entropy.cpp, source/encoder/search.cpp: cu: remove m_log2CUSize access methods [fc42e88982af] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/common/quant.cpp, source/encoder/analysis.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/search.cpp: cu: remove m_predModes access methods [9f51ef2afdc6] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp: cu: remove m_skipFlag access methods [99315bb8142c] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/entropy.cpp, source/encoder/search.cpp: cu: remove m_transformSkip access methods [cdeaea376021] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/common/deblock.cpp, source/common/quant.cpp, source/encoder/analysis.cpp, source/encoder/entropy.cpp, source/encoder/search.cpp: cu: remove m_cuTransquantBypass access methods [b8938daa0e69] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/common/deblock.cpp, source/encoder/analysis.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/search.cpp: cu: remove m_partSizes access methods, rename copyCodedToPic() to updatePic() [263c8b73b7aa] * source/Lib/TLibCommon/TComDataCU.h: cu: remove wrong or useless comments [e44ce1d54da3] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h: cu: remove x prefixes [c16837999997] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/common/deblock.cpp, source/common/quant.cpp, source/encoder/analysis.cpp, source/encoder/entropy.cpp, source/encoder/search.cpp: cu: remove m_qp access methods [f1064a18fd1d] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/common/deblock.cpp, source/encoder/analysis.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/sao.cpp, source/encoder/search.cpp: cu: remove m_depth access methods [ba3862977dfc] * source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp, source/encoder/search.cpp: cu: remove getCUMvField [6c7bee958e2a] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/search.cpp: cu: remove trivial access methods for m_trCoeff [47ea715be755] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/common/deblock.cpp, source/encoder/search.cpp: cu: unify array data types to uint8_t, group like methods together [a17e618c20cc] * source/encoder/search.cpp: search: use pre-calculated partSize [bedbad51e3de] * source/encoder/rdcost.h, source/encoder/search.cpp, source/encoder/search.h: Merge [59096255eafe] * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: search: add sa8dBits field to avoid conflict with RDO's totalBits [7db432da4269] * source/encoder/frameencoder.cpp: frameEncoder: fix eoln [15fd6c844410] * source/encoder/search.cpp, source/encoder/search.h: search: getBlkBits uses no data members, could be a static method [323876f98fbf] * source/encoder/search.cpp: analysis: rename variables for consistency [78a112dc65fd] * source/encoder/analysis.cpp: analysis: fix cut-paste bug in early-out code [71173ff67162] * source/common/frame.cpp: frame: m_totalBitsPerCTU must be allocated even if AQ is disabled [9d4b9867a685] * source/encoder/analysis.cpp: analysis: fix for --rd 0 check failure [643c6dc10f99] 2014-10-15 Steve Borho * source/encoder/encoder.cpp: Merge [96c144bf9b3f] * source/encoder/analysis.cpp: analysis: minimal documentation for RD levels [8fe07f3a2311] * source/encoder/analysis.cpp: analysis: --rd 1 needs reconYuv to be copied from sub-cu [abc464814a26] * source/encoder/analysis.cpp: analysis: --rd 1 needs reconYuv to be copied to reconPic [9e623a96246a] * source/encoder/analysis.cpp: analysis: move temp array out of conditional Keeping a pointer to a stack array is not well defined behavior. Renamed buf_trans to bufTrans, also [3930ee35b182] * source/encoder/analysis.cpp: analysis: only --rd 0 should use encodeResidue() [ea7d008b9457] * source/encoder/analysis.cpp: analysis: at --rd 1, split and best modes only have sa8d cost [6861366e673f] * source/encoder/analysis.cpp: analysis: do not call checkDQP() for --rd 0, the CU is not encoded [ec1595bc8a76] * source/encoder/analysis.cpp: analysis: fix hash mistakes at --rd 2 Do not re-encode merge blocks, as we learned with --rd 6 this does not work without re-initializing skip flags. But since the CU was already coded once there is no need to repeat the work. [6d8bb90381fd] * source/common/shortyuv.h, source/common/yuv.h: yuv: short descriptions [3d8d0dcd1ef9] * source/common/yuv.cpp, source/common/yuv.h: yuv: consistent variable naming for clarity absPartIdx is always the part index (in zorder) of a CU/PU/TU within a CTU [e6892e7c73bc] * source/common/yuv.cpp, source/common/yuv.h: yuv: inline addClip sub-functions [632305ea202e] * source/common/yuv.h: yuv: nit [2f1d633afec4] * source/common/shortyuv.h: shortyuv: remove width argument to getChromaAddrOffset [a66f34e6bcd7] * source/common/predict.cpp, source/common/shortyuv.cpp, source/common/shortyuv.h, source/common/yuv.cpp, source/encoder/analysis.cpp, source/encoder/search.cpp: shortyuv: take only a single size (width == height) [bfd27a43b034] * source/common/shortyuv.cpp, source/common/shortyuv.h: shortyuv: remove m_height and m_cheight [d60c862b9ae1] * source/common/yuv.h: yuv: nits [84c610604cc0] * source/common/yuv.cpp, source/common/yuv.h: yuv: remove width argument to getChromaAddrOffset [469c92ffccd3] * source/common/predict.cpp, source/common/shortyuv.cpp, source/common/yuv.cpp, source/common/yuv.h, source/encoder/analysis.cpp, source/encoder/search.cpp: yuv: take only single size (width == height) [171267587546] * source/encoder/encoder.cpp: encoder: ensure TLD.nr is initialized [829ebca8ff0c] * source/common/yuv.cpp, source/common/yuv.h: yuv: remove m_height and m_cheight [058fb0238cb5] * source/common/yuv.cpp, source/common/yuv.h: yuv: remove unused clear() method [8a1563987a01] * source/common/frame.cpp, source/common/frame.h, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp: rc: fix for ABR behavior - we need frame->m_totalBitsPerCTU to replace CU stats m_totalBitsPerCTU always needs to be allocated and filled in with the total bit size of each CU, for VBV and non-VBV modes to function correctly [ff1123105f64] * source/common/common.h, source/common/frame.cpp, source/common/frame.h, source/common/quant.cpp, source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/search.cpp, source/encoder/search.h: Merge [999815f31962] 2014-10-13 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util.h, source/common/x86/pixel-util8.asm: asm: avx2 assembly code for 8bpp version of transpose(8, 16, 32 and 64) [51416472d14c] 2014-10-14 Steve Borho * source/encoder/search.cpp: search: add a couple TODO comments [0161608f481a] * source/encoder/search.cpp: search: make encodeResAndCalcRdInterCU() a bit more readable [7bb09720f59c] * source/encoder/search.cpp: search: fix one obviously wrong psy-rd check If measuring psy cost of CBF=0, you measure fenc against pred, not against zero [ae8bbb881b9e] * source/encoder/search.cpp: search: remove I slice checks from encodeResAndCalcRdInterCU We do not call this function for I slices, and it already checks for it [b78070d1eb47] * source/encoder/search.cpp: search: fix initial value of bCodeDQP in encodeResAndCalcRdInterCU [6c9b28899c8f] * source/encoder/search.cpp, source/encoder/search.h: search: inline single caller of getInterSymbolBits() the code now uses temp vars instead of modifying the mode costs directly, since the final mode costs are set at the end of this function [9d435b9a76ad] * source/encoder/search.cpp, source/encoder/search.h: search: inline single caller of xLoadIntraResultChromaQT [47761a49a3cf] * source/encoder/search.cpp, source/encoder/search.h: search: inline single caller of xLoadIntraResultQT [1c9566ae8dae] * source/encoder/search.cpp, source/encoder/search.h: search: inline single caller of xEncIntraHeaderLuma [27b996ccb80b] * source/encoder/search.cpp, source/encoder/search.h: search: inline single caller of xEncIntraHeaderChroma [532a9a6f4713] * source/encoder/search.cpp: search: reorder xRecurIntraChromaCodingQT() for clarity [bcc8b4f42f53] * source/encoder/search.cpp, source/encoder/search.h: search: inline single callers of xGetIntraBitsChroma and xGetIntraBitsQTChroma [983e96789f5e] * source/encoder/sao.cpp: sao: fix eoln [d27721f55ea5] * source/common/common.h: common: fix eoln, fix merge bug [a30d82d4d2e7] * Merge [badc6dec6b34] 2014-10-14 Deepthi Nandakumar * source/Lib/TLibCommon/TComRom.h, source/common/common.h, source/encoder/frameencoder.cpp: noiseReduction: replace magic values with readable names [961240f1ac16] 2014-10-13 Deepthi Nandakumar * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPicSym.cpp, source/encoder/analysis.cpp, source/encoder/sao.cpp, source/encoder/search.cpp, source/encoder/search.h: cu-lossless: remove redundant lossless buffer The pixel values in lossless mode can be obtained from the original yuv buffer itself. [207d1e432240] 2014-10-14 Steve Borho * source/encoder/analysis.cpp: analysis: match old merge analysis behavior at --rd 5,6 [8ecb949326f9] * source/encoder/analysis.h: analysis: reorder prediction modes for easier initialization at RD <= 4 [2542439de2e6] * source/Lib/TLibCommon/TComDataCU.h, source/common/deblock.cpp, source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/frameencoder.cpp: cu: make CU's frame pointer const, so it's clearly read-only to CU logic Required passing a non-const Frame pointer to compressCTU, which is fine since the frame encoder by definition owns the non-const object. [82f22df1bb64] * source/Lib/TLibCommon/TComDataCU.h, source/common/deblock.cpp, source/common/predict.cpp, source/common/predict.h, source/encoder/entropy.cpp, source/encoder/search.cpp: cu: make CU's slice pointer const, so its clearly read-only to CU logic [fb8b65d7812f] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp, source/encoder/search.cpp: cu: return merge candidate count from getInterMergeCandidates() do not set by reference [18dbef3d92ea] * source/encoder/analysis.cpp: analysis: fix --rd 6 hash mistakes, clear skip flags between merge candidates [12a5dfb5bfb9] * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: inline deriveTestModeAMP [b0df34295958] * source/encoder/analysis.cpp: analysis: uhm, try that again [f5c3121f88b4] * source/encoder/analysis.cpp: analysis: checkIntra() is used by all slice types now [6ed24d5e4a64] * source/encoder/search.cpp: search: minor cleanups [842c664c64ad] 2014-10-13 Steve Borho * source/encoder/analysis.cpp: analysis: simplify addSplitFlagCost(), encode split flag with mode's context [c025b698a2d5] * source/encoder/analysis.cpp: analsys: add split flag cost to the split prediction (--rd 5/6) [4ec03ab5a463] * source/encoder/search.cpp: search: nits, remove debug memsets [609cbaffdd9b] * source/encoder/analysis.cpp, source/encoder/search.cpp: nits [2e6bccf560f5] * source/encoder/analysis.cpp: analysis: split out more logic for rdlevel 0 & 1 Eventually rdlevels 0 and 1 would have a different compress function from rdlevels 2, 3 and 4 since they have much different logic around split and cost decisions. But the first step should be to pull the topSkip and avgCost into helper functions that could be used by both functions (to avoid duplicating those features, which I expect will get lots of attention in the comming weeks) [898b47f1082f] * source/encoder/analysis.cpp: analysis: re-introduce RD level 0 intra hack It didn't have a comment before, so I didn't understand its purpose. Placing up a level and adding a comment makes it more clear [64e516e6d865] 2014-10-11 Steve Borho * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: add a helper function to deal with split flag bits we can reasonably do something smart based on RD level in a consistent manner. * for high RD levels, we can account for split flag context states * For low RD levels, we just increment bit counters this fixes the fact that the skip flag must be considered in the mvBits stat since all other bits are considered coeff bits. This should help 2-pass slightly [ff2142620928] * source/encoder/analysis.h: analysis: remove unused m_initialContexts [9d2b67812d19] * source/encoder/analysis.h, source/encoder/frameencoder.h: analysis: move StatisticLog to frameencoder.h [817192eda811] * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: add attributions for myself [0024124be46a] * source/encoder/analysis.cpp: analysis: remove redundant pointer check [5461beda34e4] * source/encoder/search.cpp: search: fix variable name shadow warnings [4be77cb8bbea] * source/common/slice.h, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/sao.cpp, source/encoder/sao.h, source/encoder/search.h: Merge [20644db535dd] * source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: analysis: clarify and fix CTU stats logging, move to frame encoders [60bf1877612d] * source/encoder/analysis.cpp: analysis: if avoiding skip analysis for lossless encodes, set max rdcost [825cd3ca0495] * source/encoder/analysis.cpp: analysis: consistent naming of MC PU part index, try not to use temp CU pointers Pointers to 'bestCU' tend to cause bugs; best to dereference md.bestMode->cu directly in case the pointer moves. The compiler is good about caching derefs [c12b3abd8d92] * source/encoder/analysis.cpp: analysis: merge only ever has one part, within checkMerge2Nx2N_rd0_4 [b3fdd6dcf8b6] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp, source/encoder/analysis.h: cu: fix sub-cu pel positioning The cuData.encodeIdx already included the sub-part offset during splits (there is one cuData instance per sub-part, not per depth). So it was wrong to pass the partUnitIdx to the next recursion depth. It was only being used at the next depth to pass to initSubCU() which used it to calculate the relative pixel offsets from the parent CU. But in the new code the parent CU is now the parent CTU, and so the pel offsets must be calculated relative from the CTU pel positions. This is what the g_zscanToPel? tables are for. [c50ae2a64cd9] * source/encoder/analysis.cpp: analysis: remove a temp variables used in only one place [1192a7e45953] * source/Lib/TLibCommon/TComDataCU.cpp: cu: remove useless numPartition variable from copyPartFrom() [75e389fd9b3e] * source/encoder/analysis.cpp: analysis: simplify handling of not-present sub-cus [f8c0d8f0cc71] * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: m_bEncodeDQP should never have been a member variable The value should always be initialized to m_slice->m_pps->bUseDQP prior to calling m_entropyCoder.codeCoeff(), and then allow that function to modify it as it recurses. [d08c691b11ad] * source/common/frame.cpp: frame: fix uninitialized pointer [06235f8119ca] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp: cu: make TComDataCU::copyPartFrom() take a const ref, cleanup this function did not need to copy m_cuAbove and friends [69ae969b5d04] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/sao.cpp: cu: remove getLumaOrigYuv() access methods [88cec6cb806f] * source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/search.cpp, source/encoder/search.h: analysis: more ref religion [44dacb1a44de] * source/encoder/analysis.cpp: analysis: use m_slice consistently, not the pointer in the CU [5b15e657ace9] * source/encoder/analysis.cpp: analysis: simplify encodeIntraInInter [ee7eb64c1c9c] * source/encoder/search.cpp: search: minor cleanups and comment improvements [2e3c07bd52db] * source/Lib/TLibCommon/TComDataCU.cpp: cu: white space and comment nits, initSubCU() no longer inits CTU costs [e2eea276e6b5] * source/encoder/analysis.cpp: analysis: give the splitCU the correct partition index (0..3) this doesn't currently affect outputs, but it is definitely more correct [c7561cbb7b0f] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/common/frame.cpp, source/common/frame.h, source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/search.cpp, source/encoder/search.h: cu: move cost variables from TComDataCU to Mode we use md.bestMode != NULL to determine if no best mode has been found yet, so we do not have to initialize costs to MAX_INT64 to simulate that condition. Hopefully this is more robust. this changes outputs, in a very good way, so I think this fixed a hidden bug or two [6bf0d3f1c93d] * source/common/yuv.h: yuv: nit [7b2c95729183] * source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/search.cpp, source/encoder/search.h: analysis: settle on fencYuv for 'frame being encoded' or 'original pixels' there was no point in analysis and search having different names for the same pixels. this patch moves responsibility of filling fencYuv to the caller in a consistent basis [6f7f54438424] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp: cu: remove access methods for neighbor CTUs [37c229d6f8cc] * source/encoder/analysis.cpp: analysis: fixes for --pmode and --rect with --rd 0..4 [c8b4c9be2559] * source/encoder/analysis.cpp: analysis: initCU() is only necessary for picSym CTUs, not analysis CUs [c218dd4a4c71] 2014-10-10 Steve Borho * source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/search.cpp, source/encoder/search.h: analysis: move fillOrigYUVBuffer to Search it is not really an analysis functions, it is a coding function [d1f8ae7710d4] * source/encoder/analysis.cpp: analysis: fixes for merge/skip behavior at --rd 6, improve clarity [f44a21cae332] * source/encoder/analysis.cpp: analysis: fix precendence problem in split logic [8778bf23678b] * source/encoder/analysis.cpp: analysis: fix a couple of obvious --rd 6 bugs [4728d78c0f4d] * source/encoder/analysis.cpp: analysis: fix --rd 2 crash, only check intra for P slices [633056237fb2] * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: greatly simplify checkMerge2Nx2N_rd5_6 [aef32e8b25c1] * source/Lib/TLibCommon/TComDataCU.h: cu: fix comments [d82691c50f7a] * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: pass merge and skip modes to merge analysis functions It was a layering violation for these functions to access md.pred[] themselves [e573d484cd33] * source/encoder/analysis.h: analysis: PRED_NxN is no more [f4aba985d261] * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: nit rename [083138d1dce1] * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: most merge shared intra path into the main path The overhead for the nominal I frame path is one NULL pointer check per CU [8f77003f3f33] * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: remove checkIntraInInter_rd5_6(), it is the same as checkIntra now [e5d3c1eba674] * source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/search.cpp, source/encoder/search.h: analysis: move parallel ME from Analysis to Search [489614317ca8] 2014-10-09 Steve Borho * source/encoder/search.cpp, source/encoder/search.h: search: pass mode to xIntraCodingLumaBlk [f397acd9d822] * source/common/CMakeLists.txt, source/common/predict.cpp, source/common/predict.h, source/encoder/CMakeLists.txt, source/encoder/predict.cpp, source/encoder/predict.h: move predict.cpp and predict.h to common/ they don't need any encoder structures [49c3dd1cad1e] * source/encoder/search.cpp, source/encoder/search.h: search: reorder arguments to xIntraCodingChromaBlk for clarity [4698e9d56cc4] * source/encoder/search.cpp, source/encoder/search.h: search: pass mode to getBestIntraModeChroma [d178113b3111] * source/encoder/search.cpp, source/encoder/search.h: search: do not pass fencYuv to residualTransformQuantIntra [6abf5ed381d7] * source/encoder/search.cpp, source/encoder/search.h: search: do not pass fencYuv to xIntraCodingChromaBlk [dc3be2051459] * source/encoder/search.cpp, source/encoder/search.h: search: do not pass fencYuv to xRecurIntraChromaCodingQT [2b49010309c5] * source/encoder/search.cpp, source/encoder/search.h: search: do not pass fencYuv to xEstimateResidualQT() [2f0020df9464] * source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComRom.h, source/common/CMakeLists.txt, source/encoder/analysis.cpp, source/encoder/predict.cpp, source/encoder/predict.h, source/encoder/search.cpp, source/encoder/search.h, source/test/intrapredharness.cpp: predict: merge intra prediction helper routines into Predict [7505862f3220] * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: search: do not pass fencYuv to xRecurIntraCodingQT() [031eeb5ab33f] * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: search: return distortion from main intra coding functions This is much cleaner than magically incrementing the CU variables within these functions. Leave some comments for future work [2c9b47e8f5ba] * source/Lib/TLibCommon/TComDataCU.h: cu: fix a comment [bbd23323e465] * source/encoder/search.cpp: search: use absPartIndex for sub-CU indexing [c57651640ca8] * source/encoder/analysis.cpp: analysis: nits [8419f83fe8e2] * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: search: merge sharedEstIntraPredQT with estIntraPredQT [e90faaac6e4a] * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: search: do not pass fencYuv to sharedEstIntraPredQT() and estIntraPredChromaQT() [d9e76daff312] * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: search: do not pass fencYuv to estIntraPredQT() [4adb8b6c440b] * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: search: do not pass fencYuv to encodeResAndCalcRdSkipCU() [7cc8d78543e2] * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: search: do not pass fencYuv to encodeResAndCalcRdInterCU() [615a8dc3d8db] * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: search: do not pass fencYuv to generateCoeffRecon() [875b4c959919] * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: search: do not pass fencYuv to residualTransformQuantInter [be855ecfb805] * source/encoder/search.cpp, source/encoder/search.h: search: make fencYuv pointers const in preparation of using mode.origYuv directly. this requires using const_cast when getting pixel pointers since our performance primitives do not have const declarations for pointers which are unharmed. [c7616e988752] * source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/search.cpp, source/encoder/search.h: analysis: move temp residual buffer into Search structure It is only used by Search methods; the analysis functions do not need to be aware of it [d0d3188303b8] * source/encoder/analysis.cpp, source/encoder/search.h: analysis: give each Mode a const pointer to its origYuv This is for convenience, and to save in function parameter overhead [d1b3de579557] * source/encoder/analysis.cpp, source/encoder/entropy.cpp, source/encoder/ratecontrol.cpp: Merge [7d67da2fc327] 2014-10-09 Deepthi Nandakumar * source/encoder/analysis.cpp, source/encoder/entropy.cpp: analysis: remove Inter Part_NxN analysis and encode. This condition will never be hit. Also remove check for intra slice in compressInterCUrd5_6 [67aefaf69a6b] 2014-10-08 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: rc: vbv fix for scene changes Also, some spacing nits [d3ee2f362116] 2014-10-09 Steve Borho * source/encoder/analysis.cpp: analysis: parentCTU is now always a reference to the output picSym CTU [9b66c54258c2] 2014-10-08 Steve Borho * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/common/quant.cpp, source/common/quant.h, source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/frameencoder.cpp, source/encoder/rdcost.h, source/encoder/search.cpp, source/encoder/search.h: analysis: pass parentCTU as const reference [a12edeca1cb8] 2014-10-07 Steve Borho * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComPattern.cpp, source/common/deblock.cpp, source/common/frame.cpp, source/common/frame.h, source/common/piclist.cpp, source/common/slice.cpp, source/common/slice.h, source/encoder/analysis.cpp, source/encoder/dpb.cpp, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/encoder/predict.cpp, source/encoder/ratecontrol.cpp, source/encoder/sao.cpp, source/encoder/search.cpp, source/encoder/slicetype.cpp, source/encoder/weightPrediction.cpp: frame: remove trivial access methods, major cleanups [aa90924a8619] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPicYuvMD5.cpp, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/common/CMakeLists.txt, source/common/deblock.cpp, source/common/frame.cpp, source/common/frame.h, source/common/lowres.cpp, source/common/lowres.h, source/common/picyuv.cpp, source/common/picyuv.h, source/common/quant.cpp, source/common/shortyuv.cpp, source/common/shortyuv.h, source/common/yuv.cpp, source/common/yuv.h, source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/predict.cpp, source/encoder/predict.h, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h, source/encoder/reference.cpp, source/encoder/reference.h, source/encoder/sao.cpp, source/encoder/sao.h, source/encoder/search.cpp, source/encoder/search.h, source/encoder/slicetype.cpp, source/encoder/weightPrediction.cpp: yuv: bring Yuv, PicYuv classes into common/ Standardized variable naming scheme pixel *foo Yuv *fooYuv PicYuv *fooPic Frame *fooFrame [89c388e280e4] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComYuv.h, source/common/scalinglist.cpp, source/common/scalinglist.h, source/common/slice.cpp, source/common/slice.h, source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp, source/encoder/predict.cpp, source/encoder/predict.h, source/encoder/sao.cpp, source/encoder/search.cpp, source/encoder/search.h: encoder: pass cu and cudata by const reference when they are not modified This is the beginning round of a sweeping refactor to enforce some const discipline. The goal is to always pass objects as const references when a NULL pointer is never allowed and when the object is unharmed. un-const refs should be used when NULL is not allowed but the object is modified by the function. As we add more and more parallelism, we need to enlist the compiler's help in figuring out which functions are safe to call without side-effects [639abb765708] 2014-10-06 Steve Borho * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: search: pass mode to more methods, write directly to mode.contexts rename RDContexts.temp to rqtTemp; only used RQT analysis now There were a number of cut-paste bugs fixed by removing this extra step after calling encodeResAndCalcRdInterCU. Nearly half of them were wrong. [fc22f7534def] 2014-10-08 Steve Borho * source/Lib/TLibCommon/TComDataCU.cpp: cu: use memset to initialize [82ee45403840] 2014-10-06 Steve Borho * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/encoder/analysis.cpp, source/encoder/analysis.h: cu: break pool objects out of TComDataCU [90c59faddf95] 2014-10-08 Steve Borho * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: revisit the minDepth logic, outputs much closer to original now Bitrates are actually a bit lower than the old version, with slightly lower SSIM [be17e2daf0aa] 2014-10-06 Steve Borho * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h: cu: remove m_ prefix from tqBypassYuvMemBlock [36270e784afa] * source/encoder/analysis.cpp: analysis: use md auto-var in parallelAnalysisJob() [561fd92417f0] 2014-10-08 Steve Borho * source/encoder/analysis.cpp: analysis: use correct 'nextContext' from split iterations for split prediction [affb40a174da] * source/encoder/analysis.cpp: analysis: fixes for recursion from Min Chen When a part is not present, we must call splitCU->copyPartFrom(splitCU, ... just to setup the appropriate depth fields in splitCU, which is horrid but it works for now. This hack fixes DQP behavior. The rest of the changes ensure we always pass a valid CABAC context to the next coded CU (important in the presence of uncoded blocks on the edges) With these fixes, I slices match the behavior of the previous design. [ce64a6330c5f] * source/encoder/predict.cpp, source/encoder/predict.h: pred: rename Prediction::m_slice to Prediction::m_predSlice to avoid conflict with Analysis::m_slice [b26d0774e682] * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: pass partUnitIdx to intra functions for initSubCU [4b888ab917a3] * source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/frameencoder.cpp: analysis: remove m_log member variable; an auto-var is sufficient [400fa7c74b6b] * source/encoder/analysis.cpp: analysis: implement bidir MVP refine for --pme This was the last deliberate difference in output between --pme and --no-pme [2876b18af448] * source/encoder/analysis.cpp: analysis: handle situation in compressInterCU_rd0_4() where only split is tried [9b0eda20ac43] * source/encoder/analysis.cpp: analysis: bring compressInterCU_rd5_6() up to date [5fffec35339e] * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: update split logic in compressInterCU_rd0_4(), simplify [c2d4a2a72ae1] 2014-10-07 Steve Borho * source/encoder/analysis.cpp: analysis: continue to optimize split logic [677cdc979e6d] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: pass depth via cuData, add support for split CU in checkDQP [7657c461a1b1] * source/encoder/entropy.cpp: nit [cdab6a9393b1] 2014-10-06 Steve Borho * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp: cu: don't pass cuData to copyPartFrom(), it only needs numPartitions This change came from Min [46c7f7f15226] * source/Lib/TLibCommon/TComDataCU.cpp: cu: nits [7eb3ef2e19bc] * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: add obviously missing logic [790d3127dd85] * source/encoder/analysis.cpp: analysis: remove best mode logic from checkMerge2Nx2N_rd0_4() It is always done by the caller based on rd level [ef3e21a93f3b] 2014-10-06 gopi jayaraman * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: search: bring mode structure from analysis for intra functions [47edb2892258] * source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/search.cpp, source/encoder/search.h: search: bring mode structure from analysis [96fcb12ba04f] 2014-10-04 Steve Borho * source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/search.cpp, source/encoder/search.h: analysis: major refactor of analysis data structures; prep for --pmode --rd 5 [2d0d40208a59] 2014-10-16 Deepthi Nandakumar * source/common/pixel.cpp, source/encoder/rdcost.h: pixel: resolve build errors at high bit depth [b7eeae24aae6] * source/encoder/search.cpp, source/encoder/search.h: psy-rd: modify psy-rd cost decisions in search::xEstimateResidualQT This function looks to minimizing rate/distortion in the "residual". Rate is bits taken to encode residual, and distortion is ssd(original residual, reconstructed residual). It is wrong to calculate psyCost with psy-energy = E(src, recon) here. psyCost is now modified as E(orig residual, recon residual). [d8f1f982eeb7] * source/common/pixel.cpp, source/common/primitives.h, source/encoder/rdcost.h: primitives: add support for 16-bit psyCost calculations [20946a10c348] 2014-10-15 Steve Borho * source/encoder/encoder.cpp: encoder: ensure nr pointer is initialized [79702581ec82] * source/encoder/analysis.h, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: nr nits [7127239d9404] 2014-10-15 Deepthi Nandakumar * source/encoder/search.cpp, source/encoder/search.h: search: rename intra functions that generate recon Remove wrong comments [56a04b7c1af0] 2014-10-14 Deepthi Nandakumar * source/common/common.h, source/common/frame.cpp, source/common/frame.h, source/common/quant.cpp, source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: noiseReduction: make noiseReduction deterministic for a given number of frameEncoders. [f8e0aae88dc8] 2014-10-13 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util.h, source/common/x86/pixel-util8.asm: asm: avx2 assembly code for 8bpp version of transpose(8, 16, 32 and 64) [02ff8eaad632] 2014-10-14 Deepthi Nandakumar * source/Lib/TLibCommon/TComRom.h, source/common/common.h, source/encoder/frameencoder.cpp: noiseReduction: replace magic values with readable names [38b5733cc629] 2014-10-13 Deepthi Nandakumar * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPicSym.cpp, source/encoder/analysis.cpp: TComDataCU: remove redundant arguments [f26e81eb555a] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/sao.cpp: cu-lossless: remove redundant lossless buffer The pixel values in lossless mode can be obtained from the original yuv buffer itself. [e7682fc6e2aa] 2014-10-10 Satoshi Nakagawa * doc/reST/cli.rst, source/common/slice.h, source/encoder/entropy.cpp, source/encoder/level.cpp: ptl: RExt profiles [57a30b1c13ea] 2014-10-09 Satoshi Nakagawa * source/common/common.h, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/sao.cpp, source/encoder/sao.h: sao: refine, fix sao-non-deblock [CHANGES OUTPUT (RExt, sao-non- deblock)] [1e8ba81a5ee3] 2014-10-09 Deepthi Nandakumar * source/encoder/analysis.cpp: Backed out changeset: f231820645fe [4495af3b30bb] * source/encoder/analysis.cpp, source/encoder/entropy.cpp: analysis: remove Inter Part_NxN analysis and encode. This condition will never be hit. Also remove check for intra slice in compressInterCUrd5_6 [c880eced4a30] 2014-10-08 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: rc: vbv fix for scene changes Also, some spacing nits [96609efaa877] 2014-10-08 Steve Borho * doc/reST/cli.rst, doc/reST/threading.rst: docs: try to explain behavior of related thread pool options [4b6a71d53f83] 2014-10-08 Gopu Govindaswamy * source/encoder/analysis.cpp: analysis: fix for csp:444 decoder crash - CABAC context state handling [f231820645fe] 2014-10-08 Steve Borho * source/common/param.cpp: param: combine CTU size and RQT depth log lines (just saves space) [0a18adcecd7d] * source/common/param.cpp, source/common/threadpool.cpp, source/encoder/api.cpp, source/encoder/encoder.cpp: encoder: move thread pool initialization to create(), handle pool options better Previously WPP essentially owned the thread pool and the two configurations were tied together (disabling WPP disabled the thread pool and vice-versa). Now we have three features which use the thread pool and they can be enabled or disabled independently of WPP. After this commit, if all the pool features (WPP, PMODE, PME) are disabled then the thread pool is not created. If --threads 1 is specified, then no pool is created. When no pool is present, all pool options are disabled. Reporting for all the pool options has been moved into the one log line: x265 [info]: WPP streams / frame threads / pool : 8 / 2 / 4 / pme / pmode They didn't really belong on the 'tools' log line since they are not coding tools like SAO or AMP. This commit also fixes CTU stats logging in the absence of WPP [0a0f686606c9] * source/common/wavefront.cpp, source/encoder/frameencoder.cpp: frameencoder: fix handling of no thread pool being present The encoder should run properly without a thread pool instance [35f422e7e1a1] 2014-10-08 Gopu Govindaswamy * source/encoder/frameencoder.cpp: frameencoder: allocate memory for SEIPictureTiming when interlaceMode is enabled [52677ba0c694] 2014-10-06 Steve Borho * source/encoder/analysis.cpp, source/encoder/predict.cpp, source/encoder/predict.h, source/encoder/search.cpp, source/encoder/search.h: analysis: make CU object used in --pme a const object [46c4b98d92ec] 2014-10-07 Steve Borho * source/encoder/encoder.cpp, source/encoder/frameencoder.cpp: encoder: fix handling of --no-wpp and either --pmode or --pme in --no-wpp mode, we need to allocate TLD for workers and frame encoders [f40aff61e42c] 2014-10-06 Steve Borho * doc/reST/cli.rst: doc: make it clear fast cbf only affects rdlevel 5 and 6 [2c65d39c989e] 2014-10-05 Aarthi Thirumalai * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: rc: use a sliding window to calculate moving avg SatdCost for ABR Reset logic contains improvements for detection of scene changes within Rate Control to stabilize qp and prevent extreme spikes in bitrate. Removes the blockiness or distortions in the frames that a streak of low-detailed frames and prevents vbv from overreacting at the points of scene cuts. [4b7c473c3ef4] 2014-10-05 Steve Borho * source/Lib/TLibCommon/TComDataCU.h: cu: nits [dad10cdb3573] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp, source/encoder/search.cpp: cu: drop m_totalPsyCost, just use m_totalRDCost whether or not psy is enabled [d33bc21e3bae] * source/encoder/analysis.cpp: analysis: fix CABAC context state handling after splits [CHANGES OUTPUTS] In RDlevel<=4, if split is chosen then copy depth+1 next to depth next This fixes a long standing bug in presets slow and above, and improves compression efficiency. [d07fbd3bdecc] * source/encoder/analysis.cpp, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/search.cpp, source/encoder/search.h: entropy: add a mechanism to detect reads without writes in checked builds [ead3d26c7747] * source/Lib/TLibCommon/TypeDef.h, source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/sao.cpp, source/encoder/sao.h, source/encoder/search.cpp, source/encoder/search.h: entropy: give each Search instance its own set of RD contexts This gives each ThreadLocalData a complete set of working contexts so each thread can measure RD cost (for the same row) independent of one other. There were content problems with the 'temp' and 'rqtRoot' and 'rqtTest' contexts. For this to work we have to sync the 'cur' context to the slave prior to it performing any RD measurements. This commit finally removes the CI_IDX enums and uses a simple struct to hold the contexts per depth; and the member variables were renamed from "m_rdEntropyCoders" to "m_rdContexts" since these coders are only ever used to save and restore CABAC state (never to code with) This change exposed a bug. The next patch adds some tools to catch this class of bug and the patch after that fixes it. [5420f2a29522] * source/common/threadpool.cpp: threadpool: nit [ed5b9320afca] * source/common/threading.cpp: threading: nits [1867fb89298c] * source/CMakeLists.txt: cmake: nit [fc856c00d49b] * source/encoder/entropy.cpp, source/encoder/entropy.h: entropy: make copy methods properly const [997b210ab94a] * source/CMakeLists.txt: cmake: bump X265_BUILD for new parallelism params [3c0b9a637349] 2014-10-04 Steve Borho * source/encoder/encoder.cpp: encoder: prevent broken combinations of options with --no-wpp; something in the slave state is not being initialized correctly causing crashes in motion estimation [f312deb51d55] * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: encodeIntraInInter() must write directly to given cabac context writing to m_rdEntropyCoders[depth][CI_TEMP_BEST] was not thread save since the slave thread is using the same m_rdEntropyCoders objects as the master thread [45ef431c1490] 2014-10-03 Steve Borho * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: use enums to enumerate prediction buffers value 4 was never used, so this reduces the buffer count by one [c61dca79ea0f] * source/encoder/analysis.cpp: analysis: add a hack to try and match --pmode with --no-pmode [39e5b26733b8] * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: cleanups [9872cc99362e] * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: measure best pmode intra RD cost in worker thread it required adding storage for the best intra recon and entropy state includes prep work for supporting --pmode with --rdlevel > 4 [51f689bede6a] * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: do not pass member vars to checkMerge2Nx2N_rd0_4 as pointer references [5e4aa3b6d136] * source/common/param.cpp: param: show when pmode and pme are enabled [5849804cd0c3] * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: remove default argument for compressInterCU_rd5_6 [2351a963a676] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComYuv.h, source/common/deblock.cpp, source/common/quant.cpp, source/common/quant.h, source/common/shortyuv.h, source/encoder/analysis.cpp, source/encoder/entropy.cpp, source/encoder/predict.cpp, source/encoder/sao.cpp, source/encoder/search.cpp: TComDataCU: make most get methods const, remove some trivial access methods [2e6163426c95] * source/encoder/analysis.cpp: analysis: use slave instance for MVP eval for --pme this avoids a race hazard with Predict::m_immedVals [15dff1469408] * source/encoder/analysis.cpp: analysis: replace prepMotionCompensation() calls in parallelInterSearch() [71de0b881801] * source/encoder/analysis.cpp: analysis: --pme workers do not need m_origYuv in slave instance [a6b9e8e235d7] * source/encoder/analysis.cpp: analysis: cleanup variable names [ec0cb8779f84] 2014-10-02 Steve Borho * source/encoder/analysis.cpp: analysis: prevent race hazard in parallel ME state variables the inserted comment should explain the risk, which manifested in a deadlock [70c5681f56b9] * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: parallel ME can get partsize and depth from ME CU [cf722336b836] * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: support --pme for all rd levels [dd2acbbd545c] * source/common/param.cpp, source/encoder/analysis.cpp, source/x265.cpp, source/x265.h: api: add --pme to enable parallel motion estimation [bc99dfbed4b7] * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: further parallelME progress [4cdc0528e0aa] 2014-10-01 Steve Borho * source/common/param.cpp, source/encoder/analysis.cpp, source/x265.cpp, source/x265.h: api: add --pmode to enable parallel mode decision [57f93ba0df23] 2014-10-02 Steve Borho * source/encoder/encoder.cpp: encoder: correct logging of number of WPP streams [b6d49505b179] * source/encoder/search.cpp: search: remove redundant calls to prepMotionCompensation() [50490cd35e57] * source/encoder/search.cpp: search: use sad cost directly to pick MVP there's no point in use SAD RD cost if all the candidates have the same estimated bit cost. [bd6e2cdd5938] * source/encoder/rdcost.h, source/encoder/search.cpp, source/encoder/search.h: search: make some helper methods const [b17293bb0f19] 2014-10-01 Steve Borho * source/encoder/analysis.cpp: analysis: remove unused variables, fixes warnings [898a2546aff1] 2014-10-02 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: rc: correct the threshold for resetABR function [0212e9832ce7] * source/encoder/ratecontrol.cpp: rc : correct max AU size for first frame [4579fc590099] 2014-10-02 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/entropy.cpp, source/encoder/entropy.h: fix bug in 73c6c9086577 for rdLevel=0 [b57c63127527] 2014-10-01 Steve Borho * source/encoder/analysis.cpp: analysis: further work on parallel ME [c0bbd8d01257] * source/encoder/analysis.cpp: analysis: nit, remove obviously wrong comment [bd3046c4bb36] * source/encoder/analysis.cpp: analysis: use source buffer for source stride it was always a coincidence that the output stride matched [61e028b5a04e] * source/encoder/analysis.cpp: analysis: initialize job counters [7daea9e6c5ae] * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: remove bMergeOnly argument to checkInter_rd0_4, always false [589d4d7e5a72] * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: remove PartSize argument to checkIntraInInter_rd0_4 [0c6fe4a39a32] 2014-10-01 Deepthi Nandakumar * source/encoder/ratecontrol.cpp: ratecontrol: fix float absolute check [2a55baeb89cf] * source/encoder/ratecontrol.cpp: ratecontrol: replace an imprecise comparison with a more precise check to ensure consistency. [f9922ce58a20] * source/common/slice.h: slice: better structure packing [d0fa09e9cca5] 2014-09-30 Steve Borho * source/encoder/analysis.cpp: analysis: fixup [3bd852b225b5] * source/encoder/analysis.cpp: analysis: move non-distributed path into else clause this is done in a second patch since it touches a lot of code trivially so it [b17ddb5d71f4] 2014-09-27 Steve Borho * source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/encoder.cpp, source/encoder/frameencoder.h: stub in framework for parallel mode analysis and parallel ME [5c1a4804c42d] 2014-09-30 Steve Borho * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: remove default arguments to checkInter_rd5_6 and checkInter_rd0_4 [4d9ff684c80f] * source/x265.cpp: cli: display param->bSaoNonDeblocked as bool in CLI help [1af64c8c2d28] * source/encoder/analysis.cpp: analysis: nit [a4859c266a59] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/common/deblock.cpp, source/common/loopfilter.cpp, source/common/primitives.h, source/encoder/analysis.h, source/encoder/sao.cpp: replace lcu with ctu in variable names [ab92196f8b7b] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComRom.h, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/sao.h: replace LCU with CTU globally in comments [382384729d60] * source/encoder/sao.h: sao: nits [8b89e74d848d] * source/encoder/sao.cpp, source/encoder/sao.h: sao: rename resetLcuPart to resetCtuPart [f2b5e4d8da59] * source/common/common.h, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/encoder/sao.cpp: sao: rename saoLcuParam to ctuParam [ca1e3afddc4f] * source/common/common.h, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/sao.cpp, source/encoder/sao.h: sao: rename SaoLcuParam to SaoCtuParam [7692ab2a28d3] * doc/reST/cli.rst, source/CMakeLists.txt, source/common/common.h, source/common/param.cpp, source/encoder/frameencoder.cpp, source/encoder/sao.cpp, source/x265.cpp, source/x265.h: api: rename --sao-lcu-bounds to --sao-non-deblock The acronym LCU doesn't appear anywhere else in our param interface [5a06c0462363] * source/encoder/search.cpp, source/encoder/search.h: search: make bidir temp YUVs Search members I can't believe we've been allocing them every predInterSearch() call for the last 2 months. [2486149ff9de] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp, source/encoder/entropy.cpp: datacu: coding style rename of m_DataCUMemPool and m_CULocalData [832ad99093a0] * source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h: motioninfo: coding style rename of m_MVFieldMemPool [ec91821451f3] * source/common/common.h: common: break into debugger when check fails in debug build [a5103ad3df8b] * source/Lib/TLibCommon/TComDataCU.cpp: TComData: do not leave m_tqBypassOrigYuv uninitialized [a360de22f48b] 2014-09-30 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm, source/common/x86/dct8.h: asm: avx2 assembly code for idct4x4 [49aaafeb707a] 2014-09-30 Praveen Tiwari * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: blockfill_s_32x32 avx2 asm code: performance improved from 1354.05 cycles to 705.81 cycles, over sse version of asm code [154aa8bfe042] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: blockfill_s_16x16 avx2 asm code: performance improved from 389.21 cycles to 204.38 cycles, over sse version of asm code [8be59e140210] 2014-09-29 Aarthi Thirumalai * source/common/slice.h, source/encoder/level.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: rc: apply maxAU size restrictions while encoding each frame [8740d938dbb7] 2014-09-30 Santhoshini Sekar * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: TComDataCU: replace getTotalNumPart() with CU structure details [1706e30042ef] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/predict.cpp, source/encoder/predict.h, source/encoder/search.cpp, source/encoder/search.h: TComDataCU: replace getZorderIdxInCU() with encodeIdx of CU structure [73c6c9086577] 2014-09-30 Steve Borho * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/rdcost.h, source/encoder/search.cpp, source/encoder/search.h: rd: move lambda and analysis qp init to rdcost.h This will make it possible for Search instances to copy QP data between each other [a40ff330a525] 2014-09-30 Satoshi Nakagawa * doc/reST/cli.rst, doc/reST/threading.rst, source/common/common.h, source/common/param.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/encoder/sao.cpp, source/encoder/sao.h, source/x265.cpp, source/x265.h: sao: remove frame-based SAO [28db2410d5de] 2014-09-29 Steve Borho * source/Lib/TLibCommon/TComMotionInfo.h: TComMvField: class to struct, white-space cleanups [5a6845566d14] 2014-09-25 Steve Borho * source/encoder/search.cpp: search: reorder nits, no effect do allocations after simple configurations [0c4e39a2965b] * source/common/quant.cpp, source/common/quant.h, source/encoder/search.cpp: quant: pass entropy instance through init function [a8fca9f05102] * source/encoder/search.cpp: search: white-space nits [991527f1a9c6] * source/encoder/analysis.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/search.cpp, source/encoder/search.h: search: give each Search instance an Entropy encoder (no output changes) This essentially relocates the "active" entropy coder used during all analysis from CTURow to ThreadLocalData. This actually reduces the number of Entropy instances in the encoder, and solves the problem of sharing the entropy coder between worker threads cooperating on the same CTU. [a4d27e19ed09] 2014-09-26 David T Yuen * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/frameencoder.cpp: Changes for loadCTUData Replaced getDepthScanIdx() with table g_depthScanIdx Moved Analysis::loadCTUData to TComDataCU::loadCTUData since it only works with TComDataCU fields Replaced CU.offsets[2] with local variables in loadCTUData since that is the only place it was set and used minor changes to reduce the number of local variables in loadCTUData [0d0558b82a9c] 2014-09-26 Steve Borho * source/encoder/analysis.cpp, source/encoder/encoder.cpp: nits [32f50df7fa76] 2014-09-26 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm, source/common/x86/dct8.h: asm: avx2 assembly code for idct32x32 [4b18a27b52ac] 2014-09-25 David T Yuen * source/encoder/frameencoder.cpp: Removed unnecessary call to loadCTUData [8119b3d8d260] 2014-09-25 Steve Borho * source/encoder/analysis.cpp: analysis: more style nits, code simplifications. no behavior change [bd0e23d7d394] * source/encoder/analysis.cpp: analysis: remove #define conditionals for control flow The non-default paths are not being tested (or even compiled) and are thus assumed broken. The defines simply make the code harder to read. [f5f7c23fedd6] * source/encoder/analysis.cpp: analysis: coding style and comment nits [e6cc918fb18e] * source/encoder/analysis.cpp: analysis: remove unused LAMBDA_PARTITION_SELECT [391282b02731] * source/encoder/analysis.cpp: analysis: hoist local function into anonymous namespace (file local) [d26780e43a87] 2014-09-25 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm, source/common/x86/dct8.h: asm: avx2 assembly code for idct8x8 [8492a3250fef] 2014-09-25 Santhoshini Sekar * source/Lib/TLibCommon/TComDataCU.cpp, source/common/deblock.cpp, source/common/frame.h, source/common/slice.cpp, source/encoder/analysis.cpp, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/sao.cpp, source/encoder/search.cpp: remove getNumPartInCU() and replace it with macro [37f33ab176fa] 2014-09-26 Satoshi Nakagawa * source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/common/deblock.cpp, source/common/deblock.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h: refine deblocking filter [b47d794a0372] 2014-09-24 Steve Borho * source/common/slice.h, source/encoder/predict.cpp, source/encoder/predict.h: predict: split weighted prediction values from WeightParam The arguments passed to addWeightBi() and addWeightUni() are just the "w, o, offset, shift, round" integers. They don't need the fields which were signaled in the slice header or vice-versa. [7dccbbed0349] * source/encoder/predict.cpp, source/encoder/predict.h, source/encoder/search.cpp: predict: combine and check allocations and return failures [982040e91112] * source/encoder/predict.cpp, source/encoder/predict.h, source/encoder/search.cpp: predict: remove check for reallocations, comment nits we don't do this anywhere else; there would be huge leaks if the Search object were initialized multiple times. there's no reason to check here. [7c88fb6128cf] * source/encoder/analysis.cpp, source/encoder/predict.cpp, source/encoder/predict.h, source/encoder/search.cpp: predict: inline predInterUni(), getWpScaling() and simplify motionCompensation() After this refactor, motionCompensation no longer needs the cu parameter. It was only used to pass to another member function to gain access to cu->m_slice which is now a member variable. This refactor removed a number of arguments to addWeightBi and addWeightUni which were always member variables. [a961728f906c] * source/encoder/predict.cpp, source/encoder/predict.h: predict: inline single call of predInterBi() [b6c9a51d9201] * source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: encoder: rename cuCoder to analysis for better clarity the data type of cuCoder changed from TEncCu to Analysis weeks ago [a3f952bcada5] 2014-09-25 Deepthi Nandakumar * source/Lib/TLibCommon/TComPicYuv.h, source/common/deblock.cpp, source/common/deblock.h: Backed out changeset: 940cec3bf0b4 This commit causes hash mismatches in vc11 x86_64 Release mode consistently, when lft is enabled. Stack/heap corruption likely. [0d330611fa97] 2014-09-24 Steve Borho * source/common/vec/dct-sse3.cpp: Backed out changeset: eb011fa1d2d8 [e47e127da779] 2014-09-24 David T Yuen * source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: Changed FrameEncoder::m_tld to a pointer and set it to one of Encoder's ThreadLocalData instances. This uses less memory since m_tld isn't used in --wpp and Encoder's ThreadLocalData instances are not used in --no-wpp Also there was a small performance increase on my system [3e1bfb2e4592] 2014-09-24 Steve Borho * source/common/vec/dct-sse3.cpp, source/common/vec/dct-ssse3.cpp: vec: make a note for why we keep some of the remaining vector routines [f6a0b0a97a5b] * source/common/vec/dct-sse3.cpp: vec: remove idct8, we have SSSE3 assembly for it [eb011fa1d2d8] * source/common/CMakeLists.txt, source/common/vec/blockcopy-sse3.cpp, source/common/vec/vec-primitives.cpp: cmake: remove blockcopy-sse3.cpp [c79590d89389] * source/common/pixel.cpp, source/common/primitives.h, source/test/pixelharness.cpp, source/test/pixelharness.h: primitives: remove unused block copy primitives [63b7cb39e9f1] 2014-09-24 Praveen Tiwari * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: bloccopy_pp avx asm code: 32x32, 32x48, 32x64 improved by 803.69 -> 514.90, 1126.36 -> 655.24, 1454.09 -> 835.76 cycles [3fe7e7975eae] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: blockcopy_pp_32x24: avx asm code, improved 621.84 cycles -> 371.94 [fe901487b7cc] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: blockcopy_pp_32x16: avx asm code, improved 477.74 cycles -> 309.99 [b51e34a4b828] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: blockcopy_pp_32x8: avx asm code, improved 281.20 cycles -> 165.47 [2d8adf9a4ab0] 2014-09-24 Satoshi Nakagawa * source/Lib/TLibCommon/TComPicYuv.h, source/common/deblock.cpp, source/common/deblock.h: refine deblocking filter [940cec3bf0b4] 2014-09-20 Steve Borho * source/encoder/predict.cpp, source/encoder/predict.h: predict: remove checkIdenticalMotion() We will not insert the same reference picture into L1 and L0 at the same time, so this check is utterly redundant. [532d0266e333] * source/encoder/analysis.cpp, source/encoder/predict.cpp, source/encoder/predict.h, source/encoder/search.cpp: predict: remove list argument from motionCompensation(), always REF_PIC_LIST_X [cf90338bbc87] * source/encoder/predict.cpp: predict: streamline getWpScaling() [e26ce61cd2e3] * source/encoder/predict.cpp: predict: use faster unidir prediction for B frames when weighting not enabled [30dd73bb8a93] * source/encoder/predict.cpp, source/encoder/predict.h: predict: combine redundant logic paths in predInterBi() removes weightedPredictionBi(), which is no longer called [3f1681901fb4] 2014-09-24 Deepthi Nandakumar * source/test/testbench.cpp: Backed out changeset: fa2f1aa1456e This commit allocated the harness instances on the heap, thus no longer respecting __declspec(align) directives for the member fields. We could probably circumvent this by overloading operator new with aligned_malloc, but I'm not sure this is good practice. [b2b7072ddbf7] 2014-09-23 Sagar Kotecha * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: blockcopy_ss: 64x16, 64x32, 64x48, 64x64 AVX version of asm code, approx double speedup comapre to SSE [e2b577330c9b] 2014-09-23 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm, source/common/x86/dct8.h: asm: avx2 code for dct8x8 [271e5eb1e396] 2014-09-23 Min Chen * source/common/x86/dct8.asm: asm: replace mova by movu to avoid AVX2 testbench crash in dct16, dct32, denoise_dct, its same speed on Haswell [02253e0800ea] 2014-09-23 Sagar Kotecha * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: add avx version for chroma_copy_ss 16x4, 16x8, 16x12, 16x16, 16x24, 16x32, 16x64 based on csp, approx 1.5x-2x speedup over SSE [1f5ffdc453ee] 2014-09-22 Satoshi Nakagawa * source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/encoder/predict.cpp: simplify intra filter (with fix for da61cf406f16) [ee76b64fd051] 2014-09-22 Deepthi Nandakumar * source/encoder/ratecontrol.cpp: Backed out changeset: 25dde1ffab66 This commit needs more investigation, with specific VBV use cases like 1-sec GOPs. [82bab5587bf1] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPicYuvMD5.cpp, source/Lib/TLibCommon/TComRom.cpp, source/common/deblock.h, source/common/quant.cpp, source/encoder/api.cpp, source/encoder/entropy.cpp, source/encoder/sao.cpp, source/encoder/search.cpp: nits: use parantheses to improve readability in shifts [fd435504f15e] 2014-09-20 Steve Borho * source/encoder/predict.cpp: predict: don't bother keeping refidx as an array it is always indexed explicitly [1c172c1822e4] * source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.h, source/common/CMakeLists.txt, source/encoder/predict.cpp, source/encoder/predict.h: predict: merge TComWeightPrediction functions into Predict * TComWeightPrediction had no member vars, the constructor was useless * half of the functions were not used, they were dropped * default arguments were removed, none were actually required * x prefixes removed from method names * comments were cleaned up [0be03e280b3d] * source/Lib/TLibCommon/TComWeightPrediction.cpp: TComWeightPrediction: combine duplicate inline functions (refs #80) [c7cc07fd21a7] * source/encoder/encoder.cpp: encoder: use %u to sprintf unsigned ints (refs #80) [a58aea624122] * source/encoder/entropy.cpp: entropy: fix SAO enable detection (refs #80) Apparently our analysis never toggles luma separately from chroma because this bug has not resulted in any bad bitstreams, that I know of. This bug was found via static analysis [c39538f0c59b] * source/common/bitstream.cpp: bitstream: add paren to avoid ambiguous precedence in X265_CHECK [2599fd87b72e] * source/Lib/TLibCommon/TComPicSym.cpp, source/common/frame.cpp, source/encoder/api.cpp, source/encoder/encoder.cpp: nits: do not check for NULL from new operations By the C++ spec, new is incapable of returning NULL. If an allocation failure actually occurs, an exception is issued (which we do not catch) Long term, all of these new operations need to be replaced by malloc and explicit initialization and destruction. In the short term, these return value checks are redundant. [6e450860475a] * source/encoder/bitcost.h: bitcost: use enums for special constants rather than static const ints enums require no storage [3fd2d7acb6bb] * source/encoder/motion.cpp: motion: avoid extra iterations when no subpel motion found subsequent iterations would have also returned zero, which would be pointless. this is an adaption of a patch by Sheva Xu. [2c1d4c7d85ba] 2014-09-22 Deepthi Nandakumar * source/encoder/search.cpp, source/encoder/search.h: search: clean xRecurIntraCodingQT [d1ffc125f0a3] * source/encoder/analysis.cpp: analysis: nits [39d0ba6012d5] * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: psy-rd: fix bug in chroma psyEnergy for intra 4x4 Also add TODO, for all psyCost calculations [d1c2b82de4db] 2014-09-21 Deepthi Nandakumar * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: remove CheckBestMode from CheckIntra [817abe294c8b] * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: remove redundant variables, cleanup variable names [6334cc645407] 2014-09-20 Steve Borho * source/common/param.cpp: param: do not allow VBV without WPP VBV row restarts cannot function correctly without WPP (per-row CABAC starts) [c8f53398f8ce] 2014-09-18 Gopu Govindaswamy * source/encoder/search.cpp: search: simplify and remove redundant variables in getBestIntraModeChroma [9b9986cc084b] * source/encoder/search.cpp: search: remove redundant loacal variables in encodeResAndCalcRdSkipCU [5c067b643591] * source/encoder/search.cpp: search: cleanup and remove redundant variable in checkintra [7c1e793722f9] 2014-09-19 Satoshi Nakagawa * source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/common/intrapred.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/encoder/analysis.cpp, source/encoder/predict.cpp, source/encoder/search.cpp, source/encoder/slicetype.cpp, source/test/intrapredharness.cpp, source/test/intrapredharness.h: primitives: intra_pred[4][35] => intra_pred[35][4] (avoid *35) [da61cf406f16] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/common/deblock.cpp, source/common/frame.cpp, source/common/frame.h, source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/motion.h, source/encoder/predict.cpp, source/encoder/predict.h, source/encoder/search.cpp: inline simple functions [c07038ca0e07] 2014-09-17 Steve Borho * source/test/testbench.cpp: testbench: allocate test harnesses on heap, for better valgrind coverage [fa2f1aa1456e] 2014-09-18 Praveen Tiwari * source/test/mbdstharness.cpp: denoiseDct: align performance data while reporting speedup [4680ab4f92b8] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm: copy_cnt_32: avx2 asm code, improved 1521.17 cycles -> 934.46 cycles [6908388bf26f] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/const-a.asm: copy_cnt_16: avx2 asm code, improved 514.32 cycles -> 313.66 cycles [9b672a7b3ea9] * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm: denoise_dct: avx2 asm code [e83cc4a15dc9] * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm, source/common/x86/dct8.h: denoise_dct asm code: SSE version [d6759701fdd7] 2014-09-18 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm, source/common/x86/dct8.h: asm: avx2 assembly code for idct16x16 [7e82d0abf6fb] 2014-09-18 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: rc: improvements for cbr [25dde1ffab66] 2014-09-17 Praveen Tiwari * source/common/x86/dct8.h: denoiseDct: nit unused asm function declarations [54ad38a84a69] * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm: denoiseDct asm code: nit faulty code, need a new SSE version [55a50a362def] * source/test/mbdstharness.cpp: denoiseDct unit test code: fixed bound value problem [b162185198fe] 2014-09-11 Praveen Tiwari * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm: copy_cnt_4 avx2 asm code: nit, same speedup by sse version [123db3a255a7] 2014-09-17 Aarthi Thirumalai * source/encoder/analysis.cpp: rc: fix bugs in using boundary condition for cu while encoding each frame. fixes the binary mismatch in 2 pass completely. [4e17a5c3ed64] 2014-09-17 Steve Borho * source/encoder/frameencoder.cpp: frameencoder: fix VBV row resets when SAO is disabled When SAO is disabled, the row bitstream is generated as CTU analysis progresses. We must reset the row bitstream after a restart to avoid coding errors. The CAABAC state is already reset correctly when CTU col 0 is re-coded. [86686bd153db] 2014-09-16 Sagar Kotecha * source/common/param.cpp, source/common/param.h, source/x265.cpp: add fanout validation module to check param compatibility [199e8f2e0d54] 2014-09-16 Gopu Govindaswamy * source/encoder/api.cpp: api: do not reuse the analysisData buffer for more then one picture, set it NULL [d71d363c0dbb] 2014-09-16 Santhoshini Sekar * source/encoder/analysis.cpp, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp: analysis: add CU specific details to encodeCU() [06bac60ee4cf] 2014-09-16 Steve Borho * source/encoder/analysis.cpp: analysis: nits [b276d567d771] 2014-09-16 Gopu Govindaswamy * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/search.cpp, source/encoder/search.h: analysis: intra picture estimation (mode and split decision)information sharing when --analysis-mode=save - the encoder runs a full encode and dump the best split and mode decisions into x265_analysis.dat(default file name if file name is not provided) file when --analysis- mode=load - the encoder reads the best split and mode decisions from x265_analysis.dat and bypass the actual split and mode decisions, and therefore perform a much faster encode [7784ad03d6d4] 2014-09-16 Praveen Tiwari * source/test/mbdstharness.cpp, source/test/mbdstharness.h, source/test/testharness.h: denoiseDct: test bench code [63a78516630c] 2014-09-15 Steve Borho * source/encoder/search.cpp: search: save a few cycles [a1fc4e9bba51] 2014-09-15 Aarthi Thirumalai * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp: rc: fixes for 2 pass + vbv to calculate frameSizePlanned accurately. [7c1aba99f40d] 2014-09-15 Steve Borho * doc/reST/presets.rst, source/common/param.cpp: param: preset tuning changes 1. disable SAO in superfast Recent changes have made --no-sao substantially faster than SAO, which has made ultrafast preset much much faster than superfast. By disabling SAO in superfast, it is now roughly half-way between ultrafast and veryfast again. 2. Enable weighted prediction for B slices in slower, veryslow, and placebo Weighted prediction for B can sometimes be beneficial, so turn it on for slower encodes. [1de67321275e] * doc/reST/threading.rst: doc: describe performance impact of SAO [dff0cd55b520] * doc/reST/threading.rst: doc: fix typo and nit in threading page [76240da72c38] 2014-09-12 Satoshi Nakagawa * source/common/common.h, source/common/x86/loopfilter.asm, source/encoder/entropy.cpp, source/encoder/sao.cpp, source/encoder/sao.h: sao: some cleanups [098a00de4a72] 2014-09-15 Steve Borho * source/Lib/TLibCommon/CommonDef.h, source/encoder/search.h: search: header cleanups, no functional change [db063839c8fe] 2014-09-10 Steve Borho * source/encoder/search.cpp, source/encoder/search.h: search: measure RDO of intra modes within 12% of least cost [CHANGES OUTPUTS] This version adaps the number of RD measured modes by param.rdLevel (aka preset) and by depth. This gives a non-trivial speedup to the very fast presets which use frequent keyframes and helps improve compression in slower presets. all presets use this function to encode I slices, so every encode is affected. Previous behavior: RD measure top N least sa8d cost intra modes and all most probable modes where N was depth-based: intraModeNumFast[] = { 8, 8, 3, 3, 3 }; // 4x4, 8x8, etc New behavior: RD measure up to N modes that are within 12% of best sa8d cost or are most probable. where N if a function of rd-level and depth The new behavior may measure fewer modes than before may skip some most-probable modes if there are plenty of other modes which are near the best cost. Since mode signal cost is included already, this seems ok. The general idea is that if 1-2 modes have much better sa8d cost than all the others, then we are likely wasting our time RD measuring 8-11 modes. We're betting that sa8d cost is a somewhat decent predictor of RD cost. Note that I initially tried without a limit (measure all within 12% or MPM) but for some clips this was a horrible perf trade-off. In some situations all the intra modes might measure close together (flat source block) and we would end up measuring most or all of the intra modes for very little gain. So this version re-introduces a "top N candidate list" but does not bother trying to keep the list sorted since it is small [02353d20f051] 2014-09-15 Steve Borho * source/encoder/search.cpp: search: comment nits [017ceb9d2b06] * source/encoder/ratecontrol.cpp: Merge with stable [70c836fef6d9] 2014-09-15 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: rc: bug fix for 2 pass when bframes = 0. fixes Issue #77 [e6a80fb007e8] * source/encoder/ratecontrol.cpp: rc: check for changes in scenecut input between multiple passes. wpp/no-wpp doesn't affect slice type decisions. they can differ between the passes in multipass encode. [67ee212bbf78] * source/encoder/ratecontrol.cpp: rc: bug fix for 2 pass when bframes = 0. fixes Issue #77 [9107dc4a2632] 2014-09-10 Ashok Kumar Mishra * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: Search: remove redundant encode coefficients in intra for performance [8972169f252d] 2014-09-15 Murugan Vairavel * source/common/x86/dct8.asm: asm: fix mismatch due to dct32 avx2 assembly code [b5fb734517c0] 2014-09-12 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm, source/common/x86/dct8.h: asm: avx2 assembly code for dct32x32 [184e56afa951] 2014-09-13 Deepthi Nandakumar * source/x265.h: x265: add missing typedefs [2fb61cc75152] 2014-09-11 David T Yuen * source/x265.cpp: Resolved gcc compiler error of mismatched type [cd8fd0afd4e8] 2014-09-12 Deepthi Nandakumar * source/common/x86/asm-primitives.cpp: Merge with stable [fda32ff40246] * source/common/x86/asm-primitives.cpp: asm: disable buggy denoise primitives until the bugs are fixed [d522e7662111] 2014-09-11 Sagar Kotecha * doc/reST/cli.rst, source/common/common.h, source/common/param.cpp, source/x265.cpp: cli: add cli options analysis-mode and analysis-file analysis-mode: save|1 - Dump analysis buffers into file, load|2 - read analysis buffers from the file analysis-file: Specify file name used for either dumping or reading analysis data [7e29b10982d2] * source/common/frame.cpp, source/common/frame.h, source/encoder/analysis.cpp, source/encoder/encoder.cpp: store analysis information in buffers [b0d006337801] * doc/reST/api.rst, source/CMakeLists.txt, source/encoder/api.cpp, source/x265.def.in, source/x265.h: api: introduce methods to allocate and free analysis buffers [baf07b965909] * source/x265.h: api: add analysis data structures and param options [e5a24e5ba46e] 2014-09-11 Steve Borho * source/encoder/analysis.cpp: analysis: minor comment and code cleanups, no behavior change [3d6cc40ebbf7] * source/encoder/search.cpp, source/encoder/search.h: search: remove x prefixes from ME helper functions [e9e71ece1344] * source/encoder/dpb.cpp: dpb: does not need to include frameencoder.h [6bb0d3a25b08] 2014-09-10 Steve Borho * source/encoder/analysis.h: analysis: nit [012f315d3eda] * source/encoder/analysis.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/search.cpp, source/encoder/search.h: search: don't pass top-level encoder to initSearch() removes three Encoder members that were only used to communicate data to initSearch() [0bc83ba57dad] * source/encoder/search.cpp: search: store rd costs in first pass through intra modes no behavior change, this is prep work for further refactors [ff2fd6923f1a] * source/encoder/dpb.cpp, source/encoder/dpb.h, source/encoder/framefilter.h: cleanup header dependencies; dpb should not need encoder.h [7eddb265f512] 2014-09-11 Deepthi Nandakumar * source/common/x86/asm-primitives.cpp: asm: enable copy_cnt8 [a522a2549cac] 2014-09-10 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm, source/common/x86/dct8.h: asm: avx2 assembly code for dct16 [18d0461eb4d0] 2014-09-10 Praveen Tiwari * source/common/x86/blockcopy8.asm: copy_cnt_8, AVX2 asm code as per new interface, performance improved from 5.13x to 7.59x on HASWELL-I5 [0d27befcc874] 2014-09-10 Steve Borho * source/encoder/encoder.cpp: encoder: nits [81c9f704ae38] 2014-09-09 Steve Borho * source/encoder/search.cpp: search: re-enable chroma tskip this passed regression testing [bdd477050097] 2014-09-09 Aarthi Thirumalai * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp: rc: use m_frameDuration instead of rce->frameDuration to derive complexity for each frame in 2nd pass. don't store and use frameDuration from stats file per frame - losing precision. [139b41632c64] 2014-09-10 Deepthi Nandakumar * source/common/param.cpp, source/x265.h: param: apply missing default values to param, mostly zero and reorder [3fc141aa74b5] 2014-09-09 Steve Borho * source/encoder/search.cpp, source/encoder/search.h: search: reverse meaning of bCheckFirst to bAllowRQTSplit I find this much more readable [408e2e6f0f70] * source/encoder/analysis.cpp, source/encoder/search.cpp: search: !a ? b : c; -> a ? c : b; [f45f3ed38951] * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: search: rename some helper functions without x prefixes [719284d910b6] * source/common/x86/blockcopy8.asm: backout 0dc2cbc36ee5 to 331ef5121676 [491e74c58e51] 2014-09-09 Ashok Kumar Mishra * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: modified compressInterCU_rd0_4() with CU-specific information [2d9eb8cebb71] 2014-09-09 Steve Borho * source/encoder/search.cpp, source/encoder/search.h: search: fix camel case of residualQTIntraChroma [d85792b9f373] * source/encoder/search.cpp: search: don't pass a zeroDistortion pointer if you don't want the answer [84b1d287333f] * source/encoder/search.cpp, source/encoder/search.h: search: return distortion from xEstimateResidualQT [7d8e4935c1ca] * source/encoder/search.cpp, source/encoder/search.h: search: pass depthRange uniformly as uint32_t depthRange[2] effectively the same as uint32_t but compilers and debuggers can often do more with the length info. plus it just makes the code more readable [cead9fe7ff30] * source/encoder/analysis.cpp, source/encoder/search.cpp, source/encoder/search.h: search: return distortion from xRecurIntraCodingQT [68ac5ca5d676] * source/encoder/search.cpp, source/encoder/search.h: search: return distortion from xIntraCodingChromaBlk, do not pass by ref [62f6924be843] * source/encoder/search.cpp, source/encoder/search.h: search: return distortion from xRecurIntraChromaCodingQT, do not pass by ref [b0a018562d29] * source/encoder/search.cpp, source/encoder/search.h: search: return distortion from xIntraCodingLumaBlk, do not pass by reference [a7f4f750e9d4] 2014-09-09 Praveen Tiwari * source/common/x86/blockcopy8.asm: copy_cnt_8 AVX2 asm code, as per new interface [331ef5121676] * source/common/x86/blockcopy8.asm: copy_cnt_4: faster AVX2 code [f7f8206a70bd] * source/common/x86/blockcopy8.asm: copy_cnt_4: combine mova and paddb to reduce code size, same speedup [5edcbcbb338f] * source/common/x86/blockcopy8.asm: copy_cnt_4: enable fast non zero coefficient count path [0dc2cbc36ee5] 2014-09-09 Steve Borho * source/encoder/frameencoder.cpp: frameencoder: use simple shifts to scale 2-pass CU type counters the cu type counters are summed at the end and turned into percentages, so it doesn't matter what base unit is used, only that each depth has 4x the value as depth+1 [ebd5a0cac758] * source/encoder/frameencoder.cpp: frameencoder: use x265_emms() prior to double QP clipping for VBV [a414ca1c9067] 2014-09-09 Deepthi Nandakumar * source/encoder/search.cpp: search: remove warning from MS compiler [44cb33846e0e] 2014-09-08 Min Chen * source/common/dct.cpp, source/common/x86/asm-primitives.cpp, source/common/x86/const-a.asm, source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm: asm: avx2 version of quant, improve 16.6k cycles -> 8.4k cycles [c4fb044c901b] * source/common/x86/pixel-util8.asm: asm: improve quant by replace variant shift to fixed shift, 19k cycles -> 16.6k cycles [277c1e05c247] * source/common/dct.cpp, source/test/mbdstharness.cpp: testbench(quant): the qBits value must be more than or equal to 8 [5dbf9e8f4028] * source/test/mbdstharness.cpp: testbench(quant): the Round value must be less than (2 ^ qbits) [53e0969c605f] 2014-09-08 Steve Borho * source/encoder/search.cpp: search: prune more unnecessary work from estIntraPredQT() [b5f81a839403] * source/encoder/search.cpp: search: remove some redundant work from estIntraPredQT [033299d2bd00] * source/encoder/search.cpp, source/encoder/search.h: search: remove m_qtTempTrIdx [00b86119f0ad] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/CMakeLists.txt, source/encoder/analysis.h, source/encoder/search.cpp, source/encoder/search.h: pull search class into encoder/ (TLibEncoder is no more) TEncSearch -> Search use consistent comment style and argument lists make destructor no longer virtual (no more vtable) moving StatisticLog into x265 namespace came for free [f2688d840261] * source/encoder/api.cpp: api: remove include of frameencoder [796cc966e2fe] * source/Lib/TLibCommon/TComMotionInfo.h, source/encoder/analysis.h: nits [f2da9f3db824] 2014-09-08 Ashok Kumar Mishra * source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: modified compressInterCU_rd5_6() with CU-specific information [27581134f442] * source/encoder/analysis.cpp, source/encoder/analysis.h: Analysis: compressIntraCU clean up [5b377a411463] 2014-09-08 Steve Borho * source/encoder/framefilter.cpp, source/encoder/sao.cpp, source/encoder/sao.h: sao: move frame/slice initialization into SAO::startSlice [80b2e91156d3] * source/encoder/sao.cpp: sao: minor cleanups, no behavior change [b9ed1dcacf9e] * source/encoder/frameencoder.cpp: frameencoder: avoid another call to resetEntropy(), they are expensive [cfe197e3044d] * source/encoder/frameencoder.cpp: frameencoder: combine some conditional expressions [cb67f6f65577] * source/encoder/frameencoder.h, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: rc: move FrameStats to ratecontrol.h rate control shouldn't need to include frameencoder.h [89e682182a7a] * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/ratecontrol.cpp: frameencoder: rename percent fields for clarity [9581a45d4344] * source/encoder/frameencoder.cpp: frameencoder: do more CU stat math as integer [406d92c860d5] * source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: merge more of encodeSlice() into processCU this commit fixes no-WPP after the previous change. the per-row or per-frame (+- WPP) bistreams are flushed as they are finished (and cache hot) and the per CU stats are summed per row and then summarized all in one place. [60289c638600] 2014-09-05 Steve Borho * source/encoder/frameencoder.cpp: frameencoder: remove second encodeCU() pass over CTUs when SAO is disabled This is a performance optimization, it allows the encoder to generate the final bitstream of each CTU as it is compressed and cache hot. When SAO is enabled, SAO analysis must be performed and coded at the start of the CTU but SAO analysis currently requires surrounding CTUs to be encoded making the second pass unavoidable. Note that this commit changes the way non-WPP encodes are performed, for the better. Now it always uses row 0's CI_CURR_BEST entropy coder instance to communicate entropy state between all CTUs and between rows. This better models how encodeSlice() works and makes RDO work better [a117564df3ef] 2014-09-08 Steve Borho * source/encoder/frameencoder.cpp: frameencoder: remove redundant clear of frame stats they were being zero'd in the constructor, init(), and in compressCTURows. techincally only the last is truly necessary, but I'm leaving the memset in the contructor. [a7465d789c64] * source/encoder/entropy.h, source/encoder/frameencoder.cpp: nits [a29aa966336e] * source/common/x86/x86inc.asm: Merge with correct x86inc.asm patch [c55d69561948] 2014-09-05 Min Chen * source/common/x86/x86inc.asm: x86inc.asm: fix vpbroadcastd bug on Mac platform [51930084e148] 2014-09-08 Deepthi Nandakumar * source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp: entropy: change top-level encode to encodeCTU [de5614144bce] 2014-09-07 Satoshi Nakagawa * source/encoder/sao.cpp: fix sao [8cbfec8d6b4d] * source/common/dct.cpp, source/encoder/analysis.cpp: fix CHECKED_BUILD [845e82c5d607] 2014-09-05 Min Chen * source/common/x86/asm-primitives.cpp, source/common/x86/const-a.asm, source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm: asm: AVX2 version of dequant_normal, improve 9.3k Cycles -> 4.2k Cycles [ed4c9acafc11] * source/common/dct.cpp, source/common/x86/pixel-util8.asm: asm: reduce number of movd in dequant_normal [bc9025648270] * source/common/x86/x86inc.asm: x86inc.asm: fix vpbroadcastd bug on Mac platform [27364e9f97e4] 2014-09-05 Steve Borho * source/encoder/frameencoder.cpp: frameencoder: remove unnecessary call to resetBits(), improve comment [795878af3973] * source/encoder/frameencoder.h: frameencoder: cleanup CTURow::init According to my understanding, only rdEntropyCoders[0][CI_CURR_BEST} really needs to be initialized, but this changes outputs if I do this. It tells me there is likely a bug in the entropy state management [b05e3141c766] * source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: CTURow class -> struct, remove m_ prefixes Still no output changes in this patch series [5d9433930735] * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp: tld: remove m_ prefixes from struct members [85b93c9b6f0d] * source/encoder/CMakeLists.txt, source/encoder/cturow.cpp, source/encoder/cturow.h, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: cturow: merge CTURow and TLD objects into frameencoder.h [1b69af135b48] * source/encoder/frameencoder.cpp: frameencoder: remove unused variable, nit [6d84a175723a] * source/encoder/cturow.cpp, source/encoder/cturow.h, source/encoder/frameencoder.cpp: cturow: inline processCU() The function is no longer complicated enough to justify having a separate function, given that the arguments mainly dealt with the wavefront cabac propogation. The CTU class is about to be further simplified. [0c97aad4038e] * source/CMakeLists.txt: cmake: enable MACOSX_RPATH on Mac shared libraries http://www.cmake.org/cmake/help/v3.0/prop_tgt/MACOSX_RPATH.html Setting the policy CMP0042 to NEW makes MACOSX_RPATH=1 the default, but we go ahead and set it manually anyway so cmake versions older than 3.1 behave the same way [01ba626b850d] 2014-09-05 Praveen Tiwari * source/common/x86/blockcopy8.asm: copy_cnt 4x4 AVX2 asm code, as per new interface [f30c13d8143a] 2014-09-04 Min Chen * source/common/x86/x86util.asm: asm: reenable IACA support, it remove by 'inappropriate instruction...' patch [d5034e68aa40] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util.h, source/common/x86/pixel-util8.asm: asm: avx2 version of nquant(), improve 9.8k cycles -> 5.3k cycles [0f1f5f8a4981] * source/common/dct.cpp, source/common/x86/pixel-util8.asm: asm: optimize nquant by PSIGND, improve 11k cycles -> 9.8k cycles [dd04a9ec73a8] 2014-09-05 Praveen Tiwari * source/common/x86/pixel-util8.asm: count_nonzero asm code, reduceded code size by combining mova and packsswb [fdfe5c83a2d7] * source/common/x86/blockcopy8.asm: copy_cnt: nits [7bb07b6e1b0f] * source/common/x86/blockcopy8.asm: copy_cnt 4x4, eliminated move instructions, +1x improvement [d5efb8daf975] 2014-09-05 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.cpp: fix getQuadtreeTULog2MinSizeInCU() [efd6178a07f5] 2014-09-04 Min Chen * source/common/x86/asm-primitives.cpp: asm: enable SSE2 version of pixel_ssd_ss[] [fd1e285675eb] * source/common/x86/ssd-a.asm: asm: fix output mistake in pixel_ssd_ss_4xN [7909696bf148] 2014-09-05 Satoshi Nakagawa * source/Lib/TLibCommon/ContextTables.h: fix cbf context [5cd9f797d6f4] 2014-09-04 Min Chen * source/common/x86/ssd-a.asm: asm: replace ssse3 instruction in pixel_ssd_ss_*_sse2 [93db2f53fe57] 2014-09-04 Steve Borho * source/common/x86/pixel-a.asm: asm: fix SSSE3 in SSE2 build warning in unused primitive Bug fix back-ported from x264. The function was not connected to any primitive pointer in x264 or x265, so this is really just quieting the warning [1833be32ff21] * source/common/quant.cpp: quant: fix check macro [1f07a2a99eef] * source/common/quant.cpp: quant: nits [7ae1ffa141c1] 2014-09-02 Praveen Tiwari * source/common/common.h, source/common/dct.cpp, source/common/primitives.h, source/common/quant.cpp, source/common/quant.h, source/encoder/entropy.cpp: quant path cleanup [735ba376211e] * source/common/dct.cpp, source/common/primitives.h, source/common/quant.cpp, source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm, source/test/mbdstharness.cpp: quant_c optimization, downscaling qCoef from int32_t* to int16_t* [43e127b048da] * source/common/quant.cpp: optimize cvt32to16_shl by replacing copy_shl [7a5073a95658] * source/common/pixel.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h, source/test/pixelharness.cpp, source/test/pixelharness.h: added copy_shl primitive [811d242433eb] * source/common/pixel.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h, source/test/pixelharness.cpp, source/test/pixelharness.h: added copy_shr primitive [ec631987a40d] * source/common/x86/asm-primitives.cpp: temporarily disable avx2 version of copy_cnt primitive, need to update as per new interface [6d2a546f52ce] * source/common/dct.cpp, source/common/primitives.h, source/common/quant.cpp, source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h, source/test/pixelharness.cpp, source/test/pixelharness.h: conv16to32_count renamed to copy_count as per new interface [75da68b8a8f1] * source/common/dct.cpp, source/common/primitives.h, source/common/quant.cpp, source/common/x86/blockcopy8.h, source/test/pixelharness.cpp: conv16to32_count C interface modification, downscaling coeff from int32_t* to int16_t* [91e5a6476b1b] 2014-09-01 Praveen Tiwari * source/common/dct.cpp, source/common/x86/blockcopy8.asm, source/common/x86/const-a.asm, source/test/pixelharness.cpp: cvt16to32_cnt optimization [55039043fa39] 2014-08-25 Praveen Tiwari * source/common/quant.cpp, source/common/quant.h: signBitHidingHDQ optimization, downscaling coeff from int32_t* to int16_t* [aea5cf3ff1b2] * source/common/quant.cpp, source/common/quant.h: rdoQuant optimization, downscaling dstCoeff fron int32_t* to int16_t* [dc9652f407f9] 2014-09-02 Praveen Tiwari * source/common/dct.cpp, source/common/primitives.h, source/common/quant.cpp, source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm, source/test/mbdstharness.cpp: nquant optimization, downscaling qCoef from int32_t* to int16_t* [422184fd72a7] 2014-08-25 Praveen Tiwari * source/common/quant.cpp: quant.cpp, cleaned redundant code [edc1675f4414] 2014-09-02 Praveen Tiwari * source/common/dct.cpp, source/common/primitives.h, source/common/quant.cpp, source/common/vec/dct-sse41.cpp, source/test/mbdstharness.cpp: dequant_scaling optimization, downscaling quantCoef from int32_t* to int16_t* [e85f4a9235e3] * source/common/x86/pixel-util8.asm: dequant_normal asm code optimization as per new interface [ac73ca63b9f3] * source/common/dct.cpp, source/common/primitives.h, source/common/quant.cpp, source/common/x86/pixel-util.h, source/test/mbdstharness.cpp: dequant_normal optimization, downscaling quantCoef from int32_t* to int16_t* [ebfd59fb6351] 2014-08-25 Praveen Tiwari * source/common/dct.cpp, source/common/primitives.h, source/common/quant.cpp, source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm, source/encoder/entropy.cpp, source/test/mbdstharness.cpp: count_nonzero primitive optimization, downscaling quantCoef from int32_t* to int16_t* [dc7c61a01000] 2014-09-04 Anton Mitrofanov * source/common/x86/x86inc.asm: x86asm: warn when inappropriate instruction used in function with specified cpuflags [cff4428396ac] 2014-09-02 Ashok Kumar Mishra * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/analysis.cpp, source/encoder/entropy.cpp, source/encoder/entropy.h: TComDataCU: Reduced repeated function call to calculate depth range [73450cfe71bd] 2014-09-03 Satoshi Nakagawa * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h: change index of m_buOffsetY[] from raster to zscan [95eaa1854b78] 2014-09-03 David T Yuen * source/Lib/TLibCommon/TComDataCU.cpp: Cleaned up TComDataCU::getQuadtreeTULog2MinSizeInCU for clarity and a bit of performance [e1c4b45b9749] 2014-09-01 Dnyaneshwar G * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm, source/common/x86/dct8.h: asm: avx2 asm code for dct4 [1e4dfa1b1a04] 2014-09-04 Deepthi Nandakumar * Merge [b686cb0abd71] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/entropy.cpp, source/encoder/entropy.h: entropy: cleanup codeQtRootCbf [7d81a06a1281] * source/Lib/TLibCommon/TComDataCU.h, source/common/quant.cpp: quant: use table for ctxCbf [99754bc87944] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp, source/encoder/entropy.cpp, source/encoder/entropy.h: entropy: cleanup codePredMode [0c50af24fdeb] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp, source/encoder/entropy.cpp, source/encoder/entropy.h: entropy: cleanup codeCUTransQuantBypassFlag [7b364065ee45] 2014-09-01 Ashok Kumar Mishra * source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/entropy.cpp, source/encoder/entropy.h: Entropy: Replaced getCtxQtCbf() with table [8e4a0aeed2ca] 2014-09-04 Steve Borho * Merge with stable [a184fed3e30c] * source/common/version.cpp: version: detect OpenBSD for version string (closes #76) Fix from Brad Smith [821c2eef4d52] * source/CMakeLists.txt: cmake: fix BSD link, only link with librt if it exists (closes #75) [139d6b2a1b19] 2014-09-03 Murugan Vairavel * source/common/x86/asm-primitives.cpp: asm: enable 16bpp primitives of cvt32to16 and cvt16to32 for all block sizes [d122845b9cc8] 2014-09-03 Min Chen * source/test/mbdstharness.cpp: testbench(nquant): the Round value must be less than (2 ^ qbits) [cf9245ee6a72] 2014-09-03 David T Yuen * source/common/common.h, source/encoder/analysis.cpp: Resolve gcc warnings * more parenthesis for macro * changed signed to unsigned int [0b13c852f029] 2014-09-03 Ashok Kumar Mishra * source/encoder/analysis.cpp: fix: hash/binary mismatch for new CU structure holds CU-specific info [00c381bf6158] 2014-08-28 Ashok Kumar Mishra * source/Lib/TLibCommon/TComDataCU.h, source/common/common.h, source/encoder/analysis.cpp, source/encoder/analysis.h: analysis: CU structure now holds CU-specific information, Member fields include location inside CTU, boundary flags, offsets from CTU origin. This will help replace the soon-to-be-gone initCU and initSubCU functions. [62c4779fb0bb] 2014-09-01 Deepthi Nandakumar * source/encoder/ratecontrol.cpp: Merge with stable [c5624effb73c] * source/encoder/ratecontrol.cpp: Backed out changeset: 35b2d9e774c8 This patch disrupted CBR runs where we were unable to hit the target bitrate. It is logically correct, but likely incomplete. [dde992b96623] 2014-08-30 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/x86/pixel- util8.asm, source/encoder/encoder.cpp: Merge with stable [44b95661db56] 2014-08-25 Steve Borho * source/encoder/encoder.cpp: encoder: re-enable --cu-lossless [269ba0a6ce8c] 2014-08-25 Min Chen * source/Lib/TLibEncoder/TEncSearch.cpp: search: fix decoder intra crash with --cu-lossless [572988a922a1] 2014-08-26 Deepthi Nandakumar * source/Lib/TLibEncoder/TEncSearch.cpp: cu-lossless: fix inter hash mistake The CU needs to be re-encoded if lossless is chosen as the best mode. [5a9e01a195a0] 2014-08-30 Satoshi Nakagawa * source/common/dct.cpp, source/common/x86/pixel-util8.asm: asm: fix dequant_normal [3c309e5d9c8f] 2014-08-29 Steve Borho * source/encoder/sao.cpp: sao: fix signed loop bounds bug [4e2d9ac6d489] 2014-08-25 Steve Borho * source/encoder/encoder.cpp: encoder: re-enable --cu-lossless [c21ddfe6a6d9] 2014-08-26 Deepthi Nandakumar * source/Lib/TLibEncoder/TEncSearch.cpp: cu-lossless: fix inter hash mistake The CU needs to be re-encoded if lossless is chosen as the best mode. [07291dff4048] 2014-08-27 Steve Borho * source/test/mbdstharness.cpp: mbdst: cleanup dequant test [b18ae1fe86b8] * source/test/mbdstharness.h: mbdst: make buffers nice even size [2c70fa36659e] * source/test/ipfilterharness.cpp, source/test/testharness.h: test: fix MSVC warnings [dd540cb2c6b6] * source/test/mbdstharness.h: mbdst: align buffers to 32byte boundary [6f620106312e] * source/test/mbdstharness.cpp, source/test/mbdstharness.h: mbdst: fix memset lengths, change MEM_CMP_SIZE to MAX_TU_SIZE [bebafa8cf718] * source/test/mbdstharness.cpp, source/test/mbdstharness.h: mbdst: reshuffle varnames [58323bef4ae1] * source/test/mbdstharness.cpp, source/test/mbdstharness.h: mbdst: remove redundant mintbuf buffers [1d3ba60370be] * source/test/mbdstharness.cpp, source/test/mbdstharness.h: mbdst: remove unused mbuf4, rename other short output buffers [e807dcd89eae] * source/test/mbdstharness.cpp, source/test/mbdstharness.h: mbdstharness: remove completely unused arrays [8a20115abc04] * source/test/pixelharness.cpp, source/test/pixelharness.h: pixel: use fixed buffer allocations [cc0887e5a958] * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: ipfilter: use fixed buffer allocations [d626070bc8c6] * source/test/testbench.cpp: testbench: move test benches from stack allocations to global [8a247934f2d1] * source/test/intrapredharness.cpp, source/test/intrapredharness.h: intra: use fixed buffer allocations [01f3a8e5fcc2] * source/encoder/ratecontrol.cpp: Merge with stable [5426270aee62] * doc/reST/cli.rst: docs: fix a typo [ce614aebb395] * source/test/mbdstharness.cpp: mbdst: add missing test of dequant_scaling [d471b6de26c9] * source/test/mbdstharness.cpp, source/test/mbdstharness.h: mbdst: use fixed buffer allocations, cleanup some tests [b5642a14c51f] 2014-08-27 Ashok Kumar Mishra * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: remove redundant function call [5d246ebff000] 2014-08-27 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: rc: fix bug in predicting B frame bits in vbv [35b2d9e774c8] 2014-08-27 Deepthi Nandakumar * source/encoder/ratecontrol.cpp: Merge with stable [77fe0cc583e8] 2014-08-27 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: rc: fix bitrate accuracy for vbv in fast presets. [a6c318bd69ce] * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: rc: rename m_bframes to m_leadingBframes [c34b059dff1c] 2014-08-26 Steve Borho * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/common/common.h, source/common/deblock.cpp, source/common/param.cpp, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/encoder/ratecontrol.cpp: common: rename QP range macros to be consistent with x264 I find QP_MAX_SPEC to be a lot more self-explanatory than MAX_QP [32891b95f669] * source/Lib/TLibCommon/TypeDef.h: types: remove generic TEXT_CHROMA enum, no longer used [14fae9208078] * source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h: pattern: use isLuma instead of restricted TextType range [45359413afe6] 2014-08-25 Steve Borho * source/encoder/sao.cpp, source/encoder/sao.h: sao: don't pass member variables to functions [2d386372d543] 2014-08-26 Steve Borho * source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/encoder/framefilter.h: framefilter: move SAO init logic into the frame filter [78804e5e360c] 2014-08-26 Min Chen * source/common/x86/x86inc.asm: x86inc: Make INIT_CPUFLAGS support an arbitrary number of cpuflags Ported from Henrik Gramner's recent commit to x264 [090480360cb9] * source/common/x86/pixel-util8.asm: asm: Minor pixel_ssim_end4 improvements Reduce the number of vector registers used from 7 to 5. Eliminate some moves in the AVX implementation. Avoid bypass delays for transitioning between int and float domains. Ported from Henrik Gramner's recent commit to x264 [391e1fbb92cf] 2014-08-26 Satoshi Nakagawa * source/encoder/frameencoder.cpp: fix m_initSliceContext (uninitialised m_sliceQp) [863faab1a004] 2014-08-25 Min Chen * source/Lib/TLibEncoder/TEncSearch.cpp: search: fix decoder intra crash with --cu-lossless [a0028e5b6177] 2014-08-25 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComYuv.h, source/common/deblock.cpp, source/common/param.cpp, source/common/shortyuv.h, source/common/slice.cpp, source/common/slice.h, source/encoder/analysis.cpp, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/sao.cpp: replace g_rasterToPelX[g_zscanToRaster[idx]] by g_zscanToPelX[idx] [5acfb12ec5d1] 2014-08-25 Steve Borho * source/common/quant.cpp: Merge with stable [44433a2d65dd] 2014-08-25 Aarthi Thirumalai * source/x265.cpp: rc: don't read slicetypes from qpfile in 2nd pass. slicetype has to be taken from the stats file from prev pass. [5fe473327183] * source/encoder/ratecontrol.cpp: rc: write I/i slice in stats file based on whether openGop is enabled or not. [f0de8275ed4d] 2014-08-23 Satoshi Nakagawa * source/common/quant.cpp: fix lossless [ad31cbb8c754] 2014-08-23 Steve Borho * source/encoder/sao.cpp: sao: nits [e1f1e836e833] 2014-08-22 Steve Borho * source/encoder/sao.h: sao: remove unused m_qp member [e95c628b90ab] * source/encoder/sao.cpp: sao: nit [a683fffa5245] * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h, source/encoder/sao.cpp, source/encoder/sao.h: sao: simplify entropy coder initialization [CHANGES OUTPUTS] Remove the hack from the HM that preserves fract_bits from the first row to all rows; it never made any sense and we don't pretend to be anywhere near close to bit accurate with the HM anymore. This commit removes the Entrppy coder in FrameFilter since it was only used by SAO and moves it into the SAO class. The startSaoEnc() method is removed entirely and another call to resetEntropy() (an expensive method) is replaced with a load of the frame encoder's m_initSliceContext [f2fc8b1e1c3f] * source/encoder/sao.cpp: sao: fix inf loop bounds [6e6756f94b27] * source/encoder/framefilter.cpp, source/encoder/sao.cpp: sao: fix MSVC warnings [c9cf8ae5f7a0] 2014-08-21 Steve Borho * source/encoder/sao.cpp: sao: minor logic simplifications and cleanups [bad70432b1d3] * source/encoder/sao.cpp, source/encoder/sao.h: sao: use typedefs to simplify multi-dimensional mallocs [3881d3af896f] * source/encoder/sao.cpp: sao: sChroma should have been isChroma [ff799bffbaef] * source/encoder/sao.cpp: sao: handle malloc failures more cleanly [e95ae26c6afa] * source/encoder/sao.cpp, source/encoder/sao.h: sao: rename shared table to m_tableBo [e02ad51211b6] * source/encoder/sao.cpp, source/encoder/sao.h: sao: share m_lumaTableBo with chroma [47ab66abd2f2] * source/encoder/framefilter.cpp, source/encoder/sao.cpp, source/encoder/sao.h: sao: use checked mallocs, disable SAO if any mallocs fail [e93cf3c94bc4] * source/common/common.h: common: define a CHECKED_MALLOC_ZERO method to auto-reset allocated memory This is mostly useful when allocating buffers containing pointers, to ensure the pointers are safe to free regardless of later malloc failures [36079a3dce67] * source/Lib/TLibCommon/TComPicYuv.h, source/encoder/sao.cpp, source/encoder/sao.h: sao: move getPicYuvAddr() to TComPicYuv and simplify [eaf5eb7ae2d6] * source/encoder/sao.h: sao: remove unused m_tmpYuv and an obsolete comment [87c08d2aaf56] * source/encoder/sao.cpp, source/encoder/sao.h: sao: luma and chroma can share a clip table [50542271caba] * source/encoder/sao.cpp: sao: unify signOf [d70e2bac56b5] * source/encoder/sao.cpp, source/encoder/sao.h: sao: use more compile-time values [7fc8855656e2] * source/encoder/sao.cpp, source/encoder/sao.h: sao: we don't support different bit depths between luma and chroma [d36617a8512d] * source/encoder/sao.cpp, source/encoder/sao.h: sao: remove vars which are dups of params [5d67f4e4a351] * source/encoder/sao.cpp, source/encoder/sao.h: sao: fix warnings [02ec546246ad] * source/encoder/encoder.cpp: Merge with stable [2e17cb106b17] * source/Lib/TLibEncoder/TEncSearch.cpp: search: nit [282c2c6f5ed1] * source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp: nits [9cb0dfeac129] * source/encoder/sao.cpp, source/encoder/sao.h: sao: convertLevelRowCol2Idx did not need to be a member function [577e65afdb8d] * source/encoder/framefilter.cpp, source/encoder/sao.cpp, source/encoder/sao.h: sao: merge create/destroy methods [ed9d78aa312a] * source/encoder/framefilter.cpp, source/encoder/framefilter.h, source/encoder/sao.cpp, source/encoder/sao.h: sao: use m_param directly for user-configurables [11d427f9ef26] * source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/encoder/sao.cpp, source/encoder/sao.h: sao: cleanup member prefixes, remove createPicSaoInfo and endSaoEnc [a2e74591f674] * source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/common/CMakeLists.txt, source/common/common.h, source/encoder/CMakeLists.txt, source/encoder/dpb.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h, source/encoder/sao.cpp, source/encoder/sao.h: pull SAO code into encoder/ and begin cleanup [6a8df5dcb412] * .hgtags: Added tag 1.3 for changeset c1e4fc0162c1 [2e7d1569845e] * source/encoder/encoder.cpp: encoder: disable --cu-lossless until coding errors can be fixed (refs #73) [c1e4fc0162c1] [1.3] 2014-08-21 Satoshi Nakagawa * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/bitcost.h: simplify AMVPInfo to MV[2] [97ea21754381] 2014-08-20 Steve Borho * source/encoder/encoder.cpp: encoder: nit, remove obsolete comment [9461fc801cd2] * source/encoder/encoder.cpp: Merge with stable [2585ce839546] * source/encoder/encoder.cpp: encoder: do not allow scaling lists to be used with 4:4:4 color space (refs #72) It causes hash mistakes [3badda1ceda6] * source/Lib/TLibEncoder/TEncSearch.cpp: search: nit [ed7509b29be2] * source/Lib/TLibEncoder/TEncSearch.cpp: Merge with stable [b4f833d41667] * source/Lib/TLibEncoder/TEncSearch.cpp: search: do not skip intra tu 32x32 unless TU intra depth is deep (refs #71) This may not be the best workaround for the bug, and needs a proper long term fix. [203c87c55bb3] 2014-08-19 David T Yuen * source/Lib/TLibEncoder/TEncSearch.cpp: Removed code that will never be executed. [4f2556521155] 2014-08-19 Min Chen * source/encoder/frameencoder.cpp: fix single thread encode issue [80129b1b6260] * source/encoder/entropy.cpp: cleanup: remove reduce condition check [5a174ca360f3] 2014-08-19 Steve Borho * source/encoder/frameencoder.cpp: Merge with stable [63cd8539e7d4] * source/encoder/frameencoder.cpp: frameencoder: do not allocate noise reduction struct unless NR is enabled This fixes output mismatch between asm / no-asm for 4:4:4 encodes. Why? I am not entirely sure yet, but this is an obvious bug fix. [c97a9a62bce8] 2014-08-19 Deepthi Nandakumar * source/Lib/TLibEncoder/TEncSearch.cpp: search: nit [b137f5c97c46] * source/Lib/TLibEncoder/TEncSearch.cpp: search: cleanup variable names and lossless comments [c2fc2a087d4a] * source/encoder/encoder.cpp: Merge with stable [75d01da6df07] * source/encoder/encoder.cpp: psy-rdoq: eliminate dependency between psy-rd, psy-rdoq and rdoq. RDOQ is turned on by default in rdLevels 4 and above. Psy-rdoq can be turned on if rdoq is enabled at that preset. Psy-rd can be turned on with or without rdoq/ psy-rdoq. [549c61d0436f] 2014-08-18 Steve Borho * source/encoder/encoder.cpp: param: correctly detect adaptive quant usage when checking --psnr [dca792ce9786] * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp: Merge with stable [d15367360097] 2014-08-18 Min Chen * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp: sao: move m_upBuff* to stack, fixes (#69) [c979b32c8b51] * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h: cleanup: remove unused m_upBuff2 [8320283a7fe0] 2014-08-18 Steve Borho * source/encoder/encoder.cpp, source/encoder/frameencoder.cpp: encoder: fix deadlocks/crashes when picture is a single CTU row 1. if only one row per frame, disable WPP it is pointless 2. if only one row per frame, frame parallelism is (mostly) impossible 3. clamp rateControlUpdateStats() to be within row count range [eb2b3e34ea0d] * source/common/param.cpp: Merge with stable [529ccfbed281] * source/common/param.cpp: param: typo [b8356365135e] 2014-08-17 Steve Borho * source/common/quant.cpp: quant: combine psy-rdoq scale and lambda into one variable Reduces the number of 64bit multiplies required per psy-value evaluation [21506c40f704] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/entropy.cpp, source/encoder/entropy.h: entropy: pass bIsLuma to estBit() instead of limited TextType range if the only options were TEXT_LUMA or TEXT_CHROMA, it is better to use a bool argument and avoid ambiguity about TEXT_CHROMA_U or TEXT_CHROMA_V [92d07932c93c] * source/common/quant.cpp, source/encoder/entropy.cpp, source/encoder/entropy.h: entropy: simplify EstBitsSbac There was no reason for significantBits to be a different type than all the other fix15 bit costs. And NUM_QT_ROOT_CBF_CTX is 1 [b37e0a8471ca] 2014-08-18 Steve Borho * source/common/param.cpp: Merge with stable [13651e65b820] * source/encoder/encoder.cpp, source/encoder/encoder.h: encoder: remove m_maxCuDQPDepth, simplify dqp logic [9f038f7a2eb6] 2014-08-18 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/deblock.cpp, source/common/deblock.h, source/common/frame.cpp, source/common/frame.h, source/common/param.cpp, source/common/slice.h, source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/cturow.cpp, source/encoder/cturow.h, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp: refine depth related. maxCUDepth: CU depth maxFullDepth: CU+TU or CU+PU depth unitSize: always 4 [0eab29da63d3] 2014-08-18 Steve Borho * source/x265.cpp: cli: fix help syntax [6a1b41049f71] * source/common/param.cpp: param: add psy-rd and psy-rdoq to param2string (for info SEI and stats file) [0e4558e42ccc] * source/x265.cpp: cli: update psy-rdoq rangw in CLI help [cda8e5c21a9b] 2014-08-16 Steve Borho * source/encoder/cturow.h, source/encoder/entropy.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: ctu: optimize away per-row bitstream coders, no output changes They were really only being used to hold the proper initial state for each row. This avoids an entropy load/save per CU in encodeSlice() and while I was in the area I removed another pile of resetEntropy() calls. The initial slice entropy state is calculated once and then kept in the frame encoder for all future uses. [dd594e7362e2] * source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/cturow.cpp, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp: analysis: move encodeCU() methods and friends to Entropy This function only encodes a fully finished CTU; it is performing no analysis and it needs none of the features or members of the Analysis class. It is much more clear as a member of the Entropy class. Note: the way bEncodeDQP is communicated is a huge mess and needs to be cleaned up soon. And finishCU() can also likely be hugely simplified [bb6ea1337d82] 2014-08-18 Deepthi Nandakumar * Merge with stable [2c68dc7e3827] * source/encoder/analysis.cpp: analysis: missing braces caused a bug in CABAC context save for rd=2 [5d5a4c09182d] 2014-08-18 Tom Vaughan * doc/reST/introduction.rst: introduction.rst edited online with Bitbucket [9a0d24274357] * doc/reST/introduction.rst: introduction.rst edited online with Bitbucket - added link to MPEG- LA [bff42bfd0652] 2014-08-16 Steve Borho * doc/reST/cli.rst: rest: fix typo, document default psy-rdoq value [87400d5c90aa] * build/regression/01build-and-smoke-test.bat, build/regression/02perftest.bat, build/regression/commandlines- example.txt, build/regression/config-example.txt, build/regression /email-csv.py, build/regression/run.bat, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/SyntaxElementWriter.cpp, source/Lib/TLibEncoder/SyntaxElementWriter.h, source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/encoder/compress.cpp: merge with default, feature freeze for 1.3 [24a79f4d6f72] * doc/reST/cli.rst, doc/reST/presets.rst, source/common/param.cpp, source/x265.cpp: param: enable --fast-intra for all fast modes and turbo first-pass, document [866f21378d94] * source/encoder/slicetype.cpp: slicetype: use fast intra scan unconditionally in lookahead We don't want the lookahead output to be variable depending on --fast-intra since this would make two-pass turbo mode more difficult. [c01a334a1043] 2014-08-15 Steve Borho * doc/reST/cli.rst: rest: improve documentation for psycho-visual options [184748d40276] 2014-08-16 Steve Borho * source/encoder/analysis.cpp: analysis: nits [6b14a488d586] * source/common/quant.cpp, source/common/quant.h, source/encoder/cturow.cpp, source/encoder/frameencoder.cpp: quant: set lambdas at the same time quant QP is configured [eb23702aacd8] 2014-08-15 Steve Borho * source/common/param.cpp: param: re-enable psy-rdoq range check for [0..10], print with two digits [1710b46949f2] * source/encoder/rdcost.h: rdcost: add arbitray scale to make --psy-rd 0..2 range give acceptable quality [8d48e5e726cd] * source/common/quant.cpp, source/common/quant.h, source/encoder/frameencoder.cpp: quant: scale psy-rdoq by lambda Using L1 lambda in RDO is unorthodox, but we already do the same thing with psy-rd energy and it seems to work decently well here weighting the reconstructed DCT coeff against the RD cost in psy- rdoq. The goal is for psy-rdoq 1 to be a safe and sane default [810151a75aed] 2014-08-14 Steve Borho * source/encoder/analysis.cpp: analysis: avoid MSVC uninitialized variable warning [4c09d2ef5f1b] * source/common/quant.cpp: quant: use optimized primitive for transquant bypass in invTransformNxN [ef25a0e7de3b] * doc/reST/cli.rst, source/common/param.cpp: param: don't allow turbo mode to increase rd-level, improve docs [c4f0bbad98cf] * source/encoder/analysis.cpp: analysis: use macro and for-loop to simplify fast-intra this changes behavior a bit; it's trying both +/-1 offsets instead of just one. and it has to do one extra check at the end since mode 34 isn't reached by the other previous loops [07138e6ac952] 2014-08-14 David T Yuen * source/encoder/analysis.cpp: Added fast intra search option to Analysis::checkIntraInInter_rd0_4 [213f17c1492c] 2014-08-14 Steve Borho * source/encoder/analysis.cpp: nit [08e9d25e2c72] * source/common/x86/asm-primitives.cpp: asm: fix HIGH_BIT_DEPTH build again [7da2b731de30] * source/encoder/analysis.cpp: analysis: white-space nits, possibly exposing a logic bug [e5083cf64df0] * source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComYuv.cpp: remove predict.h includes from TLibCommon/ [e66dbb50403b] * source/common/quant.cpp: quant: + has higher precedence than ?; use parens to fix unquantShift logic [e62f74712a16] 2014-08-14 Satoshi Nakagawa * source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/common/common.h, source/common/intrapred.cpp, source/common/x86/asm-primitives.cpp, source/encoder/predict.cpp: replace IntraFilterType[][] to IntraFilterFlags[] (aboid *35) [5ccdcc853810] 2014-08-14 Deepthi Nandakumar * source/encoder/slicetype.cpp: slicetype: initialise lowmode to 4. [6b741cce14ac] 2014-08-13 Steve Borho * source/common/common.h, source/common/x86/asm-primitives.cpp, source/common/x86/pixel-util.h, source/encoder/predict.h: fix HIGH_BIT_DEPTH compile on Windows something included by predict.h breaks pixel-util.h for MSVC; so move the filter table to common.h. It wasn't quite proper for asm- primitives.cpp to include a header from encoder/ anyway. [3d3bc732b9e7] * source/common/quant.cpp: quant: typo [889f69d56b7e] * source/common/quant.cpp: quant: update comment for UNQUANT macro [7c7d35fe1a14] * source/common/quant.cpp: quant: simplify UNQUANT() variables [9ad7668756f7] 2014-08-13 Deepthi Nandakumar * source/common/quant.cpp, source/common/scalinglist.cpp: quant: remove extra upshift by 4 in s_invQuantScales Adding 4 to unQuantPer was a bug, since unQuantScale was already upshifted by 4. [1921583cf797] 2014-08-13 Min Chen * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/quant.cpp, source/common/quant.h, source/encoder/cturow.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp: move m_estBitsSbac from Quant to Entropy [d66e257ace32] * source/common/common.h, source/common/dct.cpp, source/common/primitives.h, source/common/quant.cpp, source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm, source/common/x86/dct8.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: asm: integrate denoise_dct, malloc NoiseReduction for alignment [da6077b713c9] 2014-08-13 Steve Borho * source/common/scalinglist.cpp, source/common/scalinglist.h: scaling: remove array of rarely used trivially calculated values [ebf2d550938c] * source/common/scalinglist.cpp, source/common/scalinglist.h, source/encoder/entropy.cpp: scaling: remove s_numListsAtSize[], it is 6 at every size [a2368a224ab3] * source/encoder/predict.cpp, source/encoder/predict.h: predict: nits [0a9d6594872d] * source/encoder/predict.cpp: predict: prevent MSVC warning about int to bool conversion [c87f14ecb186] 2014-08-13 Aarthi Thirumalai * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/frameencoder.cpp: refactor: cleanup setting up of lambda move initialising qp and lambda manipulations in one place. remove TEncSearch::setQP - misleading function name. [0f9e8b2c0ece] * doc/reST/cli.rst, source/x265.cpp: cli: nits. fix typo [740b794a19fe] * source/encoder/frameencoder.cpp: rc: bug fix - m_avgQpAq can be from 0-69. It is already set within RateControl [1dc741719013] 2014-08-13 Steve Borho * source/x265.cpp: cli: free param structures on early-outs [03ea314a6e9d] * source/common/x86/asm-primitives.cpp: asm: fix HIGH_BIT_DEPTH link problems [4ac29f78756c] * source/encoder/slicetype.cpp: slicetype: adjust variable scoping to avoid GCC warnings [12c265f0e413] * source/encoder/slicetype.cpp: slicetype: nit [d43e9a6a7cce] * source/CMakeLists.txt: cmake: bump build number [44b784c61455] 2014-08-12 David T Yuen * source/common/param.cpp, source/encoder/slicetype.cpp, source/encoder/slicetype.h, source/x265.cpp, source/x265.h: Added fast intra search option This version calls intra_pred_allangs to create the predictions then the faster search with satd [d22dfb9df30f] * source/Lib/TLibCommon/TComPattern.cpp, source/common/intrapred.cpp, source/encoder/predict.cpp, source/encoder/predict.h: Moved IntraFilterType from intrapred.cpp to predict.h to make it available and replace Predict::filteringIntraReferenceSamples [f47c3e4be76c] 2014-08-12 Sumalatha Polureddy * source/encoder/analysis.cpp: analysis: check for proper cost Throws error when psyrd is enabled since cost is stored in m_totalPsyCost and m_totalRDCost has MAX_INT64 [91ccff0ca74b] 2014-08-12 Steve Borho * source/common/quant.h: quant: initialize qp to impossible value so first set always works A bug spotted by valgrind [8a7f4bb1d1be] 2014-08-12 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/common/param.cpp, source/encoder/encoder.cpp: replace g_convertToBit[] to g_log2Size[] const table [945e071f491f] 2014-08-11 Min Chen * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: asm: AVX2 version cvt32to16_shl [23d58a1819c7] 2014-08-10 Satoshi Nakagawa * source/common/dct.cpp, source/common/primitives.h, source/common/quant.cpp, source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm, source/test/mbdstharness.cpp: quant: remove scaledCoeff from nquant() [2bdcfcc1bb33] 2014-08-10 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: rc: nits; add LF in frame stats of 2 pass [94d9a0d50837] 2014-08-10 Steve Borho * source/encoder/level.cpp: level: signal profile/level NONE if non-compliant configuration is found Once you get above a certain resolution, the CTU size must be at least 32. There is no level that supports a smaller CTU, so signal level NONE. It's my understanding that you cannot signal a profile if the level is NONE, so we reset profile to NONE as well. The same is true if NumPocTotalCurr is greater than 8; there are no levels which support values that high. Instead of signaling the closest level, we should signal profile/level NONE [7965aacd35ae] 2014-08-09 Steve Borho * source/common/quant.cpp: quant: improve flow and comments for last non-zero refinement [6e4eb8542203] * source/common/quant.cpp: quant: comment improvements [c9dd47a21b48] * source/common/quant.cpp, source/common/quant.h: quant: remove floating point operations from RDOQ [CHANGES OUTPUTS] The output changes are minor. On modern CPUs the performance benefit of this change is negligable since SSE double operations are similar in performance to int64 operations. As a future optimization, we need to figure out how to multiply lambda2 (FIX8 24bits) by signal cost (FIX15 24bits) using 32-bit integers since 32bit multiply is significantly cheaper than 64bit integer multiply. Similarly, unquantAbsLevel can be larger than 16bits so multiplation is done with int64. Note that we use signed int64 because with psy- rdoq the costs could go negative. [4f1ce079b4a4] * source/common/quant.cpp, source/common/quant.h: quant: cleanup chroma QP function With a unique function name, protected access, and only called from one location, the ttype check could be removed. [5132c37cdb38] * source/common/quant.h: quant: header cleanups, no functional change [33c6c661905c] * source/common/quant.cpp: quant: use standard rd cost formula for sign-hiding [CHANGES OUTPUTS] The previous RD formula was simply inexplicable, though it did work fairly well. Old approach: deltaU[blkPos] = (scaledCoeff[blkPos] - ((int)level << qbits)) >> (qbits - 8); int64_t invQuant = ScalingList::s_invQuantScales[rem] << per; int64_t rdFactor = (int64_t)((invQuant * invQuant) / (lambda2 * 16) + 0.5); costUp = rdFactor * (-deltaU[blkPos]) + rateIncUp[blkPos]; - wat? - New approach: int d = abs(signCoef) - UNQUANT(absLevel + 1); costUp = (((uint64_t)(d * d)) << scaleBits) + lambda2 * rateIncUp[blkPos]; Using this approach the results are nearly the same (they appear to be slightly better) but now we can probably add psycho-visual tunings to the sign hiding feature [e18b85eeb6c5] * source/common/quant.cpp: quant: do not check CG bitmap for implied-present coeff groups [220e217152cf] * source/common/quant.cpp: quant: reduce conditional expression depths (mostly for readability) [95b1d7535af8] 2014-08-08 Steve Borho * source/common/quant.cpp: quant: avoid an extra shift by adjusting the unquant coeff shift [4003cbf60782] * source/common/quant.cpp: quant: improve variable names and comments (no behavior change) [d6723db1e8ec] * source/encoder/entropy.cpp: entropy: simplify sign hide flag [84acc8eb8d9c] 2014-08-07 Min Chen * source/common/pixel.cpp, source/common/primitives.h, source/common/quant.cpp, source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h, source/test/pixelharness.cpp, source/test/pixelharness.h: asm: cvt32to16_shl[*] for TSkip [091a63164c41] * source/common/pixel.cpp, source/common/primitives.h, source/common/quant.cpp, source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h, source/test/pixelharness.cpp, source/test/pixelharness.h: asm: cvt16to32_shr[*] for TSkip [8cd2e8c9a3ba] 2014-08-08 Satoshi Nakagawa * source/common/quant.cpp: denoise: fix numCoeff (bug from 42b1d7c17510) [ef2602935c59] 2014-08-07 Steve Borho * source/common/x86/asm-primitives.cpp, source/test/testbench.cpp: main10: create a hybrid all-angs primitve for 16bpp compiles The all-angs primitive is highly optimized assembly code that avoids a lot of redundant work. The all-angs C ref is horribly slow, doing redundant work to mimic the output of the all-angs assembly code. Since we have no high bit depth assembly for these functions, we'll use a shim C function that works very similar to the C ref but it at least uses optimized primitives. intra_allangs4x4 3.64x 6619.54 24097.30 intra_allangs8x8 5.66x 13722.49 77694.97 intra_allangs32x32 4.57x 246943.81 1129159.50 before: encoded 1253 frames in 104.37s (12.01 fps), 366.08 kb/s, SSIM Mean Y: 0.9889624 (19.571 dB) after: encoded 1253 frames in 95.62s (13.10 fps), 366.08 kb/s, SSIM Mean Y: 0.9889624 (19.571 dB) [33702c567e50] * source/encoder/entropy.cpp: entropy: remove implicit memset from constructor Before we do further refactors, we want Entropy instances allocated on the stack to not perform any needless initialization work [49b593197330] * source/encoder/entropy.cpp, source/encoder/entropy.h: entropy: pad size of context array to 32 * 5 bytes [f6e38749049c] * source/Lib/TLibCommon/ContextTables.h, source/encoder/entropy.cpp, source/encoder/entropy.h: entropy: remove ContextModel structure, use uint8_t directly [04567c40dae5] * source/Lib/TLibCommon/ContextTables.h, source/encoder/entropy.cpp: entropy: remove bBinsCoded from ContextModel (no more users) [4297617da24c] * source/common/slice.h, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp: entropy: disable signaling of CABAC init state This flag, which was already disabled when frame parallelism is in use (which is nearly always) was of limited utility. It did not improve compression efficiency by any measurable amount, and it was expensive to compute. But the quality which made it expendable was that it was the only user of the bBinsCoded flag in the ContextModel; forcing us to copy twice as much data every time we copy a context. With this feature removed, the context model can be reduced to a single uint8_t state variable. [3fdb78507aea] * source/encoder/frameencoder.cpp: frameencoder: nit [b89417dfa782] * source/encoder/frameencoder.cpp: frameencoder: avoid redundant calls to resetEntropy() All of the entropy coders need to be reset to the same state at the start of the frame's analysis. There is no point in re-calculating this initial state repeatedly for each row [83880abea807] * source/common/quant.cpp: quant: avoid runtime check of transform shift size [8e68a1db7c04] 2014-08-07 Ashok Kumar Mishra * source/encoder/analysis.cpp: analysis: cleanup [8e45fc7c5521] 2014-08-07 Aarthi Thirumalai * source/common/param.cpp: rc: set rdlevel to 2 in fast first pass for multipass encode. increases speed of the first pass by over 70% in the slower presets with almost the same quality in the final pass. [5a0e2a7f9ad3] 2014-08-07 Satoshi Nakagawa * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp, source/common/primitives.cpp, source/common/primitives.h, source/common/shortyuv.cpp, source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter16.asm, source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm, source/common/x86/pixeladd8.asm, source/common/x86/x86util.asm, source/encoder/analysis.cpp, source/test/pixelharness.cpp: asm: cleanup unused sub_ps and add_ps sub_ps and add_ps are used by CU or TU level, not PU level. [c29e37317d46] 2014-08-07 Steve Borho * source/Lib/TLibCommon/ContextTables.h, source/encoder/entropy.cpp: entropy: remove m_ prefix from ContextModel.state, other nits [029563495b6e] 2014-08-06 Steve Borho * source/common/param.cpp: param: log noise reduction use/strength [619633a933f6] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/common/slice.h, source/encoder/frameencoder.cpp: refactor: move motion reference pointers from TEncSearch to Slice The actual storage for the MotionReference instances lives in the FrameEncoder, to save memory, but we don't want the analysis code to be aware of the FE so we give it a pointer to this array. Having that pointer live in TEncSearch forces us to update this pointer each time a worker thread starts a new job. Having the pointer in Slice means we only have to set it once, when the slice first starts to be encoded. And having this pointer next to the RPS data in the slice header makes this more coherent. [03de9eef4244] * source/common/common.h, source/common/quant.cpp, source/encoder/frameencoder.cpp: denoise: further cleanups x264 used buffer pointers so that they could swap between normal denoise and "emergency denoise" when the QP became very high. We do not have an emergency denoise and thus we don't need these pointers at this time. This simplifies initialization and update logic. [94cefc095d2f] 2014-08-06 Praveen Tiwari * source/common/common.h, source/encoder/frameencoder.cpp: noise reduction, cleaned unused buffer space [ba6729e34f77] * source/common/quant.cpp, source/encoder/frameencoder.cpp: noise reduction, use all eight categories of transform for inter blocks [e0d08da20e7f] 2014-08-06 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: rc : nit [02d805ee3d38] 2014-08-05 Min Chen * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/const-a.asm: asm: cvt16to32_cnt[32x32] for TSkip [ca70276334d2] 2014-08-05 Satoshi Nakagawa * source/common/pixel.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h, source/common/x86/ipfilter16.asm, source/common/x86/ipfilter8.asm, source/common/x86/ipfilter8.h, source/common/x86/mc-a.asm, source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm, source/common/x86/pixel.h, source/common/x86/pixeladd8.asm, source/test/ipfilterharness.cpp, source/test/pixelharness.cpp, source/test/testbench.cpp, source/test/testharness.h: primitives for RExt [c473f49e2818] 2014-08-05 Santhoshini Sekar * source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h: TComPattern: remove redundant functions used for CIP [56eaac5d6410] 2014-08-05 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: me: clip motion search area to signaled motion vector length limits [0d4723a0080c] 2014-08-04 Steve Borho * source/common/cpu.cpp, source/common/x86/const-a.asm, source/common/x86/cpu-a.asm, source/common/x86/mc-a.asm, source/common/x86/mc-a2.asm, source/common/x86/pixel-a.asm, source/common/x86/pixel.h, source/common/x86/sad-a.asm, source/common/x86/ssd-a.asm, source/common/x86/x86inc.asm: asm: asm header updates [22b1b01b95aa] 2014-08-04 Min Chen * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/const-a.asm: asm: cvt16to32_cnt[16x16] for TSkip [1760c267c1e9] 2014-08-04 Steve Borho * source/common/quant.cpp, source/common/scalinglist.cpp, source/common/scalinglist.h: quant: change how RDOQ measures distortion [CHANGES OUTPUTS] RDOQ, as it was written in the HM, expects scaled level values to be output by quant; these are the output levels multiplied by the quantizing coeffificient but without the rounding factor and without the downshift. It would then measure distortion as the difference between this scaled level and level << qbits (a rough unquant). To make this math work, it was pre-calculating an error scale factor (per block position, since the quantization coefficients can vary) which divided the result by the squared scale factor and upshifting to simultaneously account for the FIX15 nature of the signaling costs and the uniform scaling of the forward transform. To roughly summarize: errScale = (1 << (15 - 2 * transformShift)) / (quantCoeff[i] * quantCoeff[i]) levelScaled = level * quantCoeff[i] distortion = levelScaled - (level << qbits); cost = distortion * distortion * errScale + lambda2 * bitsFix15 It was forced to use floating point math for the errScale and distortion calculations, and thus did not bother with fixed point math for lambda2. This commit changes the distortion measurement to be the difference between the original (pre-quantization) DCT coefficient and the unquantized level. unquantAbsLevel = (level * quantCoeff[i] + pad) >> shift; distortion = unquantAbsLevel - abs(signCoef); distScale = 1 << (15 - 2 * transformShift); cost = distortion * distortion << distScale + lambda2 * bitsFix15 Note that the same scale factor is still required to account for the FIX15 bit cost and the forward DCT scale but now it is a simple shift operation. This commit does not change the data types; that will be a later commit once the dynamic ranges have been properly evaluated. And deltaU[], used by sign hiding, is left using the scaled level cost basis for now. [da57b1e8ac58] * source/common/quant.cpp: psy-rdoq: fix unquant shift factors dequant coefficients are made with s_invQuantScales[rem] << 4, so to perform an unquant we must remove those four bits from dequantCoeff [08304a298065] * source/common/quant.cpp: quant: remove TODO comment Yes, there is a reason to check maxAbsLevel < 3 here, diffLevel below can only be 0, 1, or 2. [ae7c5f4a842d] 2014-08-01 Aarthi Thirumalai * doc/reST/cli.rst, source/CMakeLists.txt, source/common/param.cpp, source/common/param.h, source/encoder/api.cpp, source/x265.cpp, source/x265.h: rc: add slow first pass as option. set turbo first pass as default in 2 pass [c5f2a20e6f4c] 2014-08-04 Santhoshini Sekar * source/encoder/encoder.cpp: bugfix: disable aq only when both aq-strength and cu-tree is off AQ can be on when cutree is on even if aq-strength is 0.Do not force aq to be off whenever aq strength is 0. [44eb5e05423a] 2014-08-04 Steve Borho * source/common/quant.cpp: psy-rdoq: include psy-cost in uncoded coefficient distortion Without this adjustment, uncoded coefficients were possibly being penalized over coded ones with less psy value. [8edb2a5f3379] 2014-08-03 Steve Borho * source/test/pixelharness.cpp: pixelharness: fix MSVC warning about intptr_t conversion to int [a2095baa3cbd] * source/common/quant.cpp: quant: nit [774dc8b6a535] * source/encoder/entropy.cpp: entropy: cleanup calcCost, add EMMS for float safety [b2ee9de29995] * source/common/quant.cpp: quant: assign a signal cost of zero to zero coeff after lastNZ This stack variable was uninitialized otherwised, and could have been used during the optimization of lastNZ [7f550011c40f] * source/common/quant.cpp: quant: rdStats -> cgRdStats [4addf282bf76] * source/common/quant.cpp: quant: cleanup coeff group zero-check code [545d1ae4375b] * source/common/quant.cpp: quant: sign hide nits [59398cdff016] * source/common/quant.cpp: quant: denoise nits [42b1d7c17510] * source/common/quant.cpp, source/common/quant.h: quant: don't pass member variable to class method [7d727cd9bc63] * source/common/quant.cpp, source/common/quant.h: quant: inline the quant method, only called from transformNxN [f55d750331aa] * source/common/quant.cpp, source/common/quant.h: quant: disallow psy-rdoq if transformSkip was used psy-rdoq is not possible without a transform. Or said another way, we would need a different psy-rdoq approach for transform skip [ede3a4679d98] * source/common/quant.cpp: quant: comment nits [c97672cee4c3] * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/quant.cpp, source/common/quant.h: quant: remove curUseRDOQ argument from transformNxN, always true [c01f8fd0985f] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/analysis.cpp: search: remove curUseRDOQ arguments from two more methods residualTransformQuantInter and xEstimateResidualQT were always called with curUseRDOQ = true, and the flag was never changed [02ac2e9324b5] * source/Lib/TLibEncoder/TEncSearch.cpp: search: hard-code curUseRDOQ [2ea423991b4a] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/analysis.cpp: search: remove curUseRDOQ argument from encodeResAndCalcRdInterCU, always true [dcf8948beac2] * source/common/quant.cpp, source/common/quant.h: quant: hoist IEP_RATE out of getICRateCost [01116c890510] 2014-08-01 Min Chen * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h, source/common/x86/const-a.asm: asm: cvt16to32_cnt[8x8] for TSkip [49bab9bdf2a3] * source/common/dct.cpp, source/common/primitives.h, source/common/quant.cpp, source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h, source/test/pixelharness.cpp, source/test/pixelharness.h: asm: cvt16to32_cnt[4x4] for TSkip [6f502ab94357] * source/common/x86/x86inc.asm: update header and support Intel IACA marker [e6184896aa7b] 2014-08-02 Steve Borho * source/common/quant.cpp: quant: change lastCG into a bool, use isOne flag to avoid abs() calls [69beab744475] * source/common/quant.cpp: quant: consistent comment style, improve comments [b12ac8919761] * source/common/quant.cpp: quant: levelDouble -> levelScaled This always confused the heck out of me. The level was not doubled, it was not a double, and it wasn't squared. It was just the level scaled by the quant scale factor [28c35f8e4f43] * source/common/quant.cpp: quant: rename sigCost to codedSigBits, comment nit [a28d5ae1b52a] * source/common/quant.cpp: quant: RDO_CODED_LEVEL macro can now be inlined for easier debugging [9bb93a267300] * source/common/quant.cpp: quant: re-order rdoq logic so only one RDO_CODED_LEVEL() call is required [30f1f1d739db] 2014-08-01 Steve Borho * source/common/quant.cpp: quant: more readability nits - no output changes [ed49f875ab20] * source/common/quant.cpp: quant: improve comments for trailing zero coeff [f14d233107d4] * source/common/quant.cpp: quant: remove redundant level intialization [d341acd13af2] * source/common/quant.cpp: quant: blockUncodedCost -> totalUncodedCost, improve comments [3b8853b12d9c] * source/common/quant.cpp: quant: correct rounding factor for unquant [253ad3eafaa2] * source/common/quant.cpp: quant: clarify last-nz optimization loop [11a3a69d3e29] * source/common/quant.cpp: quant: rename costCoeff0 to costUncoded, add docs [1c9a6a976e5d] * source/common/quant.cpp: quant: support scaling lists in psy-rdoq [8767ddb686af] * source/common/quant.h: quant: make IEP_RATE an anonymous enum, it doesn't need storage [be69e059808a] * source/common/quant.cpp, source/common/quant.h: quant: m_lambda2 no longer needs to be a member variable it is only used in rdoQuant() and can be declared on the stack [287d37822825] * source/common/quant.cpp, source/common/quant.h: quant: convert getCodedLevel() into a macro, remove m_transformShift hack [ae8c153ee91d] * source/common/quant.cpp: quant: simplify minAbsLevel [db62272d284c] * source/common/quant.cpp: quant: hoist some calculations out of the loop [32b4aa0eb4fb] * source/common/quant.cpp: quant: delay err3, err4 calculation until/if necessary [244ba5fa80d4] * source/common/quant.cpp: quant: apply scale factor in just one place [2a7315a37d67] * source/encoder/dpb.cpp: dpb: cleanup decodingRefreshMarking() [6b1753638790] * source/common/slice.h, source/encoder/dpb.cpp: dpb: remove checks for slice types we do not emit [963b8e7b1dff] * source/encoder/dpb.cpp: dpb: style nits [5d1bd6097113] * source/encoder/dpb.cpp: dpb: getNalUnitType() cannot return NAL_UNIT_CODED_SLICE_IDR_N_LP [b911b02737c8] * source/encoder/dpb.cpp: dpb: remove redundant call to getNalUnitType(), output will not change [fb24f965eade] 2014-08-01 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: rc: enable abr reset in the first pass of two pass encode. observe this improves second pass results in ultrafast presets for some videos. [a9a7f0933ecc] 2014-08-01 Santhoshini Sekar * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/predict.cpp, source/encoder/predict.h: cleanup: move m_predYuv and m_predTempYuv from predict to TEncSearch [a74b24444ae8] 2014-08-01 Deepthi Nandakumar * source/encoder/predict.h: predict: whitespace nits [3db5fda6abf0] 2014-07-31 Santhoshini Sekar * source/common/lowres.cpp, source/common/lowres.h, source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp: rc: update vbv for all b frames HEVC is complex (and slow) enough that we can afford to update/plan the VBV buffer states for all frames, not just I and P. The leads to smoother rate control, particularly when there are large stretches of B frames, and less (over) compensation is necessary for P frames. [e85b0aaa64e4] 2014-07-31 Deepthi Nandakumar * source/encoder/predict.h: predict: nits, cleanup, add TODO comments [88a18a365d56] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/predict.cpp, source/encoder/predict.h: predict: save clipped MVs [323e8e87f903] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp, source/encoder/predict.cpp, source/encoder/predict.h: predict: prepare motionCompensation sets base class fields [8f30d3659f82] 2014-07-31 Steve Borho * source/encoder/dpb.cpp: dpb: fix picture re-use bug introduced in bc53f6dcda7f [29ca05751777] 2014-07-30 Steve Borho * source/encoder/entropy.cpp, source/encoder/entropy.h: entropy: remove unused flush function [674fb6e4d24c] * source/encoder/entropy.cpp: entropy: remove redundant !isIntra() check [b21a9eeec1f8] * source/common/quant.cpp: quant: use bisLuma [8587668cf279] * source/common/quant.cpp, source/common/quant.h: quant: use x264 style lambda naming scheme [77655ea856fe] 2014-07-31 Steve Borho * source/encoder/dpb.cpp, source/encoder/dpb.h: dpb: cleanup prepareEncode() [565603cfe031] 2014-07-30 Steve Borho * source/encoder/rdcost.h: rdcost: settle on x264 style lambda naming scheme [639bef366e3e] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/rdcost.h: rdcost: change input type of setC*DistortionWeight to uint16_t the inputs were shorts, converted to doubles, passed to the function, then floor() and casted to uint64_t [5e7a5c1c3446] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/rdcost.h: rdcost: move zeroPel buffer to TEncSearch, its only user [79d976fdc263] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp, source/encoder/rdcost.h: rdcost: keep psy-rd scale factor as an int (0..512), remove psyRdEnabled() [fdb6bb3b2763] 2014-07-31 Steve Borho * source/common/common.h: common: remove unused SCALING_LIST_PARAMETER enum [5d6c2ddd5620] * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h: TComRom: nits [cbf7a9c4be88] 2014-07-30 Steve Borho * source/encoder/entropy.cpp: entropy: nits [667a38aaccff] * source/encoder/entropy.cpp: entropy: use bIsLuma in codeCoeffNxN() [a800a5ca5db7] * source/common/slice.h, source/encoder/entropy.cpp: slice: allow loop filter boundary flag to be analyzed [89316a3d04b6] * source/common/quant.cpp, source/common/quant.h, source/encoder/entropy.cpp, source/encoder/entropy.h: quant: use bIsLuma args instead of using a subset of TextType [32bc57acf918] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/common/CMakeLists.txt, source/common/quant.cpp, source/common/quant.h, source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/predict.h: TComTrQuant to Quant [3c659845e4dc] * source/common/scalinglist.h, source/encoder/entropy.cpp: scaling: use anonymous enums for class constants these didn't need to be integers, they didn't need storage. They're only used to declare arrays and enforce loop bounds. This fixes a link error in debug compiles on Linux. While I was at it I improved the comments and moved one definition to entropy.cpp since that was the only place it was used. [0b0d398f35ca] 2014-07-30 Deepthi Nandakumar * source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/common/CMakeLists.txt, source/common/intrapred.cpp, source/encoder/CMakeLists.txt, source/encoder/analysis.h, source/encoder/predict.cpp, source/encoder/predict.h: predict: predict.cpp/.h defined, hungarian function names cleaned up, warnings removed [c32a86702b68] 2014-07-30 Steve Borho * source/common/param.cpp: param: disable range checks for psy-rdoq while we tune it [3d814fd1268b] * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/common/scalinglist.cpp: defs: remove DISTORTION_PRECISION_ADJUSTMENT, fix bug in 2e22ea6ec4bc FULL_NBIT was disabling this macro for even 16bpp builds, but I accidentally enabled it. Since it was previously disabled for every build, and is only even present in SAO and quant, it is best to just remove it completely. [38349967645f] 2014-07-25 Sumalatha Polureddy * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/analysis.cpp, source/encoder/encoder.cpp: psy-rdoq: implementation of psy-rdoq (highly experimental) This initial version is storing a temp variable in TComTrQuant to avoid adding even more parameters to getCodedLevel() and it is ignoring scaling lists in the unquant operation. Currently, you may need large psy-rdoq scale values to have any real effect. It needs lots of testing. [06dcd7c5df6e] 2014-07-30 Steve Borho * source/Lib/TLibCommon/TComTrQuant.cpp: quant: minor cleanups [df8314a1d3cb] * source/Lib/TLibCommon/TComTrQuant.cpp: quant: rename absLevel to level, remove diffLevel [09ae268bb0ce] * source/Lib/TLibCommon/TComTrQuant.cpp: quant: readability nit [ddef8e2d88fd] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: quant: pass curCostSig to getCodedLevel as an integer [4cb71a283ae3] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: quant: return signal cost from getRateLast(), do not include lambda [e0320502f9ea] * source/Lib/TLibCommon/TComTrQuant.cpp: quant: don't bother with extra temp variables [5210fca67553] 2014-07-29 Min Chen * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: fix output non-determination bug When temporal candidates end up as MVP candidates, they can reach beyond the available region of valid pixels in the reference picture. In that case, we should not try to measure distortion there, it only introduces non-determinism. Just take the other MVP without contest. If both MVP were out of range, we default to mvpIdx = 0. Note that there was never any risk of a decode error since when ME runs it clamps all motion vectors to the range of available pixels. The setting of this mvmin/mvmax range is assigned just after picking the best of the two MVP candidates. [05132ebe8413] 2014-07-29 Steve Borho * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: quant: getICRate() and getICRateCost() do not need to be class methods [bb9b2fcf75ef] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: quant: hoist lambda multiplication out of getICRateCost() [e9e5f177a698] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: quant: inline getRateSigCoef(), getRateSigCoeffGroup() and getICost() [f174808a7df4] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: quant: improve documentation and code clarity, no logic change [4012d5a6ff93] * source/common/scalinglist.cpp: scaling: factor prec into scalingBits This makes errScale clearly function to remove quantCoeff^2, and add this cost scale factor (which is just a bit shift). By factoring it this way, we can probably remove the need for doubles in the near future by not using the scaled coefficients in the stupid first place. [664eff34ef25] * source/common/scalinglist.cpp: scaling: cleanup [71bce9ae1072] * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComRom.h: move quant defines from TComRom.h to CommonDef.h; they are not table sizes [eeeb96ecf0c7] * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/deblock.cpp, source/encoder/entropy.cpp: typedef: remove redundant ChromaFormat enums [57a8320024ed] * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TypeDef.h, source/encoder/entropy.cpp: defs: cleanup CommonDef.h and TypeDef.h again TypeDef.h only defines enums, CommonDef.h only defines constants (grouped together logically). Remove doxygenness [b5339cbf1764] * source/common/scalinglist.cpp: scaling: further simplify scaling list calculation It does more operations with ints, but mainly I just find this more readable [7c8fc08dfbd6] * source/Lib/TLibCommon/CommonDef.h: defs: remove FULL_NBIT, no change to logic [2e22ea6ec4bc] * source/common/scalinglist.cpp: scaling: replace pow(2.0, -2.0 * transformShift) with shift adjustment Result is the same [e51017789090] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/encoder/entropy.cpp: quant: use ScanType enum as type for scanType, other cleanups [8d1b7dc5b832] * source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TypeDef.h, source/encoder/entropy.cpp: quant: move enums for scan order to TComRom together with the tables [fecc01d4c27f] 2014-07-29 Aarthi Thirumalai * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp: rc: fix crash in 2 pass for faster preset (ultrafast - faster) [a9678988dda2] 2014-07-29 Steve Borho * source/encoder/encoder.cpp, source/encoder/sei.h: hrd: add a comment about when an APS is required, update SEI [2263fe1c05f1] * source/encoder/encoder.cpp, source/encoder/frameencoder.cpp: sei: fix byte alignment following HRD SEI [dbec825c30ad] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/CMakeLists.txt, source/encoder/motion.cpp, source/encoder/motion.h: cmake: enable full warnings for remaining TLibEncoder files [3a1245fb52a4] 2014-07-28 Steve Borho * source/Lib/TLibCommon/TComTrQuant.cpp: quant: delay getTUEntropyCodingParameters() until known necessary [2834687bcb51] 2014-07-29 Albert Wang * source/encoder/frameencoder.cpp: frameencoder: fix for crash in frameencoder when AccessUnitDelimiter is on The m_entropyCoder need to set the bitstream first before calling codeAUD, otherwise a crash will happen. [47e6a51b943f] 2014-07-29 Steve Borho * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/CMakeLists.txt: remove sign compare warnings from TLibEncoder, cleanup SAO [a021b541a2ef] * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp, source/encoder/weightPrediction.cpp: rc,weight: nits [0308c9e187be] 2014-07-28 Steve Borho * source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h, source/encoder/slicetype.cpp, source/encoder/slicetype.h: rc: call getEstimatedPictureCost() from API thread, prevent race hazards [2bc34d32e6cc] * source/encoder/dpb.cpp: dpb: cleanup [bc53f6dcda7f] * source/Lib/TLibCommon/TComPicSym.h, source/common/slice.h, source/encoder/dpb.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/ratecontrol.cpp: slice: move m_bReferenced to picsym and rename for clarity This flag was being used for two purposes and introducing race hazards: 1. determining if a picture in the DPB must be signaled in an RPS 2. determining if the slice type is referenced (non-b) The m_bHasReferences variable on the picsym is used for the first purpose. The macro IS_REFERENCED(slice) is used for the second purpose. The m_isReferenced member variable on the frame encoder was removed and it just checks the slice type directly. [3c50a7e516ed] * source/encoder/frameencoder.cpp: frameencoder: nits [e84b28132be1] * source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: frameencoder: re-order compressFrame() to avoid dependency problem with HRD 1. if --hrd is enabled, the buffer period SEI needs data set by rateControlStart 2. rateControlStart may block, so get compute heavy tasks done first, like weighted prediction analysis 3. hoist rateControlStart and QP setup back out of compressCTURows() and move other code into it that belonged there in the first place 4. move framefilter setup logic together 5. don't measure rateControlEnd() in frame wall time [71c023799f3d] 2014-07-28 Satoshi Nakagawa * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/analysis.cpp: search: separate bSkipRes == true path [7eab256b60f0] 2014-07-28 Aarthi Thirumalai * source/encoder/slicetype.cpp: slicetype: compute frame satd cost for zero latency [eba786bbe4b5] 2014-07-28 Steve Borho * source/common/scalinglist.cpp, source/common/scalinglist.h, source/encoder/entropy.cpp: scaling: remove m_refMatrixId; it was only used to return an int Only one value of the matrix was ever used at a time, so we can return thtat index directly from checkPredMode [236df356402d] * source/common/scalinglist.cpp, source/common/scalinglist.h, source/encoder/entropy.cpp: scaling: use simple ints for small counters and int32_t for scales and coeffs This fixes a gcc warning and mostly makes the code more readable and avoids some (int) casts [d66a3bd865e3] * source/common/CMakeLists.txt: cmake: ignore msvc warnings about forcing value to bool 'true' or 'false' [8bab5275baed] 2014-07-27 Steve Borho * source/Lib/TLibCommon/TComTrQuant.cpp: quant: fix for tskip [6b286f66cfab] * source/Lib/TLibCommon/TComTrQuant.cpp: quant: nits [ea63a67164e5] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: quant: inline transformSkip [67e62a4d520f] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: quant: inline invTransformSkip [ec8f8d6e59d9] * source/Lib/TLibCommon/TComTrQuant.cpp: quant: simplify dequant, remove redundant invQuantScales array [28c7868814de] * source/encoder/level.cpp: level: signal level None if lossless coding - we have no bitrate control [74a5481eceb5] * source/common/scalinglist.cpp, source/common/scalinglist.h, source/encoder/entropy.cpp: scaling: remove duplicate square-block size enums [0d2eb9d6d7e0] * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/scalinglist.cpp, source/common/scalinglist.h, source/encoder/entropy.cpp: scaling: move global arrays into class statics, rename [9ad7abfab9d1] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/scalinglist.cpp, source/common/scalinglist.h, source/encoder/encoder.cpp: quant: move quant/dequant/errScale buffer maintenance to scaling list class This was a wasteful duplication of compute and memory. It was always strange that TComTrQuant had so many internal references to the ScalingList class, just to build these arrays itself. As part of this refactor, ScalingList now has checked mallocs. [57b57ec43838] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: quant: remove x prefixes from remaining methods; no logic change [82bd32283dd1] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: quant: replace xGetIEPRate() with a constant [96925cfd342d] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: quant: remove x prefixes from scaling list methods [991d931d9db4] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: quant: use rem consistently for variables holding qp % 6 [1b39a252efac] * source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSearch.cpp: quant: remove default curUseRDOQ argument value [250deb63f2ea] * source/Lib/TLibCommon/TComTrQuant.h: quant: remove default useTransformSkip argument value [2f52f5c4a913] * source/Lib/TLibCommon/TComTrQuant.cpp: quant: more coding style cleanup, update argument list in xGetCodedLevel comment [262af2694656] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: quant: QpParam class to struct [e4008f081c33] * source/Lib/TLibCommon/TComTrQuant.h: quant: re-order header and improve comments [5758998128e1] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSearch.cpp: quant: remove get/set methods for scaling list enable flag [7435c0f166f6] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: quant: remove access methods for the class's own members [0625f303cd49] * doc/reST/cli.rst, source/CMakeLists.txt, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/common/param.cpp, source/common/scalinglist.cpp, source/common/scalinglist.h, source/encoder/encoder.cpp, source/x265.cpp, source/x265.h: api: expose scaling lists and psy-rdoq as a CLI/API options psy-rdoq is not yet functional - option is ignored move scaling list related globals to scalinglist.cpp from TComRom [93a434014f5a] 2014-07-26 Steve Borho * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: quant: don't pass m_resiDctCoeff to member methods [00c127bd42e7] 2014-07-25 Steve Borho * source/common/param.cpp, source/encoder/encoder.cpp: param: move all consistency param tweaks into Encoder::configure() x265_check_params() shouldn't be modifying the param structure; it's role is to spot invalid configurations and prevent crashes in encoder creation. [a86d9aaaa7d7] 2014-07-26 Steve Borho * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSearch.cpp: quant: cleanup initialization; catch malloc failures. rename m_tmpCoeff [db5642f2e4b7] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: quant: nits [a28a01820e30] 2014-07-25 Steve Borho * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: quant: cleanups [b60d35a06d3a] * source/Lib/TLibCommon/TComTrQuant.cpp: quant: cleanup signBitHidingHDQ() [50db97f20e61] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: quant: simplify setQPforQuant [3f205a75877b] * source/Lib/TLibCommon/TComTrQuant.cpp: quant: remove dead comment [08de42d0b4a0] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/encoder/entropy.cpp, source/encoder/entropy.h: quant: do not malloc the EstBitsSbac structure, pass by reference [82279c006a70] * source/Lib/TLibEncoder/TEncSearch.h, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp: white-space and brace nits [fef8314f730b] * source/Lib/TLibEncoder/TEncSearch.cpp: search: simplify verbage, fix white-space, no logic change [7a8e7a87c9a2] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/cturow.cpp: search: move all init code into TEncSearch::initSearch() TEncSearch owns all the objects being initialized [915397565c05] * source/encoder/framefilter.cpp: framefilter: initialize saoRowDelay just once [6ca9f09455ca] * source/Lib/TLibCommon/TComPicSym.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp: frameencoder: remove getSAO() access method; delay allocation of SAOParam [606b6ebed3b8] * source/encoder/dpb.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: move slice setup together into one function, reorder functions for clarity [509fe705ed8d] * source/common/slice.h, source/encoder/frameencoder.cpp: slice: remove redundant initSlice(), m_numRefIdx[] is set by DPB unconditionally [b573c299fb31] * source/common/slice.h, source/encoder/dpb.cpp: slice: move coloc/tmvp flag setting all to one place [d65c665f15f8] * source/x265.h: api: improve documentation of x265_encoder_encode [f73c0902079f] 2014-07-26 Steve Borho * source/encoder/analysis.cpp: analysis: cleanup early-skip [dc595d2bfa36] * source/Lib/TLibCommon/TComDataCU.cpp: cudata: nits [50e015720392] * source/encoder/entropy.cpp: entropy: nit [a581b22e70e4] * source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/framefilter.cpp: encoder: remove unused m_maxRefPicNum and m_maxNumOffsetsPerPic [e6ff719bd703] 2014-07-25 Steve Borho * doc/reST/cli.rst: rest: better document configuration options of --vbv-init [66ed81577483] 2014-07-25 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: rc: fix crashes in vbv with 2 pass [d3e2e487a488] 2014-07-25 Steve Borho * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/framefilter.cpp: encoder: remove redundant m_pad array [8aa4132d3097] * source/encoder/encoder.cpp, source/encoder/encoder.h: encoder: fix uninitialized variable use reported by valgrind m_conformanceWindow was not initialized at all; and this was causing uninitialized values to be written to the SPS if padding was necessary. Remove unnecessary m_defaultDisplayWindow in the process [c5aa92fff04a] * source/encoder/encoder.cpp, source/encoder/entropy.cpp: nits [d8a2892b8044] * source/common/param.cpp, source/common/slice.h, source/encoder/encoder.cpp, source/encoder/level.cpp: level: move all profile set/determine logic into one file, fixes for MSP [239cb2ba252e] 2014-07-24 Steve Borho * source/x265.cpp: cli: call x265_param_apply_profile() after applying file-reader params the Y4M headers could change param->internalCsp, so applying the profile before the reader makes changes allows bugs. The CLI was allowing an encode of: x265 foo_422.y4m o.bin --profile main Even though --profile main was trying to enforce 4:2:0; the color space change happened afterward the profile was enforced and thus invalidated the specified profile. After this fix the encode properly fails with: x265 [error]: Unsupported color space (2) on input aborted at input frame 1, output frame 0 [cb6f58ca056e] * source/x265.cpp: cli: nit [88afb4a4bcee] 2014-07-24 Satoshi Nakagawa * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/analysis.cpp: qtLayer in reverse order [11f8f6e4be20] 2014-07-22 Satoshi Nakagawa * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp, source/common/primitives.cpp, source/common/primitives.h, source/common/shortyuv.cpp, source/common/shortyuv.h, source/encoder/analysis.cpp, source/test/testbench.cpp: refine partition size related - reorder LumaPartitions to simplify partitionFromLog2Size() - remove unused [64a3b661b79a] 2014-07-24 Steve Borho * source/common/param.cpp: param: log multi-pass state [670e330e4120] * source/encoder/ratecontrol.cpp: rc: nits [f54d5368590a] * source/encoder/ratecontrol.cpp: rc: instrument all error conditions in initPass2() it's not helpful to abort the encode with no hint as to why [650c2d3c5194] * source/encoder/bitcost.cpp: bitcost: nits [74630a9af6c9] * doc/reST/cli.rst: rest: better document that -I N -i N does not disable scenecut detection [63a4b5c790ca] * Merge with stable [8b59410a70be] * source/encoder/bitcost.cpp, source/encoder/bitcost.h: bitcost: increase size of cost arrays, for pessimal situations MVD is MV minus MVP. MV could be BC_MAX_MV and MVP could be -BC_MAX_MV [a12920e08700] * source/encoder/bitcost.h: bitcost: fix bitcost() function, broken 13 months ago by 07015bbe306b when bitcost() was first introduced, we had two competing table formats for the s_bitsizes[] array. Eventually the x264 style array won out, but this function was not updated. This bug was almost harmless, bitcost() could still evaluate differences in bit costs correctly, but the upshift caused read bound exceptions when the motion vectors became close to the HEVC max of 4k. [49ea5391828c] * source/x265.cpp: cli: reorder argument help for clarity, add more sections [b78d4dc01e2c] 2014-07-24 Aarthi Thirumalai * source/common/param.cpp, source/x265.cpp: rc: add cli options for multi-pass rate control [5955c949ef8c] 2014-07-24 Gopu Govindaswamy * source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h, source/common/CMakeLists.txt, source/common/deblock.cpp, source/common/deblock.h, source/common/loopfilter.cpp, source/encoder/framefilter.cpp, source/encoder/framefilter.h: port TComLoopFilter Functions into /common/deblock 1. Rename TComLoopFilter to Deblock 2. Remove hungarian notation function names and variables 3. Remove unused or empty functions [6c7a31f1b029] 2014-07-23 Steve Borho * source/encoder/entropy.cpp: entropy: reorder methods in general encode order for clarity, no logic change [47407360120a] * source/common/slice.h, source/encoder/encoder.cpp, source/encoder/entropy.cpp: entropy: remove ambiguity about timing info signaling [5b22512f13d1] * source/encoder/entropy.cpp: entropy: nits [2debe3d86181] * source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/entropy.h: entropy: do not code a scaling list in PPS The scaling list in PPS is only necessary to override the scaling list in the SPS. We will only ever have at most one scaling list (at this time) [ab0c9b6cc30f] 2014-07-24 Aarthi Thirumalai * source/Lib/TLibEncoder/TEncSearch.cpp: rc: calculate mvBits, coefBits per Cu for 2 pass in skip mode as well [6c0929567805] * source/encoder/ratecontrol.cpp: rc: compute average of qpaRc, qpAq per frame even in 2 pass [7dd13d919265] 2014-07-23 Steve Borho * source/Lib/TLibCommon/TComPrediction.h, source/encoder/analysis.cpp: pred: remove default motionCompensation argument values bugs waiting to happen; they've bit us multiple times in the past [342d72f0b613] * source/encoder/analysis.cpp: analysis: eoln fixup [4f9ff4eeb7e3] 2014-07-23 Deepthi Nandakumar * source/encoder/analysis.cpp: TComPrediction: fix MC error caused by previous patch [db6b7046d4f0] * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp: TComPrediction: remove unused parameter warning [6919c9f2432a] * source/encoder/analysis.cpp: analysis: whitespace nit [379c44100fff] 2014-07-23 Steve Borho * doc/reST/cli.rst: rest: tpyo [9a1c64cc7f28] * doc/reST/cli.rst: rest: move profile, level, and tier into their own section They really didn't belong combined with the slice-decision options [8a8495c750ad] 2014-07-23 Deepthi Nandakumar * source/encoder/analysis.cpp: analysis: add in extra X265_CHECK [2ee1444e8a00] 2014-07-23 Gopu Govindaswamy * source/encoder/analysis.cpp: analysis: setQPforQuant in checkIntraInter to fix the hash mismatch at rd=5&6 [c1823bb20eed] 2014-07-23 Deepthi Nandakumar * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h: TComPrediction: white space nits, remove isPSlice (next series) [5fdc394bc5e0] 2014-07-22 Deepthi Nandakumar * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibEncoder/TEncSearch.cpp: TComPrediction: remove redundant colorspace information m_csp is sufficient inside the TEncSearch, TComPrediction structures [30f41c3ef7d3] * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp: TComPrediction: save CU data (partAddr, width, height) as member fields Before motion compensation, save CU related data inside the TComPrediction structure [a5422a41c85a] 2014-07-21 Deepthi Nandakumar * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibEncoder/TEncSearch.cpp: TComPrediction: remove TComDataCU as pointer to private functions [d8d26a695cf6] 2014-07-22 Steve Borho * source/common/param.cpp: param: re-order code to avoid unreachable code warnings in 10bit builds [e3ad03b7c485] * build/regression/01build-and-smoke-test.bat, build/regression/02perftest.bat, build/regression/commandlines- example.txt, build/regression/config-example.txt, build/regression /email-csv.py, build/regression/run.bat: remove very obsolete regression batch files [fe3f3ec46306] * source/encoder/level.cpp: level: fix GCC signed/unsigned comparison [345bc6231fa3] 2014-07-21 Steve Borho * doc/reST/cli.rst: rest: update --profile, --level, --high-tier docs [08da00a7e719] * source/CMakeLists.txt, source/common/param.cpp, source/encoder/api.cpp, source/encoder/level.cpp, source/encoder/level.h, source/x265.cpp, source/x265.h: level: add --high-tier and auto-configure VBV if --crf N --level M (refs #61) This patch is a major overhaul of the level enforcement logic. The first obvious difference is that the user may specify the tier. The second difference is that x265 will no longer run any configuration that might generate non-compliant bitstreams. Any of these conditions will cause the encode to abort if a minimum decoder level was specified: * picture size is too large * frame rate is too high * constant QP rate control is configured * the specified level does not exist Further, if CRF was specified, we now configure VBV using the maximum CPB size and bitrate for their level/tier (and issue a warning that the output may now be non-deterministic). Note that the encoder will still encode the minimum decoder level which covers the encode parameters. So even if you specify --level 5.1, we may signal the stream as level 4.0-High if the stream should be decodable at that level. This further fixes the CLI to allow --level-idc or the shortened --level, just as it now also supports --high-tier or the shortened --high. [5510d559c2bd] 2014-07-22 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: rc: bug fixes in 2 pass ABR ratecontrol - fix duplication of bits in calculating m_totalBits frameencoder - don't amortize totalBits in 2 pass ABR [b85dbec30cc5] 2014-07-21 Steve Borho * source/encoder/ratecontrol.cpp: rc: prevent gcc shadow warning about int terminate and terminate() [d303b4d860e9] * source/encoder/analysis.cpp: analysis: don't initialize members of base class in constructor [eeea411e197a] * source/common/param.cpp: param: fix profile warnings in x265_param_apply_profile() This function was likely never used since it was not supported by the CLI till now. When the user specifies --profile Main10, they intend that the output stream is decodable by a Main10 decoder. This is true of any Main encode. The reverse is not true for --profile Main and a Main10 encode. We must return an error and abort the encode if --profile Main is specified and the encoder was compiled for Main10 (HIGH_BIT_DEPTH). [5835fa3a8281] * source/x265.cpp: cli: expose x265_param_apply_profile() via --profile This is repairing an egregious oversight [56e9d8a66527] * source/encoder/level.cpp: level: nit [a2506d62d4af] * source/encoder/api.cpp, source/encoder/encoder.cpp, source/encoder/level.cpp, source/encoder/level.h: level: move m_vps.maxDecPicBuffering logic into one function This prevents duplicate logic from existing in two separate files [72641fecf86a] * source/Lib/TLibCommon/TypeDef.h, source/common/slice.h: ptl: move enums from TypeDef.h to slice.h [5f64abf3a20a] * source/common/slice.h, source/encoder/api.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/level.cpp, source/encoder/level.h: slice: add ProfileTierLevel instance to VPS The PTL data is coded in the VPS (first) and thus belongs with that data structure, as it allows us to simplify arguments to the level set and determination functions. [7621ec03e9c6] * source/encoder/level.cpp: level: fix typo [eed3099a90ea] 2014-07-17 Steve Borho * source/encoder/level.cpp: fix for GCC warning about loop bounds [bf78ebd06ed0] 2014-07-21 Steve Borho * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/api.cpp, source/encoder/cturow.cpp, source/encoder/cturow.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h: entropy: settle on Entropy class name and member names Through all these various refactors the SBAC/CABAC/entropy classes have all merged together and the member variables were a scattered mix [ca02fa285ac0] * source/CMakeLists.txt: cmake: tabs to spaces [26458b8dcba4] * source/CMakeLists.txt: cmake: only create SONAME shared lib on POSIX systems (closes #62) [80c1d35e5517] * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: rc: prevent deadlock on encoder flush or close 1. add a terminate() function to unblock any blocked rate control methods 2. never block if the order ordinal is already above the required ordinal 3. simulate start events when encoder is flushing Without these changes, closing the encoder without flushing (CTRL+C in the CLI) or encoding fewer frames than frame encoders (-F8 -f4) could cause deadlocks [a2fd8a71de61] 2014-07-21 Aarthi Thirumalai * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: rc: fix warnings in ratecontrol [3801142d080d] 2014-07-18 Aarthi Thirumalai * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: rc: generate cutree offsets for 2nd pass from stats [2f87f3c24b4a] * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h, source/encoder/slicetype.cpp, source/encoder/slicetype.h: rc: fix sliceType of 2nd pass from prev pass stats avoid doing sliceAnalyse in lookahead for 2nd pass [1b2fbf3208ca] * source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: rc: add 2 pass logic in rateEstimateQscale [0461e091a7b5] 2014-07-21 Satoshi Nakagawa * source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp: trquant: store QpParam for each component [4d2c3d09e836] 2014-07-19 Satoshi Nakagawa * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TypeDef.h, source/encoder/entropy.cpp: scan order tables [88310701f857] 2014-07-21 Deepthi Nandakumar * source/Lib/TLibCommon/TComWeightPrediction.cpp: TComWeightPrediction: initialising pointers to NULL getWPScaling will assign appropriate weight pred tables to these. [aa651ea5673c] * source/Lib/TLibCommon/TComWeightPrediction.cpp: TComWeightPrediction: add braces to prevent errors for an optional else statement [a30e3bd53959] 2014-07-17 Michel Zou * source/CMakeLists.txt: cmake: fix dll installation directory on Windows On Windows the shared library (.dll) is considered RUNTIME and the import library (.dll.a on MinGW or .lib on MSVC) as LIBRARY. [eb983d29c11a] 2014-07-17 Min Chen * source/common/x86/ssd-a.asm: use macro HADDD to improve AMD performance [7e9de0923541] 2014-07-18 Ashok Kumar Mishra * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h: TComDataCU: replaced functions with tables [477a0a6bf89b] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h: TComDataCU: remove redundant functions [6df47cdd3f47] 2014-07-18 Santhoshini Sekar * source/encoder/analysis.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: rc: update ratecontrol stats in every frame, avoid frame parallelism lag in abr RateControl statistics are updated for every frame when refLagRows number of rows are completed in processRowEncoder. With this updated data rateControl predicts more accurate QP This removes the previous hack which disabled frame parallelism for the first half-second of video and replaces it with a more fine- grained rate control call timing to achieve a similar ABR improvement with less effect to frame parallelism. [0a8ecd8a6cf9] 2014-07-18 Steve Borho * source/Lib/TLibCommon/TComTrQuant.h, source/common/CMakeLists.txt, source/common/scalinglist.cpp, source/common/scalinglist.h, source/common/slice.cpp, source/common/slice.h, source/encoder/encoder.h, source/encoder/entropy.cpp, source/encoder/entropy.h: split ScalingList class into its own header and source file The PPS and SPS headers no longer have scaling list pointers, so there is no need for it to be declared in the same header [eef6867b9c53] * source/encoder/dpb.cpp, source/encoder/ratecontrol.cpp: a copy of POC is cached in the Frame struct [e4199c04d78d] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/frame.h, source/encoder/analysis.cpp, source/encoder/dpb.cpp, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp: frame,cu: remove getSlice() [ea61fd838115] * source/Lib/TLibCommon/TComPicSym.h, source/common/frame.h, source/encoder/dpb.cpp: picsym: remove getSlice() [821c875b2d39] * source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/common/CMakeLists.txt, source/common/common.cpp, source/common/frame.h, source/common/param.cpp, source/common/slice.cpp, source/common/slice.h, source/encoder/analysis.cpp, source/encoder/cturow.h, source/encoder/dpb.cpp, source/encoder/dpb.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h, source/encoder/reference.cpp, source/encoder/sei.cpp, source/encoder/sei.h, source/encoder/weightPrediction.cpp: move PPS, SPS, Slice and ScalingList to common/ [f04c98f33ca5] 2014-07-17 Steve Borho * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h: slice: remove unused initWpScaling() [9cbd9fc1710a] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/encoder/entropy.cpp: slice: remove getWpScaling() [601e61fb185f] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/common/piclist.cpp, source/common/piclist.h: slice: make xGetRefPic a PicList method [b4643bc7ac7d] * source/Lib/TLibCommon/TComSlice.h: slice: do not initialize fields that are always written unconditionally [eb6178f8449e] * source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp: encoder: do some slice initializations only once [37ea4eb500cf] * source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp: entropy: slice->m_colFromL0Flag is a bool [1bf5e0390f7d] * source/encoder/dpb.cpp: dpb: simplify check for m_bCheckLDC; make note for future optimization [f7624977ec9a] * source/encoder/dpb.cpp: dpb: remove check for B frame without L1 our lookahead won't emit B frames without a leading P frame [fb9681ba75ac] * source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp, source/encoder/entropy.cpp: slice: remove m_bLMvdL1Zero This feature, which signals L1 MVD is zero for an entire slice, was never enabled because we never use the same frame list in L0 and L1. [82c1fec5da66] * source/encoder/entropy.cpp: entropy: fix warning reported by llvm /Users/steve/repos/x265/source/encoder/entropy.cpp:321:44: warning: equality comparison with extraneous parentheses[-Wparentheses- equality] if ((cu->getSlice()->m_numRefIdx[list] == 1)) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ [8eed1fac9ccb] * source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp, source/encoder/nal.cpp, source/encoder/nal.h: wpp: generate stream size array as coded (in bytes) and pre- calculate max offset removes another per-frame alloc/free and redundant work [93ab6ed75b01] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: slice: remove substream array, move to frame encoder \0/ the slice structure no longer allocates memory [5cbdfc4532d9] * source/Lib/TLibCommon/TComPrediction.cpp: nit [57f8e7264e9e] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/encoder/dpb.cpp: replace slice->m_refPicList[][]->getPOC() with slice->m_refPOCList[][] [4c14b90fad83] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp: slice: merge setRefPOCList() into setRefPicList() Now both lists are always aligned so it is always safe to use the POC table [51caccd3b359] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp, source/encoder/encoder.cpp, source/encoder/slicetype.cpp: slice: remove getRefPOC [eb2278d72afa] * source/encoder/dpb.cpp: dpb: perform setRefPOCList() directly after setRefPicList() A precursor to combining the two functions [c1acfb981082] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp, source/encoder/dpb.cpp, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp, source/encoder/weightPrediction.cpp: slice: remove getRefPic(l,r) [e2f90ba1de4a] * source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp, source/encoder/entropy.cpp: slice: remove setNumRefIdx [ce65e2bd2f12] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/analysis.cpp, source/encoder/dpb.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp: slice: remove set/get for m_colRefIdx and m_sliceCurEndCUAddr [4701e921b33d] * source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp, source/encoder/entropy.cpp: slice: remove getMvdL1ZeroFlag/setMvdL1ZeroFlag [b2ac589c522e] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp, source/encoder/entropy.cpp: slice: remove getColFromL0Flag() [1268011090f0] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp, source/encoder/dpb.cpp, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/weightPrediction.cpp: slice: remove getNumRefIdx() access method [785217b5ed5c] * source/Lib/TLibCommon/TComSlice.h: slice: removed unused setRefPic() and setRefPOC() methods [c7846351fc9f] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h: slice: remove unused getNumRpsCurrTempList() method [0f5cfda6a764] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp: slice: remove get/set methods for slice QP and lastIDR [3f024a5a40f0] * source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp: slice: remove get/set methods for m_bReferenced [aa785acc0d5f] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp, source/encoder/dpb.cpp, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp: slice: remove get/set methods for m_sliceType [880285f10294] * source/Lib/TLibCommon/TComSlice.h: nit [95a35fd1c0b7] * source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp: slice: remove m_cabacInitFlag, it was write-only [39f9cb10090a] * source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp: slice: remove m_numEntryPointOffsets, it was write-only [3a6a0307f6c6] * source/Lib/TLibCommon/TComSlice.h, source/encoder/analysis.cpp, source/encoder/cturow.cpp, source/encoder/frameencoder.cpp: slice: remove slice bit counter [79c839303e2a] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp, source/encoder/weightPrediction.cpp: slice: remove get/set methods for m_poc [98b7f7a776b1] * source/Lib/TLibCommon/TComSlice.h: nits [67c9a0c5ec56] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/analysis.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp: slice: remove m_sliceSegmentBits and get/set methods for max-merge [bf060c902d24] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp: slice: remove m_saoEnabledFlag, m_saoEnabledFlagChroma - use saoParams SBac::encodeSliceHeader() was already using saoParams for chroma but not for luma (inexplicably) [fd4297676f76] * source/encoder/frameencoder.cpp: sao: combine if(){} expressions [a5d5d329daf1] * source/encoder/frameencoder.cpp: sao: (bool == 1? ? true : false -> wat? [0233b8965906] * source/encoder/ratecontrol.cpp: rc: fix vbvBufferSize calculation [930003de2009] * source/Lib/TLibCommon/TComSlice.h: slice: nits [901252fe8a16] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp, source/encoder/frameencoder.cpp: slice: cleanup m_nalUnitType and helper methods [4c49302d8b19] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/weightPrediction.cpp: slice: remove get/set methods for m_pic This cleaned up TComDataCU::getPic() as a side-effect. [72e3bd69cb70] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp, source/encoder/entropy.cpp: slice: temporal MVP was never disabled [6e45eff6d2b3] * source/encoder/encoder.cpp: rc: HRD must be initialized prior to calling init() [c06b0b9d3501] * source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp: slice: remove unused deblock data, directly use status/offsets from PPS nits: reorder TComSlice for better clarity and remove initializer list from constructor [ba028e8d4115] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/frameencoder.cpp: slice: remove unused slice QP deltas [b5abd96ccc90] * source/encoder/dpb.cpp, source/encoder/entropy.cpp: nits [134406df4863] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp, source/encoder/entropy.cpp: slice: we only use a slice-local RPS (none signaled in SPS) [f5352780ad35] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp, source/encoder/dpb.h, source/encoder/entropy.cpp, source/encoder/entropy.h: slice: TComReferencePictureSet -> RPS [e6a8280a3c1a] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h: slice: hoist constructor to header (it will be removed in later commits) [08232a102124] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp, source/encoder/dpb.cpp, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h, source/encoder/sei.cpp, source/encoder/sei.h: slice: remove get/set methods for SPS and PPS, make pointers const Nearly everywhere, SPS and PPS are used read-only, so making the pointers const enforces this at compile time and allows the compiler to make some optimizations. The few places that initialize or change the headers are passed the original objects belonging to the top- level encoder. [419d1a1b0d39] * source/encoder/frameencoder.cpp: nit [675a22d901af] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.h, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/reference.cpp, source/encoder/reference.h, source/encoder/slicetype.cpp, source/encoder/slicetype.h, source/encoder/weightPrediction.cpp: slice: rename wpScalingParam -> WeightParam [575d4a0d849b] * source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp: pps: simplify deblocking signaling, disable slice override Disable slice override of deblock-enable state and offsets - we do no such thing and attempts at using these in the past have not been effective. [3e4616cffc90] * source/encoder/encoder.h: nits [6d0c8efbe3ed] * source/encoder/api.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: encoder: make SPS and PPS top-level encoder singletons This fixes a subtle bug. If level requirements forced the max references to be lowered, VPS and SPS maxDecPicBuffering was never adjusted. Now, they are not configured until after level enforcement has set them to final values. [f0d157944c55] 2014-07-16 Steve Borho * source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp, source/encoder/entropy.cpp: pps: we never very chroma QP per picture, so remove bSliceChromaQpFlag [b59d09ca6c1b] * source/encoder/encoder.cpp, source/encoder/entropy.cpp: pps: move deblocking logic together, fix a couple signaling bugs [bb5e9a11868c] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp: pps: class to struct, remove m_ prefix, unify naming scheme [677547b73129] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp: pps: remove set/get methods and hard-coded members [31d11036bf9c] * source/Lib/TLibCommon/TComSlice.h: slice: white-space nits [febec529cc80] * source/Lib/TLibCommon/TComSlice.h: vps: remove constructor, those values are always initialized [c64bca550377] * source/Lib/TLibCommon/TComTrQuant.cpp: sps: fix check statement [8193ac4172fe] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp, source/encoder/dpb.cpp, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h, source/encoder/sei.h: sps: class to struct, remove m_ prefixes [59782b2bc59c] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/common.h, source/encoder/analysis.cpp, source/encoder/dpb.cpp, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/sei.h: sps: remove set/get methods, remove members with hard-coded values Note all the SPS members that could be replaced by direct access to param. Removes m_vps pointer from slice, it was never set or referenced [e288df705bf3] * source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp, source/encoder/entropy.cpp: vps: class to struct and other nits [9f906f877ba8] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp: pps: remove hard-coded getLog2ParallelMergeLevelMinus2(0) and snuck in some other nits [b9bb54fd5478] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp: remove hard-coded pps->getSliceHeaderExtensionPresentFlag() [ba3146812b42] * source/Lib/TLibCommon/TComSlice.h, source/encoder/frameencoder.cpp: nits [92f32f4492f0] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp: slice: remove redundant/unused scaling lists from SPS, PPS, and Slice The SPS and PPS were allocating their own scaling list instances and never using them; with the recent refactors only their status flags were coded. TComSlice had a pointer to the top-level scaling list, but never used it. "There can be only one!" [8969598e1d91] * source/Lib/TLibCommon/TComSlice.cpp: slice: nits [891f975f1ba5] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/common/common.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp: slice: remove trivial set/get methods, move all relavent functions to the class [164b43bfdf7a] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp: slice: remove unsignaled m_temporalLayerNonReferenceFlag [b3db2d76500b] * doc/reST/cli.rst: rest: fix crf min/max option names [9213f5dea023] * source/Lib/TLibCommon/TComSlice.h: slice: start to clean up scaling list struct [04601befb930] * source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp, source/encoder/entropy.cpp: slice: convert Window to struct, simplify names [26f94fc58d5a] * doc/reST/cli.rst: rest: fix documented default AQ mode As noted by Alex Ramsey [c45eda4d780f] * source/Lib/TLibCommon/TComSlice.h, source/common/bitstream.h, source/encoder/entropy.cpp, source/encoder/sei.h: bitstream: change writeFlag() to take a bool to avoid int conversions [2737d0b05b72] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/sei.h: vui: prune set/get methods and unsignaled fields [cb5f30c19ccc] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h: slice: finish cleanup of TComReferencePictureSet [ab3e3c2b806f] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h: slice: remove unused PPS ID [06ceed0047c1] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComSlice.cpp, source/encoder/dpb.cpp: brace nits [f28129d63336] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/common/frame.cpp, source/common/frame.h, source/encoder/dpb.cpp, source/encoder/dpb.h, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp: slice: Cleanup TComReferencePictureSet, prune the notion of long- term-pictures [afcfff7f654c] 2014-07-15 Steve Borho * source/encoder/entropy.cpp: entropy: nits [d850cbf81e0f] 2014-07-15 Deepthi Nandakumar * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/CMakeLists.txt, source/encoder/analysis.cpp, source/encoder/analysis.h, source/encoder/compress.cpp, source/encoder/cturow.h, source/encoder/frameencoder.h: port TEncCU functions into analysis structure 1. Rename TEncCU to Analysis 2. Remove warnings (/wd4244 /wd4389 /wd4018) from TEncCU 3. Roll over compress.cpp into analysis.cpp 4. Rename TEncCU to Analysis 5. Remove hungarian notation function names [76eb82b31c37] 2014-07-15 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: search: assert to X265_CHECK [6cf3a2414461] 2014-07-15 Min Chen * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/common/x86/pixel.h, source/common/x86/ssd-a.asm, source/test/pixelharness.cpp, source/test/pixelharness.h: replace sse_sp(residual, ZERO) by ssd_s(residual) [7e6ac3a85073] 2014-07-15 Santhoshini Sekar * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: rc: define function for updating rate control statistics in processRowEncoder Rate control updates its statistics like bits in RateControlEnd. With frame parallelsim enabled and N parallel frames running, the feedback given to rate control is delayed until rateControlStart of N frames are called. To avoid this delay, update rate control statistics for every frame after encode of few frames are done in processRowEncoder. By updating statistics for every frame we make ABR to function more accurately (predicts more accurate QP) making use of latest data rather than stale values. Frame parallelism lag (the wait for reconstructed pixels) already forces this delay between frames, this change will simply take advantage of the progress made by referenced frames before each frame is allowed to begin coding by having more accurate rate control data. [27a27d733e1e] 2014-07-15 Sumalatha Polureddy * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp, source/encoder/encoder.h: fix for crash when scalingList feature is enabled [919fd9de54dc] 2014-07-15 Steve Borho * source/encoder/entropy.cpp: entropy: remove obsolete check macro [3499aa4fa20c] * source/Lib/TLibCommon/TComSlice.h: slice: fix warning [32aeb47c2d36] * source/Lib/TLibCommon/TComSlice.h: slice: remove unused m_useDF [6e0def026364] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp: slice: remove more hard-coded fields [3b0e141c3a2f] * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComMotionInfo.h, source/encoder/encoder.cpp: defs: remove more dead definitions [105778f37879] * source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/sei.h: hrd: remove *Minus1 from member names and semantics, remove m_ prefixes Note that hrd->cpbSizeValue stored a "minus 1" value but was not named as such This commit also fixed a math bug (late up-conversion) in cpbSize calculation in ratecontrol.cpp [3bc86d0fbdc7] * source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/sei.h: hrd: remove set/get methods of TComHRD, remove unused members [d9921a247139] * source/Lib/TLibCommon/TComSlice.h: hrd: remove four unused fields [e2003ed17684] * source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp, source/encoder/ratecontrol.cpp, source/encoder/sei.h: hrd: CPB count is always 1 [00b91817e3e4] * source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp, source/encoder/ratecontrol.cpp: hrd: inline HrdLayerInfo, remove second array dimension (was for nal/vcl) [b9c3a067f89e] * source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/sei.h: hrd: we always signal NAL HRD but not VCL and not sub-pic Remove redundant fields and methods [27c28450e098] * source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/entropy.cpp, source/encoder/ratecontrol.cpp: slice: simplify TimingInfo to a struct [9b807ca6313a] * source/Lib/TLibCommon/TComSlice.h: slice: nits [b0bc72c359d1] * source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp, source/encoder/entropy.cpp: change ProfileTierLevel to a struct, no m_ prefixes [758cb5de97b6] * source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp: ptl: remove hard-coded m_profileSpace [bc9bbe6bfdb1] * source/encoder/entropy.cpp: entropy: de-hungarian codePredWeightTable(), fix comments (remove redundants) [84478006fe0f] * source/encoder/entropy.cpp: entropy: nits [dfd2bd5c7cfa] * source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp: vps: remove m_maxLatencyIncrease, it was always 0 [969a6a5de916] * source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp, source/encoder/entropy.cpp: vps: remove remaining set/get methods [d7b673cdbc78] * source/Lib/TLibCommon/TComSlice.h: vps: remove now unused m_layerIdIncludedFlag [bf28c2e0a8ce] * source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp: vps: remove unused m_maxNuhReservedZeroLayerId, m_numOpSets The values were all hard-coded [00fafd0b078c] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp: sps: hard-code an SPS ID of 0, we only ever use one SPS [fe9aee4225a1] * source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp: vps: remove m_VPSId, signal hard-coded 0 [f7c168558bf0] * source/encoder/entropy.cpp: entropy: remove broken X265_CHECK [1dd0b14a8e9c] * source/encoder/frameencoder.cpp: frameencoder: nits [e68eedbd6795] * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp, source/encoder/entropy.h: remove unused multiple HRD parameter sets from VPS class [27307f7547c0] * source/Lib/TLibCommon/CommonDef.h: defs: remove some dead definitions, cleanup a comment [ddb6dc16a64a] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp: slice: remove unused m_interRPSPrediction from TComReferencePictureSet [6ac88ce5d670] * source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp: slice: simplify max AMP level determination [20ca3447ed96] * source/encoder/encoder.cpp, source/encoder/encoder.h: encoder: remove redundant member variables [12de88f4e110] * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/sei.h: Remove MAX_TLAYER and stop pretending we can code multiple temporal layers This simplifies a great many things; enabling further simplications to come. This commit leaves a sprinkling of TODOs for further cleanups [e07686925819] * source/encoder/entropy.cpp: entropy: nits [7fac1eb8252f] 2014-07-14 Sumalatha Polureddy * source/encoder/compress.cpp: compress: fix for sa8dcost storage in rdlevel 1, 0 [c923f4a94946] 2014-07-15 Deepthi Nandakumar * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: TEncCU: remove useless field There's a global variable for this. [863d969e3ab9] 2014-07-15 Steve Borho * source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp, source/encoder/entropy.h: entropy: hoist a couple of trivial functions, brace nits [5c5183eeacb5] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp: encoder: keep ProfileTierLevel singleton in the top-level encoder Remove the copies in the SPS and VPS and remove the TComPTL object entirely, there is only one level. [83b498cd9aef] * source/encoder/entropy.cpp, source/encoder/entropy.h: entropy: simplify PTL coding, there is only one layer [8542b057d33e] * source/encoder/entropy.cpp, source/encoder/entropy.h: entropy: remove profilePresentFlag argument from codePTL, always 1 [5995d7bbfa1a] * source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp, source/encoder/entropy.cpp: slice: Remove get/set methods from TComPTL [c52a6321b845] * source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/entropy.cpp: slice: remove set/get methods from ProfileTierLevel, and dead encoder vars [fa4fc98233e0] * doc/reST/cli.rst, source/CMakeLists.txt, source/common/param.cpp, source/encoder/frameencoder.cpp, source/x265.cpp, source/x265.h: api: add an option to disable the informational SEI message For regression testing, or comparing outputs between compilers or platforms, this header is quite unhelpful, so make it optional. [6f51bf4ba665] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp, source/encoder/entropy.h: slice: remove RPS list class and relevant SPS encoding logic x265 only codes a reference picture set in the slice header, none in the SPS and never an "inter-RPS" [59855812b4ef] * source/common/param.cpp: param: fix cut-paste bug [836c08981029] 2014-07-14 Steve Borho * source/Lib/TLibCommon/TComSlice.h, source/common/param.cpp, source/encoder/entropy.cpp: slice: white-space cleanups, remove dead funcdefs and forward defs [2454ef2a083e] * source/Lib/TLibCommon/TComSlice.h: slice: remove virtual destructors for slice classes we do not want or need vtables for any of these classes [e3efe14f4e6a] * source/common/param.cpp, source/x265.cpp: param: move --input-res parsing to x265_param_parse (closes #63) [67c7bfda7c28] * source/CMakeLists.txt: cmake: set SONAME even if no revision number or tag is found (closes #58) [51b3ff5e88e2] * source/Lib/TLibCommon/TComPicSym.cpp: picsym: check m_cuData before trying to destroy array instances [539e94e7aa34] 2014-07-14 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/frame.cpp, source/common/intrapred.cpp, source/common/param.cpp, source/common/primitives.h, source/common/shortyuv.cpp, source/common/shortyuv.h, source/encoder/compress.cpp, source/encoder/cturow.h, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/slicetype.cpp: refine block size related, use more log2 domain. [0af3c5a1782d] 2014-07-14 Praveen Tiwari * source/encoder/encoder.cpp: encoder.cpp, clean-up [f2195700e1e4] 2014-07-14 Steve Borho * source/Lib/TLibEncoder/TEncCu.cpp: cu: white-space cleanups [e7037f5914bc] * doc/reST/cli.rst: rest: fix lossless white-space, improve --sign-hide [baa6b00f7491] 2014-07-14 Deepthi Nandakumar * source/encoder/compress.cpp: compress: fix sa8dCost comparisons. After this patch, all sa8d costs are stored in m_sa8dCost, and RD costs in m_totalRDCost [6fdae4c60b1f] * source/encoder/encoder.cpp: encoder: insert missing comma [7a41bc257044] 2014-07-13 Steve Borho * doc/reST/cli.rst, doc/reST/index.rst, doc/reST/lossless.rst, doc/reST/presets.rst: rest: document lossless coding theory and behavior [d9e1f9c77ceb] 2014-07-13 Deepthi Nandakumar * source/encoder/compress.cpp: compress: save intra costs in rd <= 2 also in m_sa8dCost. Basically, all sa8d costs are always saved in m_sa8dCost. [6601a3d01974] * source/encoder/compress.cpp: compress: save inter sa8d costs also in m_sa8dCost [5bb9ccedb0de] * source/encoder/compress.cpp: compress: Fixes fudging in merge costs, stores sa8d costs for bestMergeCU in m_sa8dCost [5051f1566664] 2014-07-14 Deepthi Nandakumar * source/Lib/TLibEncoder/SyntaxElementWriter.cpp, source/Lib/TLibEncoder/SyntaxElementWriter.h, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/cturow.cpp, source/encoder/cturow.h, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h: Merge, discard accidental push [6055baa75085] * source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/cturow.cpp, source/encoder/cturow.h, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h: Backed out changeset: cff4f6482385 This head was accidentally created. [406879d25112] 2014-07-13 Steve Borho * source/encoder/frameencoder.cpp: frameencoder: explicit size conversion to avoid MSVC warning [454a2fc37fee] 2014-07-10 Steve Borho * source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/cturow.cpp, source/encoder/cturow.h, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h: entropy: rename combined CABAC/SBac class to Entropy [cff4f6482385] 2014-07-12 Steve Borho * source/encoder/encoder.cpp: encoder: nits [9d3683ab096b] * source/encoder/encoder.h: encoder: remove unused variables [7a9933d5df9e] 2014-07-11 Steve Borho * source/encoder/frameencoder.cpp, source/encoder/sei.cpp, source/encoder/sei.h: sei: emit SEI describing the encoder and encode options example: % x265 ../sintel_trailer_2k_480p24.y4m o.bin % strings o.bin | head x265 (build 26) - 1.2+74-a5024bfc0b50:[Mac OS X][clang 5.1.0][64 bit] 8bpp - H.265/HEVC codec - Copyright 2013-2014 (c) Multicoreware Inc - http://x265.org - options: 856x480 fps=24/1 bitdepth=8 wpp ctu=64 tu-intra-depth=1 tu- inter-depth=1 me=1 subme=2 merange=57 no-rect no-amp max-merge=2 no- early-skip no-fast-cbf rdpenalty=0 no-tskip no-tskip-fast strong- intra-smoothing no-lossless no-cu-lossless no-constrained-intra open-gop interlace=0 keyint=250 min-keyint=24 scenecut=40 rc- lookahead=20 bframes=4 bframe-bias=0 b-adapt=2 ref=3 weightp no- weightb aq-mode=2 aq-strength=1.00 cbqpoffs=0 crqpoffs=0 rd=3 signhide lft sao sao-lcu-bounds=0 sao-lcu-opt=1 b-pyramid cutree rc=crf crf=28.0 qcomp=0.60 qpmin=0 qpmax=51 qpstep=4 ipratio=1.40 pbratio=1.30 [6af56f7c8703] * source/encoder/frameencoder.cpp: frameencoder: nit [7e3c96e01ca9] * source/common/param.cpp: param: fix typo in d1d5b377294e [6e116afd68e7] * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: rc: nits [fd87a7e5b1e3] * source/CMakeLists.txt: cmake: nit - about target arch strings [a5024bfc0b50] 2014-07-11 Santhoshini Sekar * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: store reflagrows as a member variable [a1c553d36746] 2014-07-11 Aarthi Thirumalai * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: rc: init RC data for second pass in a multi pass encode [03164c7ddcbb] * source/CMakeLists.txt, source/x265.cpp, source/x265.h: param: keep the total frame count of the input video in param. to be used in 2 pass. In case this is not available, the value can remain as 0. [aed58d050ff9] * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: rc: store final cu counts in frameStats as a percentage of total # cus there exists a mismatch in the total no. of 16x16 blocks calculated between encoder and RC. rate control counts no. of 16x16 blocks without considering the border extension of source pic. keeping cu stats as percentage avoid this problem when used later in RC's 2nd pass. [07654693159b] 2014-07-11 Steve Borho * source/common/param.cpp: param: use dashes consistently in param2string [d1d5b377294e] 2014-07-11 Aarthi Thirumalai * source/common/param.cpp: param: add more param options to print as string [f3223737009e] * source/common/common.cpp, source/common/common.h: common: introduce x265_slurp_file, reads data from file to string buffer. [b4ee6251307e] 2014-07-11 Steve Borho * source/encoder/level.cpp: level: in CRF/CQP encodes, allow user specifed level to increase stream level See the comment [474c45db6a2c] 2014-07-11 Deepthi Nandakumar * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp: cu: fixing int-to-bool compile warnings [29ae3f84c3ea] 2014-07-11 Steve Borho * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h: cu: directly use param fields for lossless coding options Remove m_CUTransquantBypass, m_TransquantBypassEnableFlag [e171ad8bc8a3] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: cu: nits [2d0fd0241025] * source/x265.cpp: cli: retrieve params from the encoder, in case logging flags have changed For instance, if the user asked for --lossless --ssim, the encoder will disable SSIM for lossless encodes and we don't want the CLI to report SSIM stats that were never measured. [c9a7be09cdc0] 2014-07-11 Satoshi Nakagawa * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/rdcost.h: zero stride for zeroPel[] [a96d3ed11aaf] 2014-07-10 Steve Borho * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/common/common.h, source/encoder/compress.cpp, source/encoder/cturow.cpp, source/encoder/cturow.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: search: make RDCost and TComTrQuant member instances of TEncSearch Both of these structs are required by TEncSearch, it cannot operate without them There is always a 1::1 correlation with each. There is no reason at all to allocated them separately in TLD and then link them all together. Much simpler for them to be members of the TEncSearch class. [77aeba71695e] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp, source/encoder/cturow.cpp, source/encoder/cturow.h, source/encoder/frameencoder.cpp: derive TEncCu from TEncSearch TEncSearch methods are only callable from TEncCu methods. and there is much duplication in their data members. This removes a lot of redundancy and removes a lot of pointer dereferences [25e9c85aea1f] 2014-07-11 Deepthi Nandakumar * source/encoder/compress.cpp: compress: save CABAC context for rd = 2 after inter/intra encodes [1c8573c886b1] * source/encoder/compress.cpp: compress: save CABAC context after intra decision. Since CABAC encode happens only for rd > 2 [65d4f5b4fd3a] * source/encoder/compress.cpp: compress: save CABAC context after inter/merge decision [b728ca41433f] * source/encoder/compress.cpp: compress: save CABAC context in merge modes for lower RD levels. [52cda492abf5] 2014-07-10 Steve Borho * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/encoder/cturow.cpp, source/encoder/cturow.h, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/encoder/framefilter.h: entropy: clarify the SBac's bit counting mode The SBac class has always had the ability to be a bit counter without any other external data structures. With this change, the SBac defaults to being a bit counting SBac until it is given a Bitstream object to write into. The class no longer accepts a BitCounter object, since it would only add more overhead to the bit counting. TEncCu no longer needs o be told whether it is writing into a bit counting SBac or not, it can ask the SBac to find out. The BitCounting class is only used for SEI writing, and may disappear in order to remove the vtable from the critical path of entropy coding. [e3e077965c39] * source/encoder/framefilter.cpp, source/encoder/framefilter.h: framefilter: rename row0 coder [e658be3fe5a3] * source/encoder/cturow.cpp, source/encoder/cturow.h, source/encoder/frameencoder.cpp: cturow: rename m_rdGoOnSbacCoder to m_sbacCoder; there is only one [9e50b8b7503b] * source/encoder/frameencoder.h: frameencoder: remove unnecessary include of TEncSearch.h [7649ffe940e1] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/PPA/ppaCPUEvents.h, source/output/y4m.cpp, source/output/yuv.cpp: ppa: cleanup event names and remove uninteresting events [0a0fe4d52711] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp, source/encoder/cturow.cpp: cu, search: remove redundant m_rdGoOnSbacCoder pointer m_rdGoOnSbacCoder was always either pointing to the same SBac as m_sbacCoder (for calls to compressCU()) or it was supposed to be unused (for calls to encodeCU) [d6c423c66e4d] * source/common/bitstream.cpp, source/common/bitstream.h: bitstream: hoist trivial methods to the header so they may be easier inlined [57a4c1c2274e] * source/common/bitstream.h: bitstream: convert macros into inline members for better compile- time checking [b96714bdda85] * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibEncoder/SyntaxElementWriter.cpp, source/Lib/TLibEncoder/SyntaxElementWriter.h, source/common/bitstream.cpp, source/common/bitstream.h, source/encoder/CMakeLists.txt, source/encoder/encoder.cpp, source/encoder/entropy.cpp, source/encoder/frameencoder.cpp, source/encoder/sei.cpp, source/encoder/sei.h: bring SyntaxElementWriter into common/, remove trace file macros File tracing has been essentially broken since frame parallelism was introduced (not to mention multiple encoder instances in a process) and is going to be soon even more impossible when the second encodeCU() pass is removed. It's best to remove this old HM feature so people don't get stuck trying to use it. Stream analyzers like Parabola and Elecard are now mature enough that these trace files are not very helpful. If you *really* want the old style trace file, enable tracing in the HM decoder and decode your bitstream with it. I left the strings in the WRITE_* macros in place because they make those calls reasonably self-documenting. The compiler will throw them away harmlessly. [64dc40d52519] * source/encoder/entropy.cpp: entropy: nits [cbfe2ac89d41] * source/encoder/entropy.h: entropy: re-order methods again for better clarity, make many private [dd179bdba7fd] * source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/encoder/entropy.h: entropy: remove include of TComSampleAdaptiveOffset.h [6c95abc53d26] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/encoder/entropy.cpp, source/encoder/entropy.h: TComTrQuant: rename estBitsSbacStruct to EstBitsSbac [4fcd24d23994] * source/encoder/entropy.cpp: entropy: nits [8084d123f14d] * source/encoder/entropy.cpp, source/encoder/entropy.h: entropy: hoist trivial functions for later optimizations [898fc94ae9e9] * source/encoder/cturow.h, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/framefilter.cpp: merge CABAC into SBac class [ef1b1da7264c] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/entropy.cpp, source/encoder/entropy.h: entropy: convert initSection into a constructor, since it was used as such [ac568c7796b8] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: nits [9914e8d8e2e4] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/entropy.cpp, source/encoder/entropy.h: entropy: replace SBac and TEncSearch methods with TURecurse methods Both classes had nearly the exact same methods for managing this external structure. how wierd? [657bfd3423a5] 2014-07-09 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/entropy.cpp, source/encoder/entropy.h: entropy: remove m_ prefix from struct TURecurse members [e776ead24445] 2014-07-09 Satoshi Nakagawa * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/encoder/compress.cpp, source/encoder/framefilter.cpp: use std::swap() for readability [194432db28b9] 2014-07-09 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: search: remove braces around single line expressions, improve code flow [30e20a7b6fdd] * Merge with stable [56c4719ae735] * .hgtags: Added tag 1.2 for changeset d6257335c537 [7ea0ba364367] 2014-07-03 Steve Borho * source/encoder/encoder.cpp, source/encoder/encoder.h: csv: add slice-type stats to encode summary, avoid dup copies of summary string [5c7da1e88682] 2014-07-09 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/entropy.h: entropy: remove temporary helper function [b7934e58ea40] * source/encoder/entropy.cpp: entropy: nits [a86cd034e254] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp: cu: remove get/set methods for its own member variable [b1d077221c25] * source/Lib/TLibEncoder/TEncCu.h, source/encoder/cturow.cpp: cu: remove more set methods [cd93637ce951] * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/cturow.cpp: cu: nit [c78b7cca188a] * source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/cturow.cpp: cu: assign m_rdGoOnSbacCoder without helper methods [a44b2c12fe04] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/encoder/cturow.cpp, source/encoder/frameencoder.cpp: cu: pass bit counting flag as argument to encodeCU [4c98884a7729] * source/encoder/cturow.cpp, source/encoder/cturow.h, source/encoder/frameencoder.cpp: ctu: inline setThreadLocalData() for better clarity [6c3a4a5498f1] * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: remove rarely used getRowCoder() and getBufferSBac() [22ac140e0da8] * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: remove barely use helper function getRDGoOnSbacCoder [ddf49ea5073c] * source/encoder/cturow.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: ctu: rename m_sbacCoder to m_rowEntropyCoder [6a1370596ede] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp, source/encoder/cturow.cpp, source/encoder/cturow.h, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp: entropy: allocate RDO coders as dual-dimensioned array In order to make this change even less intrusive as it was going to be, I simultaneously changed the load/store functions to take references instead of pointers (since NULL pointers are not supported). This further simplified setup/tear-down code and should improve data locality [c49b61c5e6bb] * source/encoder/framefilter.cpp, source/encoder/framefilter.h: framefilter: rename m_rdGoOnSbacCoder to m_sbacCoder - there is only one [878e6f228fe6] * source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/encoder/CMakeLists.txt, source/encoder/cturow.cpp, source/encoder/cturow.h, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h: entropy: make m_cabac member of SBac class a non-pointer instance This forces a 1::1 correspondence between SBac and CABAC instances, which cleans up a mess of confusing allocations and assignments. This moves the CABAC class into entropy.h and it is no longer referenced outside of this header and entropy.cpp, allowing us to further combine them. [f60a2f9a88ad] * source/encoder/entropy.h: entropy: remove now unused Entropy class [461e3e940b0c] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp, source/encoder/cturow.cpp, source/encoder/cturow.h, source/encoder/frameencoder.cpp: remove Entropy from TEncCu, TEncSearch, and CTURow Instead, give each an SBac pointer that they are supposed to use to code the bitstream. [ff987b44de91] * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: remove most traces of the Encoder class [02f8c0af20f2] * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: do not pass member variable to its own function We were still passing an array of Bitstream objects to encodeSlice() even though the array was made a member of the class so it was available via m_outStreams. Within the function is was using both pointers, unhelfpully. [6589396373de] * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/encoder/cturow.cpp, source/encoder/cturow.h, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp: entropy: remove m_slice member from SBac class The slice object was only needed in resetEntropy() and determineCabacInitIdx() and could be passed to those two methods easily. It was also being used in two functions to gain access to the scaling list, but this was actually a problem for us because headers can be queuried before any slice objects are initialized so it was better to pass in the scaling lists directly from the top Encoder. Note this fixes a bug in scaling list support - we were previously incapable of signaling them properly in our stream headers. Removing this member variable lets us clean up a lot of redundant setSlice() calls and other cruft [576bb702f286] * source/encoder/frameencoder.cpp: frameencoder: do not use Entropy object to code stream headers [919c77a86b29] * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp: sao: remove redundant braces and other nits [1429920a7420] * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h: remove m_entropyCoder from FrameFilter and SAO code Lo and Behold! the SAO code suddenly makes a tad more sense when this useless redirection is removed [767a10ce1a64] * source/encoder/entropy.cpp, source/encoder/entropy.h: entropy: remove unnecessary API differences between Entropy and SBac These would only trip us up as we try to remove Entropy entirely [ca2b4259c44f] 2014-07-08 Steve Borho * source/encoder/entropy.h: entropy: reorder SBac methods for more clarity [01e20a16e890] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/entropy.h: entropy: remove default argument to encodeIntraDirModeLuma() [436bd8207469] * source/encoder/entropy.cpp: entropy: fix msvc warnings about signed/unsigned operations [a25a3782e51c] * source/encoder/entropy.cpp, source/encoder/entropy.h: entropy: hoist all non-trivial Entropy methods into SBac Now Entropy only exists in entropy.h, making further cleanups possible [e4a21cfa8206] * source/encoder/entropy.cpp, source/encoder/entropy.h: entropy: remove all data members except m_entropyCoder The three variables were only used to maintain state through recursive calls to encodeTransform() and could be just as easily kept on the stack. The class is now a pure reflector to the SBac class and can be merge into it piece-wise. [5321d02d9703] * source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/common/primitives.cpp, source/encoder/CMakeLists.txt, source/encoder/cturow.cpp, source/encoder/cturow.h, source/encoder/entropy.cpp, source/encoder/entropy.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h: port TEncEntropy and TEncSbac into internal Entropy and SBac classes The Entropy class will be short-lived [53fcddea0959] 2014-07-09 Deepthi Nandakumar * Merge with stable [644773b85329] * source/Lib/TLibEncoder/TEncCu.cpp: TEncCU: bug fix introduced in commit 8a5b02464813 Remove the xCheckBestMode call, add in a ccontext save. [d6257335c537] [1.2] * source/Lib/TLibEncoder/TEncSearch.cpp: Merge with stable [a1e46d813642] 2014-07-09 Min Chen * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: TEncCU: save CABAC context missing after merge Also removed an extra context save [8a5b02464813] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: TEncCU: save CABAC context missing after merge Also removed an extra context save [c269f73b94c9] 2014-07-07 Satoshi Nakagawa * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/dct.cpp, source/common/primitives.h, source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm, source/encoder/encoder.cpp, source/test/mbdstharness.cpp: quant: returns numSig instead of absSum and lastPos [65ac66dc89b6] 2014-07-07 Steve Borho * source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComBitCounter.h, source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComBitStream.h, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibEncoder/NALwrite.cpp, source/Lib/TLibEncoder/NALwrite.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/SEIwrite.h: Merge with default (prepare for 1.2) [6623f1195baa] * source/encoder/frameencoder.cpp: frameencoder: nits [6325261d393d] * source/Lib/TLibCommon/TComDataCU.cpp: cu: do not copy a QP buffer into itself - prevents valgrind warning [6aa084ad45a0] * source/Lib/TLibCommon/TComDataCU.cpp: cu: cleanup and simplify initCU [c60560dcae1c] * source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h, source/encoder/sei.h: rc: allocate HRD SEI structures on demand, fix RCE vtable/memset bug [82963e72231b] 2014-07-03 Min Chen * source/encoder/frameencoder.cpp: avoid VS2008 and MinGW ambiguous pow() build warning [11c808e562b8] 2014-07-03 Deepthi Nandakumar * source/encoder/frameencoder.cpp: frameencoder: remove warning about ambiguous pow function [e3f9acd4ff88] * source/common/param.cpp: lambda-file: file close before return [8620deb17a19] 2014-07-03 Steve Borho * source/input/y4m.cpp: y4m: avoid implicit size_t to int conversion, avoid more MSVC warnings [1dc27824bde1] * source/encoder/encoder.h, source/encoder/frameencoder.cpp: encoder: avoid int64_t to int conversions, avoid more MSVC warnings [50291ad2cfe8] * source/common/param.cpp: param: avoid spurious MSVC warning about buf being possibly uninitialized [e8ebfa3cf395] * source/encoder/ratecontrol.cpp: ratecontrol: fix cast of cutree offset, avoids MSVC warning [85dce645d0fc] * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: match up integer argument types to avoid MSVC warning The prototype in the WaveFront base class was: virtual void processRow(int row, int threadId) = 0; Some versions of MSVC flag this as a warning [c41c7a78e46a] * source/common/param.cpp: param: avoid spurious gcc warning about toksave possibly being uninitialized [eaee58b6515b] 2014-07-02 Steve Borho * source/common/param.cpp, source/common/param.h, source/encoder/encoder.cpp: lamba-file: make improper number of constants a fatal error Having an invalid set of lambdas is likelty to be completely useless [1e94a2b12d15] * source/common/param.cpp: lambda-file: detect and report if lamda file containts too many values It seems likely that this is an unintended error the user would want to be made aware of. [0013dbcac349] 2014-07-02 Min Chen * source/Lib/TLibEncoder/TEncCu.cpp: simplify: getLumaIntraDir()[x] -> getLumaIntraDir(x) [959ff37cdd31] 2014-07-02 Steve Borho * doc/reST/cli.rst, source/CMakeLists.txt, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/common/param.cpp, source/common/param.h, source/encoder/encoder.cpp, source/x265.cpp, source/x265.h: api: allow lambda tables to be user-specified via a text file This change allows easy experimentation with the lambda tables. One can cut-paste the existing tables from TComRom.cpp into a text file and hash(#) comment the C constructs (variable names and braces) and arrive at a functional lambda file, then edit to taste. [44dc246b7835] * source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: rc: fix gcc warnings [b90fdc3ffb96] 2014-06-30 Aarthi Thirumalai * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: rc: write frame stats and cu stats to file in first pass [887081b5f694] 2014-06-26 Aarthi Thirumalai * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/encoder/cturow.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: rc: compute inter, intra and skip cus per frame for the first pass [5bee122bc183] 2014-07-01 Aarthi Thirumalai * source/common/frame.cpp, source/common/frame.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: rc: move structure FrameStats to FrameEncoder class Stats are not needed post encode, moving it to FrameEncoder. [8f76f88c7dbf] 2014-07-02 Satoshi Nakagawa * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/dct.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm, source/test/mbdstharness.cpp, source/test/mbdstharness.h: add primitives.nquant for RDOQ [5bfd621a58b9] 2014-07-02 Kavitha Sampath * source/common/frame.cpp: frame: initialize recon to avoid SAO read of uninitialized pixels beyond picture end [cbe0999934b7] 2014-07-02 Steve Borho * source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h: encoder: fix --no-wpp behavior, keep TLD selection logic in one place do not use static m_threadLocalData, this would break if multiple encoders were allocated in a single process pass the selected TLD to row processes, so they do not need to be aware of the WPP/NO-WPP details. Cleanup frameencoder.h, move non-trivial processRow() to the cpp file [0743791a8245] 2014-07-01 Steve Borho * source/input/y4m.cpp, source/input/y4m.h, source/input/yuv.cpp, source/input/yuv.h: input: streamline control logic of threaded file readers These files were written before ThreadSafeInteger and this caused the control logic to be over-complicated. Now they can be greatly simplified and their control flows can be re-unified to be more like each other. Also, drop PPA events. File reading is pretty uninteresting when profiling. [99b8e4d69e0f] 2014-07-02 Steve Borho * source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h: TEncEntropy: inline the only one caller of encodeInterDirPU [f483344d276f] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp: TEncEntropy: hoist encodePredMode() after moving I-slice check to callers [ca17915c0176] * source/Lib/TLibEncoder/TEncEntropy.h: TEncEntropy: reorder nit [a4cf2c474fb8] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp: TEncEntropy: hoist encodeSkipFlag() after moving I-slice check to callers [8208c49e9aa4] 2014-07-01 Steve Borho * source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/encoder/frameencoder.cpp: TEncEntropy: hoist encodeSliceHeader() to header after simplifying [719ec54347ab] * source/Lib/TLibEncoder/TEncEntropy.cpp: TEncEntropy: nit [166b7ddace37] * source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h: TEncEntropy: hoist trivial functions to header for possible inlining And remove useless comments [a15e58e38501] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: nit [a18972fd05b1] * source/Lib/TLibCommon/TComDataCU.cpp: TComDataCU: remove redundant refIdx check from fillMvpCand fillMvpCand is only called from one place and the refIdx will always be positive [7006c14a6149] * source/Lib/TLibEncoder/TEncSearch.cpp: Merge with stable [976dc15ea5ea] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: limit AMVP loop bounds in xCheckBestMVP entries in the table beyond m_num were not initialized [4f7be97ebb9d] 2014-07-01 Ashok Kumar Mishra * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp: remove redundant memset [28a17ce0bf5c] 2014-07-01 Satoshi Nakagawa * source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: split rate calculation functions to luma and chroma to simplify luma path [fb54c0d470ed] 2014-06-27 Satoshi Nakagawa * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: fix emms: move selectLambda() into xRateDistOptQuant() and issue emms before it [b3ff3f436bc9] 2014-06-25 Aarthi Thirumalai * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: rc: rename texBits to coeffBits in RateControlEntry structure to maintain uniformity. [f18febf8cd3a] 2014-06-30 Steve Borho * source/encoder/encoder.cpp: encoder: RDOQ is only applicable at rd levels 4, 5, and 6 [38da32f28481] 2014-06-27 Aarthi Thirumalai * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp, source/encoder/frameencoder.cpp: rc: accumulate mv bits, coeff bits per frame [3d4b66c1bc88] 2014-06-30 Aarthi Thirumalai * source/Lib/TLibCommon/TComDataCU.cpp: TComDataCU: remove warnings for shadowed declaration [5a37c8198035] 2014-06-30 Albert Wang * source/encoder/frameencoder.cpp: frameencoder: fix for error in VPS when AccessUnitDelimeter is turned on The bitstream needs to be reset before start encode VPS, since if AU_Delimeter is turned on, there is one byte of data left in the bitstream that will be written wrongly into the VPS. [8eb8200a3449] 2014-06-30 Steve Borho * doc/reST/cli.rst: rest: document ipratio and pbratio parameters [4e565eb62d0a] 2014-06-25 Satoshi Nakagawa * source/common/param.cpp, source/x265.cpp: cli: add --ipratio and --pbratio [c80f9f3fba25] 2014-06-21 Steve Borho * source/x265.cpp: cli: use consistent bool naming convention [8b6b3e05946f] * source/Lib/TLibEncoder/TEncEntropy.cpp: entropy: nit [3a71cbcaee1f] 2014-06-21 Satoshi Nakagawa * source/input/y4m.cpp, source/input/yuv.cpp: input: fix race condition [8253fe375772] 2014-06-26 Min Chen * source/Lib/TLibEncoder/TEncSbac.cpp: reduce condition jmp in codeCoeffNxN [32aa6cc3cf4d] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util.h, source/common/x86/pixel-util8.asm: improve count_nonzero by SSSE3 [e5d8a2fa6bca] 2014-06-27 Sumalatha Polureddy * source/Lib/TLibEncoder/TEncSearch.cpp: psyrd: fix for inconsistent output maximum buffer size for zeropel is MAX_CU_SIZExMAX_CU_SIZE. since stride was wrong, it was accessing out of boundary memory which was different for each run, so inconsistent output [a765a34425f0] 2014-06-27 Deepthi Nandakumar * source/encoder/framefilter.cpp: framefilter: disable warning [98a2bfed9ed4] 2014-06-23 Min Chen * source/encoder/cturow.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h: pass TLD into class FrameFilter [66c701cb5500] 2014-06-24 Satoshi Nakagawa * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/common/shortyuv.cpp, source/common/shortyuv.h: refine intra tskip related. [b9bc64443ee4] 2014-06-25 Aarthi Thirumalai * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/common/frame.cpp, source/common/frame.h: rc: initalize states to hold frame statistics used in two pass frame stats includes mv bits,DC coeff bits and number of Intra, Inter and Skip Cus per frame. [1b669c33ff3a] 2014-06-25 Sumalatha Polureddy * source/encoder/compress.cpp, source/encoder/encoder.cpp: psy-rd: implement psy-rd in rdlevel=4,3 and 2 [e2ed009d296a] 2014-06-25 Ashok Kumar Mishra * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/common/frame.cpp, source/encoder/compress.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp: remove PCM mode support [5797d6a8197c] 2014-06-24 Satoshi Nakagawa * source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: fix xGetIntraBitsQTChroma() for 4:2:2 [CHANGES OUTPUT 4:2:2 with tskip] [09450ac6dc7d] 2014-06-24 Deepthi Nandakumar * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/rdcost.h: psy-rd chroma: Adjust chroma lambda based on QP offsets. This hurts PSNR but improves visual quality [613bfe5cd169] * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/common/common.h: psy-rd chroma: add chroma offset tables for lambda calculations [20611feb4a45] * source/encoder/encoder.cpp: Chroma QP Offset: increase chroma QP when psy-rd is enabled. [812dc9f61549] 2014-06-23 Min Chen * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp: move calcSaoStatsRowCus_BeforeDblk into encode loop [18f936182df5] 2014-06-23 Ashok Kumar Mishra * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: TEncCU:fix for memory leak [25a1b89a8efb] 2014-06-20 Praveen Tiwari * source/encoder/compress.cpp: TEncCu: [CHANGES OUTPUT] xComputeCostIntraInInter, fix bug [b5fbe9e2a10a] 2014-06-21 Ashok Kumar Mishra * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: TEncCU:fix for large memory consumption [da4aa721bf2f] 2014-06-20 Min Chen * source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h: alloc concatenation memory for m_cuData [fe370292c232] 2014-06-20 Steve Borho * source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp: entropy: remove TEncEntropyIf abstract class Only one class implemented the interface, so it served no purpose (except adding a vtable where we didn't need one). Renamed some member variables to make it all more explicit: m_entropyCoderIf -> m_entropyCoder, m_binIf -> m_cabac [960ea9018a7b] * source/Lib/TLibEncoder/TEncEntropy.cpp: TEncEntropy: nit [bf4fd0756cbb] * source/encoder/frameencoder.cpp: frameencoder: remove more redundant checks slice->getSaoEnabledFlag() is the same as saoParam->bSaoFlag[0] slice->getSaoEnabledFlagChroma() is the same as saoParam->bSaoFlag[1] [6111f474ef99] * source/encoder/frameencoder.cpp: frameencoder: simplify cabac context save [d0b71172d7da] * source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/encoder/frameencoder.cpp: frameencoder: simplify SAO reset when not enabled on slice [06b03c4647d6] * source/encoder/frameencoder.cpp: frameencoder: further simplify SAO coding [8e37416993db] * source/encoder/frameencoder.cpp: frameencoder: simplify SAO coding logic [f24ac9e50e4d] * source/encoder/frameencoder.cpp: frameencoder: simplify loop bounds [ce47fb939f69] * source/encoder/frameencoder.cpp: frameencoder: further simplify the logic which sync's CABAC with upper-right LCU [613f9a60a5d3] * source/encoder/frameencoder.cpp: frameencoder: remove redundant widthInCU variable [4857a503d709] * source/encoder/frameencoder.cpp: frameencoder: simplify logic slightly, numSubstreams can be > 1 only with WPP [0e6200c402cf] * source/encoder/frameencoder.cpp: frameencoder: nits [4455746792b0] * source/encoder/frameencoder.cpp: frameencoder: move trace code for clarity, remove dead bWaveFrontsynchro [bb6c9f097ba2] * source/encoder/frameencoder.cpp: frameencoder: use m_param->bEnableWavefront directly [8911196c3bf1] * source/encoder/frameencoder.cpp: frameencoder: simplify setup for encodeSlice() [847cb38b409e] * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: rename m_pic to m_frame [0aab15ebff0d] * source/encoder/frameencoder.cpp: frameencoder: remove unread bitsOriginallyInSubstreams [5fde40742246] 2014-06-20 Aarthi Thirumalai * doc/reST/cli.rst, source/CMakeLists.txt, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/common/param.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/x265.cpp, source/x265.h: make cu level stats logging run time configurable two-pass encodes will need these statistics, so they need to always be compiled into libx265. [c9f36b715b3f] 2014-06-20 Steve Borho * source/x265.h: api: comment nits [868e35687ac7] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComWeightPrediction.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/common/CMakeLists.txt, source/common/frame.cpp, source/common/frame.h, source/common/lowres.cpp, source/common/param.cpp, source/common/piclist.cpp, source/common/piclist.h, source/encoder/compress.cpp, source/encoder/cturow.h, source/encoder/dpb.cpp, source/encoder/dpb.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h, source/encoder/slicetype.cpp, source/encoder/slicetype.h, source/encoder/weightPrediction.cpp: replace TComPic with Frame class in common/frame.h The new class name clashes with old variables like pic or m_pic, but I would like to pull in TComPicYuv in the future as a Picture class, and TComYUV as Yuv class. [6a11b4e683e1] * source/encoder/frameencoder.cpp: frameencoder: fix --no-wpp, broken since 854f5e3072a0 [2317cb9af53e] 2014-06-20 Sumalatha Polureddy * source/common/param.cpp, source/encoder/encoder.cpp: encoder: move psy-rd logic together [c2ebebb66bf4] 2014-06-20 Steve Borho * source/encoder/encoder.cpp: encoder: use free() to release strdup'd string [36f6a06df2d5] 2014-06-19 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/frameencoder.cpp: TEncSearch: change pointer type of m_mref, to avoid repeated pointer setup [e89fb21a4e06] * source/Lib/TLibEncoder/TEncSearch.h, source/encoder/cturow.cpp, source/encoder/cturow.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: cturow: use thread local storage for TEncCU and TEncSearch This saves about 10% of memory by reducing redundancy, and lays the ground work for more fine grained work distribution. [854f5e3072a0] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/framefilter.cpp: cu: remove m_loopFilterAcrossTilesEnabledFlag and getPU* default arguements [f3ad033af809] 2014-06-20 Steve Borho * source/encoder/frameencoder.cpp: frameencoder: comment nits [d68c638e1469] 2014-06-20 Sumalatha Polureddy * source/encoder/encoder.cpp: encoder:[CHANGES OUTPUT] disable rdoq when psyrd is enabled [3780de35ba2a] 2014-06-20 Steve Borho * source/encoder/nal.cpp: nal: include the start code bytes in the bounds check [cc0beb898def] * source/encoder/nal.cpp: nal: nits [57f26a8b7ecb] * source/encoder/frameencoder.cpp, source/encoder/nal.cpp, source/encoder/nal.h: nal: allow the concatenated substream buffer to be re-used from frame-to-frame this removes another malloc/free from the processing of every frame. This commit also moves the NALList constructor to nal.cpp since it is no longer quite so trivial. Lastly, it adds a check to prevent crashes in case one or more of the WPP substreams had a malloc failure. [51dd3c429cdb] * source/encoder/nal.cpp: fix checked build warning [91fef2cf2e08] * source/common/bitstream.cpp, source/encoder/cturow.cpp: fix msvc build warnings [73ece35100df] 2014-06-19 Steve Borho * source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComBitStream.h, source/Lib/TLibEncoder/SyntaxElementWriter.h, source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/common/CMakeLists.txt, source/common/bitstream.cpp, source/common/bitstream.h, source/encoder/cturow.cpp, source/encoder/cturow.h, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.h, source/encoder/nal.cpp, source/encoder/nal.h, source/encoder/sei.cpp, source/encoder/sei.h: move bitstream implementations into common [5091ffc86a42] * source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComBitStream.h, source/encoder/frameencoder.cpp: bitstream: unify resetBits() and clear() methods There's no point in having a virtual resetBits() method in the abstract class and then not implemeent in the derived class but make a second method with identical semantics. What the heck? [0d77026a11ac] * source/encoder/api.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h: encoder: remove redundant flush argument [0b4a50730f21] * source/encoder/encoder.cpp, source/encoder/encoder.h: encoder: cleanup obsolete NAL data fields [aecb3b2a98c1] 2014-06-20 Satoshi Nakagawa * source/encoder/api.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/slicetype.cpp: x265_encoder_encode: don't return 0 while flushing. [ced3a726d515] 2014-06-18 Deepthi Nandakumar * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/frameencoder.cpp: lambda: [CHANGES OUTPUT] Change the distortion weights applied to chroma. Inside R-D, a single lambda is applied for both luma and chroma. To account for the different QPs, (as defined by the standard) the chroma distortion was weighted by a factor proportional to the difference in QPs. This patch eliminates the extra weighting given to the chroma distortion (since it is visually less perceptible). [25d2c596dd28] 2014-06-19 Steve Borho * source/encoder/ratecontrol.cpp: rc: disable MSVC warnings about using POSIX function names like unlink() [dfaf67c21c32] 2014-06-16 Ashok Kumar Mishra * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: TComDataCU: refactor structure for better data locality [62d1d9dd760c] 2014-06-19 Steve Borho * source/Lib/TLibCommon/TComDataCU.h: cu: nits [c72093672ad1] 2014-06-19 Min Chen * source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h, source/encoder/framefilter.cpp: move m_blockingStrength to local [8c875d7341b7] * source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h: static m_bLFCrossTileBoundary since all of LCU use same value [565818adf640] * source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h: remove reduce code since trHeight always equal to trWidth [c91e624c4502] 2014-06-17 Aarthi Thirumalai * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: rc: initialize the 2 pass states in rc [60178ece9879] * source/common/param.cpp: param: log rc states of m_param in x265_param2string [ff6e2349cff3] * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: rc: add 2 pass states in RateControl [ed85651a2840] * source/common/param.cpp, source/encoder/slicetype.cpp: rc: define default setting and validations for 2 pass states [c50f3d2aeb4d] * source/CMakeLists.txt, source/x265.h: api: introduce param variables for two-pass encodes [5063065d7037] 2014-06-19 Steve Borho * source/encoder/encoder.h: encoder: remove useless comment [82ca012854ea] * source/common/common.h, source/encoder/api.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/nal.cpp, source/encoder/nal.h: nal: refactor nal code, marshall packets directly into output buffer This removes two malloc/free for every NAL unit and removes yet another set of memcopies at the end of the each frame encode. We're now writing the escaped NAL packets directly into the buffer handed back to the user. We preserve the max size of this output buffer to prevent having to do any reallocations once the encoder is running. [ba9c58a4bee0] 2014-06-19 Satoshi Nakagawa * source/encoder/encoder.cpp, source/encoder/encoder.h: keep TComPic until next call if recpic is exported as pic_out We must prevent the recon YUV from being recycled until the next picture is encoded. [ecccd5401d27] 2014-06-19 Gopu Govindaswamy * source/encoder/encoder.h: encoder: remove m_freeList from encoder class, the m_freeList moved into dpb [d2a13e8541f4] * source/encoder/dpb.cpp: dpb: destroy and delete m_reconPicYuv from picSymFreeList [d86fea3cea9c] 2014-06-19 Deepthi Nandakumar * source/Lib/TLibCommon/TComTrQuant.cpp: quant: correct QP range clipping for 10-bit input depths. Fixes a bad hash error and artifacts introduced by commit c8973aec5e70 [59a6891dff51] 2014-06-18 Steve Borho * source/common/pixel.cpp: pixel: fixup zeroBug stride for satd_4x4 in psyCost (spotted by MinGW) This fixes a bug introduced in f3fb2d2b0ba6 [f5be40ace2cc] * source/Lib/TLibCommon/TComPic.cpp: pic: reorder initializations after moving m_reconPicYuv in e3418f7497e9 Fixes a gcc warning [5db614f31b85] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicSym.h, source/encoder/dpb.cpp, source/encoder/encoder.cpp: pic: keep the recon TComPicYuv in the pool with the TComPicSym - another 10% [e3418f7497e9] * source/encoder/encoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp: frameencoder: make m_ssimCnt an unsigned int [cd63ddf0e935] * source/encoder/encoder.h: encoder: move EncStats into x265 namespace [a43a223a1294] 2014-06-17 Steve Borho * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/encoder/dpb.cpp, source/encoder/dpb.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/slicetype.cpp: pic: keep a pool of TComPicSym, allocate only for encode process This commit moves the picture freelist to the DPB, it seemed to belong there. This change reduced memory in a medium encode by more than 40%. [cbed0913df50] * source/Lib/TLibCommon/TComPic.h: pic: nit [da81f3741282] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/encoder/encoder.cpp: pic: split picsym allocation from main create function, rename reinit() [526d79dabf1a] * source/Lib/TLibCommon/TComPic.h: pic: destroy() no longer needs to be virtual, compress white-space [0e9a74223938] * source/Lib/TLibCommon/TComPic.h: pic: improve comments [7a5bec950123] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComSlice.cpp: pic: remove unread m_bCheckLTMSB [8fb41a7f4301] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/encoder/dpb.cpp: pic: remove unread m_bUsedByCurr [3a458e3f674e] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp: TEncSearch: keep param pointer instead of top encoder pointer This required cacheing some top encoder fields in TEncSearch [5a0f8d5377da] * source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: nits [9a0dde9e5fa6] * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h: framefilter: replace top pointer with param pointer [7259c8a2d1b1] * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: replace m_cfg with m_param pointer, use m_top for leftovers [c53f4e4669c2] * source/encoder/frameencoder.h: frameencoder: remove unused bitcounter [785e2b88c134] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibEncoder/TEncCu.cpp: TComDataCU: remove hungarian prefixes from CU vars [ca032ae0fd67] * source/Lib/TLibCommon/TComPicSym.h: sym: do not return pointer reference from getCU() [bf0aa61ceaab] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: pic: move m_elapsedCompressTime and m_frameTime to frame encoder This data only needs to exist when the picture is being encoded [f73c1d866741] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h: pic: move SSIM, PSNR and hash to frame encoder This data only needs to exist when the picture is being encoded. This changes the SSIM scores slightly, even though the bitstream and recon does not change, because it is resetting the SSIM sum and counter each frame. When these fields were on the TComPic, they were never cleared. [bf112abf087c] * source/Lib/TLibCommon/TComPic.h, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: pic: move timing structures to RateControlEntry This saves a bit of memory, since this data only needs to exist when the picture is being encoded. [cb4d408c048e] * source/encoder/sei.h: sei: remove unused RESERVED hash method, avoid compiler warnings [51aa9d1542ef] * source/Lib/TLibCommon/TComPic.h, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp: pic: better name for picture timing SEI member [d3ac1cbdc9c3] * source/Lib/TLibEncoder/SyntaxElementWriter.cpp, source/Lib/TLibEncoder/SyntaxElementWriter.h: writer: xConvertToUInt did not need to be a class member [a2d63126b37c] * source/encoder/sei.h: sei: allow SEI classes to implement write() directly to avoid two- pass encode [778385cde253] * source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/sei.h: sei: add m_ prefix to members of SEIDecodedPictureHash for consistency [bb872c51a453] * source/encoder/frameencoder.cpp: sei: repair decoded picture hash SEI [2be51b34e033] * source/common/pixel.cpp: psyrd: use zero stride in psyCost C reference, minor optimization [f3fb2d2b0ba6] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: simplify square block dim logic this works around a bizarre MSVC warning on those lines. '<<' : result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?) I have no idea why it was implicitly making the result 64bits. [0c3d33212ebd] 2014-06-16 Satoshi Nakagawa * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp: fix: TOPSKIP refers outside of picture [OUTPUT CHANGE] [7c6654c332c5] 2014-06-17 Deepthi Nandakumar * source/Lib/TLibCommon/TComTrQuant.cpp: quant: Enforce QP range after adding bit-depth offsets [c8973aec5e70] 2014-06-17 Kavitha Sampath * source/encoder/ratecontrol.cpp: sei: disable HRD with warning when vbv is off [b6f8e0ce8c81] 2014-06-17 Sumalatha Polureddy * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: psyrd: use psyrdcost for PU/TU decision for inter and intra [2b514f3f6e1f] 2014-06-17 Steve Borho * source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/SEIwrite.h, source/common/CMakeLists.txt, source/encoder/CMakeLists.txt, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/ratecontrol.cpp, source/encoder/sei.cpp, source/encoder/sei.h: sei: first step towards simplifying SEI writing [9d43b41eb529] * source/Lib/TLibCommon/TComBitStream.h: bitstream: give bit counter a useful constructor [f9fef6da4da6] 2014-06-17 Deepthi Nandakumar * source/encoder/ratecontrol.cpp: ratecontrol: [CHANGES OUTPUT for 10-bit CRF] Remove QP_BD_OFFSET from Ratecontrol This offset is added inside Quant (setQPforQuant) [3a19a9fdb103] * source/common/param.cpp, source/encoder/ratecontrol.cpp: ratecontrol: move validate of CRF params to x265_check_param [53fab23c6e5b] 2014-06-17 Steve Borho * source/Lib/TLibEncoder/SyntaxElementWriter.h: writer: nits [ab8124028030] 2014-06-17 Min Chen * source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h: cleanup unused TComLoopFilter::loopFilterPic [55ba291c2c5b] * source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h, source/encoder/framefilter.cpp: move m_bEdgeFilter to local [a99fb0ffe53a] * source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h: move lfcuParam to local [4c204b14ad0e] 2014-06-16 Steve Borho * source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComBitStream.h, source/encoder/frameencoder.cpp, source/encoder/nal.cpp, source/encoder/nal.h: nal: concatenate and escape row data while building row-start array for header This way we only need to do a single pass over each slice NAL looking for start code emulations; and there is one less memcopy. countStartCodeEmulations() and appendSubstream() methods could be removed. [9198ff2e0125] * source/common/pixel.cpp: pixel: prevent msvc warning [f25ed8618509] 2014-06-15 Satoshi Nakagawa * source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: refine tskip related [6d8d8c18ba28] 2014-06-14 Satoshi Nakagawa * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/cturow.cpp, source/encoder/frameencoder.cpp: TComTrQuant: lambda for each Cb and Cr [0957164296c1] 2014-06-16 Sumalatha Polureddy * source/common/pixel.cpp, source/common/primitives.cpp, source/common/primitives.h, source/encoder/rdcost.h: psyRd: Change psy-rd energy measurement psy-rd energy is measured by summing up the absolute differences of the AC energy in each 8x8 block in series [cf8b4506e94e] 2014-06-12 Steve Borho * source/Lib/TLibCommon/TComBitStream.cpp: bitstream: simplify appendSubstream This function is only called from one place, and we can clearly see that both the source and dest bitstreams are byte-aligned. [e69a427e461f] * source/Lib/TLibEncoder/TEncSbac.cpp: sbac: simplify codeSliceHeader, x265 never codes dependent slices [a15044282290] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/encoder/frameencoder.cpp: slice: remove unused m_nextSlice and m_dependentSliceSegmentFlag [b3070d28b792] * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: inline resetEntropy(), which was only called once [54d6bb746c04] * source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/encoder/framefilter.h: framefilter: remove empty end method [e254c0d81b5d] * source/encoder/frameencoder.cpp: frameencoder: use numSubstreams directly [2fdc26545855] * source/encoder/frameencoder.cpp: frameencoder: remove useless setBitstream call [33853b3f694d] * source/encoder/frameencoder.cpp: frameencoder: remove redundant function calls and obsolete comments [5b42f824f19c] * source/encoder/frameencoder.cpp: frameencoder: explain why SAO is being called after compression [35bfd27a3c82] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/frameencoder.cpp: slice: remove unused m_tileOffstForMultES [df0ee2403067] * source/encoder/frameencoder.cpp: frameencoder: remove need for intermediate bitstreamRedirect [602b2c2506a9] * source/encoder/frameencoder.cpp: frameencoder: remove sliceSegment, it was always false [067b68fd94cc] * source/encoder/frameencoder.cpp: frameencoder: remove unnecessary set of nextSlice() This flag is only read in one place, when encoding the slice header. We do not support multiple slices, so there's no point in setting this multiple times. [51618487cb7d] * source/encoder/encoder.cpp, source/encoder/encoder.h: encoder: remove unused m_bPCMInputBitDepthFlag [635f159b4d0f] * source/Lib/TLibCommon/SEI.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/SEIwrite.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp: remove unused display orientation SEI [4f87da44e4db] * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: make per-row output streams member variables Avoid repeated malloc/free and subsequent reallocs and frees each frame [97be21ff81bb] * source/encoder/frameencoder.cpp: frameencoder: nit, unify comment style in this function [8644321a206e] * source/encoder/frameencoder.cpp: frameencoder: remove redundant sets of SAO lambdas, reorder for clarity [8e51b0bfdd30] * source/encoder/frameencoder.cpp: frameencoder: nit [edbb60c0ac0c] * source/encoder/frameencoder.cpp: frameencoder: move QP/lambda initialization together [9afd674721a8] * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: inline slice bounds determination, do not perform twice [4ac8602fb0af] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/frameencoder.cpp: slice: remove unused finalized flag [e8aee2613bf6] * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp: sao: remove unnecessary shim function [957a5e3d0d7b] * source/encoder/frameencoder.cpp: frameencoder: remove obsolete comment [d55abb8e9106] * source/encoder/dpb.cpp: dpb: no need to reset next slice in init function [1c2ee741e5b1] * source/encoder/frameencoder.cpp: frameencoder: declare bitstreamRedirect on stack, do not malloc. cleanups [2b866266f884] * source/Lib/TLibCommon/SEI.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/SEIwrite.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp: remove unused gradual decoding refresh info SEI [9283279c721c] * source/encoder/frameencoder.cpp: frameencoder: move prefix SEI generation all together, before compressCTURows [ff47e8fd3751] * source/encoder/frameencoder.h: frameencoder: fix header case Reported by Elyonta [01a0982d2e4b] 2014-06-12 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: rc: set isCbr flag to true only in vbv mode and maxrate equals bitrate [a302daa9abd0] 2014-06-12 Steve Borho * source/encoder/compress.cpp: compress: add EMMS at return of xCompressInterCu Removed the EMMS from xComputeCostMerge2Nx2N since it is only called from the CU compress function and it is not using floats [5b975609dc0a] 2014-06-05 Steve Borho * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: re-use a single bitstream object for all NAL and SEI This saves on malloc/free/realloc/memcpy calls. [c5015669b6dc] 2014-06-11 Steve Borho * source/encoder/compress.cpp: compress: nit comment spacing [e8df9b57eb09] * source/encoder/weightPrediction.cpp: weight: ensure weight table is initialized on failure, simplify weightAnalyse() [10a4c2d42d3f] * source/encoder/compress.cpp: compress: remove floating point math to avoid needing to use EMMS [8da75c4dbbc0] * source/Lib/TLibCommon/TComDataCU.h: TComDataCU: nits [ebe26cc5fdd8] * source/encoder/frameencoder.cpp: frameencoder: remove obsolete check [ea6f7da090ef] * source/encoder/nal.cpp: nal: msvc and its integer conversion warnings [b76c4e415cdd] * source/encoder/nal.cpp: nal: greatly simplify NAL header generation, do not use TComOutputBitstream This saves a malloc/free and a great deal of needless overhead [7868d22e535d] 2014-06-10 Steve Borho * source/encoder/encoder.cpp: encoder: set m_totalFrameThreads at the same time as param->frameNumThreads [20d74192e097] * doc/reST/cli.rst, source/common/param.cpp, source/encoder/encoder.cpp: param: clip bframe bias range as x264 does [d0bacf50eb95] 2014-06-10 Kavitha Sampath * source/Lib/TLibCommon/TComRom.cpp: TComRom: fix fraction part variation in x265_lambda2_tab for higher QPs [a89e0703e724] 2014-06-09 Deepthi Nandakumar * source/common/param.cpp: preset: improve the speed settings for fast preset. [0cbc7320c9f2] 2014-06-05 Steve Borho * source/encoder/ratecontrol.cpp: Merge with stable [e5656f1e1904] * source/encoder/ratecontrol.cpp: rc: fix potential build warning [7a3214c9622f] * source/common/common.h: common: include cctype for isdigit [25b8aa22e4c8] * source/Lib/TLibCommon/TComBitStream.cpp: bitstream: fast-path for appending bitstreams [47fdb8041e9d] * source/encoder/nal.cpp: nal: add back comments now that member variables are gone [420122606888] * source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComBitStream.h, source/common/common.h, source/encoder/frameencoder.cpp, source/encoder/nal.cpp: bitstream: simplify TComBitStream interface and code [467d0e89a52f] * source/Lib/TLibCommon/TComSlice.cpp: TComSlice: remove layer violation include files in common/ shouldn't include encoder/ headers [9f6dca97e01f] * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComBitStream.h, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.h, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibEncoder/SyntaxElementWriter.cpp, source/Lib/TLibEncoder/SyntaxElementWriter.h, source/Lib/TLibEncoder/TEncCu.h, source/common/common.cpp, source/common/common.h, source/encoder/level.cpp, source/encoder/level.h, source/test/testharness.h: always include CommonDef.h via common.h, avoid include loops Remove some spurious stdlib includes not in common.h [0cdfd02d6b1a] * source/Lib/TLibCommon/TComBitCounter.h, source/Lib/TLibCommon/TComBitStream.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/common/CMakeLists.txt, source/encoder/cturow.h, source/encoder/frameencoder.h: merge TComBitCounter into TComBitStream.h [ac044bf2f850] * source/encoder/nal.cpp: nal: add more padding for corner cases [ecbe8796febc] 2014-06-05 Kavitha Sampath * source/encoder/frameencoder.cpp: weightb: reinitialize weight table when weightb is off [9dddc48aecc7] 2014-06-05 Deepthi Nandakumar * source/encoder/ratecontrol.h: ratecontrol: change type of m_bframeBits to int64_t [495874699b0d] 2014-06-04 Steve Borho * source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp: Merge with stable [c11920cb6f04] 2014-06-04 Aarthi Thirumalai * source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp: rc: fixes to improve quality in vbv [93921c0afac5] 2014-06-05 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: rc: use actual bits to update vbv buffer [4df4e48d24a0] 2014-06-04 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: rc: set pbFactor to default with cutree [a076f4fc8d36] 2014-06-04 Steve Borho * source/Lib/TLibCommon/NAL.h, source/Lib/TLibEncoder/NALwrite.cpp, source/Lib/TLibEncoder/NALwrite.h, source/common/CMakeLists.txt, source/encoder/CMakeLists.txt, source/encoder/api.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/nal.cpp, source/encoder/nal.h: combine NAL output semantics into one clean(er) interface [4a146c01fcab] * source/Lib/TLibEncoder/NALwrite.cpp: nal: fix checked build [7186f76fe62c] * source/encoder/encoder.cpp: encoder: no longer needs NALwrite.h [e4b3061770b9] * source/Lib/TLibCommon/TComBitStream.h: TComBitstream: nits [d94a29bb9ce7] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/cturow.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h: remove Encoder::bEnableRDOQTS, we did not allow separate config for it Either RDOQ and RDOQTS were enabled at once, or both were disabled, or TSKIP was disabled and it didn't matter how RDOQTS was set. Removed RDOQ_CHROMA as well, which allowed the removal of a warning disable [eca52aac2ec5] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/cturow.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h: encoder: bEnableRDOQ->m_bEnableRDOQ for consistency [2a228a28395c] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/api.cpp, source/encoder/cturow.cpp, source/encoder/dpb.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/encoder/slicetype.cpp: encoder: param->m_param for consistency [c02dacf1a13b] * source/encoder/encoder.h: encoder: remove m_useLossless [65b385fa9989] * source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/ratecontrol.h, source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: convert lookahead "structs with methods" to classes [72a00c40366a] * source/encoder/ratecontrol.cpp: rc: nit [969811ce69da] * source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: rc: convert RateControl to a class The "struct with methods" metaphore was too stretched here. The methods are too complicated to keep track of which variables were members; variable shadowing was very common. [d3b1d2d3f104] * source/Lib/TLibEncoder/NALwrite.cpp: nal: check padded buffer size [522e419ed55d] * source/encoder/api.cpp: api: must match X265_ALLOC with X265_FREE for m_nalUnitData This was only an issue on Windows [e3a5aa8afeae] * source/encoder/ratecontrol.cpp: rc: fix type of actualBits [30e6d62afa3d] * source/Lib/TLibEncoder/NALwrite.cpp: nalwrite: simplify write method; single allocation with no reallocs [c3a4e0ab37c2] * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: rc: only pass param to rc constructor [5c9a0aa10472] * source/encoder/ratecontrol.cpp: rc: further improvements to code clarity [794b1c67c829] * source/encoder/ratecontrol.cpp: rc: nit [9f44990be4d4] * source/encoder/ratecontrol.cpp: rc: use member isCbr rather than making a shadow variable [cca69754c32e] * source/encoder/ratecontrol.cpp: rc: move isCbr initialization to constructor, to avoid init() race [4cdc53eb185b] * source/encoder/encoder.cpp: Merge with stable [8d9ea2d89fbf] 2014-06-04 Aarthi Thirumalai * source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp: rc: fixes to improve quality in vbv [cb025d96fac3] * source/encoder/ratecontrol.cpp: rc: use actual bits to update vbv buffer [5eca4ea111f7] * source/encoder/ratecontrol.cpp: rc: set pbFactor to default with cutree [0f68adb0e190] 2014-06-04 Kavitha Sampath * source/Lib/TLibCommon/TComSlice.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp: SEI: fix bus error, cleanup m_decodingUnitInfoSEIEnabled Remove setHrdPaarameters function as all the necessary HRD parameters are already computed and set in the initHrd function. [fe25d256f0e1] 2014-06-04 Steve Borho * source/Lib/TLibCommon/SEI.h: sei: white-space nits [00f286a1f5e3] * source/Lib/TLibCommon/SEI.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/encoder/frameencoder.cpp: sei: remove SEIPictureTiming fields we do not signal, cleanup Completely remove constructor and destructor [1b93336d68d4] 2014-06-04 Satoshi Nakagawa * source/Lib/TLibEncoder/NALwrite.cpp, source/encoder/encoder.cpp: fix: uninitialized read m_totalFrameThreads [63ac1a0aa81d] 2014-06-04 Steve Borho * doc/reST/cli.rst: rest: reorganize analysis options into their own section [d40f60dae2ce] 2014-06-04 Kavitha Sampath * source/encoder/ratecontrol.cpp: fix crash in hrd when init function is called with null pointer [61a02a9c78eb] 2014-06-04 Deepthi Nandakumar * Merge with stable [9b81591718d5] * source/Lib/TLibEncoder/TEncCu.cpp: TEncCU: fix bug in no-intra, intra-analysis should still happen for P-frames [5cc4502256a7] * source/common/param.cpp: Merge with stable [1fe42453d2e3] * source/common/param.cpp: preset: correct ultrafast settings (in line with doc) by disabling loop-filter. [9f59dad6eea6] 2014-06-03 Steve Borho * doc/reST/cli.rst, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/param.cpp, source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp, source/x265.cpp: Merge with stable [f2479eb454b0] * .hgtags: Added tag 1.1 for changeset ae9609aeebdc [2650fdd1a7f6] * source/common/param.cpp: param: only log psy-rd if it is enabled [ae9609aeebdc] [1.1] * source/encoder/ratecontrol.cpp: lossless: do not allow CQP to adjust QP for I/B when encoding lossless [07e7a54ae1cb] * source/encoder/encoder.cpp: lossless: report compression ratio, disable distortion metrics [d9facf9895f7] * doc/reST/cli.rst, source/encoder/encoder.cpp: lossless: disable rate control, force QP=4 strangely enough, using QP=4 gives better lambda for lossless ME and RD decisions [12d35ab8148d] 2014-06-03 Praveen Tiwari * source/x265.h: x265.h, data declaration alignment [6f3149d95bd9] * source/Lib/TLibEncoder/TEncSearch.cpp, source/x265.h: whitespace clean-up [8c66560a3e23] 2014-06-03 Steve Borho * source/Lib/TLibCommon/TComSlice.h: TComSlice: nit - use bools to initialize bools [8b5dadb1454e] * source/encoder/frameencoder.cpp: SEI: only setup SEIPictureTiming fields which will be coded [3356ce23cad2] 2014-06-03 Kavitha Sampath * doc/reST/cli.rst, source/CMakeLists.txt, source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComSlice.h, source/common/param.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h, source/x265.cpp, source/x265.h: SEI: Insert buffering period and picture timing SEI messages The buffering period SEI message is inserted for every key frame and the picture timing SEI is inserted for every frame. The commit also computes the HRD parameters as well as HRD Timing parameters that are calculated using the delay components(cpb removal delay and dpb output delay) carried in these SEI messages. HRD parameters can be signalled by enabling --hrd. [f9f553c8bd6a] 2014-06-03 Deepthi Nandakumar * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/encoder.cpp: qp: remove Encoder::m_useLossless. This patch removes confusion between Encoder::m_useLossless and x265_param::bUseLossless. m_useLossless was set whenever qp = 0, and used in TComSPS. qp = 0 is still a valid encoder option. [b4e87638e5cc] 2014-06-03 Steve Borho * source/common/winxp.cpp: xp: avoid compiler warning from GCC-MinGW MSVC gives a warning at link time if this file is empty, so I added a useless variable to the file. GCC-MinGW issues a compile time warning about this unused variable. [d315d1430f5c] * source/x265.cpp: cli: seperate new lossless options, make --lossless description more concise try to avoid having the --lossless line wrap [cfab9513e27c] 2014-06-03 Deepthi Nandakumar * Merge with stable [d78f38b707ba] * doc/reST/presets.rst, source/x265.h: rest: correct documentation on AQ [f66ad1400874] * Merge with stable [d3f55d391314] * source/common/param.cpp: param: initialise lossless/cu-lossless fields to zero [7153905d56e6] 2014-06-02 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: rename variable to avoid shadowing an earlier 'part' [92ef2e02f653] * source/common/primitives.cpp, source/common/x86/asm-primitives.cpp: primitives: move more aliasing to Setup_Alias_Primitives [31f93f0d024f] 2014-06-02 Satoshi Nakagawa * source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/primitives.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp: refine cbf==0 path: remove clearing coeff and resi [b46dd1095ed8] 2014-06-02 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: remove unnecessary pragma [bc38a1637220] * source/Lib/TLibCommon/TComRdCost.h: Merge with default (prepare for 1.1) [108996798e78] * source/encoder/rdcost.h: psy: use m_lambdaSAD multiplier for psy cost, m_lambdaSSE for bits in x264, m_lambdaSSE = lambda2, m_lambdaSAD = lambda [5b6c9cda191b] * COPYING, source/PPA/ppa.cpp, source/PPA/ppa.h, source/PPA/ppaApi.h, source/common/bitstream.h, source/common/common.cpp, source/common/common.h, source/common/cpu.cpp, source/common/cpu.h, source/common/dct.cpp, source/common/intrapred.cpp, source/common/ipfilter.cpp, source/common/loopfilter.cpp, source/common/lowres.cpp, source/common/lowres.h, source/common/mv.h, source/common/param.cpp, source/common/param.h, source/common/piclist.cpp, source/common/piclist.h, source/common/pixel.cpp, source/common/primitives.cpp, source/common/primitives.h, source/common/shortyuv.cpp, source/common/shortyuv.h, source/common/threading.cpp, source/common/threading.h, source/common/threadpool.cpp, source/common/threadpool.h, source/common/vec/blockcopy-sse3.cpp, source/common/vec/dct-sse3.cpp, source/common/vec/dct-sse41.cpp, source/common/vec/dct-ssse3.cpp, source/common/vec/vec- primitives.cpp, source/common/version.cpp, source/common/wavefront.cpp, source/common/wavefront.h, source/common/winxp.cpp, source/common/winxp.h, source/common/x86 /asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h, source/common/x86/const-a.asm, source/common/x86/cpu-a.asm, source/common/x86/dct8.asm, source/common/x86/dct8.h, source/common/x86/intrapred.h, source/common/x86/intrapred16.asm, source/common/x86/intrapred8.asm, source/common/x86/ipfilter16.asm, source/common/x86/ipfilter8.asm, source/common/x86/ipfilter8.h, source/common/x86/loopfilter.asm, source/common/x86/loopfilter.h, source/common/x86/mc-a.asm, source/common/x86/mc-a2.asm, source/common/x86/mc.h, source/common/x86/pixel-32.asm, source/common/x86/pixel-a.asm, source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm, source/common/x86/pixel.h, source/common/x86/pixeladd8.asm, source/common/x86/sad-a.asm, source/common/x86/sad16-a.asm, source/common/x86/ssd-a.asm, source/common/x86/x86util.asm, source/encoder/api.cpp, source/encoder/bitcost.cpp, source/encoder/bitcost.h, source/encoder/compress.cpp, source/encoder/cturow.cpp, source/encoder/cturow.h, source/encoder/dpb.cpp, source/encoder/dpb.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h, source/encoder/level.cpp, source/encoder/level.h, source/encoder/motion.cpp, source/encoder/motion.h, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h, source/encoder/rdcost.h, source/encoder/reference.cpp, source/encoder/reference.h, source/encoder/slicetype.cpp, source/encoder/slicetype.h, source/encoder/weightPrediction.cpp, source/filters/filters.cpp, source/filters/filters.h, source/input/input.cpp, source/input/input.h, source/input/y4m.cpp, source/input/y4m.h, source/input/yuv.cpp, source/input/yuv.h, source/output/output.cpp, source/output/output.h, source/output/y4m.cpp, source/output/y4m.h, source/output/yuv.cpp, source/output/yuv.h, source/test/checkasm-a.asm, source/test/intrapredharness.cpp, source/test/intrapredharness.h, source/test/ipfilterharness.cpp, source/test/ipfilterharness.h, source/test/mbdstharness.cpp, source/test/mbdstharness.h, source/test/pixelharness.cpp, source/test/pixelharness.h, source/test/testbench.cpp, source/test/testharness.h, source/test/testpool.cpp, source/x265.cpp, source/x265.h, source/x265_config.h.in: change license email globally [9c21227bb5bf] 2014-05-30 Ashok Kumar Mishra * doc/reST/cli.rst, source/CMakeLists.txt, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/param.cpp, source/encoder/compress.cpp, source/encoder/encoder.cpp, source/x265.cpp, source/x265.h: add support for lossless encode --lossless forces full lossless coding of every frame and every CU. --cu-lossless forces the encoder to perform RD cost analysis between lossy and lossless modes and choose the least cost mode for each CU. [bebc88f64d99] 2014-06-02 Steve Borho * source/Lib/TLibEncoder/TEncCu.cpp: TEncCu: nits [ac763df220b6] 2014-05-30 Ashok Kumar Mishra * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncCu.cpp: fix to support multiple color space format in TComSampleAdaptiveOffset and TEncCu structure [dbd7cabc5ee6] 2014-06-02 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: rc: improve visual quality in high bit depth encodes. [1c65cf8f068e] 2014-06-02 Steve Borho * source/encoder/CMakeLists.txt: cmake: nit [39ddc8c12309] * source/encoder/CMakeLists.txt: cmake: encoder.cpp no longer needs -Wno-unused-parameter [d3a89fd010dd] * source/CMakeLists.txt, source/common/CMakeLists.txt: cmake: move all "GCC-like" logic together, use consistent var names [734956446ac1] 2014-05-30 Den Scherbin * source/CMakeLists.txt: Disable exceptions for all compilers which support fno-exceptions [f21ce9406d4d] 2014-05-30 Aarthi Thirumalai * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h: TEncSearch: use actual frame thread count to decide motion search limits [223a9bbf52f4] 2014-06-02 Deepthi Nandakumar * doc/reST/presets.rst, source/common/param.cpp: preset: set superfast, veryfast, faster and fast presets to rd 2. [a5998df9b12e] * doc/reST/presets.rst, source/common/param.cpp: preset: For ultrafast preset, turn off lft, change rdLevel from 3 to 2. This adds about 20-25% more performance for ultrafast presets at little efficiency cost. [d957ff8312d3] 2014-05-29 Den Scherbin * source/CMakeLists.txt: Disable exceptions. Fixes Clang linker errors. [592ef184549e] 2014-05-29 Steve Borho * source/encoder/ratecontrol.cpp: rc: cleanups for clarity [58420e834424] 2014-05-29 Aarthi Thirumalai * source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: ratecontrol: improve visual quality and bitrate savings in ABR. Try to prevent ABR over-compensation after I frames by amortizing the cost over the next few frames; Improve ABR quality with frame parallelism - enable frame parallelism only after first few P frames to prevent excessive qp fluctuations. Fix initial I frame qp. when cu tree is enabled, the qp decided arbitrarily is too low. This causes a huge qp spike in immediate P frames.Tuned cplxrSum for intial I frame so that a more appropriate qp is chosen. [7cbe7e7a75c4] 2014-05-29 Steve Borho * source/cmake/CMakeASM_YASMInformation.cmake: cmake: 32-bit macho compiles need _ prefixes on exported functions [d4932f6e964b] 2014-05-28 Steve Borho * doc/reST/cli.rst, doc/reST/presets.rst, source/common/param.cpp: preset: disable rectangular and AMP partitions at medium preset This gives a considerable speed-up (50-70%) at the default preset for not much loss in compression efficiency (2-3%). AMP is rarely useful, at non-RDO presets we were only considering AMP merge anyway, and rect can be approximated by a split and two merges. [b42827682323] 2014-05-28 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/common/shortyuv.cpp, source/common/shortyuv.h, source/encoder/reference.cpp: refine YUV and coeff buffer [260752f39b27] 2014-05-28 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: nits [e9776dfd1471] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/frameencoder.cpp: nits [eb236aec3757] * source/common/threadpool.cpp, source/common/threadpool.h, source/common/wavefront.cpp, source/common/wavefront.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/slicetype.cpp, source/encoder/slicetype.h, source/test/testpool.cpp: pool: allow thread private data structures Pass worker's threadId to JobProvider::findJob() and allow job providers to use this ID as they see fit to keep thread local data. No behavior changes, this is just laying the plumbing for future optimizations. [77f788046989] * doc/reST/cli.rst: rest: add missing --no-repeat-headers option [6df1a5bb11fc] * source/Lib/TLibEncoder/TEncCu.cpp: TEncCu: nit [e6ba953dcb1a] 2014-05-28 Deepthi Nandakumar * source/Lib/TLibEncoder/TEncCu.cpp: psy-rd: bug fix in merge mode, use psyCosts for all decisions whenever psy-rd is enabled [306d3e6b5185] * source/Lib/TLibEncoder/TEncCu.cpp: TEncCU: inserting runtime checking for m_totalPsyCost [503a359e874c] 2014-05-27 Kavitha Sampath * source/encoder/frameencoder.cpp: SEI: fix bug in picture timing SEI when interlace encoding is enabled When the interlace mode is 1(top field first), the picstruct is 2(bottom field) for all frames. But the picStruct for frames in display order should be 1(top field), 2(bottom field), 1, 2,..etc [807ee7f1597b] 2014-05-27 Deepthi Nandakumar * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: psyRD: psyRD costs are saved into m_totalPsyCost. [acd166cf9836] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: TComDataCU: introduce new variable m_psyEnergy [1bd3da64eab9] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h: TComDataCU: introduce new variable m_totalPsyCost [d84f5d1fbb10] * source/Lib/TLibCommon/TComDataCU.cpp: TComDataCU: whitespace nits [08766d706869] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp: TComDataCU: renaming m_totalCost to m_totalRDCost [812615048da0] 2014-05-25 Satoshi Nakagawa * source/CMakeLists.txt: add -D__STDC_LIMIT_MACROS=1 [af78d190e57b] 2014-05-25 Steve Borho * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: nits [80e6a349a9fb] 2014-05-23 Steve Borho * source/common/shortyuv.cpp: assert to optional runtime check [5e8cce428457] 2014-05-23 Satoshi Nakagawa * source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/common/pixel.cpp, source/common/primitives.cpp, source/common/primitives.h, source/common/shortyuv.cpp, source/common/vec/blockcopy-sse3.cpp, source/encoder/compress.cpp, source/encoder/slicetype.cpp: refine block size related [74f8aa42020f] 2014-05-24 Satoshi Nakagawa * source/encoder/rdcost.h: rdcost: overflow check by integer [91330e7dddd7] 2014-05-23 Steve Borho * source/compat/msvc/stdint.h: vc9: define UINT64_MAX in our hacked stdint.h [a3f5a7b9f0fb] * source/common/CMakeLists.txt: cmake: re-split TLibCommon headers to fix VC9 builds [ade75817d892] 2014-05-22 Steve Borho * source/encoder/rdcost.h: rdcost: fix energy cost check, dc is already subtracted from the energy [5134e76aa729] * source/encoder/rdcost.h: rdcost: use floating point math to calculate psy rd cost [0c05e3b298a5] * source/encoder/rdcost.h: rdcost: fix dc portion of psy energy calculation now flat blocks have energy of 0, as expected [8a8b04982694] 2014-05-15 Steve Borho * doc/reST/cli.rst, source/CMakeLists.txt, source/common/param.cpp, source/encoder/api.cpp, source/encoder/level.cpp, source/encoder/level.h, source/x265.cpp, source/x265.h: api: allow minimum decoder level to be specified [29cc8b928868] 2014-05-22 Steve Borho * doc/reST/presets.rst, source/common/param.cpp: param: introduce warnings about measurements with psy-opts enabled Disable psy-rd when tuning for psnr or ssim, and validate various combinations [d66773c5f275] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: readability nits [73e8188a48ca] 2014-05-19 Satoshi Nakagawa * source/Lib/TLibCommon/TComRom.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp: cleanup bReusePred, unify absTUPartIdx to absPartIdx [b7e6b21a5906] 2014-05-22 Steve Borho * source/encoder/encoder.cpp: rc: simplify updateVbvPlan() [34187fb932d3] 2014-05-22 Deepthi Nandakumar * doc/reST/cli.rst: rest: refine rdLevels description. [5548d3e6915d] * doc/reST/cli.rst, source/encoder/cturow.cpp: psyrd: is enabled only at rdLevels 5 and 6. Only rdLevels 5 and 6 use full-RDO based decisions. These are used in presets slower, veryslow and placebo. [ceb4ff55f0e8] 2014-05-22 Santhoshini Sekar * source/encoder/encoder.cpp: rc: always use frameSizeEstimted for bits in updateVbvPlan [9cf0134982f8] * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: rc: rename variable vbvMinRate to isCbr [8f097477d74c] 2014-05-22 Satoshi Nakagawa * source/encoder/slicetype.cpp: fix: segmentation fault --tune zerolatency [6a3a53543a89] 2014-05-21 Steve Borho * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/CMakeLists.txt: cmake: re-enable wd4800 for TLibEncoder [dadb646a7266] * source/common/CMakeLists.txt: cmake: further cleanups [bc26992efaff] * source/common/CMakeLists.txt: cmake: re-enable wd4244 and wd4127 in common/vec [8a26aa7f81e3] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/common/CMakeLists.txt, source/encoder/cturow.cpp, source/encoder/encoder.h: cmake: re-enable wd4800 for TLibCommon, fix remaining warnings [5bfeba9f7ae2] * source/encoder/frameencoder.cpp: frameencoder: fixup comment following variable rename [2ed0de7f2ea7] * source/common/lowres.cpp, source/common/lowres.h, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp: lowres: use a better name for cuTree offset buffer [7e92e9718b37] * source/common/CMakeLists.txt: cmake: merge TLibCommon source groups [163ea3a0388b] * source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/common/CMakeLists.txt, source/encoder/CMakeLists.txt, source/encoder/compress.cpp, source/encoder/cturow.h, source/encoder/rdcost.h: move TComRdCost.h to encoder/rdcost.h, cleanup refactor The RDCost class has no resemblance to the original TComRdCost class. [0c9e5ebbb636] 2014-05-21 Praveen Tiwari * source/Lib/TLibCommon/TComRom.h: TComRom.h, removed unused tables [5d0658f9c539] * doc/reST/cli.rst, doc/reST/threading.rst, source/CMakeLists.txt, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/common/common.h, source/common/param.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/x265.cpp, source/x265.h: noise reduction ported from x264 [9ba6575aaac1] 2014-05-21 Steve Borho * source/Lib/TLibCommon/TComTrQuant.h: TComTrQuant: nits [479e34a05002] 2014-05-21 Santhoshini Sekar * source/encoder/ratecontrol.cpp: aq: fine tune aq logic to distribute bits even better [9812db027903] 2014-05-21 Den Scherbin * source/cmake/version.cmake: cmake: detect mercurial source installs on Windows, fixes #56 [a1c87ac44989] 2014-05-20 Steve Borho * doc/reST/cli.rst, source/x265.cpp: psy: mention the fact that psy-rd requires rdo [f39484bb3eec] * source/Lib/TLibCommon/TComTrQuant.cpp: TComTrQuant: nits [a13534aa7c6b] * source/common/param.cpp: param: fix check of minimum picture dimensions [66bb56dac4f7] * source/common/winxp.cpp: xp: hack to avoid linker warnings [a4ddd39763f2] * doc/reST/presets.rst: rest: update fastdecode to mention no intra in B [10d5af0889aa] 2014-05-20 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: fix bug for invalid read in sa8d fix invalid read when different stride value given for two input buffer and enabled 16x16 and 8x8 sa8d primitives. [0d2ec86fa28b] 2014-05-20 Steve Borho * source/common/param.cpp: param: tabs to spaces [a815df2b313f] 2014-05-20 Deepthi Nandakumar * source/common/param.cpp, source/x265.cpp: param: initialise crf-max and crf-min values in the param structure. [279f72586069] * source/x265.cpp: help: removing the default QP value in the help message Since CQP is not the default rate control mode, a default QP confuses readers. [2c722169215c] 2014-05-19 Ashok Kumar Mishra * source/Lib/TLibEncoder/TEncSearch.cpp: fix : square chroma transform expected error message [d050fe5f8f28] 2014-05-18 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp: refine merge related [b35a5d8f012b] 2014-05-16 Satoshi Nakagawa * source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSearch.cpp: encodeCoeffNxN(): call only if non-zero coeff exists [ba2a9f61ea06] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp: cleanup unused arg [f9f132b3e36e] 2014-05-19 Steve Borho * source/Lib/TLibCommon/TComRdCost.h: psyrd: use EMMS before checking calcPsyRdCost [c78bed701db4] 2014-05-16 Steve Borho * source/Lib/TLibEncoder/TEncCu.cpp: psyrd: use actual recon pixels for intra predictions (bug spotted by valgrind) [f3f3eecd28f1] * doc/reST/cli.rst: rest: improve --rd docs [4739c02a62c0] * source/encoder/ratecontrol.cpp: ratecontrol: initialize singleFrameVbv (bug spotted by valgrind) [2d5dc4e63fb9] * source/encoder/slicetype.cpp: slicetype: initialize bReady (bug spotted by valgrind) [8b6c5d7ff4c0] 2014-05-16 Sumalatha Polureddy * doc/reST/cli.rst, source/Lib/TLibEncoder/TEncCu.cpp, source/common/param.cpp, source/x265.cpp, source/x265.h: cli: introduce --[no]-b-intra which enables/disables intra modes in B frames [7d11f60c5dba] 2014-05-16 Steve Borho * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: nits [0bd90aaaa3a7] * source/CMakeLists.txt, source/Lib/TLibCommon/TComRdCost.h, source/common/common.h, source/encoder/CMakeLists.txt, source/encoder/encoder.cpp: common: make a global X265_LL macro for printing uint64_t [5167067ed452] * source/Lib/TLibCommon/TComRdCost.h, source/common/primitives.h, source/common/x86/asm-primitives.cpp: psy-rd: add sad_square primitive array to optimize psy-rd This fixes the DC component calculation at the same time making the calculation more efficient. [48af10fff12b] * source/encoder/slicetype.cpp: slicetype: fix unintended assignment [7533425d5060] 2014-05-08 Sumalatha Polureddy * doc/reST/cli.rst, source/CMakeLists.txt, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/param.cpp, source/encoder/cturow.cpp, source/x265.cpp, source/x265.h: adapt psy-rd from x264 In this initial implementation, we only use sa8d to estimate the energy of the source and reconstructed blocks. psy-rd is disabled by default, to evaluate use --preset veryslow --psy-rd 1.0 [d95ad61c8abc] 2014-05-15 Gopu Govindaswamy * source/encoder/slicetype.cpp: cutree: removed logLevel check from if loop [63f4a60cb268] * source/encoder/slicetype.cpp: cutree: adjust the rowSatd with qpoffset only for reference frames [3212839ec987] 2014-05-15 Steve Borho * doc/reST/api.rst, source/encoder/api.cpp, source/encoder/encoder.cpp, source/x265.def.in, source/x265.h: api: introduce x265_encoder_parameters(), copy param earlier to avoid mods in x265_encoder_open(), make a copy of the provided param structure much earlier to avoid making any changes to the param strucutre provided by the user, in case they want to use that same param again to allocate another encoder. [4da6be0eca52] * source/common/param.cpp, source/x265.cpp: cli: remove default strings for preset and tune, modify default AQ mode to match The cli has used --tune ssim as the default since we've had an ssim tune, but API users were getting the default aq-mode of 1 instead. This commit removes the default tune (and preset) strings and fixes the default param structure to match the previous CLI default behavior (aq-mode 2) [b03ef02dc2a2] * source/common/common.h: checked: enable check macros in debug builds [a9c403e19928] * source/common/common.h: check: disable MSVC warnings about constant conditionals with checked builds [bbc026370c52] * source/Lib/TLibCommon/TComRdCost.h: check: fix MSVC warnings and check behavior [4fe655fb3f24] 2014-05-14 Steve Borho * source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComBitStream.h, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/SyntaxElementWriter.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSbac.cpp: check: another pile of assert->X265_CHECK conversions [d5b42a9fe43b] 2014-05-14 Satoshi Nakagawa * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: cleanup clear() [890b34705c95] 2014-05-14 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: remove unused (and shadowed) variable [8ae4d97f3913] * source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/cpu.cpp, source/common/dct.cpp, source/common/piclist.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/threadpool.cpp, source/common/vec/dct-sse41.cpp, source/common/wavefront.cpp, source/encoder/compress.cpp, source/encoder/dpb.cpp, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/encoder/motion.cpp, source/output/y4m.cpp, source/output/yuv.cpp: checked: convert a pile of asserts() into optional runtime checks [190a21bd77a3] 2014-05-11 Satoshi Nakagawa * source/Lib/TLibEncoder/TEncSearch.cpp: fix 4:2:2 coeff rate calc [a4d0d5679c28] 2014-05-10 Satoshi Nakagawa * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp: refine intra reference samples [e0a3b7e79d4d] 2014-05-12 Steve Borho * source/encoder/ratecontrol.cpp: ratecontrol: do not low-clip first I frame with ABR [4fe2705adb5b] 2014-05-09 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp: reduce xModeBitsIntra() call [dd1635326993] 2014-05-12 Steve Borho * doc/reST/api.rst: rest: fix typo [8b75aa2cc06d] 2014-05-11 Steve Borho * doc/reST/api.rst, doc/reST/cli.rst, doc/reST/index.rst, doc/reST/presets.rst: rest: add API docs with links to appropriate sections [e7f11c87d7db] 2014-05-10 Steve Borho * doc/reST/presets.rst: rest: add a note to the tune documentation about using --tune ssim/psnr [7985392f3e55] * source/x265.h: api: even moar [deb01d38340c] * source/x265.h: api: moar tpyo [bac6ad6472b6] * source/x265.h: api: tpyo [c52aa51c82c7] * source/x265.h: api: remove mention of x265_encoder_reconfig(), which doesn't yet exist [32e587a601db] * source/x265.h: api: remove _t suffix from x265_param in comments [d70f0afba883] 2014-05-08 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: reduce malloc call to avoid fragment and overhead [d0acf82a77f9] 2014-05-08 Steve Borho * source/Lib/TLibCommon/TComRdCost.h: rdcost: fix comments for lambda fix8 variables, refs b77ca886ef3b [129bfec3144f] 2014-05-09 Min Chen * source/common/x86/intrapred8.asm: reduce code size on intra_pred_ang8_* [f7827ea458e9] 2014-05-08 Steve Borho * source/Lib/TLibCommon/TComPic.h: TComPic: nits [c665b4904e1f] * doc/reST/cli.rst: rest: fix indent of min-crf [4a36a281e77c] * doc/reST/cli.rst, source/x265.cpp: cli: expose param.bRepeatHeaders to the CLI, reorder help for more clarity [e50bd438514f] * source/encoder/slicetype.cpp: slicetype: avoid implicit integer conversions, fix MSVC warning intraCost is an int array, so there was no purpose to downcasting to uint16_t [c8ffacb54563] 2014-05-08 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: rc: add minor changes in flow when singleFrameVbv, rateFactorMax values are set. [87524d63e543] * source/encoder/ratecontrol.cpp: rc: update logic in clipQScale for vbv, when vbv lookahead is done, [96290a38459f] * source/encoder/ratecontrol.cpp: rc: clamp qp for first I frame only in rateEstimateQscale (changes output) [5546cc82e1ce] 2014-05-08 Gopu Govindaswamy * source/encoder/ratecontrol.cpp: rc: qpvbv is between qpMin and prevRowQp when specifies the rfConstantMin [0a53062845be] 2014-05-08 Aarthi Thirumalai * source/encoder/slicetype.cpp: slicetype: update the lowresCosts and intraCosts when aq/cutree is enabled [59a43a5cc704] 2014-05-08 Kavitha Sampath * source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp: SEI: enable generation of recovery point SEI message for keyframes SEI recovery points are inserted for every keyframe which tells the decoder an identifier of the recovery point from which perfectly valid pictures can be displayed no matter what the starting point of decoding is. The SEI specifies recovery_poc_cnt that counts the number of frames after which perfect video can be displayed to the user. Pictures encoded after the CRA but precede it in display order(leading) are ignored by the decoder and pictures following CRA in POC order(trailing) do not reference pictures prior to the recent CRA and are guaranteed to be displayable. Hence recovery_poc_cnt is zero. [8e64aa56d635] 2014-05-08 Steve Borho * source/CMakeLists.txt: cmake: bump X265_BUILD for qpfile and crf-min [fdce542171cb] 2014-05-08 Gopu Govindaswamy * doc/reST/cli.rst, source/common/param.cpp, source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h, source/x265.cpp, source/x265.h: x265: implemented crf-min that specifies a minimum rate factor value for encode [6871636e99cb] 2014-05-07 Steve Borho * doc/reST/cli.rst: rest: document --qpfile [6494bb2e6425] 2014-05-07 Gopu Govindaswamy * source/Lib/TLibCommon/TComPic.h, source/encoder/api.cpp, source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp, source/x265.cpp, source/x265.h: cli: added qpfile feature to force frame qp and slicetype using file [7773ee321539] 2014-05-06 Steve Borho * Merge with stable [8963bc3aa2e1] 2014-05-07 Tom Vaughan * doc/reST/presets.rst: presets.rst edited online with Bitbucket - Correct spelling [607384b3312e] 2014-05-05 Satoshi Nakagawa * source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp: fix: residualQTIntrachroma() for 4:2:2 [0e22bd1dfe6c] 2014-05-03 Satoshi Nakagawa * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp: refine picture boundary check - cleanup slice end check - fix split bits for TOPSKIP [8c07f39ef5c5] 2014-05-06 Steve Borho * source/common/param.cpp: log: remove hyphen from signhide, so it matches param name This is just to avoid confusion [608267a4f634] * Merge with stable [ec4917459326] * doc/reST/index.rst, doc/reST/presets.rst: rest: add a page describing presets [110993a5ef10] 2014-05-06 Deepthi Nandakumar * source/encoder/ratecontrol.cpp: ratecontrol: remove repeat initialisations. [3974eafe528d] * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: ratecontrol: remove RateControl->qpNoVbv. Less confusion, and we have whatever info we need in rce->qpNoVbv anyway [5d9220ec8c81] * source/encoder/ratecontrol.cpp: ratecontrol: avoid clipping QP multiple times when VBV is not enabled. [7d557d8819e9] 2014-05-06 Aarthi Thirumalai * source/encoder/slicetype.cpp: slicetype: avoid redundant call. intraSatd costs are updated in frameEncoder already [532c961b16f1] 2014-05-06 Gopu Govindaswamy * source/Lib/TLibCommon/TComPic.h, source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp: log: add the RateFactor for each frame to the csv file when using --crf mode [94803b73ba8a] 2014-05-06 Steve Borho * source/Lib/TLibCommon/TComRdCost.h: check: add checks for integer overflow in rdcost functions [2577eb2cbd20] 2014-05-05 Steve Borho * source/CMakeLists.txt, source/common/common.h, source/common/version.cpp: cmake: add CHECKED_BUILD option so we can add optional runtime checking [5c590a31734b] * .hgignore: ignore .DS_Store files (Mac pocket lint) [075705aa41a9] * source/input/y4m.cpp, source/input/y4m.h: y4m: support variable bit depth via CXXXpDD Y4MPEG header; ie: C420p10 ffmpeg's support for this is non-standard, so you must use -strict -1, aka: ffmpeg -i vid.avi -pix_fmt yuv420p10le -strict -1 -f yuv4mpegpipe - | ./x265 - --y4m o.hevc closes issue #53 [c4adcaef8d1d] 2014-05-04 Steve Borho * source/x265.cpp: cli: report input bit depth [5ca8717a3ec2] 2014-05-05 Steve Borho * doc/reST/introduction.rst: rest: update introduction page, add more detail about software patents [d0b17e3ef9db] 2014-05-03 Steve Borho * Merge with stable [dcf74ea39e31] * source/Lib/TLibCommon/TComRdCost.h: rdcost: explicit cast of return value, to prevent MSVC warnings [04e91f38854f] 2014-05-01 Steve Borho * source/CMakeLists.txt, source/cmake/clean-generated.cmake: cmake: add a clean-generated Makefile rule 'make clean-generated' will remove all the machine generated files in the build folder so that they will be re-generated with more up- to-date version info the next time you run 'make' The "easy" workaround for this problem is to just nuke the build folder and start a new one. [d72770a77ff8] * source/input/y4m.cpp, source/input/yuv.cpp: use fseekg() to skip frames for 64bit builds This is orders of magnitude faster, at least on Windows, than repeated calls to ignore(framesize) [61ad93af167c] 2014-05-02 Steve Borho * Merge with stable [81aad858a830] * .hgtags: Added tag 1.0 for changeset cea97c4d7945 [d3d47e3ef9c2] 2014-05-02 Deepthi Nandakumar * source/encoder/frameencoder.cpp: interlace: set sourceScanType to 0 to indicate interlaced video [cea97c4d7945] [1.0] 2014-05-02 Aarthi Thirumalai * source/Lib/TLibCommon/TComRom.cpp: fix g_chromaScale for 420 videos accordingly to the HEVC spec. [9b66012c93bb] 2014-05-02 Steve Borho * source/Lib/TLibCommon/TComRdCost.h: rdcost: use less fractional bits for lambda scale, and larger ints for chroma This fixes really bad mode decisions made with some Main10 encodes that were apparently caused by integer overflow [b77ca886ef3b] 2014-05-02 Deepthi Nandakumar * source/encoder/frameencoder.cpp: interlace: set sourceScanType to 0 to indicate interlaced video [f3585fd81c3b] 2014-05-01 Steve Borho * Merge with stable [22eda589d8ca] * source/encoder/slicetype.cpp: slicetype: pre-calculate cost estimates for B slices, simplify callback rate control was always calling back for B slice estimates but since we were only pre-calculating them if VBV was enabled we were forced to make the estimates at that time (withing the context of the API thread). With this patch, we estimate B costs unless CQP is in use, and this allows us to simplify getEstimatedPictureCost() [1ed0bd2dbfd1] 2014-04-30 Ashok Kumar Mishra * source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComYuv.h, source/common/shortyuv.h, source/encoder/encoder.cpp: fix WP issue for 422 and 444 format [20551ab7ff00] 2014-04-29 Steve Borho * doc/reST/cli.rst, doc/reST/index.rst, doc/reST/threading.rst: rest: initial documentation for threading details and considerations [6d83eaf6cf24] * source/encoder/encoder.cpp: csv: always write summary info if file handle is open fixes behavior of --csv FILE --log full [148c3b9c11fd] * Merge with default (code freeze for 1.0) [c6ca14a4f2fa] * source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/common/bitstream.h, source/common/common.cpp, source/common/common.h, source/common/loopfilter.cpp, source/common/param.cpp, source/common/param.h, source/common/pixel.cpp, source/common/primitives.h, source/common/shortyuv.cpp, source/common/shortyuv.h, source/common/threading.h, source/common/wavefront.cpp, source/common/winxp.cpp, source/common/winxp.h, source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.h, source/common/x86/ipfilter8.h, source/encoder/compress.cpp, source/encoder/cturow.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/level.cpp, source/encoder/level.h, source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp, source/encoder/slicetype.h, source/encoder/weightPrediction.cpp, source/filters/filters.cpp, source/input/y4m.cpp, source/input/yuv.cpp, source/test/ipfilterharness.cpp, source/test/mbdstharness.cpp, source/test/pixelharness.cpp, source/test/pixelharness.h, source/test/testharness.h, source/x265.cpp, source/x265.h: uncrustify - enforce coding style mechanically [a25fb61a7326] * source/encoder/slicetype.cpp: slicetype: nit [e6ba3c2320e8] 2014-04-28 Steve Borho * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h: TComRom: hard-code the lambda tables [4f7658b3c78a] 2014-04-28 Aarthi Thirumalai * source/encoder/frameencoder.cpp, source/encoder/slicetype.cpp, source/encoder/slicetype.h: remove list data from lowres costs prior to use [84d31cb2aeab] * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h: fix g_chromaScale to be full length [6e233b6777c0] 2014-04-25 Satoshi Nakagawa * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp: fix: 4:2:2 rdLevel <= 1 [f799f8079b87] 2014-04-28 Ashok Kumar Mishra * source/Lib/TLibCommon/TComLoopFilter.cpp: fix hash mismatch for 422 format with HM 14.0_RExt decoder [56b1d4a44798] 2014-04-27 Steve Borho * source/encoder/slicetype.cpp: slicetype: remove unused auto var [36e53135da57] * source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: rename rowsCompleted to bFrameCompleted one would expect rowsCompleted to be a counter, when in fact it is a bool value signaling completion of the whole frame. [563273f5772f] 2014-04-27 Aarthi Thirumalai * source/encoder/slicetype.cpp: slicetype: fix incorrect initialization of fenc->rowSatds when wpp is enabled. [c8bff937eee0] 2014-04-27 Steve Borho * source/common/x86/mc-a.asm, source/encoder/slicetype.cpp, source/test/checkasm-a.asm, source/test/testharness.h: asm: adjust x264_ prefixes [e519b32b70d0] 2014-04-25 Min Chen * source/test/checkasm-a.asm, source/test/pixelharness.cpp, source/test/testharness.h: testbench: support float ret value [7baf8b8ecfdc] * source/common/x86/intrapred8.asm: correct register num in intrapred8.asm [52d812d0fc48] * source/common/x86/pixel-util8.asm: fix pixel_ssim_end4, the 3rd is dword [2900e858e30a] 2014-04-24 Steve Borho * source/test/pixelharness.cpp: pixelharness: stack-check ssim_end4_t, this seems to expose an argument read bug [c630b0b393ee] * source/common/x86/ipfilter8.asm: ipfilter: fix register stack allocation in luma horizontal filter [4a91c42d2a72] * source/test/mbdstharness.cpp: dct: fix MSVC warnings [10de7b0a228c] * source/common/intrapred.cpp, source/common/primitives.h, source/common/x86/intrapred.h: primitives: pass bool value as int to assembly bool type is too ambiguous [cdbcd835b849] * doc/reST/cli.rst: rest: move quality metrics section up higher [fcad3bb9943d] * doc/reST/cli.rst: rest: move --repeat-headers to bitstream options section [afec492ea679] * doc/reST/cli.rst: rest: loop filters, plural [6f259296bfe1] * doc/reST/cli.rst: rest: move --hash into bitream options section, document error- recovery aspects [1662240073e2] * source/test/mbdstharness.cpp, source/test/mbdstharness.h: dct: stack-check asm transform/quant primitives [06be236c9ece] * source/test/ipfilterharness.cpp: ipfilter: remove utterly useless comments [17dd496b46ee] * source/test/ipfilterharness.cpp: ipfilter: stack-check asm filter primitives [a61ceb6f80c2] * source/test/intrapredharness.cpp: intrapred: stack-check asm intra primitives prune some extra memsets that were used during development [a332c6667dc9] 2014-04-24 Min Chen * source/common/x86/pixel-a.asm: correct register number in pixel-a.asm [791790391fb6] 2014-04-24 Steve Borho * source/Lib/TLibCommon/TComMotionInfo.h: TComMotionInfo: nit [e9f64036fbee] * source/test/CMakeLists.txt, source/test/pixelharness.cpp: fixups for testbench build on Windows [904b96e1c436] 2014-04-17 Steve Borho * source/cmake/CMakeASM_YASMInformation.cmake, source/common/common.h, source/common/threading.cpp: align the stack for GCC x86_32 builds For all threads x265 creates, align the stack immediately in the call to threadMain(). The API calls do not appear to require an aligned stack; all primitives that require stack aligned buffers are called from frame encoder or worker pool threads [4c341edb4cf8] 2014-04-24 Steve Borho * source/common/CMakeLists.txt, source/common/x86/checkasm-a.asm, source/test/CMakeLists.txt, source/test/checkasm-a.asm: move checkasm-a.asm to the test/ folder (fixes linux link) [6dca7a1de7f7] 2014-04-23 Steve Borho * source/CMakeLists.txt, source/cmake/CMakeASM_YASMInformation.cmake, source/common/CMakeLists.txt: cmake: export YASM_FLAGS from CMakeASM_YASMInformation.cmake This avoids duplicate logic in other cmake scripts [c24c7b2d0eff] 2014-04-23 Min Chen * source/common/x86/blockcopy8.asm: improve by LEA to ADD in cvt32to16_shr [f8b68aa1877d] 2014-04-23 Steve Borho * source/common/primitives.h: primitives: nit [1c9b3a48ea13] 2014-04-23 Min Chen * source/common/x86/x86inc.asm: update x86inc.asm [cdd79be8cff9] * source/test/pixelharness.cpp: pixelharness: stack-check all asm pixel primitives [56a1c114d3be] * source/common/CMakeLists.txt, source/common/x86/checkasm-a.asm, source/test/testharness.h: testbench: port x264 stack & register check code [91685d4e6c1a] 2014-04-23 Steve Borho * source/common/threadpool.cpp: threadpool: increase reference count if pool was allocated while blocked [ea597d46f30e] 2014-04-23 Min Chen * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter16.asm, source/common/x86/ipfilter8.h: fix wrong cpu type on interp_4tap_vert_x_4x2 [aa8442a28aa4] 2014-04-22 Steve Borho * source/common/x86/x86inc.asm: Backed out changeset: ce11d3617899 [53712f218a1a] * source/CMakeLists.txt: cmake: do not prefix absolute library paths with -l in pc file fixes static linking on Mac OS X in particular [d11c90310c8a] 2014-04-22 Gopu Govindaswamy * source/common/pixel.cpp, source/common/primitives.h, source/encoder/slicetype.cpp, source/encoder/slicetype.h: pixel: Added C Primitives for estimateCUPropagateCost and removed from lookahead [4ed2953f358e] 2014-04-22 Murugan Vairavel * source/test/pixelharness.cpp: testbench: ensure randomly generated width and height are >= 16 Fixes a crash in testbench caused by upshift and downshift when height equal to 1 [d916025046f7] 2014-04-22 Min Chen * source/common/x86/x86inc.asm: update x86inc.asm [ce11d3617899] 2014-04-22 Deepthi Nandakumar * source/Lib/TLibEncoder/TEncSearch.cpp: me: backout previous patch; add 1 to account for temporal MV candidate [7ff92e09900e] * source/Lib/TLibEncoder/TEncSearch.cpp: me: stack allocated pointer moved to heap [54e73d05a5b1] 2014-04-21 Steve Borho * source/encoder/slicetype.h: slicetype: rowsCompleted variable should be volatile Don't allow a compiler to optimize out the reads, it would cause a deadlock [84315557c97f] * source/common/param.cpp: log: do not report weightb twice [5f49217b2489] 2014-04-22 Den Scherbin * source/x265.cpp: cli: fix bitrate output when encoding [3acc99098339] 2014-04-21 Steve Borho * doc/reST/cli.rst: rest: improve VUI docs [8c1e721209f4] * doc/reST/cli.rst: rest: remove redundant `in` [f625e0cba6d6] * doc/reST/cli.rst: rest: improve description of constrained intra [c1b4a55fbb10] * doc/reST/cli.rst: rest: update --qp docs to mention behavior of --qp 0 [cbdce05c6959] 2014-04-21 Ashok Kumar Mishra * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: fix preset placebo option crash for 444 color format [a30c81796c22] 2014-04-12 Steve Borho * source/encoder/encoder.cpp, source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: use a worker thread for slicetypeDecide when it may help (closes #17) If slicetype/scenecut analysis is enabled and the user has a thread pool of at least 4 threads, use a worker thread to run slicetypeDecide. Improves performance in presets that were bottlenecked by b-adapt 2 style lookahead complexity. [c7f3b7487f60] 2014-03-27 Steve Borho * source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/bitcost.cpp, source/encoder/frameencoder.cpp, source/encoder/slicetype.h, source/encoder/weightPrediction.cpp: adapt x264 style lambda tables [CHANGES OUTPUTS] initLambda() in TComRom.cpp is passed the scale factor that is used to adjust lambda2 values. It uses 0.85 right now, which is similar to x264's value (0.9), and seems to be optimal for HEVC based on our tests. These lambda tables seem to help most at low QPs, allowing the encoder to get nearly lossless quality at high bitrates. [a4ae35d04777] 2014-04-17 Steve Borho * source/Lib/TLibCommon/TComDataCU.cpp: TComDataCU: nits, assume sizeof(char) == sizeof(uint8_t) cleanup white-space and hungarian prefixes [e45e5ca4608e] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibEncoder/TEncSearch.cpp: me: build a larger list of motion candidates for ME (closes #14) [fdccd5524ff7] 2014-04-21 Min Chen * source/common/x86/blockcopy8.asm: fix asm cvt32to16_s wrong XMM register number [ccfd0819b5c3] 2014-04-21 Deepthi Nandakumar * source/Lib/TLibCommon/TComDataCU.cpp: TComDataCU: initCU was missing this initialisation, possible causing errors in row restarts. [e6e78f2fb192] 2014-04-17 Steve Borho * source/encoder/ratecontrol.h: rc: remove unused keyFrameInterval [78c1f43f12f5] * source/encoder/ratecontrol.cpp: rc: if --qp 0 is specified, use zero quant for all slice types This is not the same as lossless. For true lossless we must enable transform skip in the PPS and force all blocks to be coded with transform skip enabled. [07156a0e74e5] 2014-04-16 Steve Borho * source/common/threadpool.cpp: threadpool: use a mutex to protect pool allocation We only want to allow one thread to create the singleton thread pool. Rename the static instance variable to s_instance as per our coding style [85c95672ccf0] * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: Merge with stable [2fc309678785] 2014-04-03 Gopu Govindaswamy * source/encoder/dpb.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: store the reference state of the picture in FrameEncoder We find that reference state of the reference frame changed during the encode when we use frame-thread > 1 this cause the CU level QP for the frame is non-deterministic, this is leading the non- deterministic encoded output for the frame, to avoid this store the reference state of the frame to FrameEncoder->m_isReferenced and when the QP is calculate for CU, refer the reference state of the frame from FrameEncoder->m_isReferenced this stat will never change during the encode Moved slice reference state initialization from dpb to FrameEncoder initSlice() [aacd6919d173] 2014-04-16 Min Chen * source/common/x86/dct8.asm: align DCT8's stack to 64-bytes to avoid crash and improve cache performance [024ca523052f] 2014-04-16 Steve Borho * source/Lib/TLibCommon/TComSlice.cpp: TComSlice: initialize m_vps pointer [818a591c3a6e] * source/encoder/frameencoder.cpp: encoder: singleton m_vps nits [7fd1df6f4db8] * source/cmake/CMakeASM_YASMInformation.cmake: cmake: nit [41ef5053e04c] * source/encoder/frameencoder.cpp: Merge with stable [436c63dd2d24] 2014-04-03 Steve Borho * source/encoder/frameencoder.cpp: frameencoder: use m_isReferenced when configuring SAO in compressFrame() In some pessimal situations, the slice's reference state could even be changed by the time compressFrame() starts. This prevents any race hazard. [5746582ff4a6] 2014-04-15 Aarthi Thirumalai * source/encoder/frameencoder.cpp: vbv: clear row diagonal and cu SATD costs after vbv row reset was triggered refs #45 [03525a77d640] 2014-04-16 Steve Borho * source/cmake/CMakeASM_YASMInformation.cmake: cmake: use HAVE_ALIGNED_STACK=0 for x86_32 builds, even for GCC In order to enable HAVE_ALIGNED_STACK for 32bit builds, we would need to align our stack internally at all thread entry points and all API entry points that might use primitives. 32bit performance is not a high priority for us at the moment. This fixes a number of reported crashes on 32bit builds [cfb1bb58d4fe] * source/encoder/motion.cpp: motion: always include the mvcost returned by motionEstimate [CHANGES OUTPUTS] This was a rather subtle bug that has been in the code base for some time. The caller of motionEstimate() will often want to remove the mvcost from the returned cost value, and in this circumstance it would go negative, and since the returned value is unsigned it became very large, causing the encoder to actually discard a zero- residual match. If the stars were perfectly aligned and all of the reference ME costs became exactly -1, *all* possible ME candidates were discarded which could lead to crashes. [bf40ab3af59a] 2014-04-16 Ashok Kumar Mishra * source/Lib/TLibCommon/TComYuv.cpp, source/common/ipfilter.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/shortyuv.cpp: fix compile warning in pixel.cpp for 422 primitive setup [24e8bac645a3] 2014-04-15 Steve Borho * source/x265.cpp: cli: help nits (closes #47) [0b696c7f46f2] 2014-04-15 Aarthi Thirumalai * source/encoder/frameencoder.cpp: vbv: clear row diagonal and cu SATD costs after vbv row reset was triggered refs #45 [166e4d6e819e] 2014-04-15 Satoshi Nakagawa * source/Lib/TLibEncoder/TEncSearch.cpp: fix: rdLevel <= 1 [9735b037b461] 2014-04-14 Steve Borho * doc/reST/cli.rst, source/CMakeLists.txt, source/common/param.cpp, source/encoder/encoder.cpp, source/x265.cpp, source/x265.h: vui: emit VUI w/ timing info unconditionally, remove timing info from VPS Since many tools seem to only look in the VUI for timing info, it seems to be best to output that info there, and remove it from the VPS (to avoid sending redundant data in our headers) [8ebadea05bfe] 2014-04-15 Satoshi Nakagawa * source/Lib/TLibCommon/TComPattern.cpp: fix: constrained intra [0a95a6bb0f8e] 2014-04-14 Steve Borho * source/encoder/ratecontrol.cpp: ratecontrol: fix indentations [1cf67a7b362d] * source/common/pixel.cpp: pixel: remove out-of-range chroma copy function assignments [08d64a70594e] * source/Lib/TLibCommon/TComDataCU.cpp: TComDataCU: white-space nits [488b81a7f1c6] * source/common/param.cpp: param: reintroduce range checks of internalCsp [e62e96cf506d] * doc/reST/cli.rst: rest: update colorspace docs [b89d85f10bc4] 2014-04-14 Deepthi Nandakumar * source/encoder/encoder.cpp: encoder: nits [9f0f011294bd] * source/encoder/encoder.cpp: encoder: weightP not supported yet for 444 and 422. [6d4f0673c386] * source/x265.cpp: x265: adding support for i422 in the help command [ae8f99512774] 2014-04-12 ashok * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/common/ipfilter.cpp, source/common/param.cpp, source/common/pixel.cpp, source/encoder/ratecontrol.cpp, source/x265.cpp: Modify TComDataCU structure to support 422 color space format [3a9c1fc2b742] * source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComPattern.h: Modify TComLoopFilter structure to support 422 color space format [74ab24517d0e] * source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h: Modify TComRom and TComPattern structure to support 422 color space format [abf05dab1844] * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibCommon/TypeDef.h, source/common/shortyuv.cpp, source/common/shortyuv.h: Modify TComYuv and TShortYuv structure to support 422 color space format [ff3892c00318] * source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSbac.cpp: Modify TEncSbac and TEncEntropy structure to support 422 color space format [aa0c458ede27] * source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: Modify TEncSearch structure to support 422 color space format [0454675dbaf7] 2014-04-12 Deepthi Nandakumar * source/encoder/ratecontrol.cpp: ratecontrol: Fix initial I-slice QP for 10-bit CRF mode. [a622c4bfc688] 2014-04-11 Steve Borho * source/common/winxp.cpp, source/common/winxp.h: xp: fix build with XP headers [483e5077a6b7] * source/CMakeLists.txt: cmake: allow icpc to use vectorization if it likes [850ebca2f7c8] 2014-04-09 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h: cip: add is*AvailableCIP() simplify no CIP case. [13fa6d4d4fe4] 2014-04-11 Steve Borho * source/Lib/TLibCommon/TComTrQuant.cpp: TComTrQuant: nits [a5aa9e730323] * source/Lib/TLibCommon/TComTrQuant.cpp: TComTrQuant: comparing >=0 of unsigned variable is always true [85f977830d9d] 2014-04-10 Murugan Vairavel * source/common/x86/asm-primitives.cpp: asm-primitives: Enable missing XOP primitives in HIGH_BIT_DEPTH [bd5e59fc917d] * source/common/x86/x86util.asm: asm: HADDD optimization for XOP [78ab76f203a9] 2014-04-08 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: vbv: log frame-average QPs for VBV; even when AQ is disabled. [55981f89b398] 2014-04-10 Deepthi Nandakumar * source/encoder/ratecontrol.cpp: ratecontrol: prevent one layer of non-zero I-slice qp clipping [CHANGES OUTPUT]. This seems to have been an error importing RC code from x264. It could be responsible for error reports on I-slices (after POC 0) having much higher QP/low visual quality. Needs review. [1c0f1a4ce209] * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: ratecontrol: rename reInit to init. This method is called in the constructor and when ABR history is reset. [83ccf2f1453f] 2014-04-09 Steve Borho * source/encoder/level.cpp: level: fix MinGW warning [51c627e235bc] 2014-04-10 Deepthi Nandakumar * source/Lib/TLibCommon/CommonDef.h, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: ratecontrol: cleanup, replace (unnecessary) constant arrays with constants. [db15b6bee7f4] 2014-04-09 Deepthi Nandakumar * source/encoder/ratecontrol.cpp: ratecontrol: more dead code removed [e2df2309e6f1] 2014-04-09 Steve Borho * source/encoder/level.cpp: level: fix MSVC compile error, give sqrt() argument unambiguous data type [bd987db26d5d] 2014-04-09 Deepthi Nandakumar * source/encoder/ratecontrol.cpp: ratecontrol: partial backout of 6284b30a0fdd, get rid of debugging notes. [bdca492dc1d7] * source/encoder/level.cpp: level: remove conditional expression warning [7f62dfabe319] * source/encoder/ratecontrol.cpp: ratecontrol: remove dead code Imported from x264; likely a part of 2-pass. In any case, not relevant here. [6284b30a0fdd] 2014-04-07 Steve Borho * source/x265.rc.in: rc: update the default build output filename for our DLL [15471ecb08d8] * source/common/common.cpp, source/common/common.h, source/encoder/CMakeLists.txt, source/encoder/api.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/level.cpp, source/encoder/level.h: level: move decoder level logic to level.cpp, make table based the new function enforces more limits defined in Annex A - widths and heights are capped to avoid extreme rectangular dimensions DPB size is limited based on resolution at higher resolutions, the min CTU size is 32 this commit also lays the groundwork for adding --level 5.1 --tier HIGH params [23b509a26449] 2014-04-08 Deepthi Nandakumar * source/Lib/TLibCommon/TComPic.cpp: TComPic: change pointer initial values to NULL (instead of 0). [b5caca9954f3] 2014-04-07 Satoshi Nakagawa * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp: TEncEntropy: cleanup bRD arg, fix 4:4:4 intra chroma rate [OUTPUT CHANGE 4:4:4] [aec57ffb18de] 2014-04-06 Rafaël Carré * source/common/CMakeLists.txt, source/common/param.cpp: strtok_r: fix detection on Windows * Make sure HAVE_STRTOK_R is always defined, to 0 if absent * Fix typo in #if * mingw-w64's pthread.h #defines strtok_r, make sure to undef it before we use our own definition. [a4cb624267f3] 2014-04-05 Steve Borho * doc/reST/cli.rst, source/CMakeLists.txt, source/common/param.cpp, source/encoder/encoder.cpp, source/x265.cpp, source/x265.h: api: drop param.vui.bEnableVuiParametersPresentFlag and bEnableAspectRatioIdc These two params can be implied from other parameters, and having them present only makes the VUI configuration more complicated than it needs to be. This commit also drops the debugging --vui CLI option [c1300ae4e7ba] 2014-04-04 Steve Borho * doc/reST/cli.rst: rest: we don't abbreviate integer anywhere else [ac1bcf04c144] * doc/reST/cli.rst: rest: fix the straw-man The two-argument command line doesn't work for YUV since you need to provide the resolution and frame rate [aa1a86a1bd35] * source/common/param.cpp: param: force bRepeatHeaders for the still picture profile [4bb0073e3d15] * source/encoder/api.cpp, source/x265.cpp: log: move logging of version and build info into libx265 Now this data will be reported in the logs even when x265 is used as a shared or static library [9f77f0228735] 2014-04-03 Steve Borho * source/test/pixelharness.cpp: testbench: prevent 0 height in plane copy tests The ASM functions handle the last row specially and cannot handle height of 0, it causes testbench crashes when rand() rolls the wrong dice. [ac9e57296fa8] * doc/reST/cli.rst, source/CMakeLists.txt, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/common/param.cpp, source/encoder/frameencoder.cpp, source/x265.cpp, source/x265.h: api: add support for access unit delimiters (--aud) [6327400944ee] * source/x265.cpp: cli: add missing --no-dither option to getopt list [8273932bc5b7] * source/Lib/TLibEncoder/TEncEntropy.h: TEncEntropy: nit [1d2ab46f13d2] * doc/reST/cli.rst: rest: nit [d73898ae3e47] * source/common/param.cpp: param: nit reorder of RC mode checks to avoid uncrustify problems uncrustify was seeing FOO(bar < x || bar > y) and assuming this was a template instantiation and changing it to FOO(bar y). Reordering the two comparisons avoids this problem [2e376af3a467] * source/common/param.cpp: param: enforce a minimum picture size Do not allow the user to configure a picture smaller than at least one CTU [343414c96b01] * source/encoder/frameencoder.cpp: frameencoder: use m_isReferenced when configuring SAO in compressFrame() In some pessimal situations, the slice's reference state could even be changed by the time compressFrame() starts. This prevents any race hazard. [8c946aca5824] * source/encoder/frameencoder.cpp: frameencoder: comment nit [9c1cc2aa053a] * Merge with stable [eef9a0050728] 2014-04-03 Gopu Govindaswamy * source/encoder/dpb.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: store the reference state of the picture in FrameEncoder We find that reference state of the reference frame changed during the encode when we use frame-thread > 1 this cause the CU level QP for the frame is non-deterministic, this is leading the non- deterministic encoded output for the frame, to avoid this store the reference state of the frame to FrameEncoder->m_isReferenced and when the QP is calculate for CU, refer the reference state of the frame from FrameEncoder->m_isReferenced this stat will never change during the encode Moved slice reference state initialization from dpb to FrameEncoder initSlice() [36a66ea7a27e] 2014-04-03 Steve Borho * .hgtags: Added tag 0.9 for changeset 82bbd2bf3b49 [640f9177eeb0] 2014-04-03 Murugan Vairavel * source/common/x86/pixel-a.asm: asm: fix invalid read in upShift routine [82bbd2bf3b49] [0.9] 2014-04-02 Steve Borho * Merge with stable [c0362b478e23] 2014-04-02 Gopu Govindaswamy * source/encoder/dpb.h: dpb: Allow two L1 refs when b-pyramid is enabled [CHANGES OUTPUTS] Consider this common case: if we have 5 consecutive (display order frames) that are determined to be P1-B1-B2-B3-P2 by the lookahead. When b-pyramid is enabled, the middle B will be encoded first and used as a reference by the two following B frames (in encode order); P1-P2-B2ref-B1-B3 frame L0 L1 P1 P2 P1 B2ref P1 P2 B1 P1 P2 B2ref B3 B2ref P1 P2 When B1 is encoded, both B2ref and P2 should be available as L1 references, this will improve the encode compression efficiency when b-pyramid is enabled (closes #12) [d815c4a8fa74] 2014-04-02 Min Chen * source/test/pixelharness.cpp: testbench: use different stride on calcrecon [89af57686794] * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm, source/test/pixelharness.cpp: remove unused parameter *recon from assembly code [fdfad9734231] 2014-04-02 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/compress.cpp: cleanup m_cuColocated[] [ccb2b7c26bb6] 2014-04-02 Steve Borho * source/encoder/weightPrediction.cpp: weight: properly reset weights when no-residual early-out is taken This fixes a hash mismatch seen with a Main10 encode of sintel-480p [e03388e98ecc] * source/encoder/frameencoder.cpp: frameencoder: fix white-space nit, add comment [67c0aa70a125] 2014-04-02 Deepthi Nandakumar * source/encoder/encoder.cpp: param: fix typo in if-check. [261b3c2e788e] 2014-04-02 Aarthi Thirumalai * source/encoder/encoder.cpp: param: set aq strength to 0 in CQP [dc887415f6df] 2014-04-02 Deepthi Nandakumar * source/encoder/frameencoder.cpp: Merge from stable [3f27daf35506] * source/encoder/frameencoder.cpp: frameencoder: removing assign qp inconsistencies which were triggered for unreferenced P frames [606da0b6bc58] * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm, source/test/pixelharness.cpp: Backed out changeset: a6930bfbd908 This changeset causes crashes. Needs to be re-examined. [d0b5ea32525b] * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: calcQpForCU: remove m_pic input parameter. [03bad90e94ad] 2014-04-01 Min Chen * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm, source/test/pixelharness.cpp: remove unused recon[] from assembly code [a6930bfbd908] 2014-04-01 Steve Borho * source/Lib/TLibEncoder/TEncCfg.h, source/common/TShortYUV.cpp, source/common/TShortYUV.h, source/dllmain.cpp: Merge with default (feature freeze for 0.9) [1fc0fda2b08b] 2014-04-01 Kavitha Sampath * doc/reST/cli.rst, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/common/param.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp, source/encoder/weightPrediction.cpp, source/x265.cpp, source/x265.h: weightb: add CLI options for explicit weightb [CHANGES OUTPUTS] weightB will be disabled by default for this release. This patch fixes the hash mistakes and other fetaure bugs (the reasons it had been disabled) HEVC only signals a single denom for all references so the L1 reference must use the same denom as the L0 reference or no weight at all. A more exhaustive search might be added later for slower presets. Also, the lookahead will need to be modified to model weightB behavior so it can be more effective. This patch changes how the unweighted references are coded, so even weightP outputs change slightly. [0206822d9fea] 2014-04-01 Steve Borho * source/encoder/frameencoder.cpp: frameencoder: lower log level of restart indicators [f8aa296d60c3] 2014-03-31 Steve Borho * source/encoder/slicetype.cpp: slicetype: nits [6edc3ed24643] 2014-04-01 Nabajit Deka * source/common/x86/pixel-a.asm: asm: fix build error caused by usage of 64-bit dependent register in Win32 versions [dd189fd26f47] 2014-03-31 Steve Borho * source/encoder/slicetype.cpp: slicetype: do not assume frames[] array has been initialized slicetypeAnalyse() may not have been called, so use picture list[] instead [7ce180ca05b3] 2014-03-31 Min Chen * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/x86/pixel-util8.asm, source/test/pixelharness.cpp: remove macro NEW_CALCRECON [5d607fd4531f] 2014-03-31 Murugan Vairavel * source/test/pixelharness.cpp, source/test/pixelharness.h: testbench: code for testing input pixel upShift/downShift primitives [dc9a6a87db56] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: asm: code for input pixel upShift/downShift [c4ea6cffe2b3] * source/Lib/TLibCommon/TComPicYuv.cpp, source/common/pixel.cpp, source/common/primitives.h: primitives: added C primitives for upShift/downShift of input pixels [a30786caa6c3] 2014-03-31 Selvakumar Nithiyaruban * doc/reST/cli.rst, source/x265.cpp: cli: add cli option for dither [b521f535442a] * source/CMakeLists.txt, source/common/common.cpp, source/common/common.h, source/filters/filters.cpp, source/filters/filters.h: dither: port dither related functions from x264 [106fc00d4eab] 2014-03-31 Steve Borho * source/common/winxp.cpp, source/common/winxp.h: xp: fix header guards for XP support, fixes MinGW build If no _WIN32_WINNT version is specified, MinGW defaults to XP SP3. Our include guards were checking for <= XP instead of checking for any version before Vista which was the version that introduced native CONDITION_VARIABLE support [ae07405973b7] * source/encoder/frameencoder.cpp: frameencoder: prevent deadlock in non-wpp mode [f3c97e82ab04] * source/CMakeLists.txt: cmake: pick the old policy for MACOSX_RPATH (only applicable for cmake 3.0) [4564298c30f6] 2014-03-29 Steve Borho * source/CMakeLists.txt: cmake: allow MinGW to target XP by default This makes MinGW to use our workaround CONDITION_VARIABLE implementation but it seems to be on average better than asking MinGW to compile for Vista. [6f7b323061dc] 2014-03-11 Aarthi Thirumalai * source/common/wavefront.cpp, source/common/wavefront.h, source/encoder/cturow.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: vbv: enable row restarts when mid-frame qp adjustemets are inadequate [1410caf09a39] 2014-03-29 Steve Borho * source/CMakeLists.txt, source/common/CMakeLists.txt, source/common/threading.h, source/common/winxp.cpp, source/common/winxp.h: restore WINXP_SUPPORT build option, workaround for CONDITION_VARIABLE on XP This adapts x264's code for an XP-safe pthread_cond_t to make an XP- safe CONDITION_VARIABLE (which was introduced in Windows Vista) x265 will use native CONDITION_VARIABLE unless the WINXP_SUPPORT cmake option is enabled. It forces _WIN32_WINNT=_WIN32_WINNT_VISTA for MinGW for this purpose. [3f78e639d9ce] 2014-03-27 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/param.cpp: refine CUSize related rename to clarify. division to shift. [5fb4400d76c2] * source/Lib/TLibCommon/TComTrQuant.cpp: sbh: early continue for all zero coeff group [0705bb47bfcc] 2014-03-27 Min Chen * source/Lib/TLibEncoder/TEncSearch.cpp: move buffer outside parenthesis [9b378e860ddb] 2014-03-28 Steve Borho * source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComYuv.cpp, source/common/common.h, source/common/pixel.cpp: common: combine duplicate ClipY and ClipC templates, return pixel type and fix some hungarian prefixes I encountered [b9a62f4491a7] 2014-03-27 Steve Borho * source/Lib/TLibCommon/TComRom.h, source/common/common.h: common: move clip templates to common.h [c2fdc391d226] * doc/reST/cli.rst: rest: fix tpyo [5ec673a3e635] * source/x265.cpp: cli: add link to documentation to end of `x265 --help` output [e3b1fb25c1d5] * doc/reST/cli.rst: rest: consistent capitalization of page name [49528dce611c] * doc/reST/cli.rst: rest: improve --ssim, --psnr, recon, and VUI descriptions [ec97d22b021c] * source/Lib/TLibCommon/TComTrQuant.h: TComTrQuant: fix compiler warning in debug builds [0692d586def7] * doc/reST/cli.rst: rest: improve rate control documentation [6a139bbaddb8] * doc/reST/cli.rst: rest: cleanup --input description [3c366c8973e0] 2014-03-26 Steve Borho * source/CMakeLists.txt, source/encoder/api.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h, source/x265.cpp, source/x265.h: api: change x265_encoder_headers() to return byte count on success [8ce32bd20ec7] 2014-03-27 Steve Borho * doc/reST/cli.rst: rest: improve docs for --me and --early-skip [6e25dfa0cc9e] 2014-03-26 Steve Borho * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: nits [8e0c2d24fc45] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/common/common.h, source/common/vec/dct-sse3.cpp, source/common/vec/dct-sse41.cpp: replace TCoeff with coeff_t [ca35d9b58b55] * source/Lib/TLibCommon/TypeDef.h, source/common/common.h: common: move X265_DEPTH definition to common.h [9fd80b32a24e] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPicYuvMD5.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp: replace Pel with pixel [9c0419c1781b] * source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComBitStream.h, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPicYuvMD5.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/encoder/compress.cpp, source/encoder/cturow.cpp: replace UChar with uint8_t [bf2075b6e879] 2014-03-24 Steve Borho * source/CMakeLists.txt: cmake: move assembly source into ASM source group in VS [29efd2537b56] 2014-03-26 Steve Borho * doc/reST/cli.rst: rest: this sentence was perhaps redundant [7d37c06c80f4] * doc/reST/introduction.rst: rest: make life slightly more difficult for spambots [2d41a9d48e3b] 2014-03-24 Satoshi Nakagawa * source/encoder/frameencoder.cpp: fix chroma lambda weighting [d38335a9375a] 2014-03-26 Steve Borho * doc/reST/cli.rst: rest: nits [e6862130b35b] 2014-03-25 Steve Borho * source/common/param.cpp: param: ignore leading double-slash in names passed to x265_param_parse It might be ambiguous to API users whether these are required, looking at our documentation, so ignore them if they do. [2cda667fd786] * doc/reST/cli.rst: rest: improve --output, add documentation for --repeat-headers [c82b0f98e3fb] * doc/reST/cli.rst: rest: improve --tu-*-depth, --ref, and --tskip descriptions [2404a23fb957] * doc/reST/cli.rst: rest: improve the description of --rect --amp [0de64941eec8] * doc/reST/cli.rst: rest: document the behavior of --subme [939de245ea5f] * doc/reST/introduction.rst: rest: update licene email address [82e2254874b1] * source/x265.cpp: cli: remove dead options from getopt long-options list [9f5870075f72] * source/x265.h: api: fix documented defaults for cuTree and AQ [f482d57a6ab5] * doc/reST/cli.rst: rest: CRF options are doubles [455e4c8a5b3d] * doc/reST/cli.rst, source/CMakeLists.txt, source/common/param.cpp, source/encoder/encoder.cpp, source/x265.cpp, source/x265.h: api: drop VUI options which are not fully implemented It is better to not have to document that these are unfinished [8f770a36875d] * doc/reST/cli.rst: rest: add a couple of missing options, improve descriptions of others [02a2a5bd4330] * doc/reST/cli.rst: rest: improve CLI docs, fix some wrong descriptions, moar better I've moved --weightp and --refs to the ME section since they have no bearing on slice decision and lots of impact on motion search. Some new options are still missing, will add those in a later commit [11d301883894] * doc/reST/cli.rst: rest: large cleanup of CLI opt docs [8181f224ec27] * doc/reST/cli.rst: rest: fix csv logging descripion, move debug options to the end [6ece6e038ca8] * doc/reST/cli.rst: rest: use comma to separate short and long options This looks better, and fixes cross referencing [9ee05bffbc68] * doc/reST/Makefile, doc/reST/conf.py, doc/reST/index.rst: rest: add Makefile for generating HTML from reST, cleanup some nits [c52c2f8c3e32] * Merge with stable [fd5e313eca45] 2014-03-25 Sagar Kotecha * doc/reST/cli.rst, doc/reST/conf.py, doc/reST/index.rst, doc/reST/introduction.rst: Add reST script to generate x265 user manual [a1d9b54e57d2] 2014-03-25 Steve Borho * source/CMakeLists.txt, source/common/common.h, source/common/param.cpp, source/encoder/api.cpp, source/encoder/frameencoder.cpp, source/x265.cpp, source/x265.h: api: add param.bRepeatHeaders - insert stream headers in each keyframe NAL This is apparently useful for raw stream formats [e739e579609a] 2014-03-24 Min Chen * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncSbac.cpp: cleanup on TComTrQuant::getTUEntropyCodingParameters [4318d47d9348] * source/Lib/TLibCommon/TComTrQuant.cpp: faster sign(X) and N^2 on TComTrQuant::xRateDistOptQuant [10e614dca6d4] * source/Lib/TLibEncoder/TEncSbac.cpp: improvement by replace SHIFT to MASK_AND [33617683915d] * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibEncoder/TEncSbac.cpp: optimize: replace g_groupIdx[] by getGroupIdx() [b39d26118f09] * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h: reduce g_minInGroup from uint32_t to uint8_t [f09130afa3dd] * source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp: improvement TEncBinCABAC::writeOut by mask operator and local variant [88c66aece128] * source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp: improvement TEncBinCABAC::encodeBin by temporary variant and reduce AND operator [5c5cb411263e] 2014-03-24 Steve Borho * source/x265.cpp: cli: fix missing reference to superfast preset [aa08b7f2d420] 2014-03-21 Steve Borho * source/Lib/TLibCommon/TComTrQuant.cpp: TComTrQuant: nits (no change) [fdd7c6168cf4] * source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp: Merge with stable [07670cfdc215] 2014-03-21 Aarthi Thirumalai * source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp: vbv: fix race condition in processRowEncoder, store row qp directly in m_pic->m_rowDiagQp. [21eb4a43e02f] 2014-03-18 Min Chen * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComTrQuant.cpp: use mask operator to avoid branch [79b76dcaacd8] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: replace parameters (oneCtx, absCtx) by pointer m_estBitsSbac->.. [da5f379974c0] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: optimize: rewrite TComTrQuant::xGetCodedLevel [190f1b500219] 2014-03-20 Steve Borho * source/encoder/encoder.cpp: encoder: auto-disable weightp with 4:4:4 inputs, until it is fixed [fe3fcd9838c0] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: validate unidirectional MVPs prior to trying MV0 bidir (closes #34) This should fix some rare non-determinism as well as prevent the crash seen in issue #34. [CHANGES OUTPUTS] [e06f2a068622] * source/x265.pc.in: pkgconfig: allow user-supplied lib folder (closes #40) [8830c8bf15cb] 2014-03-19 Steve Borho * source/CMakeLists.txt, source/common/common.h, source/common/param.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/x265.cpp, source/x265.h: add experimental support for interlaced content (field encoding) (refs #15) * adds param.interlaceMode * removes VUI params that are now handled automatically * adds --no-interlace --interlace=tff|bff|prog|false CLI options * signals interlace source flag, clears progressive source flag This initial implementation requires the user to provide fields (half-height) in the correct temporal order; so not very useful for exisitng Y4M or YUV interlaced input files. When interlacing is enabled, the encoder emits PictureTiming SEI messages that indicate top or bottom field for the decoder. [e35c8c03ee9f] 2014-03-20 Aarthi Thirumalai * source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp: vbv: fix race condition in processRowEncoder, store row qp directly in m_pic->m_rowDiagQp. [5638c2311653] 2014-03-19 Deepthi Nandakumar * source/Lib/TLibEncoder/TEncCu.cpp: TEncCU: more QP cleanup for subCUs, inter modes. [27e0620327e5] 2014-03-19 Steve Borho * source/encoder/motion.cpp: motion: add missing parens in COST_MV() macro (fixes #41) [221d8aee9aa1] * source/encoder/motion.cpp: motion: UMH fix to match x264 behavior [fcb916ec982f] * source/input/yuv.cpp, source/input/yuv.h: yuv: use ThreadSafeInteger to manage ring buffer [96d1d690d2ab] * source/encoder/api.cpp, source/encoder/encoder.cpp: encoder: keep copy of input parameters (refs #43) We do not want to allow the user to change the param used by the encoder during the encode, nor do we want to suffer from cleanup ordering issues. We can't crash if the user released the param struct they allocated prior to closing the encoder [56a382eb1b72] * source/input/y4m.cpp, source/input/y4m.h: y4m: use ThreadSafeInteger to manage ring buffer [bbf6010764be] 2014-03-19 Gopu Govindaswamy * source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp: TEncBinCoderCABAC: fix MingGW build "declaration of 'byte' shadows a global declaration" [7bb421429129] 2014-03-19 Steve Borho * source/CMakeLists.txt: cmake: tabs to spaces [459c96998a62] * source/CMakeLists.txt: cmake: pkgconfig file must be installed in user-specified lib folder (refs #40) [ab9c23ebb527] * source/common/threading.h, source/encoder/framefilter.cpp: thread: add an incr() method to ThreadSafeInteger to avoid redundant locks [1b57d57ff2d9] 2014-03-19 Deepthi Nandakumar * source/Lib/TLibCommon/TComDataCU.cpp: TEncCU: further refine qp offsets [148553629f2a] * source/Lib/TLibEncoder/TEncCu.cpp: TEncCU: all SUbCUs will now copy QP array directly from parent CU, instead of resetting to qp(0). [648db5e86622] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h: TComDataCU: add QP-independent initSubCU [de4eb4d4bd01] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h: TComDataCU: add QP-independent initEstData [d566947b5493] 2014-03-18 Steve Borho * source/CMakeLists.txt: cmake: icpc is unable to link cli to shared lib [f58d9c3840a3] * source/CMakeLists.txt: cmake: fix MinGW build by forcing Vista as minimum target O/S (fixes #44) This removes the WINXP_SUPPORT option; XP cannot be supported until someone contributes a version of ThreadSafeInteger that is functional on XP [45af76338c8e] 2014-03-19 Deepthi Nandakumar * source/Lib/TLibCommon/TComDataCU.cpp, source/encoder/frameencoder.cpp: TComDataCU: QP for a CU always stored in TComDataCU::m_qp. [591bceb1b87a] 2014-03-18 Deepthi Nandakumar * source/Lib/TLibEncoder/TEncSearch.cpp: intraPred: remove qp resets [d8d41f4cf354] * source/encoder/frameencoder.cpp: frameencoder: clean up slice qp clipping [9167d2441670] 2014-03-18 Steve Borho * source/CMakeLists.txt: cmake: remove /Oi build flag for Visual C++ builds This flag was actually never necessary for use of SIMD intrinsics, but it was forcing VC to use intrinsic versions of math functions, and for some versions of VC this caused odd stack corruption in Win32 debug builds. https://connect.microsoft.com/VisualStudio/feedback/details/776885 /possible-bug-in-visual-studio-2012-c-compiler-related-to-intrinsic- math-functions [2a63de6cbb11] * source/CMakeLists.txt: cmake: make lib and bin install folders user configurable (closes #40) [a02a4ba9629e] * source/cmake/cmake_uninstall.cmake.in: cmake: fix uninstall target warnings from shell quote escaping issues [6a77b52eddcb] * source/CMakeLists.txt: cmake: link cli app to shared library on POSIX systems (closes #37) If you want the CLI to link against the static library on POSIX, just disable the generation of the shared library. [f91b930aea7e] * source/x265.h: api: declare x265_cli_csps as static const (closes #39) Fixes link errors when x265.h is included by multiple C files. [dc700298419d] 2014-03-18 Deepthi Nandakumar * source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/encoder.cpp: encoder, sbac, quant: use only macro QP_BD_OFFSET, remove unnecessary get methods [4c8ea265d55e] * source/encoder/encoder.cpp: sps: reuse encoder macro QP_BD_OFFSET [551956198184] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/frameencoder.cpp: frameencoder: clean up qp clipping [2952312a52e5] 2014-03-18 Steve Borho * source/encoder/encoder.cpp: encoder: fix for VERBOSE_RATE (leftover HM feature) (closes #42) [0ac7e8729d90] 2014-03-18 Deepthi Nandakumar * source/Lib/TLibEncoder/TEncSearch.cpp: encodeResandCalcInterCU: cleanup, no logic change [32c9e30aee7a] 2014-03-16 Satoshi Nakagawa * source/Lib/TLibCommon/TComTrQuant.cpp: DC only for HIGH_BIT_DEPTH [7b86d42683be] 2014-03-17 Min Chen * source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h: optimize: rewrite TEncBinCABAC::encodeBin [3bbcf9f8a701] 2014-03-17 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp: cleanup m_pattern [d600c8f8f036] 2014-03-16 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.h: cleanup unused m_mvField{A,B,C} [7dbae9022757] 2014-03-17 Steve Borho * source/encoder/encoder.h: encoder: cleanup nits [6627c821ca1f] * source/input/y4m.cpp: y4m: fix copy-paste bug in range checks [c688c11a0f12] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/common/threading.h, source/encoder/dpb.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp: threading: introduce ThreadSafeInteger class This class uses a condition variable to implement a producer/consumer access protocol with a single writer and multiple readers for safe multi-core synchronization [c0155c7bb6ca] 2014-03-18 Deepthi Nandakumar * source/Lib/TLibEncoder/TEncCu.cpp: TEncCU: fix previous bad patch import [8dbcfae4dffc] 2014-03-17 Deepthi Nandakumar * source/Lib/TLibEncoder/TEncCu.h: TEncCU: cleanup [cf92f28e5f93] 2014-03-17 Steve Borho * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp: Merge with stable [8d5deb7cafd8] 2014-03-16 Steve Borho * source/Lib/TLibCommon/TComSlice.h: TComSlice: nits [e7e150e4166d] 2014-03-14 Min Chen * source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h: optimize: rewrite TEncSbac::xWriteCoefRemainExGolomb [b2617cb09a1a] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSbac.cpp: optimize: improvement TComTrQuant::getSigCtxInc, avoid shift by mask [9e9bdc0dd2c5] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: optimize: rewrite TComTrQuant::xGetICRateCost [b8460fba2783] * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/common/threading.h: optimize: rewrite TComTrQuant::xGetICRate [b6954c4f480f] 2014-03-13 Deepthi Nandakumar * source/Lib/TLibEncoder/TEncCu.cpp: encode: avoid repetitive statements; no logic change [c1ecc3eb288d] * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp: compress/TEncCU: no reason why mode decision should reset the dqp flags. [6c64fbd96968] * source/encoder/encoder.cpp: encoder: Adding a TODO comment on the final goal. [b7e392e2b720] * source/encoder/encoder.cpp: vbv: set DQP as true if VBV is enabled (and AQ disabled). Unless this is set, the different QP's for each CU wont be encoded. This worked thankfully until now, since VBV was always used at high quality (AQ on) settings. [b82c87d0a896] * source/Lib/TLibEncoder/TEncCu.cpp: TEncCU: set dqpflag as true in the CU encoder if aqmode enabled [d72b7a5c8176] 2014-03-17 Steve Borho * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp: prevent deadlocks from frame dependencies on Linux [eba8844609f2] 2014-03-14 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: mvpIdx shares storage with mergeIdx, do not set for merge CUs [ba3ddc1848ff] 2014-03-14 Wenju He * source/Lib/TLibEncoder/TEncCu.cpp: TEncCu: initialize variables, handle malloc failures more cleanly [93ea767e7df0] 2014-03-14 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm, source/common/x86/dct8.h, source/test/mbdstharness.cpp: asm: 8bpp and 10bpp code for idct8x8 module [a4cb4fbff864] 2014-03-14 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/sad16-a.asm: added asm primitives for 10bpp sad functions [f36c9130de66] 2014-03-14 Steve Borho * source/encoder/frameencoder.cpp: Merge with stable [d5a4296dbfe7] 2014-03-14 Santhoshini Sekar * source/encoder/frameencoder.cpp: vbv: bugfix-calculate intraCuCostPerRow for vbv [394481c40cf9] 2014-03-14 Deepthi Nandakumar * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: init best AMVP candidate to zero. [ed48f84e541b] 2014-03-13 Steve Borho * source/encoder/motion.cpp: motion: remove unused file static array [7b5699e6bb75] * source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: remove redundant temp buffer TComPrediction (which TEncSearch derives from) already has m_predTempYuv [bb1ecd4f154d] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: keep merge data together in a struct This is for clarity, convenience, and to avoid some redundant work [ebf86c054d05] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: combine motion candidate search into AMVP search loop [32eaed85f7c0] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: inline MVP selection from AMVP candidates [81911e5df59c] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup xGetBlkBits [dc4af8a48dc8] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: inline xRestrictBipredMergeCand [80952375aff1] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: inline xGetTemplateCost() [387471b8ec63] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: be pedantic about setting cu fields [CHANGES OUTPUTS] It is somewhat unfortunate that this changes outputs, it means I had introduced a bug in an earlier commit [ebb3a25a7ad8] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: recombine merge-only path, now it can be accomplished with continue [879151f65962] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: remove redundant EMMS instrutions predInterSearch uses no float operations, so a single EMMS at the end is sufficient [675837ac633f] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: merge xGetInterPredictionError into xMergeEstimation [3a2f801dd535] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: refactor predInterSearch to avoid redundant work [a166b8d0a43e] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: switch xGetInterPredictionError() to use SATD [CHANGES OUTPUTS] predInterSearch() was having to remeasure the unidir/bidir prediction just because it wanted to measure merge with sa8d. By switching to satd, a number of further simplifications can be made. [ea5f4ab96610] * source/Lib/TLibEncoder/TEncSearch.cpp: Backed out changeset: 524fdbaed8d0 bits0 and bits1 include list[N].bits and thus they did include the list selection bit costs. [716dc1c8391a] 2014-03-13 Satoshi Nakagawa * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/shortyuv.cpp, source/common/shortyuv.h, source/encoder/compress.cpp: remove unused trUnitIdx from subtract() and addClip() [deb3d531790f] 2014-03-13 Deepthi Nandakumar * source/encoder/frameencoder.cpp: frameencoder: set QP to all parts of CU. No logic change. [665355c7e4d9] 2014-03-12 Min Chen * source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h: cleanup: remove c++ ref parameter on xWriteCoefRemainExGolomb [47edf909f518] 2014-03-12 Steve Borho * source/Lib/TLibCommon/TComPicYuv.cpp: TComPicYuv: disambiguate variable names Now with 75% less insanity! [5328eec59554] 2014-03-12 Min Chen * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSbac.cpp: optimize: reduce memory and improvement performance by replace sigCoeffGroupFlag[] to sigCoeffGroupFlag64 [68601cdea577] * source/Lib/TLibEncoder/TEncSbac.cpp: optimize: simplify operators on loop sigCoeffGroupFlag [d3e218ecc33f] 2014-03-12 Steve Borho * source/Lib/TLibCommon/TypeDef.h: TypeDef: explicit 32bit type for TCoeff [892b8325ed6c] * source/Lib/TLibCommon/TypeDef.h: TypeDef: UChar to uint8_t [661f6a49b956] * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h: TComRom: UChar to uint8_t [f88f6543ca26] 2014-03-12 Min Chen * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h: optimize: use UChar on g_convertToBit to avoid signed extend [41ea3d34f224] * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncSbac.cpp: optimize: reduce scan table size by uint32_t -> uint16_t [aedad0264282] 2014-03-12 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: replace UChar with uint8_t [999e3120deda] * source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: nit [9e554cec74ab] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: use HEVC MVP candidates as motion candidates [CHANGES OUTPUTS] [99441b4af293] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp: TEncSearch: remove unused adaptive search range array [87ad1232188f] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: MV0 bidir bitcost not based on list costs, so no need to remove them [524fdbaed8d0] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: refactor predInterSearch to use simple structure This removes the need for keep every possible MVP and MVP idx around, and it hopefully makes the code a lot more readable. [7c8b9445bec6] 2014-03-12 Deepthi Nandakumar * Merge [4fdcea7426f1] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibEncoder/TEncCu.cpp: TComDataCU: cleanup [cc3d77015d1e] * source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h: encodeQP: cleanup [94d3dfe14558] 2014-03-12 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: initialize MotionEstimate function pointers before merge estimation [8a69cfea0304] 2014-03-11 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/common.h, source/encoder/api.cpp: common: remove mostly unused cycle count macros [e4cf59adfb84] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: break ties in favor of uni-directional MC [CHANGES OUTPUTS] If bidir has the same cost as unidir, pick the unidir prediction. Bidir will average the two directional prediction and thus tends to generate blurred predictions. Uni-directional prediction is better when costs are the equal. [c24eda418b5c] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/common/common.cpp, source/common/common.h, source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: Merge with stable [bbd35c26c4e4] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: dehungarians and other nits [83d649aaf7ce] 2014-03-10 Satoshi Nakagawa * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncSbac.cpp: revert getSigCtxInc() to 0.7, this version was faster [87638be9bc6b] 2014-03-11 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: vbv: bug fix - down shifting of satdcost for 10 bit depth. [c06ee069df5e] * source/common/common.cpp, source/common/common.h: rc: move qp2qscale and qscale2qp function to common [561adb9b21f6] * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: vbv: bug fixes - move row Predictors, frameSizeEstimated to Frame Encoder scope. Improves quality and controls buffer underflow when Frame parallelism is enabled. [1b84d0748a08] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/encoder/ratecontrol.cpp: vbv: use row wise IntraSatdCost to predict vbv intra frame bits. If P/B slice is predominatly intra coded, use intra SatdCost to predict the row bits in vbv. [380c4bf5ff75] * source/encoder/ratecontrol.cpp: vbv: bug fix - down shifting of satdcost for 10 bit depth. [7832cb8323dd] 2014-03-10 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: fix some comments [e40524d079b4] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: reorder code for more clarity [504c81462e30] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: host bMergeOnly logic to the top of predInterSearch This makes merge-only easier to follow and more efficient, and makes the full search code easier to read and easier to maintain. This should have no change in outputs [c3156f2b7c97] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: localize scope of bidir MV and ref idx arrays [1f1aa83d20ed] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: hoist bMergeOnly check to only be performed once [0574550353e6] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: remove list1 hacks [0d4182301313] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: localize scope, rename, and remove defaults for listSelBits array [85e8a21a261b] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: remove mvTemp[][] array, just use outmv stack var [d546b400d156] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: localize scope and rename listMv [f91dc85070fe] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: localize scope of mvzero [de73109c06d5] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: localize scope and rename listRefIdx [dc977fbf3ed1] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: localize scope of costTemp [132393836a2e] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: simplify and localize scope of bitstemp [c095646a2ef0] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: rename bits to listbits[] for clarity [7495c029daf6] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: replace costbi with listCost[2] [12841ab3ce3f] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: remove useless distBiP argument from xEstimateMvPredAMVP [621f9c82eb14] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanups in predInterSearch(), no logic change [275edc95de11] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/weightPrediction.cpp: weight: match x264 weight analysis and logging [OUTPUT CHANGE] This only weights the first reference, and will only weight chroma if luma was weighted. Further work remains, we must add an unweighted dup of the weighted reference into the P slice's L0 reference list. [f3988b70f4aa] 2014-03-10 Murugan Vairavel * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/shortyuv.cpp, source/common/shortyuv.h: shortyuv: integrated asm primitives for blockcopy [1417ba917211] 2014-03-11 Aarthi Thirumalai * source/common/common.cpp, source/common/common.h, source/encoder/ratecontrol.cpp: rc: move qp2qscale and qscale2qp function to common [5fb584576fc9] * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: vbv: bug fixes - move row Predictors, frameSizeEstimated to Frame Encoder scope. Improves quality and controls buffer underflow when Frame parallelism is enabled. [925b4b3a01c0] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/encoder/ratecontrol.cpp: vbv: use row wise IntraSatdCost to predict vbv intra frame bits. If P/B slice is predominatly intra coded, use intra SatdCost to predict the row bits in vbv. [092bc3753097] 2014-03-10 Gopu Govindaswamy * source/Lib/TLibCommon/TComMotionInfo.h: tcommotion: cleanup removed unused methods [37a33cbf5b57] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h: tcommotion: use Checked malloc to allocate memory [728df17d1e5f] * source/Lib/TLibEncoder/TEncSbac.cpp: tencsbac: remove unused SCALING_LIST_OUTPUT_RESULT macro [9c57962437b6] * source/Lib/TLibEncoder/TEncSbac.cpp: tencsbac: subLayerOrderingInfoPresentFlag always true, the if() loop will never executed vps_sub_layer_ordering_info_present_flag is always set to true, not required to have extra storage for this, removed subLayerOrderingInfoPresentFlag [752bdc470b06] 2014-03-10 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp: cleanup unused intra !bLumaOnly path [ee6e6fd867eb] 2014-03-10 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: fix bMergeOnly override check, did not intend to change behavior [505d4a83704a] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: fix gcc warning, remove redundant assignemnt [f76a92a2b00b] 2014-03-09 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: rename bUseMRG to bMergeOnly for clarity [50d7910ddd61] * source/Lib/TLibEncoder/TEncCu.cpp: TEncCu: disable TMVP range check if frame threading disabled, code style nits [82a66870fc8b] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp: TEncSearch: remove default argument from encodeResAndCalcRdInterCU() [74d4709422f6] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp: TEncSearch: remove confusing default arguments from predInterSearch() And completely remove bLuma which was always true [f8926fb14c42] 2014-03-08 Steve Borho * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp: me: skip TMVP merge candidates that are beyond vertical search range Because of frame parallelism, pixels more than search range below coincident may not be available in references. Sometimes these merge candidates happened to be the best cost, resulting in hash mismatches. Because xMergeEstimation() can now return with no valid merge modes, the caller must deal with the potential of no merge mode. predInterSearch() is sometimes called to only measure merge modes (skipping ME for AMP partitions for some presets), so now predInterSearch() can also possibly exit without generating a valid prediction. [f29f0ba91dfa] 2014-03-09 Steve Borho * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp: TEncCu: nits, no logic change [1ff43004128f] 2014-03-07 David T Yuen * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h, source/encoder/slicetype.cpp, source/encoder/slicetype.h: Replaced Encoder* with x265_param* as member of several classes Replaced Encoder* with x265_param* as member of TEncCu, framefilter, ratecontrol, CostEstimate and Lookahead Added m_CUTransquantBypassFlagValue to TEncCu since it's part of Encoder and not x265_param framefilter's processRow and processRowPost needed Encoder* to run Encoder::signalReconRowCompleted [0bd2465e3d4a] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/common/lowres.cpp, source/common/lowres.h, source/encoder/dpb.cpp, source/encoder/dpb.h, source/encoder/encoder.cpp, source/encoder/slicetype.cpp: Removed Encoder* as member of DPB and replaced it with field m_bOpenGOP Also added int bframes to Lowres since only param->bframes is passed to its methods thus eliminating one of DPB's uses of Encoder* [13e2c2fe091d] 2014-03-08 Satoshi Nakagawa * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/common/pixel.cpp, source/common/primitives.h, source/common/x86/pixel-util8.asm, source/test/pixelharness.cpp: cleanup m_sharedPredTransformSkip[] NEW_CALCRECON macro is TODO mark for asm experts, to optimize register assignment. [d3bfe4152e67] 2014-03-07 Steve Borho * source/encoder/encoder.cpp: Merge with stable [93861c42b879] * source/encoder/encoder.cpp: encoder: back-port VUI content fixes from default branch Take values from param structure, which is where these fields are actually configured. [b7e2854cf1c4] 2014-03-07 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: asm: added code for blockcopy_ss and cleaned up asm primitives of blockcopy [2bf727dca27d] 2014-03-06 Steve Borho * source/Lib/TLibEncoder/TEncSbac.cpp: TEncSBac: remove unused define [33b67a53b6de] * source/Lib/TLibCommon/TComSlice.h: TComSlice: nits [d049b579ff18] 2014-03-06 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h: share m_mvpIdx[0] as m_mergeIdx [51f8673f8b35] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/param.cpp, source/encoder/compress.cpp, source/encoder/cturow.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/encoder/reference.cpp: CU is square unify TComDataCU::m_width and m_height to m_cuSize [5c502cce2a1f] 2014-03-06 Steve Borho * source/common/param.cpp: param: print vbv-init as a float [7209562f4cc8] 2014-03-06 Murugan Vairavel * source/test/pixelharness.cpp, source/test/pixelharness.h: Testbench code for blockcopy_ss [d46917d3ac2d] * source/common/pixel.cpp, source/common/primitives.h: C primitive for blockcopy_ss [c078ccf260b2] 2014-03-06 Yuvaraj Venkatesh * source/common/x86/intrapred16.asm, source/common/x86/intrapred8.asm, source/common/x86/ipfilter16.asm, source/common/x86/ipfilter8.asm, source/common/x86/mc-a.asm, source/common/x86/pixel-util8.asm, source/common/x86/pixeladd8.asm, source/common/x86/sad-a.asm, source/common/x86/ssd-a.asm: cleanup the labels in assembly code with trailing colon [c97fc1244d0b] 2014-03-06 Steve Borho * source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComBitStream.h, source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/NALwrite.cpp, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/common.cpp, source/common/common.h, source/common/cpu.cpp, source/common/cpu.h, source/common/dct.cpp, source/common/intrapred.cpp, source/common/ipfilter.cpp, source/common/md5.cpp, source/common/md5.h, source/common/mv.h, source/common/param.cpp, source/common/primitives.cpp, source/common/primitives.h, source/common/shortyuv.cpp, source/common/threading.h, source/common/threadpool.cpp, source/common/threadpool.h, source/common/vec/blockcopy-sse3.cpp, source/common/vec/dct- sse3.cpp, source/common/vec/dct-sse41.cpp, source/common/vec/dct- ssse3.cpp, source/common/wavefront.cpp, source/common/wavefront.h, source/encoder/bitcost.cpp, source/encoder/bitcost.h, source/encoder/compress.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/motion.cpp, source/encoder/ratecontrol.cpp, source/input/input.cpp, source/input/y4m.cpp, source/input/yuv.cpp, source/output/output.cpp, source/output/y4m.cpp, source/output/yuv.cpp, source/output/yuv.h, source/test/intrapredharness.cpp, source/test/ipfilterharness.cpp, source/test/mbdstharness.cpp, source/test/pixelharness.cpp, source/test/testbench.cpp, source/test/testharness.h, source/test/testpool.cpp, source/x265.cpp: common: consolidate system header includes into common.h Hopefully this will prevent random compile failures in the future from missed cmath, climits, or memory.h includes. [ef83ccb3d34d] * source/common/param.cpp: param: spelling nit [102ad4518b1c] * source/common/param.cpp, source/x265.cpp: clarify valid values for --vbv-init [889edfd2c4c3] 2014-03-05 Steve Borho * source/Lib/TLibCommon/TComSlice.cpp: TComSlice: replace magic numbers with appropriate macro [a1d82df4d45e] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h: TComSlice: remove unused checkNumPocTotalCurr argument to setRefPicList() [a35934b41412] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h: TComSlice: remove unused checkCRA function [f1f5303613fc] * source/encoder/dpb.cpp: dpb: remove commented code [1b8ebfd190a4] * source/common/param.cpp, source/x265.cpp, source/x265.h: cli: add --crf-max option for param.rc.rfConstantMax [ba92d0695116] * source/x265.cpp: cli: show compiled assembly status and detected SIMD arches on x265 --version [37309f09aaa1] * source/x265.cpp: cli: invalid preset or tune is a non-recoverabe error [228c0004d401] * source/x265.cpp: cli: show condensed error message if no arguments are given [105fe9b2d189] * source/x265.cpp: cli: reorder help for better clarity [64e76dcaf172] * source/x265.cpp: cli: add --no- options to some VUI fields This is a little pedantic since they default to false and likely won't change at any time. [3ffbee76c1f2] * source/x265.cpp: cli: fix AQ CLI help. 0, 1, and 2 are valid options [bbaab3feef92] * source/x265.cpp: cli: improve help text by describing command argument data types [f1dd1c83f3c6] * source/x265.cpp: cli: improve CLI help for --overscan [f38f72976bcd] * source/common/param.cpp, source/common/param.h, source/x265.cpp: cli: change --log option to --log-level, allow strings or ints getopt allows partial matches, so --log N will still work like it always has. x265_parse_param() will accept "log" or "log-level" Since the first entry in the name list corresponds to -1, the string list is not placed in x265.h, where all indices are 0 based. [50a04c4cf0ff] * source/x265.cpp: cli: move "fps" between resolution and frame rate, same as input file line [01547efd182d] * source/common/param.cpp: param: add VBV info to log data [081efde65d54] * source/CMakeLists.txt: cmake: use x86 alias list rather than repeated string compares (nit) [e7d3835fe752] 2014-03-05 Murugan Vairavel * source/common/x86/asm-primitives.cpp: primitives: cleaned up asm_primitives of intra_pred_ang [3272416ac9b0] 2014-03-05 Steve Borho * source/encoder/encoder.cpp, source/output/y4m.cpp, source/output/yuv.cpp: encoder: assign internal colorspce to output pic.colorSpace [992b1b9e5cff] * source/CMakeLists.txt, source/Lib/TLibCommon/TComPicYuv.cpp, source/encoder/encoder.cpp, source/input/y4m.cpp, source/input/yuv.cpp, source/output/y4m.cpp, source/output/yuv.cpp, source/x265.h: api: change meaning of pic.stride to be in bytes rather than pixels (fixes #35) x264's pic.plane pointer is a uint8_t* so their input strides are byte based, ffmpeg is currently assuming our input strides are byte based. This commit will make that assumption correct. This fixes non-4:2:0 YUV file read at the same time, and bumps X265_BUIDLD [eadec14402d6] * source/CMakeLists.txt: cmake: add i686 to x86 alias list (closes #33) [6d55869ed5e2] 2014-03-05 Murugan Vairavel * source/common/x86/asm-primitives.cpp: asm: enable 10bit chroma_vpp and chroma_vps interpolation filters [c40c379f283c] 2014-03-04 David T Yuen * source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/framefilter.cpp: Removed Encoder::m_csp and replaced it with x265_param::internalCsp [91936aab5ae9] 2014-03-04 Steve Borho * source/encoder/weightPrediction.cpp: weight: ensure chroma weights are initialized when skipped [5cad3652bee8] * source/common/primitives.cpp: primitives: prevent multiple setup calls from reiniting primitive table We don't want the function table to change in the middle of an encode. Improve logging so that --asm which does not result in any bitmap matches still reports "none!" [1a3d37f0a072] * source/encoder/weightPrediction.cpp: weight: simplify and remove redundant logic [92c2f95b230b] * source/encoder/weightPrediction.cpp: weight: do not attempt chroma weights if luma was not weighted [CHANGES OUTPUT] This heuristic seems to improve a number of clips, particularly when chroma distortion is not considered in mode decision. This could cause some odd colors to be encoded, particularly noticable with large blocks. [864ed3e0d82e] * source/encoder/reference.cpp, source/encoder/slicetype.cpp, source/encoder/weightPrediction.cpp: weight: use correct round value for denom 0 [CHANGES OUTPUT] The denom -without the intermediate bit-depth factor applied- must be compared with zero, else the output of weight_pp will not match the real output of pixel weighting. This was done wrong in two different ways in three different places [cc64612d8e5e] * source/CMakeLists.txt: cmake: bump X265_BUILD to 8, many API changes These changes should be mostly harmless, I don't expect many API users have used the VUI fields yet, so a recompile against the new x265.h should be sufficient. [1bd1e6dbce28] * source/CMakeLists.txt, source/dllmain.cpp: cmake: dllmain is no longer necessary since use of object libraries [6a6bf84ad146] * source/x265.cpp: cli: do not call x265_setup_primitives() from printVersion() It now leads to redundant console output and it was interfering with --asm command line arguent functionality [5fd56621f2fe] * source/common/param.cpp, source/encoder/api.cpp, source/x265.cpp, source/x265.h: api: move cpuid to x265_param, same as x264 [e0bdcfc9e20b] * source/common/common.cpp, source/common/common.h, source/encoder/encoder.cpp, source/x265.cpp, source/x265.h: api: move x265_ssim() to be an internal function, give a more descriptive name This function really shouldn't have been a public function, and it was never added to the exports list. [8e1c69c0d4f1] * source/common/param.cpp, source/encoder/encoder.cpp, source/x265.cpp, source/x265.h: api: move VUI settings into vui sub-struct of x265_param [3825b0059d6c] * source/encoder/CMakeLists.txt: cmake: TEncCfg.h is caput [58bbbdd0a699] 2014-03-03 David T Yuen * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/common/param.cpp, source/encoder/api.cpp, source/encoder/compress.cpp, source/encoder/cturow.cpp, source/encoder/dpb.cpp, source/encoder/dpb.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h, source/encoder/slicetype.cpp, source/encoder/slicetype.h, source/x265.cpp, source/x265.h: Merged TEncCfg into Encoder. A few VUI tweaks and fixes. [1020e2ac9890] 2014-03-04 Steve Borho * Merge with stable [31731a78d994] * .hgtags: Added tag 0.8 for changeset 527d03c56d68 [91ada5e78ee1] 2014-03-03 Steve Borho * source/CMakeLists.txt, source/common/CMakeLists.txt, source/common/param.cpp: cmake: detect strtok_r, use workaround when not present [3cbde0b893e3] * source/encoder/frameencoder.cpp, source/encoder/slicetype.cpp: Merge with stable [7fbecd22a0cd] 2014-03-03 Gopu Govindaswamy * source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/encoder/framefilter.cpp: tcomsao: only get method is unused, set lcuboundary is required references 742641e0f796 [62fe3f905981] * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h: tcomsao: replaced All Pel type into pixel type [f3125b431ee5] * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h: tcomsao: use X265_MALLOC and X265_FREE in create() and Pel replaced with pixel [459b108299e0] * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/encoder/framefilter.cpp: tcomsaq: remove unused get and set saolcuboundary methods [776983eda6ba] * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp: tencsao: Pel replaced with pixel type [0a2fcf8690b8] * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp: tencsao: new and delete replaced with X265_MALLOC and X265_FREE [02f953896795] * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h: tencsao: remove unused calcSaoStatsBlock [2de527d2826d] 2014-03-03 Steve Borho * source/Lib/TLibEncoder/TEncEntropy.cpp: TEncEntropy: fix gcc warnings [e34503ff6627] 2014-03-03 Satoshi Nakagawa * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSearch.cpp: residual coding unit is always square [684781cad358] 2014-03-03 Nabajit Deka * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: test bench : Modify chroma_p2s test function to handle csp. [eb7eb10568fb] * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm, source/common/x86/ipfilter8.h: asm : remove chroma_p2s_i444, can be replaced by luma_p2s [e686e589f3ca] 2014-03-04 Aarthi Thirumalai * source/encoder/frameencoder.cpp, source/encoder/slicetype.cpp: vbv: bug fixes in --no-cutree flow. Ignore intracosts in calculating satdcost per cu. [527d03c56d68] [0.8] 2014-03-03 Nabajit Deka * source/test/mbdstharness.cpp: test bench : fix for test bench failure, caused by redundant malloc. [6662df480e39] 2014-03-02 Steve Borho * source/common/shortyuv.cpp: shortyuv: use optimized primitives where available [288a83d7e289] * source/common/shortyuv.cpp, source/common/shortyuv.h: shortyuv: combine add/subtract methods together [ab05e3d951e1] * source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.h, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/common/shortyuv.cpp, source/common/shortyuv.h, source/encoder/compress.cpp: rename TShortYuv to ShortYuv [0352ee7f3c5a] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/common/shortyuv.cpp, source/common/shortyuv.h, source/encoder/cturow.cpp: use checked malloc in TShortYuv::create and TEncCu::create And replace unsigned int with uint32_t in TShortYuv.cpp [a9bbdfaf2a59] * source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibEncoder/TEncCu.h, source/common/CMakeLists.txt, source/common/TShortYUV.cpp, source/common/TShortYUV.h, source/common/shortyuv.cpp, source/common/shortyuv.h: rename TShortYUV.* to shortyuv.* [5f2d25407800] * source/common/param.cpp: param: ignore assignments within conditionals in param.cpp [54e2dcf770c4] * source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h: TComPattern: remove hungarian prefixes [5a7c6e8536ac] * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h: TComYuv: switch from Pel to pixel type [47a0575aad04] * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/cturow.cpp, source/encoder/cturow.h, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: used checked malloc in TComYuv and TEncSearch, cleanly catch malloc failure [f6ae34250453] * source/test/intrapredharness.cpp, source/test/ipfilterharness.cpp, source/test/mbdstharness.cpp, source/test/pixelharness.cpp: testbench: use CHECKED_MALLOC to cleanup init functions [d5269597c860] * source/common/param.cpp: param: MSVC build fixes [fad6fba7cf2c] 2014-03-01 Steve Borho * source/common/param.cpp, source/x265.cpp, source/x265.h: api: add a fastdecode tune option, improve tune and preset CLI help To match x264's tune names, removed "-" from zerolatency in x265.h but allowed either string to match internally. Same with fast- decode. [dc82d1805136] * source/test/testbench.cpp: testbench: improve CLI help and error handling, use parseCpuName [46a799d747ae] * source/common/primitives.cpp: primitves: update CPU name print logic from x264 [93ba16e4f140] * source/common/param.cpp, source/x265.cpp: param: fix handling of --no-scenecut within x265_param_parse(), add --no-b-adapt [fcbe9a361b5a] * source/common/common.h, source/common/param.cpp, source/common/param.h, source/common/primitives.cpp, source/x265.cpp: cli: replace --cpuid with --[no-]asm arguments The vector class library is long gone, so it is past-due to adopt x264's logic for specifying CPU architectures, or disabling ASM altogether. [26bd96a193d4] 2014-02-28 Satoshi Nakagawa * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp: copy m_origYuv[depth] from m_origYuv[0] [ac6edd2ffb65] 2014-03-02 Deepthi Nandakumar * source/encoder/weightPrediction.cpp: weightp: implicit cast warning on vc10-x86. Is lambda intended to be int? [4f2cbc5a981a] 2014-02-28 Praveen Tiwari * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/common/CMakeLists.txt, source/common/loopfilter.cpp, source/common/primitives.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/common/x86/loopfilter.asm, source/common/x86/loopfilter.h, source/test/pixelharness.cpp, source/test/pixelharness.h: asm: split SAO_EO_0 into separate primitive func added assembly code and testbench support added loopfilter.cpp, loopfilter.h, loopfilter.asm files [000f86d72337] 2014-02-28 Kavitha Sampath * source/common/CMakeLists.txt, source/common/bitstream.h, source/encoder/weightPrediction.cpp: weightp: use struct to cache data for reuse, refactor MC of reference planes * do not consider intra/mv cost during MC phase * unconditionally motion-compensate luma and chroma blocks * include slice header cost estimate in weight analysis * weightCost() needed different paths for luma, chroma, and chroma444 * pass a single stride to weightCost() [518313140b03] 2014-02-28 Steve Borho * source/common/param.cpp, source/encoder/encoder.cpp, source/x265.h: Merge with stable [5e9559d366b3] 2014-02-28 Gopu Govindaswamy * source/Lib/TLibCommon/TComPicYuv.cpp: tcompicyuv: initialize NULL to cu and bu offset buffers. [f6d079ad85bc] 2014-02-27 Steve Borho * source/common/common.cpp, source/common/param.cpp, source/encoder/encoder.cpp, source/encoder/weightPrediction.cpp, source/x265.h: api: make log-level 4 semi-official and expose in public API [994f046a8111] 2014-02-28 Satoshi Nakagawa * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSearch.cpp: square transform only [9b43c262124e] * source/common/x86/asm-primitives.cpp: asm: enable count_nonzero for HIGH_BIT_DEPTH [df831b319c08] 2014-02-27 Steve Borho * source/common/param.cpp: tune: ensure lookahead is disabled for zero-latency [61c752e11424] * source/common/primitives.cpp, source/common/x86/asm-primitives.cpp: asm: cleanup 444 chroma primitive setup, and other primitve reuse [8189f9e9a39f] * source/encoder/encoder.cpp, source/encoder/slicetype.cpp, source/encoder/slicetype.h: log: report consecutive B-frame histogram, as x264 does [b70a88e210f1] * source/common/common.h, source/x265.h: api: expose X265_BFRAME_MAX to the user [83859780b174] * Merge with stable [a892e66d5738] 2014-02-27 Sagar Kotecha * source/common/common.h, source/common/param.cpp, source/x265.cpp: param: add more validation checks to prevent encoder crashes [013589124615] 2014-02-27 Nabajit Deka * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter16.asm, source/common/x86/ipfilter8.h: asm: 10bpp code for vertical luma interpolation filters. [89a2d8780835] 2014-02-27 Aarthi Thirumalai * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: vbv: bug fixes to stop mid frame qp adjustments to increase erratically. maintain bufferFill for each FrameEncoder context and use that in rowWise qp adjustments for vbv. also fixes bugs in predicting row wise bits from satd costs. [875566aed8b1] 2014-02-27 Steve Borho * Merge with stable [8a84c10e5116] * source/common/threading.h: threading: on linux gettimeofday() requires , UINT32_MAX is C only [bbe3f479c41f] 2014-02-27 Min Chen * source/CMakeLists.txt: fix Issue #30, disable stack execute on gcc [8e8328cad1be] * source/common/x86/ipfilter16.asm: fix typo problem on HIGH_BIT_DEPTH with non-PIC mode [52a47362c5c3] 2014-02-27 Praveen Tiwari * source/common/x86/intrapred8.asm: all_angs_pred_32x32, asm code improvement [63aadc802f18] 2014-02-27 Deepthi Nandakumar * Merge from stable [b92f341688c4] * source/encoder/ratecontrol.cpp: ratecontrol: fix bitrate issue in 10-bit CRF mode [2fb85daef8af] 2014-02-27 Steve Borho * source/Lib/TLibEncoder/WeightPredAnalysis.cpp, source/Lib/TLibEncoder/WeightPredAnalysis.h, source/common/vec /intra-sse41.cpp, source/common/vec/intra-ssse3.cpp, source/common/vec/ipfilter-sse41.cpp, source/encoder/weightPrediction.h: Merge with default (prep for 0.8) [0a6dd816d2e2] 2014-02-26 Steve Borho * source/common/threading.h: threading: add a timedWait() method to Event class [c9a0802b64ac] * source/common/threading.cpp, source/common/threading.h: threading: use a pthread conditional variable instead of semaphore This allows more control over the exact behavior, removes the global nature of the semaphore on some systems, and will allow the addition of a timed wait to the Event class. It appears to resolve the deadlocks reproduced in the pool test on Mac OS X; hopefully on Linux as well. [8ac1e112f3ea] 2014-02-26 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter16.asm, source/common/x86/ipfilter8.h, source/test/ipfilterharness.cpp: asm: 10bpp code for chroma interpolation filters [d317026aa0ad] 2014-02-26 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred16.asm: asm: 16bpp assembly code for intra_pred_ang16 - all modes [41bc98a92b49] 2014-02-07 Steve Borho * source/test/CMakeLists.txt, source/test/testpool.cpp: reintroduce thread pool unit test It is reproducing a deadlock on POSIX roughly once per 1M runs [d36764800215] 2014-02-26 Sagar Kotecha * source/common/param.cpp: param: add some more validation checks [fa23612e2850] 2014-02-26 Santhoshini Sekar * source/encoder/frameencoder.cpp: rc:bug fix-store average Qp as decided by AQ only if aq is enabled [9b0c9b76d902] 2014-02-26 Praveen Tiwari * source/common/x86/intrapred8.asm: all_angs_pred_32x32, asm code improvement [0b9c77b41599] 2014-02-26 Satoshi Nakagawa * source/encoder/slicetype.cpp: fix: uninitialized variable [483e699a9527] 2014-02-26 Steve Borho * source/encoder/encoder.cpp: encoder: tweak slice stats to more closely match x264 outputs [46207f6f5c8c] 2014-02-25 Steve Borho * source/common/threading.cpp, source/common/threading.h: threading: use atomic increment when building semaphore object Required moving atomic defines to the top of threading.h, removing the need for potentially redundant includes of unistd.h [948626475a46] 2014-02-26 Aarthi Thirumalai * source/encoder/encoder.cpp: encoder: log avg Qp decided by AQ for each slice type [b47fc23c75df] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp: TComPic: store average Qp (as decided by AQ) used per frame. [298133a7bd53] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/ratecontrol.cpp: remove redundant state m_avgQpRc from TComSlice. This has been moved to TComPic already. [3bfd7b2a54ed] * source/encoder/slicetype.cpp: lookahead: bug fix for b-adapt 0 cost estimates (closes #26) don't overwrite lastNonB reference with current frame, 'lastNonB' state was already replaced with current frame's lowres at this point. it mostly affected b-adapt=0 but could have affected any of the modes if they had not already estimated this particular P frame cost before this point. [9eea995a2347] 2014-02-23 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp: reduce unnecessary CU data set/clear (no neighbor access) mvd, mvpIdx, mergeIndex [f37c84ffe293] 2014-02-24 Satoshi Nakagawa * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp: refine MC - cleanup unnecessary code paths, reduce copies for non-WP uni-pred [5241a8efb684] 2014-02-25 Nabajit Deka * source/common/x86/asm-primitives.cpp, source/test/ipfilterharness.cpp: asm: enable 10bit asm filter functions, fix test harness [0b63fa220e19] * source/common/CMakeLists.txt, source/common/x86/const-a.asm, source/common/x86/ipfilter16.asm: asm: add new file for 10bpp asm filter functions [a8e822a95fad] 2014-02-25 Steve Borho * source/encoder/api.cpp: api: check for NULL param pointer in x265_encoder_open [b7a1a636b77b] 2014-02-25 Sagar Kotecha * source/common/common.cpp, source/encoder/CMakeLists.txt, source/encoder/api.cpp, source/encoder/encoder.cpp: move public encoder and picture functions to api.cpp [5fde224bab34] 2014-02-25 Steve Borho * source/common/CMakeLists.txt, source/common/vec/intra-sse41.cpp, source/common/vec/vec-primitives.cpp: vec: remove intra-sse41.cpp, full asm coverage for intra prediction [b456566376ad] 2014-02-25 Praveen Tiwari * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: all_angs_pred_32x32, asm code [ea1c03303b16] 2014-02-25 Steve Borho * source/input/y4m.cpp, source/input/y4m.h, source/input/yuv.cpp, source/x265.cpp: input: workaround MSVC runtime bugs in older compilers (fixes #27) Prior to VC11, ifstream::pos_type could not handle 64bit sizes correctly [a4c676d671d6] * source/encoder/weightPrediction.cpp: weight: bump weight analysis logging to --log 4, reduce spew [1c467346ece8] * source/encoder/encoder.cpp, source/encoder/encoder.h: encoder: log the average QP used per frame, per I slices, P, and B slices [a41b6a5491ed] * source/encoder/encoder.cpp: encoder: rename _param parameter to p for readability [cfc5647635e0] * source/test/mbdstharness.cpp: mbdstharness: nits [9b48a2847d97] * source/test/mbdstharness.cpp, source/test/pixelharness.cpp: testbench: remove redundant casts of X265_MALLOC() output [62da491b8b22] 2014-02-25 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: rc: store qp in TComPic::avgQpRc in CQP. [b86a5ccd3474] 2014-02-24 Steve Borho * source/common/param.cpp, source/common/param.h, source/input/input.cpp, source/input/input.h, source/input/y4m.cpp, source/input/y4m.h, source/input/yuv.cpp, source/input/yuv.h, source/x265.cpp: cli: refactor handling of input file parameters * allow y4m header to provide aspect ratio * allow user to override Y4M aspect ratio or frame rate * allow user to provide data possibly missing from Y4M header * do not clamp framesToBeEncoded to predicted file size (stop at EOF) [651c0bc9e280] * source/encoder/encoder.cpp: encoder: enable timing info in VPS [5e375c097de4] 2014-02-25 Dnyaneshwar G * source/common/x86/const-a.asm, source/common/x86/mc-a.asm, source/test/pixelharness.cpp, source/test/pixelharness.h: asm: fixed invalid testbench input for addAvg primitive, fixed addition overflow for some block sizes. [7d009bc2953b] 2014-02-24 David T Yuen * source/common/param.cpp, source/x265.cpp, source/x265.h: Updated x265_param_parse to use parseName & a few nit fixes [1f6311b0b2a7] 2014-02-25 Steve Borho * source/common/threading.h: threading: recover include of unistd.h within #if __GNUC__ section Fixes MinGW build [a36a669d09e8] 2014-02-24 Steve Borho * source/Lib/TLibCommon/TComSlice.h: TComSlice: nits [6214d2609ea8] * source/common/param.cpp: param: simplify checks of max ctu size, improve abort message [b8dab8ef744c] * source/common/threading.h: threading: include process id in name passed to sem_open() and sem_unlink() This should prevent race conditions between x265 processes spinning up on the same CPUs, and generally make name conflicts very rare. [1a93191f0c23] * source/x265.cpp: cli: remove undocumented and unimplemented --depth CLI option [18894c99e1a7] * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TypeDef.h, source/common/param.cpp, source/test/intrapredharness.cpp, source/test/mbdstharness.cpp, source/test/pixelharness.cpp, source/test/testbench.cpp: Remove g_bitDepth; internal bit depth is always known at compile time Simplify param->internalBitDepth checks, remove test bench hacks [e0af601defb0] 2014-02-24 Sagar Kotecha * source/common/CMakeLists.txt, source/common/common.cpp, source/common/common.h, source/common/param.cpp, source/common/param.h, source/encoder/encoder.cpp, source/x265.cpp: consolidate param functionality into param.cpp [6d584320108c] 2014-02-24 Aarthi Thirumalai * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: rc: implement abr reset for single pass ABR + VBV [ebaa34c8f651] * source/encoder/frameencoder.cpp: vbv: refactor, implement row wise qp updates only if vbv is enabled. [d0aea0cfd263] * source/encoder/ratecontrol.cpp: rc: bug fix - clip qp before setting into TComPic:m_avgQpRc. This fix resolves Encoder crash caused due to invalid qp being used in each CU. [acaed9dbaae2] 2014-02-20 Gopu Govindaswamy * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h: tcomrom: remove unused g_sigLastScan8x8 and g_sigLastScanCG32x32 variables [57ce7f0f4f4c] 2014-02-23 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: vbv: bug fix in clipQScale [80caa9f00d7c] 2014-02-22 Steve Borho * source/encoder/encoder.cpp: encoder: use more frame threads when WPP is disabled Use up to one frame thread per CPU, but cap the frame threads at half the number of CTU rows. Any more frame threads than that is generally counter- productive. [d1cd52bb3461] 2014-02-23 Steve Borho * source/common/common.cpp: common: c is a char pointer [07537439599b] 2014-02-24 Deepthi Nandakumar * source/Lib/TLibCommon/NAL.h: NAL: Define a default constructor for base class to prevent warning [6e7c2f5b7b22] * source/common/common.cpp: common: assignment inside conditional expression [39e2c8bda975] 2014-02-22 Steve Borho * source/common/threadpool.cpp, source/common/threadpool.h, source/encoder/encoder.cpp: encoder: use cpu count, rather than pool size, to auto-detect frame threads Normally the pool size is the same as the detected cpu count, but when WPP is disabled, the thread count is 1, and this was breaking auto-detection of frame threads. Now it will properly use -F4 on desktops when WPP is disabled. [734f106295df] * source/output/output.h, source/output/y4m.h, source/output/yuv.h, source/x265.cpp: cli: add a line of logging describing reconstructed image file [8ec8aba042cc] * source/Lib/TLibEncoder/TEncSbac.cpp: TEncSbac: nits [a640cde93d87] * source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h: TEncSbac: cleanup header [c61a1bf68c57] * source/Lib/TLibCommon/TComBitStream.cpp: TComBitstream: nits [7fb5a8e1465a] * source/Lib/TLibCommon/NAL.h, source/Lib/TLibEncoder/NALwrite.h: NAL: further simplifications [d8d61736f2fc] * source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComBitStream.h, source/Lib/TLibEncoder/NALwrite.cpp, source/Lib/TLibEncoder/NALwrite.h: NAL: cleanup write method This whole class hierarchy is way over-engineered [44a42cd7f186] * source/Lib/TLibEncoder/NALwrite.h, source/encoder/frameencoder.cpp: NAL: use explicit reset method instead of copy constructor [155fdcd113fb] * source/common/common.cpp: common: avoid calling atobool() on non-boolean strings [f641d88f95dd] * source/CMakeLists.txt: cmake: make /WX optional for MSVC [050273a10519] * source/common/common.cpp: common: refactor logic to avoid compiler warnings [a6cf678f7981] 2014-02-21 Steve Borho * source/encoder/encoder.cpp: encoder: warn about the incomplete nature of the range extensions [82b05314cc4c] * source/common/common.cpp, source/x265.h: api: add an enum for extended SAR [9d550a10215b] * source/common/common.cpp: common: only validate sarWidth and sarHeight when aspectRatioIdx == 255 [06d3b23ef3b6] * source/common/common.cpp: common: fix --extended-sar CLI option atobool() was setting bError=true [58ba28e0c9a5] * source/common/common.cpp: common: disallow SAR numerator or denominator of 0 [f4bbbae743de] * source/common/common.cpp: common: improve error detection and handling in x265_param_parse * check return code of sscanf * check int parameters are ints, bools are bools, etc API users (not using the CLI and getopt) * allow no-foo and nofoo * allow foo-bar or foo_bar * no-wpp=1 works as expected [0c3cb8fadb6f] * source/Lib/TLibCommon/TComPic.cpp, source/common/lowres.cpp, source/common/lowres.h: lowres: no need to disable AQ on malloc failure, encoder will abort And thus there's no need to pass aqMode as an int pointer [ff3306fae207] * source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComPicYuv.cpp, source/common/common.cpp, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/test/ipfilterharness.cpp, source/test/mbdstharness.cpp, source/test/pixelharness.cpp, source/x265.cpp: coding style - hand cleanup sections better than uncrustify wanted to [66c56fc5dfb9] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/common.cpp, source/common/primitives.cpp, source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.h, source/encoder/compress.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h, source/encoder/slicetype.cpp, source/encoder/weightPrediction.cpp, source/test/mbdstharness.h, source/test/pixelharness.cpp, source/x265.cpp, source/x265.h: mechanically enforce coding style (uncrustify) [e118b38a5ef8] * source/common/common.cpp: common: g_convertToBit cannot be indexed with UINT_MAX either [047cdb785e84] 2014-02-21 Sumalatha Polureddy * source/common/common.cpp: common: validate maximum ctusize [ee58b2bb6f3c] * source/common/common.cpp: common: validate "bframe" and "maxCUSize" for positive values [b8346a9f7020] 2014-02-21 Satoshi Nakagawa * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: m_tempPel as static const [b4d6162139f5] 2014-02-20 Aarthi Thirumalai * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: vbv: integrate row level vbv ratecontrol at each major row diagonal. [2115a7771ce1] 2014-02-21 Aarthi Thirumalai * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: vbv: implement row wise vbvRateControl at each row diagonal [fea3b6fa376b] 2014-02-20 Aarthi Thirumalai * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: vbv: fix bugs in vbv flow with single pass ABR [dd1bca7091d5] * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: vbv: Add row predictors, rc states for vbv. [b89687d958f8] * source/encoder/slicetype.cpp: vbv: enable vbvLookahead for Keyframes; accumulate frame rowSatds from lowres rowSatds. [34774abb8677] 2014-02-21 Aarthi Thirumalai * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/common/lowres.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/x265.h: vbv: Introduce states to hold row data for row level VBV ratecontrol. [00de531690c9] 2014-02-21 Steve Borho * source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibEncoder/TEncSearch.cpp: Backed out changeset: cb3a2795a60e This was found to change output bitstreams, so the vectors must not have beeen always zero [5e2043f89aa1] * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibEncoder/TEncSearch.cpp: TComYuv: combine copyPartToPartLuma and copyPartToPartChroma The new function tries to ensure the proper chroma block is copied, when necessary. [13f73b241382] 2014-02-20 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: remove redundant m_hChromaShift, m_vChromaShift TComPrediction has these members, and TEncSearch derives from TComPrediction [406abea93732] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: use X265_MALLOC for UChar buffers, and uint8_t type [6b476469c212] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: use X265_MALLOC to allocate pixel buffers, and pixel type [fc3db1cfef2a] 2014-02-21 Satoshi Nakagawa * source/common/x86/pixel-util8.asm, source/test/mbdstharness.cpp, source/test/mbdstharness.h: asm: update count_nonzero, add testbench [0c19c44af2d3] 2014-02-20 David T Yuen * source/common/common.cpp: Added vui parameter checking [6ade3939ef2d] 2014-02-20 Min Chen * source/Lib/TLibEncoder/TEncCu.cpp: temp fix for out-of-range tmvp (prevents hash mismatch with slower presets) we're not sure why this is necessary, so it must be investigated further. [a78935e92bf9] 2014-02-20 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: rename m_qtTempTransformSkipTComYuv to m_qtTempTransformSkipYuv [894bde574bc1] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: nits [f32bbe3ab4f8] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: rename m_qtTempTComYuv to m_qtTempShortYuv It was always stupid to have the member variable include the full type name, and it has been the wrong type name for more than 10 months. [6107faa8f8a6] * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h: TComYuv: merge copyPartToPartLuma [5b08cf274fd7] * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h: TComYuv: merge copyPartToPartChroma() with copyPartToPartYuv [1ed4cd65af19] * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h: TComPrediction: remove unused m_predAllAngsBuf, properly init pointers [125459e883c3] * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/encoder/compress.cpp: TComPrediction: remove trivial access methods, use pixel types [3bb5337cc665] * source/Lib/TLibCommon/TComPrediction.h: TComPrediction: remove default argument values for internal functions [744553cfdaca] * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h: TComPrediction: do not pass output pointer as deference The function cannot change the pointer [a090acec64cd] * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp: TComPrediction: add missing m_ prefixes to member variables [8a79a2a0433c] * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h: TComYuv: remove unnecessary dup pointer checks [034b21f14834] * source/Lib/TLibCommon/TComYuv.h: TComYuv: remove more default argument values [01dfbf18f791] * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h: TComYuv: merge methods together for clarity [873a5a72d85e] * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/encoder/compress.cpp: TComYuv: remove default argument values [9c79a713e9af] * source/Lib/TLibCommon/TComYuv.h: TComYuv: make some methods private, for future optimizations [7afb7b6815c0] * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h: TComYuv: remove hungarian prefixes [3d89b437f7f7] * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h: TComYuv: remove unused copyPartToPartChroma() method [549f5bf10211] * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibEncoder/TEncSearch.cpp: TComYuv: fix size of chroma partition copy (resolves placebo heap corruption) [a6eee111fd6f] 2014-02-20 Gopu Govindaswamy * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: tcomrom: move ADI intraModeNumFast table to estIntraPredQT(), no need for global variable [3993d404361b] 2014-02-20 Deepthi Nandakumar * source/encoder/ratecontrol.cpp: ratecontrol: fix bug in acEnergyVar with multiple color spaces [fec3cab87043] 2014-02-20 Gopu Govindaswamy * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h: tcomrom: scaning order table g_sigLastScan replaced with g_scanOrder Scaning order table initialization moved into initRom() and same scaning order table can be used for both 444 and 420 [d4669065e692] 2014-02-20 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibEncoder/TEncSearch.cpp: cleanup useless getMvPred*(): always zero mv [cb3a2795a60e] 2014-02-20 Dnyaneshwar G * source/common/x86/dct8.asm: asm: correct improper macro [ce20bff2027e] 2014-02-20 Satoshi Nakagawa * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: remove unused code [2cede5a7c1bf] 2014-02-20 Murugan Vairavel * source/common/x86/pixel-util8.asm: asm: modified the range of scale value in dequant [613fbb0687c9] 2014-02-20 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibEncoder/TEncSearch.cpp: reduce addClip [fe90b71dc775] 2014-02-20 Deepthi Nandakumar * source/CMakeLists.txt: api: bump up X265_BUILD to 7 (refer previous commit) [6cb88b30deef] 2014-02-19 David T Yuen * source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/common/common.cpp, source/encoder/encoder.cpp, source/x265.cpp, source/x265.h: Added command line options to generate a VUI and add it to the coded bitstream [04a72988d48f] 2014-02-19 Dnyaneshwar G * source/common/x86/asm-primitives.cpp, source/common/x86/const-a.asm, source/common/x86/intrapred16.asm, source/common/x86/mc-a.asm, source/test/pixelharness.cpp: asm-16bpp: code for addAvg luma and chroma all sizes [4670fed41ec7] 2014-02-19 Steve Borho * source/encoder/ratecontrol.cpp: ratecontrol: recover CRF behavior following fps changeset a6c9a476b205 [3389061b75a4] * source/encoder/weightPrediction.cpp: weightp: do not log weights if none are enabled [d2ebbbbdbe75] * source/encoder/frameencoder.cpp, source/encoder/weightPrediction.cpp: weightp: don't allow the PPS weightp flag to be changed by weight analysis [16602968225f] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: white-space nits [e465b8c259f7] * source/Lib/TLibEncoder/TEncSbac.cpp: TEncSbac: white-space nits [f60c76257811] 2014-02-19 David T Yuen * source/Lib/TLibCommon/TComRom.h, source/Lib/TLibEncoder/SyntaxElementWriter.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp: Fixed ENC_DEC_TRACE warnings and errors [1c78bd13a14f] 2014-02-19 ashok * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibEncoder/TEncSbac.cpp: fix for 420 binary mismatch for --preset=slower option [591ca91f0501] 2014-02-19 Dnyaneshwar G * source/common/x86/asm-primitives.cpp, source/common/x86/const-a.asm, source/common/x86/dct8.asm, source/test/mbdstharness.cpp: asm: added 16bpp support for dct[4x4, 8x8], idct4x4, dst4x4 and idst4x4 primitives [96e94ea91f58] 2014-02-19 Steve Borho * source/common/common.cpp, source/encoder/encoder.cpp: prevent implicit type conversion warnings from MSVC [9ddc919f678a] 2014-02-18 Steve Borho * source/CMakeLists.txt, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/common/common.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h, source/encoder/slicetype.cpp, source/input/input.h, source/input/y4m.h, source/input/yuv.h, source/output/output.cpp, source/output/output.h, source/output/y4m.cpp, source/output/y4m.h, source/x265.cpp, source/x265.h: api: add support for float or rational FPS [API CHANGE] Since x265_param was changing anyway, I went ahead and changed inputBitDepth to internalBitDepth, which has always been its real function. X265_BUILD is bumped to 6 [a6c9a476b205] * source/x265.cpp: cli: add x264's 'seek', leave HM's 'frame-skip' as undocumented alias We want to support x264's CLI options as much as possible, but don't want to break any existing scripts [1a0d5b456b19] 2014-02-17 Sumalatha Polureddy * source/encoder/compress.cpp: compress: improve rd 1 performance a. Always allow intra mode for mode decision b. increase more skips at each depth(do encode of best merge candidates initially and if the merge is skipped, dont do inter modes) [9f4d3ef34e5a] 2014-02-18 Deepthi Nandakumar * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: ratecontrol: change RateControl::lastSatd to currentSatd, add comments [757d3e3db046] 2014-02-18 Satoshi Nakagawa * source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/common/primitives.cpp: nextState table [f1951bb4c2ae] 2014-02-18 Steve Borho * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h: TComPrediction: remove unused alloc and stride [8571d160aedb] * source/Lib/TLibCommon/TComWeightPrediction.cpp: backout unintended commit [1be6b8c8b9ed] * source/encoder/encoder.cpp: encoder: show per-slice type SSIM as dB [720768692efe] 2014-02-17 Steve Borho * source/Lib/TLibCommon/TComRom.cpp: TComRom: use x265_malloc/free for globals [7b5b3a5475a7] * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComWeightPrediction.cpp: TComRom: prevent multiple allocations or frees of globals [d2a61d579c30] 2014-02-17 Nabajit Deka * source/test/ipfilterharness.cpp: testbench : test bench correction for chroma_p2s [3505b249397d] * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm, source/common/x86/ipfilter8.h: asm : asm routine for chroma_p2s for 4:4:4 color space format [df79cdee5d46] 2014-02-17 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util8.asm: asm: 16bpp code for quant and dequant_normal [765d6225b252] * source/test/mbdstharness.cpp, source/test/mbdstharness.h: testbench: adding seperate input buffer for idct and updated qp value for quant [797e8bb43887] * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm, source/common/x86/ipfilter8.h: asm: fix for illegal instruction usage in ipfilter [46a9e97caaba] 2014-02-17 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: cleanup unused variables [a3dc5ba8cc95] * source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/dct.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm: primitives: add count_nonzero [12d752ac7c4f] 2014-02-17 Steve Borho * source/encoder/weightPrediction.cpp: weightp: fix V plane debug output [5bf042e30d30] * source/Lib/TLibCommon/TComSlice.cpp: TComSlice: nit [4a06d2485b45] * source/Lib/TLibCommon/TComSlice.cpp: TComSlice: remove dup line [4ba139f9df57] * source/Lib/TLibCommon/TComSlice.h, source/common/lowres.h, source/encoder/reference.h: weight: remove odd struct renaming, remove unused wpACDCParam [30edc6f7475e] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h: TComSlice: remove unused m_weightACDCParam and methods [d2312e05014a] * source/encoder/weightPrediction.cpp: weightp: add debug logging for weight analysis [a1047dfeebb6] * source/encoder/encoder.cpp: encoder: include the hash output into the debug output string [393f6ef8b7bd] 2014-02-16 Steve Borho * source/common/common.cpp, source/encoder/encoder.cpp, source/x265.cpp, source/x265.h: api: change name back to inputBitDepth, to avoid breaking ffmpeg [ce96cdb390fe] 2014-02-15 Steve Borho * source/CMakeLists.txt, source/common/cpu.cpp, source/common/primitives.cpp: non-x86 build fixes [291b3a358a22] 2014-02-14 Steve Borho * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/common.cpp, source/common/cpu.cpp, source/common/lowres.cpp, source/common/lowres.h, source/common/pixel.cpp, source/common/primitives.cpp, source/common/threading.h, source/common/threadpool.cpp, source/common/x86/asm-primitives.cpp, source/common/x86/pixel.h, source/encoder/compress.cpp, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp, source/encoder/weightPrediction.cpp, source/test/ipfilterharness.cpp, source/test/mbdstharness.cpp, source/test/pixelharness.cpp, source/x265.h: uncrustify all source - mechanically apply coding style [39ecb3aa82ee] * source/Lib/TLibCommon/TComPicYuv.cpp, source/common/common.cpp, source/x265.cpp, source/x265.h: enforce new color space requirements, improve help [76f13355e520] * source/Lib/TLibCommon/TComPicYuv.cpp, source/common/common.cpp, source/encoder/encoder.cpp, source/x265.cpp, source/x265.h: decouple input depth from internal depth; allow input depth != internal depth Shift and mask input samples as necessary to reach internal depth. The input depth is no longer in x265_param, where it never really belonged since pic.bitDepth was the only number that mattered. Add validations for input color space and bit depths. No CLI option was added for internal bit depth since it is not currently runtime configurable. [b1f5fd61883a] * build/msys/make-x86_64-w64-mingw32-Makefiles.sh, build/msys /toolchain-x86_64-w64-mingw32.cmake: build: add example cross-compile script for Win64 on MinGW32 [0911885e0f28] 2014-02-15 Deepthi Nandakumar * source/test/ipfilterharness.cpp: testbench: disable chroma_p2s. [289b4ef4ecee] * source/test/ipfilterharness.cpp: ipfilterharness: resolve compile errors with CSP [482aa2e636f9] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp: Merge with 444 changes. [8662459da60b] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSearch.cpp: Backed out changeset: a3a9e0fb1a87 Conflicts with the 444 patches. Will resolve merge and import it in a seperate patch. [98f5088cff19] 2014-02-14 ashok * source/Lib/TLibCommon/TComLoopFilter.cpp: Modify TComLoopFilter structure to support multiple color space formats [c731d494e9ca] * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/common/TShortYUV.h, source/common/common.cpp, source/common/ipfilter.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/encoder/encoder.cpp: Modify asm primitives functions to support multiple color space formats [deb0cffa87fa] * source/Lib/TLibEncoder/TEncEntropy.cpp: Modify TEncEntropy structure to support multiple color space formats [a65cb22fcf10] * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/encoder/framefilter.cpp, source/encoder/framefilter.h: Modify FrameFilter structure to support multiple color space formats [6abd54cbff84] * source/Lib/TLibCommon/TComDataCU.cpp: Modify TComDataCU structure to support multiple color space formats [1e8fbc073d4b] * source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSbac.cpp: Modify TEncSbac structure to support multiple color space formats [19532171622a] * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h: Modify TComPrediction structure to support multiple color space formats [ad8a991d626e] * source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibEncoder/TEncSearch.cpp: Modify TComPattern structure to support multiple color space formats [503e3794098a] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: Modify TEncSearch structure to support multiple color space formats [fb14a98a97e4] * source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/frameencoder.cpp: Modify ChromaScale table to support multiple color space formats [57156005d32f] * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TypeDef.h: Modify TComRom structure to support multiple color space formats [3572d9d04ff7] 2014-02-14 Steve Borho * source/Lib/TLibCommon/TComPicYuv.cpp: TComPicYuv: use pixel type instead of Pel type [d77a549b8061] * source/common/version.cpp: version: today, our max supported input bit depth is 10 [6b197e8561ec] * source/input/y4m.cpp, source/input/yuv.cpp: input: always set depth and colorspace fields [d329e698d420] * source/encoder/encoder.cpp: encoder: use x265_log for per-frame debug log, use dB for SSIM [da7f6bebdd30] * source/encoder/encoder.cpp: encoder: now only one QP per row in CSV output [a661d9eef931] 2014-02-14 Deepthi Nandakumar * source/encoder/ratecontrol.cpp: ratecontrol: cleanup, repetitive code [5d76e8a19fed] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp: ratecontrol: cleanup, remove sliceQPBase. Always a duplicate of sliceQp. [303634977dc4] * source/encoder/ratecontrol.cpp: ratecontrol: cleanup [4906f1fe7d06] * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: ratecontrol: clean up struct; remove baseQp [8d4fd1d98337] 2014-02-14 Steve Borho * build/msys/make-Makefiles.sh: build: change eoln of msys bash script to unix [ad21da9b607c] 2014-02-14 Satoshi Nakagawa * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSearch.cpp: square transform only [a3a9e0fb1a87] 2014-02-14 Nabajit Deka * source/common/x86/pixeladd8.asm: asm: Clean up and minor modifications in pixel_add_ps 16bpp asm functions(4xN) [248b665970e8] 2014-02-14 Steve Borho * source/Lib/TLibEncoder/WeightPredAnalysis.cpp, source/Lib/TLibEncoder/WeightPredAnalysis.h, source/encoder/CMakeLists.txt, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: remove unused HM WeightPredAnalysis files [ed310b17ff66] * source/encoder/encoder.cpp: encoder: do not generate digest string if we are not going to print it [d43e8e0c950d] * source/encoder/encoder.cpp, source/encoder/encoder.h: encoder: report the hash digest from the correct frame encoder [d6559298428a] 2014-02-14 Sumalatha Polureddy * source/encoder/compress.cpp: compress: Bug fix in rd2 the sa8d cost in rd2 for inter and intra are different for inter, totalbits = 0, for intra, totalbits = cabac bits for now, making the totalbits = 0 for both inter and intra [d90a4adcb492] * source/encoder/compress.cpp: compress: missed few lines of code while applying previous patch 1. Increase the eraly skips in rd2 2. Sa8d cost is not calculated, but used in the code [11ffc3cfe0d8] 2014-02-14 Steve Borho * source/encoder/reference.cpp: reference: remove unnecessary duplicate variable [0d033b5677da] * source/CMakeLists.txt: cmake: on MSVC, CMAKE_CXX_IMPLICIT_LINK_LIBRARIES and PLATFORM_LIBS may be empty [f46c3f816fe7] 2014-02-13 Steve Borho * source/CMakeLists.txt: cmake: add a blacklist of libs to keep from x265.pc Libs.private [757b127f8ede] 2014-02-13 Tom Vaughan (tom vaughan * source/common/common.cpp: Remove redundant settings from performance presets [0265344d0727] 2014-02-13 Satoshi Nakagawa * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/intrapred.cpp, source/encoder/compress.cpp: const tables [2ce38565571e] 2014-02-13 Murugan Vairavel * source/common/x86/ipfilter8.asm: asm: cleanups for ipfilter functions to reduce register counts [fcfe87ee36b7] 2014-02-13 Tom Vaughan (tom vaughan * source/common/common.cpp: Remove redundant settings from performance presets [8093e808bfee] 2014-02-13 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncSearch.cpp: fix bug on TSKIP [402b11d9df80] 2014-02-13 Steve Borho * source/encoder/compress.cpp: compress: fix gcc warning, make array const c:/mcw/x265/source/encoder/compress.cpp:414:22: warning: variable 'bestMergePred' set but not used [-Wunused-but-set-variable] TComYuv* bestMergePred; [d9e6f16baa29] * source/CMakeLists.txt: cmake: more general fix for CFLAGS breaking resource compiles There are some versions of rc.exe that also balk at being given cl.exe flags [8fdcf1ba38f3] * source/common/common.cpp, source/x265.h: api: improve documentation of x265_picture, properly initialize pic.colorSpace [1420cb397447] 2014-02-13 Murugan Vairavel * source/test/ipfilterharness.cpp, source/test/mbdstharness.cpp, source/test/mbdstharness.h: testbench: added stress test cases for all functions in mbdstharness.cpp [5e4e4bda0e7e] 2014-02-13 Deepthi Nandakumar * Merge [5e104ed219c3] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/compress.cpp: compress: improve rd 2 performance (Patch from Sumalatha) a. Always allow intra mode for mode decision b. increase more skips at each depth(do encode of best merge candidates initially and if the merge is skipped, dont do inter modes) Bitrate increase compared to rd 3 (4-6%) on most HD clips, quality maintained. Performance impact to be measured in regression tests. Sintel 720p clip needs to be investigated further. Poor show here. [313e42bdd4ea] 2014-02-13 Steve Borho * source/common/pixel.cpp: weightp: add assert to protect assembly limitiation [df4531a24c4d] * source/encoder/weightPrediction.cpp: weightp: pad width passed to weight_pp(), it requires 16byte alignment [9dffa4473096] * source/common/threading.h: threading: fix compile when XP support is enabled [7c24e5a920b2] * source/CMakeLists.txt, source/cmake/version.cmake: cmake: be quiet about missing optional packages [f0d82bf20584] * source/CMakeLists.txt, source/cmake/version.cmake: cmake: simplify version detection, use single set of variables [e1088cae157c] * source/cmake/version.cmake: cmake: use findGit.cmake, which was available in cmake 2.8.8, our min version [726323914cd2] * source/CMakeLists.txt: cmake: workaround for MinGW windres [0fcc87d05d10] 2014-02-12 Steve Borho * source/CMakeLists.txt: cmake: change name of MSVC built shared library to avoid filename conflicts the shared library and CLI exe were both trying to write x265.pdb and x265.ilk with unhelpful results. [21832083908f] * source/CMakeLists.txt, source/x265.rc.in: cmake: add resource file for Windows version info on DLL and EXE This sadly doesn't work when compiling under MinGW; cmake has an unresolved bug that passes all CFLAGS to windres, which pukes on them. [54189fefdc51] * source/x265.cpp: cli: use real log commands [218f8304978e] 2014-02-12 Min Chen * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncSearch.cpp: fix bug on TSKIP [d6774d83f39c] 2014-02-12 Satoshi Nakagawa * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.h, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h: cleanup TEncSbac [d22564466556] 2014-02-12 Steve Borho * source/encoder/encoder.cpp: encoder: remove two completed TODOs [21c2724dfcd1] * source/encoder/encoder.cpp, source/encoder/encoder.h: encoder: remember abort condition and stop accepting input frames [f894b457aca8] 2014-02-12 Santhoshini Sekar * source/common/lowres.h, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h, source/encoder/slicetype.cpp, source/encoder/slicetype.h: vbv: lookahead [adee518df8ab] 2014-02-12 Dnyaneshwar G * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred16.asm: asm-16bpp: assembly code for IntraAng32x32 all modes [cca149489a6f] 2014-02-12 Nabajit Deka * source/common/x86/pixel-util8.asm: asm : Clean up and minor modifications in pixel_sub_ps asm functions(2x4, 2x8, 6x8) [d83f25c4ae1d] * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: Test bench : Stress test cases for remaining filter functions. [3eb456f69e34] 2014-02-12 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred16.asm: asm: 16bpp asm code for intra_pred_ang8 - all modes [5457f23edb5d] 2014-02-13 Gopu Govindaswamy * source/encoder/ratecontrol.cpp: ratecontrol: to set B-ref frame QP as Lower then B-Frame QP for RC with CQP mode [1894c1c35bac] 2014-02-12 Kavitha Sampath * source/encoder/weightPrediction.cpp: weightp: fix hash mismatch all references should have same luma and chroma denominator [51c86499d3bd] 2014-02-12 Steve Borho * source/x265.h: api: we don't need stuttering header guards [817f5bf391d2] * source/x265.h: api: mark externed variables for import from Windows shared library [c9fc8dab7b9a] * source/CMakeLists.txt, source/common/cpu.cpp: cmake: a few fixes for building on ARM (Rapsbery Pi in particular) Next step will be bringing over ARM cpu detect assembly functions: x265_cpu_neon_test() x265_cpu_fast_neon_mrc_test() [5ddbdaefb783] * source/encoder/weightPrediction.cpp: weightp: clip lowres MV before using for motion compensation Even the lowres MVs with very restricted merange can go beyond the available pixels. This was causing memory access exceptions on some clips. [19d7752a4f9c] * source/encoder/slicetype.cpp: slicetype: cast mvmin/mvmax indices to signed 16bit values [a3df372438a4] 2014-02-12 Min Chen * source/common/x86/blockcopy8.asm: asm: fix bug in cvt16to32_shl [eedfa574e07e] 2014-02-11 Santhoshini Sekar * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: vbv: set vbvminrate [a8b2456aabef] * source/encoder/ratecontrol.cpp: rc: Don't do resetABR in CRF. [c11f0459464c] 2014-02-11 Nabajit Deka * source/common/x86/blockcopy8.asm: asm : Optimisations in blockcopy_sp asm routines(2x4, 2x8, 6x8) [bf2f60a2d425] 2014-02-03 Nabajit Deka * source/test/ipfilterharness.cpp: testbench: Added stress test cases for check_IPFilterLuma_ps_primitive, check_IPFilterLuma_hps_primitive and check_IPFilterLumaHV_primitive filter functions [eb19b59558c0] 2014-02-11 Murugan Vairavel * source/common/x86/ipfilter8.asm, source/test/ipfilterharness.cpp: asm: Optimizations and cleaups on ipfilter functions [4e5ab7003f23] 2014-02-03 Nabajit Deka * source/test/ipfilterharness.cpp: testbench: Added stress test cases for chroma_pp, chroma_ps and chroma_hps filter functions [43d6027b977b] 2014-02-11 Steve Borho * source/encoder/encoder.cpp: encoder: protect public APIs against NULL pointer arguments [3dd1f72225e6] * source/cmake/version.cmake: cmake: set X265_LATEST_TAG from latesttag: line of .hg_archival.txt The net effect of this is that non-tagged release bundles will be capable of installing shared libraries with effective sonames. [d6fdfa9f4938] * source/x265.h: api: improve documentation of x265_picture dts, pts [973ad4575a27] 2014-02-10 Steve Borho * source/encoder/slicetype.cpp: slicetype: pass bools as bool literals [07b5d6b82f5f] 2014-02-11 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: cleanup AMVP related [2316e8e33512] 2014-02-10 Satoshi Nakagawa * source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: cleanup unused [b449d4d4f02d] 2014-02-10 Steve Borho * source/Lib/TLibCommon/TComPicYuv.cpp: pic: use C style comments [01d0f7758171] * source/Lib/TLibCommon/TComPicYuv.cpp: pic: mask impossible input bits [8538c3383ade] * source/common/lowres.cpp: lowres: nits [96d16486e317] * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/common/lowres.cpp, source/common/pixel.cpp, source/common/primitives.h, source/encoder/weightPrediction.cpp: TComPicYuv: replace xExtendPicCompBorder with an optimized function We've had a primitive for the side borders for some time, it just wasn't hooked up. This function never should have been a method of that class. [47592ed6aa2c] * source/x265.cpp: help: --cutree is a boolean flag [d002f45eee16] * source/x265.cpp: help: move --cutree just after aq options [75f724dd6d4c] * source/CMakeLists.txt: cmake: prevent extra errors when system has no C++ compiler [6b3defda16c1] * source/encoder/weightPrediction.cpp: weightp: avoid redundant chroma extensions [ce7191f49948] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/encoder/dpb.cpp: TComPic: add m_chromaPlanesExtended member var [8d98425e0a0a] 2014-02-10 Kavitha Sampath * source/encoder/weightPrediction.cpp: weightp: extend chroma borders before mcChroma, remove redundant checks [62c760413522] 2014-02-07 Steve Borho * source/encoder/CMakeLists.txt, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/weightPrediction.cpp, source/encoder/weightPrediction.h: weightp rewrite without a class weightp analysis for the main encoder is performed with motion compensation (using lowres motion vectors from lookahead) when available. The lowres luma plane is used for luma analysis and the chroma planes are analysed as-is. [4ec4065fc392] 2014-02-10 Steve Borho * source/Lib/TLibCommon/TComPic.h: TComPic: clean up data member ordering, add comments [17847935873a] 2014-02-08 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h: improve getInterMergeCandidates() [2fc9c0a08534] 2014-02-09 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: cleanup MPM related [0b44c6c07582] 2014-02-09 Steve Borho * source/common/common.cpp, source/encoder/encoder.cpp, source/x265.cpp, source/x265.h: api: repair `--keyint -1` behavior; single keyframe at beginning of stream Also, disable scene cut detection to save a few cycles in lookahead. Fix and/or improve documentation for the keyint parameters [60e6a7339027] 2014-02-07 Murugan Vairavel * source/common/x86/ipfilter8.asm: asm: cleanup unused registers interp_4tap_horiz_pp_2xN and 4xN [fa9f7b56d4d8] 2014-02-07 Steve Borho * source/common/CMakeLists.txt, source/common/vec/intra-ssse3.cpp, source/common/vec/vec-primitives.cpp: vec: remove intra-ssse3.cpp, full assembly coverage [7da1a8d3bbbe] 2014-02-07 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: intra_pred_ang16 code for all remaing modes [990dbb374285] 2014-02-07 Dnyaneshwar G * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h, source/common/x86/mc-a.asm, source/common/x86/pixel.h: asm: correction of function declaration to sse4 [95fc15598e3e] 2014-02-07 Yuvaraj Venkatesh * source/common/x86/sad-a.asm: asm: fix sad_x4 stress case failure on AVX2 [cfbe679e73dc] 2014-02-07 Deepthi Nandakumar * source/encoder/slicetype.cpp, source/x265.h: x265: remove X265_TYPE_KEYFRAME. Not used, and not required. IDR/I-slice can be chosen at the outset based on openGOP. [c1cea0534e6b] 2014-02-07 Steve Borho * source/common/dct.cpp: dct: disable assertion for 10bit builds The assertion is there to protect 8bpp assembly [d2d181f1881a] * source/encoder/weightPrediction.cpp: weightp: avoid MSVC warnings about implicit bool to int casts [da1dda5e762a] 2014-02-06 Steve Borho * source/common/vec/intra-ssse3.cpp: Backed out changeset: 5634d0322161 [53c6acae9b0a] * source/common/vec/intra-ssse3.cpp: vec: remove unused angAP array [5634d0322161] * source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComBitStream.h: TComBitstream: simplify push_back(), fix clear(), give buffsize an 'm_' prefix The size of the allocated buffer is not reset on clear. Issue an error message if any mallocs fail, to at least indicate an encoder in serious trouble. [f0e14af85843] * source/Lib/TLibCommon/TComBitStream.cpp: TComBitstream: fix check for NULL m_fifo member There was no point in checking for NULL in the if() expression because m_fifo was used in the else. (identified by clang) [436cf988b016] * source/Lib/TLibCommon/TComBitStream.cpp: TComBitstream: remove hungarianness from parameters and auto-vars [ddbbb1f92ce3] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/primitives.cpp, source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp, source/encoder/weightPrediction.cpp, source/x265.cpp: Fix problems found by clang static analyzser in Xcode These were mainly stores that were never read [1a68f0dd9acb] * source/encoder/weightPrediction.cpp, source/encoder/weightPrediction.h: weightp: remove useless m_dstStride variable [c54271b906da] * Merge [21d808d834c4] * source/Lib/TLibCommon/TComPicYuv.h: nit [1776b9a58585] * source/encoder/weightPrediction.cpp: weightp: don't use m_ prefix for non member variable [8f025ee0a506] * source/encoder/weightPrediction.cpp: weightp: do not blindly assume 4:2:0 chroma dimensions [9bc4b7b1454e] * source/encoder/weightPrediction.cpp, source/encoder/weightPrediction.h: weightp: non-trivial constructors and destructors should not be in headers [d87b6e92c996] * source/common/vec/intra-ssse3.cpp: vec: remove intraPredAng32x32, full asm coverage [40bec5582eca] 2014-02-06 Dnyaneshwar G * source/common/x86/intrapred8.asm: asm: fix Intrapred_ang[32x32] mode 10 and 26 failure on Mac [a079afc4e6c7] 2014-02-06 Gopu Govindaswamy * source/encoder/slicetype.cpp: slicetype: bug fix for cuTree, use int32_t for listamount and propagate_amount to calculate valid propagate_cost [6d5207b8b2ef] 2014-02-06 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/sad16-a.asm: asm: modified satd and sad asm functions in 16bpp to avoid overflow [ffe13a5eccb9] 2014-02-06 Murugan Vairavel * source/test/pixelharness.cpp, source/test/pixelharness.h: testbench: stress test support for all pixelharness functions [b86a25eb7968] 2014-02-06 Dnyaneshwar G * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: assembly code for IntraAng32x32 all modes [76fa0811c4e7] 2014-02-06 Satoshi Nakagawa * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp: remove unnecessary copyToPicLuma() call [db0c1dfc3a11] 2014-02-05 Steve Borho * source/common/common.cpp: common: use ATOMIC_CAS32 to update an int [634bc0b1c246] * source/common/threadpool.cpp: threadpool: use aligned malloc to allocate sleep bitmap This kills three birds with one stone - it removes a source of possible un- alignment, it removes the restriction of max 64 threads, and it further simplifies pool start and stop [53b8daed7df5] * source/encoder/slicetype.cpp: slicetype: fix 10bpp intra pixel preparations - found by valgrind [fc90c9b265fd] * source/common/vec/intra-ssse3.cpp: vec: remove 4x4 and 8x8 intra mode prediction functions, asm coverage [8c9e1b3564e8] * source/common/vec/intra-sse41.cpp: vec: remove 4x4, 8x8, and 16x16 allangs functions; covered by assembly [bf4dbea1e4f5] * source/common/x86/asm-primitives.cpp: asm: remove redundant macro definition [ea99e4d138cd] 2014-02-05 Praveen Tiwari * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: all_angs_pred_16x16, asm code [906d972bb4b7] 2014-02-04 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred8.asm: asm: intra_pred_ang8 asm code for all modes [669000ad4a0d] 2014-02-04 Murugan Vairavel * source/common/x86/intrapred8.asm: asm: Modifications to intrapred16 modes 3, 4, 32 and 33 such that it uses TRANSPOSE_STORE macro of intrapred32 [cd73618857c5] 2014-02-05 Steve Borho * source/CMakeLists.txt: cmake: only officially support 16bpp builds on x64 architectures [2f54c7616ef8] 2014-02-05 Aarthi Thirumalai * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: abr: reset ABR to prevent high bitrate peaks in single pass ABR Long series of blank frames in video followed by detailed content causes heavy ABR underflow and overall bitrates surges high for a long while. This patch detects this condition in Single pass ABR mode and resets ABR - to not consider history from blank frames and continue from following scene-cut. [fc86625df0d9] 2014-02-05 Gopu Govindaswamy * source/common/lowres.cpp: lowres: initialize weightedCostDelta to avoid Valgrind reporting uninitialized memory [8d9abc152370] * source/encoder/slicetype.cpp: cuTree: bug fix for frameCostRecalculate [0776a6722375] 2014-02-05 Steve Borho * source/encoder/encoder.cpp: encoder: try not to leak memory after malloc failures [def14c0234f5] * source/common/lowres.cpp: lowres: fix gcc/clang compile errors gcc doesn't like to jump to labels that bypass variable initializations, even if they are not used passed the jump [e05898ee63c0] 2014-02-05 Deepthi Nandakumar * source/common/x86/asm-primitives.cpp: Backed out changeset: a88c7bbfba61 The addAvg x86 versions have now been fixed [1374f1168c5c] 2014-02-05 Satoshi Nakagawa * source/common/x86/mc-a.asm: fix addAvg [d20c11f2775f] 2014-02-04 Steve Borho * source/common/lowres.cpp, source/common/lowres.h: lowres: there was no need to pass an int* as an int32_t* [76be476dfed5] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/common/lowres.cpp, source/common/lowres.h, source/encoder/encoder.cpp, source/x265.cpp: use checked mallocs in TComPic::create() and in functions it calls This is the most obvious place memory allocation failures will occur, at encoder startup. So it is best to catch them cleanly. [6d0b6602e730] * source/test/pixelharness.cpp: pixelharness: actually report chroma addAvg as addAvg, not add_ps [bed6e485d6c1] * source/test/pixelharness.cpp: pixelharness: fix luma_addAvg tests [43966a9a13ba] * source/common/x86/asm-primitives.cpp: asm: disable x86 versions of addAvg - they are broken [a88c7bbfba61] * source/common/common.cpp: log: move lookahead options all together, rate-control at the end (nit) [51011b224a7c] * source/common/lowres.cpp: lowres: initialize downscale planes immediately after alloc Valgrind was reporting potential uninitialized memory being used by the lowres weightp cost estimate function. It is weighting the entire padded luma plane instead of weighting just the real pixels and then extending them. The problem is that the buffer stride is wider than (width + padw*2). We round up the stride to the nearest multiple of 32 so the row starts are well aligned, and those pixels at the very right edge of the buffer were never written to. They should never be used by the encoder, but the weight_pp primitive does try to weight them; and the last step of the weight function is a clip, and that conditional move is what triggered the valgrind warning. [8d2b20447b8a] * source/test/ipfilterharness.cpp: ipfilterharness: fix loop bounds, caused crashes in 16bpp [c16c7b8416ee] * source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: weight the extended lowres frame prior to MC cost estimate valgrind spotted this problem where the top and bottom padded areas of the lowres reference frame were not weighted into the weightedRef buffer, so any lowres MVs used for MC that referenced past the top or bottom picture boundary would access uninitialized pixels. [592675e50c29] * source/common/wavefront.cpp, source/common/wavefront.h: wavefront: rename bitmaps for clarity, add more comments [23d30a6d4db1] * source/Lib/TLibCommon/CommonDef.h, source/common/common.h: common: move malloc/free macros to our header [0bd4e7603ea1] * source/common/common.cpp, source/x265.cpp: cli: change --keyint short option to capital I, add min-keyint, [no-]shortcut All these options now match x264's command line features [2beb0bfb9503] * source/Lib/TLibCommon/TComTrQuant.cpp: TComTrQuant: avoid bogus warning from VC9/VC10 [4be0ca7b4448] 2014-02-04 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp: cleanup unused variables [b54aa2713111] 2014-02-03 Steve Borho * source/Lib/TLibEncoder/NALwrite.cpp: NALWrite: simplify emulation detection [ff430d39d428] * source/input/y4m.cpp: Merge with stable [f121e16811be] * source/input/y4m.cpp: y4m: better handling of eof during frame header reads It wasn't checking the stream state properly (a bug introduced when ifs was made into a pointer for stdin) and doing a memcmp against possibly uninitialized stack memory, which just happened to usually have a proper frame header in it since the reader thread stack use is very predictable. This was the last warning reported by valgrind on the stable branch [4b8901ae94ec] * source/encoder/slicetype.cpp: slicetype: use x265 naming scheme for auto vars and parameters [930b251ac6b7] * source/input/y4m.cpp: y4m: reorder functions for clarity [8de9b432ba15] * source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: replace ints and long ints with bools where appropriate [b0a594fe1867] * source/input/y4m.cpp: y4m: simplify guessFrameCount [c111f1efc9c2] 2014-02-03 Satoshi Nakagawa * source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h: reduce context [d5326d9bf1b2] 2014-02-03 Steve Borho * source/encoder/ratecontrol.cpp: ratecontrol: backout c4e99fde0b and fix indentation [6aa952372175] 2014-01-21 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred8.asm: assembly code for intra_pred_ang8_5 [2297a3777658] 2014-02-03 Deepthi Nandakumar * Merge [169a7d7c51ef] 2014-01-20 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: code for intra_Pred_Ang16x16 mode 32 [3131a2ac8ec6] 2014-01-21 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred8.asm: assembly code for intra_pred_ang8_4. [dc2de7c4f6c1] 2014-01-20 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred8.asm: asm: code for intra_Pred_Ang16x16 mode 4 [c50f78691043] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: code for Intra_pred_Ang16x16 mode 3 and 33 [e9867f0a16a2] 2014-02-03 Steve Borho * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibEncoder/NALwrite.cpp, source/common/TShortYUV.cpp, source/common/common.cpp, source/common/lowres.cpp, source/encoder/frameencoder.cpp, source/encoder/motion.cpp, source/encoder/reference.cpp, source/encoder/slicetype.h, source/encoder/weightPrediction.cpp, source/test/intrapredharness.cpp, source/test/ipfilterharness.cpp, source/test/mbdstharness.cpp, source/test/pixelharness.cpp: common: change X265_MALLOC macro to return typed pointer One less opportunity for a stupid mistake [a260f55429e3] * source/CMakeLists.txt: cmake: treat empty CMAKE_SYSTEM_PROCESSOR as x86 (fixes #25) [900a13b0b50a] * source/encoder/encoder.cpp: follow x264's keyframe-min logic [CHANGES OUTPUTS] (closes #24) If no --keyint-min is specified, default to max/10, and clamp the value to between [1, max / 2 + 1]. This allows x265 to insert I frames when scene cuts are detected between keyframe-min and keyframe-max [898ccce491e9] 2014-02-03 Dnyaneshwar G * source/Lib/TLibCommon/TComYuv.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/common/x86/const-a.asm, source/common/x86/mc-a.asm, source/common/x86/pixel.h, source/test/pixelharness.cpp: asm: code for addAvg luma and chroma all sizes [71841b07b8ee] 2014-02-03 Deepthi Nandakumar * source/encoder/frameencoder.cpp: frameencoder: use macro MAX_MAX_QP [55b4d5135e06] 2014-02-03 Satoshi Nakagawa * source/encoder/frameencoder.cpp: fix [c89f04114391] 2014-02-02 Steve Borho * source/Lib/TLibEncoder/TEncSbac.cpp, source/encoder/CMakeLists.txt: cmake: remove two MSVC warnings overrides, HM code has been somewhat sanitized [aab88ed13364] * source/Lib/TLibCommon/TComPicYuvMD5.cpp, source/common/CMakeLists.txt: cmake: remove two MSVC warnings overrides, HM code has been somewhat sanitized [8150374cb0d2] * source/CMakeLists.txt, source/common/CMakeLists.txt, source/encoder/CMakeLists.txt: cmake: when x86 arch is detected, set gcc -march=i686 globally This enables a number of cleanups in the internal cmake scripts [eff52bc89e94] 2014-02-01 Steve Borho * source/CMakeLists.txt: cmake: prevent warnings from recent builds of cmake cmake really should ignore cmake_policy(SET foo) if foo is not yet supported, so every cmake user doesn't have to check the exact version which introduced that backward compatibility option.. but... [bb33ab0f4ef9] * source/common/x86/x86inc.asm: x86inc: Make ym# behave the same way as xm# x264 commit 0997c288be10 [81f2c587a0a7] * source/common/x86/x86inc.asm: x86inc.asm: allow x64 output format x264 commit 3361d59a0a83d [683361fd76c2] * source/common/x86/x86inc.asm: asm: pull in pengvado's header patch to speed up yasm compiles [15f1f927bcfe] 2014-01-29 Satoshi Nakagawa * source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSbac.cpp: reduce unused context models [33929c36a646] 2014-02-01 Steve Borho * source/CMakeLists.txt: cmake: fix warning [737ceb148a27] * source/CMakeLists.txt: cmake: use strlower on CMAKE_SYSTEM_PROCESSOR [9e2b076968e1] * source/CMakeLists.txt: cmake: only allow assembly to be enabled for X86, our only asm platform [2a7ff626383d] * source/CMakeLists.txt: cmake: reorg main file for readability, no behavior changes [2812a45ace5c] * source/CMakeLists.txt, source/common/cpu.cpp, source/x265.h: cpu: port ARM cpu detection code from x264 [0e734b111b1e] * source/CMakeLists.txt: cmake: add two more system processor names that are synonyms of x86 [68f2d08654b9] * source/CMakeLists.txt, source/common/cpu.cpp, source/common/primitives.cpp: cmake: improve handling of unknown system processor [7f1d29a897c1] * source/encoder/weightPrediction.cpp: weightp: add math include for POSIX systems [389328343ccd] 2014-01-31 Steve Borho * source/encoder/ratecontrol.cpp: ratecontrol: use X265_DEPTH instead of g_bitDepth On 8 bit builds, bit depth is known at compile time, allowing the compiler to optimize away a few of these operations. [413ad959a5c6] * source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/common/TShortYUV.cpp, source/common/TShortYUV.h, source/common/common.cpp, source/common/cpu.cpp, source/common/intrapred.cpp, source/common/ipfilter.cpp, source/common/lowres.h, source/common/pixel.cpp, source/common/primitives.cpp, source/common/primitives.h, source/common/threadpool.cpp, source/common/vec/intra-sse41.cpp, source/common/vec/intra- ssse3.cpp, source/common/vec/vec-primitives.cpp, source/common/x86 /asm-primitives.cpp, source/encoder/compress.cpp, source/encoder/cturow.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp, source/encoder/slicetype.h, source/encoder/weightPrediction.cpp, source/input/y4m.cpp, source/input/yuv.cpp, source/test/intrapredharness.cpp, source/test/ipfilterharness.cpp, source/test/pixelharness.cpp, source/x265.h: uncrustify source (mechanical coding style enforcement) A few changes that uncrustify wanted to make have been left out of the commit for style reasons. [9d0abf80eeb1] * source/encoder/weightPrediction.cpp: weightp: cleanups [fb048ad78e78] * source/encoder/weightPrediction.cpp: weightp: vc11-win32-debug workarounds [461316bc1dd5] * source/encoder/ratecontrol.cpp: ratecontrol: add missing braces [c4e99fde0b0b] * source/encoder/ratecontrol.cpp: ratecontrol: white-space nits [4aed055bd1ed] * source/encoder/slicetype.cpp, source/encoder/slicetype.h: Merge with stable [65003e385629] 2014-01-30 Steve Borho * source/CMakeLists.txt, source/common/CMakeLists.txt, source/common/cpu.cpp, source/common/primitives.cpp, source/common/vec/vec-primitives.cpp, source/encoder/CMakeLists.txt: cmake: attempt to support non-x86 compile targets [8769cd7b97ac] 2014-01-31 Steve Borho * source/CMakeLists.txt, source/common/CMakeLists.txt: cmake: white-space nits [58cff481d6ed] * source/test/ipfilterharness.cpp: testbench: fix signed/unsigned comparison warning [24e448ed4341] 2014-01-30 Nabajit Deka * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h, source/test/testharness.h: testbench: add stress test case for luma_pp filter function [897067ac23ac] * source/test/pixelharness.cpp: testbench: fix for random test bench failure caused by pixeladd_ss [8f066e4e48e9] 2014-01-31 Steve Borho * .hgtags: Added tag 0.7 for changeset d24e2a8c4326 [edf64ac976ea] * source/encoder/slicetype.cpp: slicetype: comment nits Remove a comment copied from x264 that has no bearing in x265, and fix the alignment of another comment. [d24e2a8c4326] [0.7] * source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: alloc wpScalingParam instance as a struct member This is a workaround for VC11. When x265 was compiled for debug targeting Win32 the stack was being reported as corrupted by weightCostLuma(). No other compiler or build option would report any problems (not even valgrind). In the VisualStudio debugger the stack would be obviously garbaged once the function was entered. Moving `w` off of the stack makes the VC11 debugger happy again. [86081bfcacf9] * source/encoder/slicetype.cpp: slicetype: use explicit float type constant [e04f2b3dea39] * source/encoder/slicetype.cpp: slicetype: prevent divide-by-zero and sqrtf(0) [3bc0651c0f40] 2014-01-31 Praveen Tiwari * source/common/x86/pixel-a.asm: asm: fix for potential mismach between ASM and no-ASM outputs [539d1b0561b1] 2014-01-30 Steve Borho * source/Lib/TLibCommon/TComPic.h, source/common/common.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: Merge with stable [eb3713ab0641] 2014-01-28 Steve Borho * source/common/threadpool.cpp: threadpool: use a wait event per worker thread For simplicity, this patch caps the number of worker threads to 64. The bitmap could be trivially extended if necessary. This removes the common wake event, which complicated startup and shutdown and flush events. [6fe8d1d519f7] 2014-01-30 Steve Borho * source/encoder/cturow.h, source/encoder/frameencoder.cpp: cturow: detect and prevent simultaneous row access Temporary workaround until we are certain the findJob() race hazards are indeed resolved completely. [564eefbb3812] 2014-01-28 Steve Borho * source/Lib/TLibCommon/TComPic.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h: encoder: refactor frame encoder recon row synchronization The previous approach depended on a common event (owned by TComPic) being triggered multiple times for each row, one trigger per referencing frame, but I believe this was fragile as one frame encoder could steal notifications from another. In the new scheme, each frame encoder waits on its own sync event when it blocks for recon pixels. When a frame encoder finishes reconstructing a CU row, it calls a top-level encoder function which determines if any frame encoders are blocked on that POC and wakes them up. This should prevent deadlocks from frame encoder synchronization [4a4c4cbe9c67] 2014-01-30 Steve Borho * source/common/wavefront.cpp: wavefront: eliminate redundant reads of m_queuedBitmap [6d5f2f61341a] * source/common/wavefront.cpp: wavefront: use x265_malloc for bitmaps, to ensure alignment [adf571b1bb94] * source/Lib/TLibCommon/CommonDef.h, source/common/common.h: common: consolodate malloc/free funcdefs to common.h [71f6479dc354] 2014-01-30 Deepthi Nandakumar * source/common/x86/asm-primitives.cpp, source/encoder/encoder.cpp: Merge bug fixes from stable. [fffdf3dce410] 2014-01-30 Yuvaraj Venkatesh * source/common/x86/sad-a.asm: asm: modified pixel_sad asm function to avoid overflow [b852f74bdd8c] * source/common/x86/intrapred16.asm, source/test/intrapredharness.cpp: asm: fixed hash mismatch on 16bpp due to intra_pred_ang [c0ec570c0105] 2014-01-29 Yuvaraj Venkatesh * source/common/x86/pixel-a.asm: asm: fix for 32-bit build satd overflow issue. [86743912a5b0] 2014-01-30 Deepthi Nandakumar * source/encoder/encoder.cpp: log: print Summary for per-frame logging [e879873ce926] * source/encoder/encoder.cpp: log: print ssim(dB) in per-frame csv logging [46aa0de4a8da] 2014-01-29 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: fix overflow due to pixel_satd asm function for 64-bit build [d6091cb46ae1] 2014-01-28 Steve Borho * source/encoder/encoder.cpp: nit: line up WPP log info with other config items [4ec459e04f9e] * source/encoder/weightPrediction.cpp: weightp: fix lowresMvCosts[] indexing, add comment for future work [8552e8cc1a3c] * source/encoder/compress.cpp: Merge with stable [923edbb08a59] 2014-01-28 Deepthi Nandakumar * source/encoder/compress.cpp: compress: insert check for merge MV candidates. [7f4537c4db7a] 2014-01-28 Aarthi Thirumalai (aarthi * source/encoder/ratecontrol.cpp: rc: bug fix in crf mode ;correct qscale set for all the frames. [854ff1616d38] 2014-01-28 Kavitha Sampath * source/encoder/weightPrediction.cpp, source/encoder/weightPrediction.h: weightP: fix crash due to access of lowres array fix crash due to access of lowres array of references with invalid mvs in weightCost [728f31cc6eee] 2014-01-28 Steve Borho * source/common/common.cpp, source/encoder/slicetype.cpp, source/x265.cpp: Merge with stable [3568c1b19947] * source/encoder/slicetype.cpp: slicetype: fix initial threshold passed to slicetypePathCost [ddd4e4e328d2] 2014-01-27 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: cleanup g_convertTxtTypeToIdx[] [633421b8faf6] 2014-01-28 Deepthi Nandakumar * source/encoder/weightPrediction.cpp: weightP: when difPoc is large, prepare to avoid MC - part 2. Patch from Kavitha [cb4b0033c7fc] * source/encoder/weightPrediction.cpp: weightP: when difPoc is large, prepare to avoid MC. Patch from Kavitha broken up. [3be5ca58d9d2] * source/encoder/frameencoder.cpp: weightP: build error fix Inconsistency due to import from stable branch [4ead340677bf] * source/x265.cpp: x265: allow only 10-bit input depths in HIGH_BIT_DEPTh builds [dd0ef09680fe] 2014-01-27 Steve Borho * source/common/common.cpp: common: prevent 8bit encodes with HIGH_BIT_DEPTH builds Some of the interpolation 16bpp assembly routines make assumptions that the encode depth is 10bits, so HIGH_BIT_DEPTH builds will generally cause decoder hash mismatches if they encode 8bpp streams. Prevent this until we have a proper long term solution. [773b87c2855c] * source/common/common.cpp, source/encoder/frameencoder.cpp, source/encoder/weightPrediction.cpp: Merge with stable [3c2441447f2a] * source/encoder/frameencoder.cpp: frameencoder: remove commented function which no longer exists compressMotion() was removed 4 months ago [26a5e720f290] * source/common/common.cpp, source/encoder/frameencoder.cpp: me: add one more pixel lag for DIA search's relaxed search bounds [dc4e57833aae] * source/common/common.cpp: common: do not allow encodes other than 4:2:0 to start [10fc60881bbf] 2014-01-24 Kavitha Sampath * source/encoder/weightPrediction.cpp, source/encoder/weightPrediction.h: WeightPrediction: check difPoc <= bframes+1 to allow weight analysis for valid references [a02a028afea9] 2014-01-27 Deepthi Nandakumar * source/common/wavefront.h: wavefront: add missing initializer [4fcfa56420fb] 2014-01-24 Min Chen * source/common/x86/pixel-a.asm: fix SATD32x32 16bits cumulate sum overflow (x86 version only) [83767892376d] 2014-01-27 Steve Borho * source/common/common.cpp, source/encoder/frameencoder.cpp: Merge with stable [b59b1e579f78] 2014-01-25 Satoshi Nakagawa * source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibEncoder/TEncSbac.cpp: HM: context table [1ea8a52b4f54] * source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: cleanup TComCUMvField::m_cAMVPInfo [2fc36d0fd1b2] 2014-01-27 Satoshi Nakagawa * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: magic number [ed2e9fe1a732] 2014-01-26 Satoshi Nakagawa * source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibEncoder/TEncSbac.cpp: reduce unused context models [e0c81b78e529] 2014-01-27 Steve Borho * source/common/common.cpp, source/encoder/frameencoder.cpp: me: add a two pixel pad to the max ME range when calculating reference lag We must account for subpel refine search range when calculating how many rows of reference frames must be encoded ahead of the current frame. Without this we saw non-deterministic decoder hash mismatches with some videos. [b173809575c6] 2014-01-24 Steve Borho * source/input/y4m.cpp, source/input/yuv.cpp: input: add build flag to disable read thread for debug purposes [1ac9148a3661] * Merge with stable [237bf6667405] * source/input/yuv.cpp, source/input/yuv.h: yuv: support colorspaces in YUV input files (closes #13) [13dac38f54ac] * source/input/y4m.cpp, source/input/yuv.cpp: input: use ifstream::good() instead of !ifstream::fail() good() implies bad, fail, and eof flags are all false. The fail() flag does not include eof status or the bad bit for I/O errors. [dba087c3613b] * source/input/y4m.cpp: y4m: prevent infinite loop on malformed y4m frame headers [9867ebc4b164] 2014-01-24 Nabajit Deka * source/test/ipfilterharness.cpp: asm : Fix for luma_vss test bench failure [7f09cfcf176c] 2014-01-24 Steve Borho * source/encoder/slicetype.cpp: Merge with stable [7cd3a3195598] * source/encoder/slicetype.cpp: slicetype: prevent compiler warnings about uninitialized variables [2a2e5711f63b] * source/common/lowres.cpp, source/encoder/slicetype.cpp, source/encoder/slicetype.h: Merge with stable [047fd4670cbe] 2014-01-24 Satoshi Nakagawa * source/encoder/slicetype.cpp: fix b-pyramid for fixed GOP [ffee1032eaed] 2014-01-24 Steve Borho * source/encoder/reference.cpp: reference: pad width of weighted region to multiple of 16 [2ab2bb459d1a] * source/common/lowres.h, source/encoder/slicetype.cpp, source/encoder/slicetype.h: nits [c02e59ab4ee9] * source/encoder/slicetype.cpp: slicetype: fix bcost behavior with signed ints [0431eb3404e7] 2014-01-24 Deepthi Nandakumar * source/common/lowres.cpp, source/common/lowres.h, source/encoder/ratecontrol.h, source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: change all costs to int64_t [8dd9b7ac5b61] * source/common/common.h: Merge with stable [807495b7a9fc] * source/common/common.h: lowres: fix msys compile error [f45d9772cc40] 2014-01-23 Steve Borho * source/encoder/slicetype.cpp: nit [23c65133c555] * source/common/lowres.cpp, source/encoder/slicetype.cpp: white-space and other nits [438a2258504d] * source/encoder/slicetype.cpp: slicetype: repair I frame placement with lookahead disabled if ((true || foo) && bar) properly degrades to if (bar) [f0ae3d8d2b03] * source/common/common.cpp: preset: re-disable lookahead at ultrafast preset [c2af7808ef8d] * source/encoder/slicetype.cpp, source/encoder/slicetype.h: Merge with stable [099a71435329] * source/common/lowres.cpp, source/common/lowres.h, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h, source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: upgrade frame cost variables to uint64_t [629d0a685dcb] 2014-01-24 Deepthi Nandakumar * source/test/pixelharness.cpp: testbench: added the chroma_addAvg primitives. [5460e85ae178] 2014-01-23 Steve Borho * source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: remove unused numDecided member variable [f2766083c252] * source/encoder/slicetype.cpp, source/encoder/slicetype.h: Merge with stable [416713ab5821] 2014-01-21 Steve Borho * source/common/lowres.h, source/encoder/reference.cpp, source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: reorg to make frame cost estimates re-entrant (for RC and WP) * moves frame cost calculations into a separate class deriving from WaveFront * frames[] array now always declared on stack for better re-entrant behavior * re-orders functions in slicetype.cpp for clarity * internal methods were made protected, for documentation purposes only * fixes a few minor problems discovered during the reorg * removes deprecated ReferencePlanes.unweightedFPelPlane [e9ec7787cf5e] 2014-01-22 Satoshi Nakagawa * source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp: cleanup initPattern() [8732434ea913] 2014-01-20 Satoshi Nakagawa * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp: reduce CI_NUM [6a12fc6e6fdc] 2014-01-23 Steve Borho * source/encoder/slicetype.cpp: Merge with stable [cbd2ea65f87d] * source/encoder/slicetype.cpp: slicetype: issue EMMS before returning a thread to the work pool [a42dd0dfe90d] * source/common/primitives.h: primitives: move luma_addAvg close to other weight/avg functions [7aa3ea411568] * source/common/primitives.h: primitves: fix a comment [5bf76ded5209] * source/common/primitives.h: primitive: remove two dead funcdefs [a4c0b6e35dd1] * source/common/ipfilter.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm, source/common/x86/ipfilter8.h, source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: primitive: remove dead ipfilter_sp and ipfilter_ss [ee36ffef7648] * source/common/ipfilter.cpp, source/common/primitives.h, source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: primitive: remove dead ipfilter_ps [688f3951c90c] * source/test/pixelharness.cpp: pixelharness: remove dead primitive test [177421068f53] 2014-01-23 Nabajit Deka * source/Lib/TLibCommon/TComPrediction.cpp: asm : Hook up chroma_vps and chroma_vss with the encoder. [356ec7ff8a68] * source/Lib/TLibCommon/TComPrediction.cpp: asm : Hook up luma_vps and luma_vss with the encoder. [f5ab67ba11b7] 2014-01-23 Deepthi Nandakumar * source/Lib/TLibCommon/TComYuv.cpp, source/common/pixel.cpp, source/common/primitives.h: asm-primitives: addAvg, fix bug pointed out by Ashok. [f1bd676fd90f] 2014-01-22 Steve Borho * source/common/CMakeLists.txt, source/common/ipfilter.cpp, source/common/primitives.h, source/common/vec/ipfilter-sse41.cpp, source/common/vec/vec-primitives.cpp, source/test/ipfilterharness.cpp: vec: drop unused vectorized chroma_vsp primitive, ipfilter-sse41.cpp [29c1940c8acb] 2014-01-22 Nabajit Deka * source/Lib/TLibCommon/TComPrediction.cpp, source/encoder/weightPrediction.cpp: asm : Hook up chroma_vsp with the encoder. [d2bfe01c0f29] 2014-01-22 Deepthi Nandakumar * Merge from stable [d8a1e3bebdf8] 2014-01-22 Kavitha Sampath * source/encoder/weightPrediction.cpp: WeightPrediction: Do not use lowres MV/MVcost for invalid MVs/MVcosts [9497c55d7be2] * source/encoder/weightPrediction.cpp: weightp: fix hash mismatch when --ref > 3 [d56dd4d8e08b] 2014-01-21 Steve Borho * source/encoder/slicetype.cpp: Merge with stable [0f0ad4c094bd] * source/encoder/slicetype.cpp: slicetype: fix cuTree mv indexing (bug found by herman.chen@rock- chips.com) This drops the bitrate almost 20% and the SSIM from 0.4-0.9 dB. I believe this needs rebalancing. [3cf5a75a8002] * source/input/yuv.cpp: yuv: skip frames one at a time to prevent offset overflow [e12bb1346bef] 2014-01-21 Deepthi Nandakumar * Merge [ce41ee0f5c8c] 2014-01-17 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred8.asm: assembly code for intra_pred_ang8_3 [b51c1866363d] 2014-01-20 Steve Borho * source/x265.cpp: cli: tweak aq-strength CLI help [950c9a864cb6] * source/encoder/slicetype.cpp: slicetype: white-space fixes [925e612b0591] * source/encoder/encoder.cpp: encoder: fix the slicetype char table [7bfd1b01953c] * Merge with stable [b5b7d8e64024] 2014-01-20 Gopu Govindaswamy * source/Lib/TLibEncoder/NALwrite.cpp: Nalwrite: removed EMULATION_SIZE macro and calculate the emulationSize from Encoded bitstream size [21a5fb7ab965] 2014-01-17 Aarthi Thirumalai * source/encoder/slicetype.cpp, source/encoder/slicetype.h: rc: avoid issues from zero-residual lookahead blocks, introduce a small bias [ffb53cd1f953] * source/encoder/encoder.cpp, source/encoder/slicetype.cpp: lookahead: call sliceTypeAnalyse when necessary call sliceTypeAnalyse even when cutree is on or lookaheadDepth or scenecutThreashold > 0 performs lookahead when lookaheadDepth > 0, activates lookahead for cutree when b-adapt/bframes =0 and cutree is set , also enables scenecut for bframes = 0 cases. improves psnr/ssim by .5 dB. [bca352c8689e] 2014-01-20 Deepthi Nandakumar * source/common/common.h: NALwrite: remove unused macro [cf79f89c783c] 2014-01-20 Gopu Govindaswamy * source/Lib/TLibEncoder/NALwrite.cpp: Nalwrite: removed EMULATION_SIZE macro and calculate the emulationSize from Encoded bitstream size [356d91e22b25] 2014-01-17 Min Chen * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred8.asm: asm: IntraAng32x32 Mode[17] [9f7fca027b41] 2014-01-18 Dnyaneshwar G * source/test/pixelharness.cpp, source/test/pixelharness.h: testbench support for addAvg primitive [56ce4f7669c6] 2014-01-17 Dnyaneshwar G * source/Lib/TLibCommon/TComYuv.cpp, source/common/pixel.cpp, source/common/primitives.h: primitive function for luma and chroma for loops in addAvg(). [c88314c4a1a1] 2014-01-09 Shazeb Nawaz Khan * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: Re-enabling new weightp [e90e39c3a035] 2014-01-17 Steve Borho * source/common/common.cpp: common: do not report ssim costs by default It costs CPU cycles to measure SSIM, do not do this unless the user asks for them with --ssim [385560ac328d] * source/common/common.cpp: common: remove trailing white-space [299bbf5f06c2] * source/encoder/encoder.cpp: white-space fixes, reorder for clarity [838e485c6365] * source/encoder/encoder.cpp: update/fix comments [c8c8a0273eff] * source/common/common.cpp, source/encoder/encoder.cpp: move param fixups to Encoder::configure() [7855cee45b8c] 2014-01-15 Dnyaneshwar G * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: code for intra_pred[BLOCK_32x32] mode 2 and 34 [1d7ea03e1a38] 2014-01-16 Steve Borho * source/encoder/encoder.cpp: stats: simplify slice type lookup [3d747041271f] 2014-01-16 Xun Xu, PPLive Corporation * source/CMakeLists.txt, source/Lib/TLibCommon/TComPic.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/slicetype.cpp, source/x265.h: add dts to x265_picture, handle same as x264 [57b3238680c5] 2014-01-16 Steve Borho * source/Lib/TLibEncoder/TEncSbac.cpp: TEncSbac: remove hungarian prefixes from loop vars [243b01e81109] 2014-01-12 Satoshi Nakagawa * source/encoder/compress.cpp: remove duplicate code [188617e76d60] 2014-01-15 Satoshi Nakagawa * source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSbac.cpp: fix blockCbpBits[] [04aae8fd88a0] 2014-01-15 Min Chen * source/Lib/TLibCommon/TComDataCU.cpp: cleanup initCU() [37b4ca796088] 2014-01-15 Steve Borho * source/x265.cpp: x265: help nit [e5d28e2c5a82] 2013-12-17 Kavitha Sampath * source/common/common.cpp, source/encoder/dpb.cpp, source/encoder/slicetype.cpp, source/x265.cpp, source/x265.h: slicetype: remove --refresh and use --open-gop(default: enable) [27c2dac98a3c] 2014-01-14 Steve Borho * Merge with stable [7af141be0e7a] 2014-01-09 Satoshi Nakagawa * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: cleanup MVPNum [e7624ab39cff] 2014-01-14 Steve Borho * source/common/wavefront.cpp: wavefront: bug fix [9e923f539d89] 2014-01-13 Steve Borho * source/common/wavefront.cpp: wavefront: consider enabled bitmap status in checkHigherPriorityRow() [8e0fa5fcbf15] * source/Lib/TLibCommon/TComYuv.cpp: TComYuv: pad chroma allocations, fix valgrind warnings [aae31685d8c7] * source/Lib/TLibCommon/TComPicYuv.cpp: TComPicYuv: add a row and col of padding for lowres interpolation [8d3cdf1a846e] * source/CMakeLists.txt, source/common/CMakeLists.txt: cmake: tweak order of compiles to improve parallel build times Move assembly and intrinsic files to front of the build [3bc604fdd380] * Merge with stable [5a607dd446ea] 2014-01-13 Min Chen * source/Lib/TLibCommon/ContextTables.h: HM: Fix for #576: Context table for CBF [c9cefa67691c] * source/Lib/TLibCommon/ContextTables.h: HM: Fix for #501: Decoding part_mode with inter_4x4 can use CNU context [de98453fa608] 2014-01-09 Shazeb Nawaz Khan * source/Lib/TLibCommon/TComSlice.h, source/encoder/weightPrediction.cpp, source/encoder/weightPrediction.h: fix for hash mismatch in new weightp [cd6c34bb4172] 2014-01-10 Steve Borho * Merge with stable [b2e7d8da2838] 2014-01-09 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: code for intra_pred[BLOCK_16x16] mode 2 and 34 [c5aa7ae59fc7] 2014-01-09 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: intra_pred_ang8_2 asm code [acbe568e7366] 2014-01-07 Min Chen * source/common/x86/ipfilter8.asm: improvement interpolate_H_pp [b2a0cfe4837b] 2013-12-28 Min Chen * source/Lib/TLibEncoder/TEncEntropy.cpp: cleanup reduce condition check for getUseDQP() [a03cc8c4d739] 2014-01-08 Steve Borho * source/VectorClass/README.txt, source/VectorClass/instrset.h, source/VectorClass/vectorclass.h, source/VectorClass/vectori128.h, source/VectorClass/vectori256.h, source/VectorClass/vectori256e.h, source/common/vec/ipfilter-ssse3.cpp, source/common/vec/pixel- sse41.cpp, source/common/vec/pixel-ssse3.cpp, source/common/vec/pixel16-sse41.cpp, source/common/x86/intrapred.asm, source/common/x86/pixel-util.asm, source/test/testpool.cpp: Merge with default, prepare for 0.7 tag [0d70188e80bc] 2014-01-07 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util8.asm: asm: fix memory access violation due to scale2D_64to32 [c4edab8dab65] 2014-01-07 Min Chen * source/common/x86/ipfilter8.asm: correct number of xmm register on interp_8tap_horiz* [ca7bde495318] 2014-01-06 Steve Borho * source/Lib/TLibCommon/TComPrediction.cpp: TComPrediction: simplify luma intra prediction function [4811da38078c] * source/Lib/TLibCommon/TComPrediction.cpp: wtf? a useless comment and if()/else() with two identical statements? [c1cf926c20e0] * source/Lib/TLibCommon/TComBitStream.cpp: TComBitStream: fix loop bounds so we do not check past end of buffer [bd9b395c80c7] * .hgignore: ignore vim swap files [6d40ab7be379] * source/Lib/TLibCommon/TComBitStream.cpp: TComBitstream: simplify and streamline start code checks [e1ee0fc31e79] * source/Lib/TLibCommon/TComBitStream.cpp: TComBitStream: rename variables for clarity There was no point making cnt an unsigned variable when the return value is signed, this just adds more compiler warnings [324d99e3d6ac] * source/encoder/motion.cpp: motion: add early out for subpel refine if bcost is already zero [63d6b04fe201] * source/encoder/slicetype.cpp: slicetype: better prevention for compiler warnings and misbehaviors [54835bf61c11] * source/common/x86/asm-primitives.cpp: asm: disable x265_scale2D_64to32_ssse3, DUMA finds access violations I tried simple buffer padding workarounds, adding 16 bytes at the start and end of bufScale, but it was still causing the access violation. [d4bef967ae10] 2014-01-01 Steve Borho * source/Lib/TLibCommon/TComSlice.h: slice: nits [abd4da45823c] * source/encoder/weightPrediction.cpp: weight: clarify max denom adjustments [75f7a9434289] * source/encoder/weightPrediction.cpp: weight: nits [89e57c446a81] * source/encoder/weightPrediction.cpp: weight: alloc intermediate weight buffer once per plane [c35d653ab515] * source/encoder/weightPrediction.cpp, source/encoder/weightPrediction.h: weight: use m_ prefix consistently for all member variables [d809090f70ad] * source/encoder/weightPrediction.h: weightPrediction: remove unused member variables, fix shadow warning [0715d03808f3] 2014-01-06 Min Chen * source/encoder/frameencoder.cpp: fix every execute output different bitstream when SAO enabled [99f28c405b5c] 2014-01-03 Steve Borho * source/input/y4m.cpp: y4m: use loop to skip frames, avoid 32bit size wrap problems [f96c85f03b77] 2014-01-02 Deepthi Nandakumar * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: Backed out changeset: revert to HM-based weightP [8137881d4cad] 2013-12-30 Shazeb Nawaz Khan * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: Integrating new weight analysis in encoder [dcae0b69d9b3] * source/encoder/CMakeLists.txt, source/encoder/weightPrediction.cpp, source/encoder/weightPrediction.h: Importing x264 weight analysis to encoder [affdfa4b5537] * source/encoder/slicetype.cpp, source/encoder/slicetype.h: Moving macro to header [f5427379b40d] 2013-12-30 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: rc: bug fix to improve quality for the first I frame. [c86f18d7eb2a] 2013-12-30 Deepthi Nandakumar * source/common/common.cpp: common: tune-ssim sets aqmode as AUTO_VARIANCE (2). Gives higher ssim. [c561cd778ef5] 2013-12-27 Aarthi Thirumalai * source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp: cutree: bug fixes. correct the timescale used in getQScale() [964e5bc90ad2] 2013-12-27 Deepthi Nandakumar * source/common/common.cpp: aq, cutree: completely turn of AQ, at fastest presets Prevent AQ from running unnecessarily with strength 0. [8b5c5fe7fbc9] * source/common/common.cpp: aq, cutree: preset changes 1. Disable AQ at ultrafast/superfast presets 2. Disable CUTree at ultrafast/superfast/veryfast/faster presets (requires b-adapt to be non-zero). 3. tune-psnr disables only AQ, CUtree stays enabled (at appropriate presets). [cb2a18cc1d14] 2013-12-26 Murugan Vairavel * source/common/x86/blockcopy8.asm: asm: fix for mismatch in 10bpp block copy [0210e9c4a6f9] 2013-12-24 Aarthi Thirumalai * source/common/common.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h, source/x265.h: aq: Add AQ_AUTO_VARIANCE feature for performing adaptive quantization. [2f83ed50ed9a] 2013-12-25 Deepthi Nandakumar * source/encoder/encoder.cpp, source/x265.cpp: encoder: nits [08bad990fd66] 2013-12-24 Deepthi Nandakumar * source/encoder/encoder.cpp: csv: formatting ssim output [d74f2e0856b4] * source/common/common.cpp, source/x265.cpp: common: change tune-ssim to default. When tune-psnr is enabled, AQ and CUTree are turned off. [cb48e00e1fd8] 2013-12-23 Deepthi Nandakumar * source/encoder/encoder.cpp: encoder: increase precision, add ssim db info to csv output. [bb7057e7ed6d] * source/common/common.cpp: common: [OUTPUT CHANGES]: change default ratecontrol mode to CRF-28. AQ on (strength 1.0), CUTree ON. SSIM reporting On, PSNR off. [aa2856a374a1] 2013-12-18 Deepthi Devaki * source/encoder/compress.cpp: rd: optimize rd 0 [3e98f0e66e0b] * source/encoder/compress.cpp: rd: fix incorrect check for rdlevel Merge-skip check should be only for rdlevel 2 [c69ef62da2b6] * source/encoder/compress.cpp: rd: modify recon generation in rd 0 to have lesser mem copies [edeccf4c6cdd] * source/Lib/TLibCommon/TComDataCU.cpp: rd: remove unnecessary mem copies [f766e7c3b165] 2013-12-17 Deepthi Devaki * source/encoder/compress.cpp: compress: clean up [c1802fef73b4] * source/encoder/compress.cpp: rd: move merge-skip check before other modes are checked in rd 1,0 merge-skip is chosen only based on sa8d threshols. Checking other Inter/inter modes is unnecessary overhead. [06ea3901bf35] * source/encoder/compress.cpp: rd: fix error in merge-skip identfication in rd 1,0 Cost was not calculated if the best mode is merge-skip in rd 1,0 [526c10b6a808] * source/encoder/compress.cpp: compress: remove unused sbaccoder load [ee272784fa6e] * source/encoder/compress.cpp: compress: remove redundant initializations depth is already initialized in initsubcu [3aa3ed0fefe8] * source/encoder/compress.cpp: compress: remove unnecessary code reco and resi buffers is not used in this function [8c90ad61a306] * source/encoder/compress.cpp: compress: remove redundant initializations skipFlags are set to false during initialization. [e476d497f3cd] * source/encoder/compress.cpp: rd: check DQP before best cu is copied to the pic in rd 0 [f9c427b44459] * source/Lib/TLibCommon/TComDataCU.cpp, source/encoder/compress.cpp: rd: remove redundant checkDQP and add checkDQP for rd 0 checkDQP is called on bestCU, so no need to call it after each encode. For rd0, call checkDQP after residual encode at depth 0. [5828f199d745] 2013-12-19 Shazeb Nawaz Khan * source/encoder/ratecontrol.cpp: Consider rounded width, height for ssd calculation [8133378e2250] * source/Lib/TLibCommon/TComPicYuv.cpp: Fix typo in extending height to round to multiple of 16 [146051557e0d] 2013-12-18 Gopu Govindaswamy * source/encoder/encoder.cpp, source/x265.cpp, source/x265.h: encoder: print global ssim in db [60c2a49909f2] 2013-12-18 Rafaël Carré * source/CMakeLists.txt: cmake: .pc file is useful as well when using static libs [1c37c4401ea4] * source/cmake/version.cmake: cmake: take revision from git if within a git repo [54445c440ea0] * source/cmake/version.cmake: cmake: verify existance of hg repo [387cd1635278] 2013-12-18 Deepthi Nandakumar * source/common/common.cpp: common: tune-ssim turns on aq strength [09d93b8d5994] * source/common/common.cpp: common: adjust tabs [7f1da6982201] * source/common/common.cpp: common: update print params and defaults. By default, tune-psnr is turned on, which means CUTree is enabled but AQ strength is zero. [3055eacc88ae] * source/common/common.cpp: common: this check taken care of in encoder::configure() [7db25026df8e] * source/common/common.cpp: common: enable CUtree by default. tune=psnr is the default setting [06052d963404] * source/common/common.cpp: common: remove meaningless warning aq=1 is required for cutree. Therefore, aq=1, aqstrength=0 is a valid case for all configs that want cutree but do not want aq (eg, tune-psnr). [b9b1533b52d5] * source/encoder/encoder.cpp: encoder: increase precision for SSIM printf [381ff6bcade6] 2013-12-18 Gopu Govindaswamy * source/common/common.cpp, source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp, source/x265.cpp: cutree: Enable CUTree for ratecontrol when tune=ssim and bug fix for cutree 1. added cutree into cli option, default cutree is disabled 2. --tune=ssim then aq and cutree is enabled 3. Fixed bug in slicetype- frameCostRecalculate() the qp offset for B and B-REF from lowres qpAqOffset, for non-B from lowres qpoffset 4. Fixed bug in Ratecontrol-getQScale - the clip duration should (frameduration * timescale) when cutree is enabled [6edecf959a30] 2013-12-17 Deepthi Devaki * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp: rd: remove unnecessary sbaccoder loads [37e0b00adeec] * source/Lib/TLibEncoder/TEncSearch.cpp: rd: fix wrong chroma mode used for mode decision [119d09b54b95] 2013-12-16 Deepthi Devaki * source/Lib/TLibEncoder/TEncSearch.cpp: rd level: use cu coeff array while computing Intra coefficients instead of temp buffer [37c57d47a9d4] 2013-12-17 Min Chen * source/common/x86/intrapred8.asm: fix yasm warning 'trailing garbage after expression' [e1465ef2659c] * source/common/x86/pixel-util8.asm: fix crash in pixel_var_16x16_internal, because RateControl::acEnergyCu() call it with unalignment pointer [c944aa8fbf2f] 2013-12-17 Gopu Govindaswamy * source/encoder/ratecontrol.cpp: rc: bug fix for variance data calculation for weighted prediction when aq-mode is disable [517eadc29cf6] 2013-12-17 Deepthi Nandakumar * source/common/vec/vec-primitives.cpp: vec-primitives: avoid warnings [9ffeea38b119] * source/Lib/TLibCommon/TComSlice.cpp: TComSlice: correct initialization list order (warnings on non-VS compilers). [7474532db9ec] 2013-12-16 Gopu Govindaswamy * source/encoder/ratecontrol.cpp: rc: Calculate the variance data for weighted prediction if aq-mode is disable [baf811614a7a] 2013-12-16 Sumalatha Polureddy * source/encoder/compress.cpp: compress: remove unused variables [91b9cd801cbb] 2013-12-16 Deepthi Devaki * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp: rd level: use cu coeff array while computing coefficients instead of temp buffer [34137673f778] 2013-12-16 Sumalatha Polureddy * source/encoder/compress.cpp: rd level: fix for output mismatch For boundary conditions, cost calculation was wrong. [3dae450a06a4] 2013-12-16 Deepthi Devaki * source/Lib/TLibEncoder/TEncSearch.cpp: rd level: remove unnecessary calculations in intra residual encoding calcrecon calculates recon,reconQT and reconIpred which is redundant. Use add and block copy instead of calcrecon. [9bb16a023918] 2013-12-16 Sumalatha Polureddy * source/Lib/TLibCommon/TComDataCU.cpp: TComDataCU: fix gcc warning [57efb99765cc] * source/Lib/TLibEncoder/TEncCu.h: TEncCu: reintroduce a macro which was removed while merging [9171e78ee412] 2013-12-11 Praveen Tiwari * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: all_angs_pred_8x8, asm code [43656ecbe66b] 2013-12-16 Deepthi Devaki * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: fix gcc warning remove unused variables and shadowed declarations [238d7f272d1e] 2013-12-13 Deepthi Devaki * source/encoder/compress.cpp: white space nits [f157836c3713] * source/encoder/compress.cpp: rd level: modify mode-decision logic for rd level 0 In rd level 0, sa8d cost used for mode decision across depths. dct,quant is not done during mode-decision and no recon is generated. Hence Intra has to use original pixels as reference. Residual encoding is done at depth 0 and Intra prediction for the best mode will be done again with recon as reference. [d2a1b3409656] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp: rd level: add functions to do residual encoding at depth 0 for best modes. This function will be used for rd level 0. [e05b990cfb93] 2013-12-13 Gopu Govindaswamy * source/common/common.cpp, source/common/lowres.cpp, source/encoder/ratecontrol.cpp: rc: Initialized qp and aq offsets and QscaleFactor if aqmode is disabled these variables need for cutree analyse [c6ff3ede1f29] * source/encoder/slicetype.cpp, source/encoder/slicetype.h: Slicetype: recalculate the frame cost without re-running lookahead for cutree [582e96661432] 2013-12-14 Deepthi Nandakumar * source/output/yuv.cpp: Merge with stable [4b0163d06ba1] * source/output/yuv.cpp: yuv: fix more 32-bit compile warnings [bca251133e70] 2013-12-13 Steve Borho * source/output/yuv.cpp: Merge with stable [5cbea1cd3d3a] * source/output/yuv.cpp: yuv: prevent 32bit compiler warnings [14e9dbedab9d] 2013-12-12 Steve Borho * source/output/y4m.cpp: y4m: perform file offset math in uint64_t [292a91f3427e] 2013-12-13 Aarthi Thirumalai * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp: rc: implement ratecontrol upto MAX_MAX_QP. For RateControl .virtual qps are used from 0 till 69. Howevr,Before encoding the frame, the qps are clipped back to 51 [926f7034b2f0] * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h: rc: Initialize virtual qps till 69 [07d83bc1cfad] 2013-12-12 Shazeb Nawaz Khan * source/Lib/TLibEncoder/WeightPredAnalysis.cpp: Fix for deltaWeight assert failure in Decoder [ba2f8f5d3b07] 2013-12-13 Deepthi Nandakumar * source/encoder/compress.cpp: Merge: changes outputs [d0cf79d76057] 2013-12-12 Sumalatha Polureddy * source/encoder/compress.cpp: rd level: fix the incorrect cost calculation for sa8d In rd level 1, the distortion is sa8d, so cost calculation should be calrdsadcost() instead of calcrdcost() [ba3cc2f01138] * source/encoder/compress.cpp: rd level: remove the redundant splitflag bit calculation with EARLY EXIT ON [fdfecd9f4c9e] * source/encoder/compress.cpp: rd level: change the indexing for sa8d threshold array The index in threshold array won't be same as depth when the max cu size is less than 64. [bf541ca76b3a] 2013-12-13 Deepthi Nandakumar * source/encoder/compress.cpp: compress: review/clean up top_skip [20f9187af731] * source/encoder/compress.cpp: compress: review/clean up merge [1012911d1895] 2013-12-12 Steve Borho * source/output/yuv.cpp: Merge with stable [033a65692b6a] 2013-12-12 David Bachelart * source/output/yuv.cpp: yuv: Support 4GB+ YUV files for output [06e88ad6d922] 2013-12-11 Steve Borho * source/common/CMakeLists.txt, source/common/ipfilter.cpp, source/common/primitives.h, source/common/vec/ipfilter-ssse3.cpp, source/common/vec/vec-primitives.cpp: primitives: drop ipfilter[FILTER_H_P_S_[4|8], including ipfilter- ssse3.cpp [a87f12ebb55b] * source/common/x86/pixel-a.asm: merge with stable [25f412ecaba2] * source/common/x86/pixel-a.asm: ssd: backport EMMS fix for SSD_4xN [d2385a789c8a] 2013-12-11 Nabajit Deka * source/Lib/TLibCommon/TComPrediction.cpp: asm : Hook up chroma_hps with encoder. [93a92dafb667] 2013-12-11 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util.h, source/common/x86/pixel-util8.asm: asm: 10bpp code for calcrecon_16x16 and 32x32 [350b0757d1a0] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util8.asm: asm: 10bpp code for calcrecon_4x4 and 8x8 [59c09449211d] 2013-12-11 Dnyaneshwar G * source/test/intrapredharness.cpp: testbench: fix invalid memory compare for 16bpp primitives [da972cf802fb] 2013-12-11 Murugan Vairavel * source/test/pixelharness.cpp: asm: 10bpp test bench code for calcrecon [99f3527f9b7b] 2013-12-11 Min Chen * source/common/x86/intrapred16.asm: asm: remove reduce operators in intra_pred_planar32 [5d21f5c91495] 2013-12-11 Dnyaneshwar G * source/common/x86/intrapred16.asm: asm: fix hash mismatch in intra_pred_planar_32x32 16bpp [0d2771085aec] 2013-12-11 Min Chen * source/common/x86/ssd-a.asm: asm: fix miss EMMS in pixel_ssd_ss_4xN [3e6b5f65f47c] 2013-12-11 Yuvaraj Venkatesh * source/common/x86/intrapred16.asm: asm: fix hash miss match due to intra_pred_ang4_17 [8f634eac2ca0] 2013-12-10 Dnyaneshwar G * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred16.asm: 16bpp: assembly code for intra_pred_planar_32x32 [771e657a11fa] * source/common/x86/intrapred16.asm: assembly code for intra_pred_planar_16x16 for 10 and 12-bit [2b618395a586] 2013-12-11 Gopu Govindaswamy * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/lowres.cpp: tcomtrquant: when useRDOQ is disabled, it recomputes qpScaled, the qpScaled for trQuant is already set [c5f84164ef36] 2013-12-10 Deepthi Devaki * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp: rdlevel: implement rdlevel 1 At each depth, dct, quant, iquant, idct is done on best mode. No RD done during TU selection. Recon is generated for intra prediction in neighbouring quadtree is not broken [298470fa2d19] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: add functions for Intra residual transform and quantization without rd [14ddc3ed548a] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: add function for Inter residual tranform and quantization without RD [9b7f7303cdb9] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: remove unused functions [b938ac5cef81] 2013-12-11 Kavitha Sampath * source/Lib/TLibEncoder/TEncCu.cpp: log: fix memory overread issue [40895c94da21] 2013-12-11 Deepthi Nandakumar * source/CMakeLists.txt, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp: cmake: Add LOG_CU_STATISTICS macro to enable/disable CU mode decision statistics. [a1e7aac486a7] 2013-12-10 Steve Borho * source/encoder/motion.cpp: motion: nit [3bf6be9d766b] * source/common/x86/intrapred16.asm: intra: fix 64bit build of intrapred16.asm - Min please review [dcef9f3bca1e] 2013-12-10 Deepthi Nandakumar * Merge [c4fdea3fd659] 2013-12-10 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util.h, source/common/x86/pixel-util8.asm: asm: 10bpp code for calcresidual_16x16 and 32x32 [1169201b50c4] 2013-12-10 Nabajit Deka * source/Lib/TLibCommon/TComPrediction.cpp, source/encoder/motion.cpp: asm : Hook up luma_hps with the encoder. [af1f46818bed] * source/test/ipfilterharness.cpp: Add comment for luma_hps and chroma_hps test bench code. [1cc5b2d87d8b] 2013-12-10 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/const-a.asm, source/common/x86/intrapred16.asm: asm: 16bpp asm code for intra_pred_ang4 - mode 17,18 [384d99887688] 2013-12-10 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util8.asm: asm: 10bpp code for calcresidual_4x4 and 8x8 [e4c13676c4b5] 2013-12-10 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred16.asm: asm: 16bpp asm code for intra_pred_ang4 - mode 14,15,16 [573a8cfac514] 2013-12-10 Murugan Vairavel * source/common/x86/asm-primitives.cpp: asm: 10bpp support for blockcopy_ps and blockcopy_sp [8f8d4811352a] 2013-12-10 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred16.asm: asm: 16bpp asm code for intra_pred_ang4 - mode 11,12,13 [b29166445321] 2013-12-10 Murugan Vairavel * source/common/x86/asm-primitives.cpp: asm: 10bpp blockcopy_ps integration for Luma and chroma partitions [887206700a13] 2013-12-10 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred16.asm: asm: 16bpp code for intra_pred_ang4_26 [1eb855251cc5] 2013-12-10 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm: asm: 10bpp code for blockcopy_ps_64xN [72e7899bef55] * source/common/x86/blockcopy8.asm: asm: 10bpp blockcopy_ps bug fix [8e34f135fd9e] 2013-12-10 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/const-a.asm, source/common/x86/intrapred16.asm: asm: 16bpp asm code for intra_pred_ang4_10 [d604f25e6eab] 2013-12-10 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm: asm: 10bpp code for blockcopy_ps_48x64 [1679ad2da2a1] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm: asm: 10bpp code for blockcopy_ps_32xN [64c8f43aa7ce] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm: asm: 10bpp code for blockcopy_ps_24x32 [e7fff01a464b] 2013-12-10 Dnyaneshwar G * source/common/x86/asm-primitives.cpp: 16bpp: enabled blockfill_s primitive [2cf9944afa92] 2013-12-10 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm: asm: 10bpp code for blockcopy_ps_16xN [2e56e8e76f72] 2013-12-10 Nabajit Deka * source/common/ipfilter.cpp: Bug fix in luma_hps C primitive. [1863cdede774] 2013-12-10 Murugan Vairavel * source/common/x86/blockcopy8.asm: asm: 10bpp code for bolckcopy_ps_12x16 [54e8c012597c] * source/common/x86/asm-primitives.cpp: asm: pixel_add_ps integration code for Luma and chroma partitions [0c46964557c8] 2013-12-10 Min Chen * source/test/intrapredharness.cpp, source/test/intrapredharness.h: testbench: fix wrong width parameter in check_planar_primitive() [5a7f116e3aae] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred16.asm: asm: Intra Planar 16x16 [5604254f779e] * rename IntraPred.cpp to intrapred.cpp to avoid name conflict [7810ce2bdb53] * source/common/x86/intrapred16.asm: asm: improvement IntraPredDC_32x32 by replace macro extend by loop [9a8b0e81330f] 2013-12-09 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm: asm: 10bpp code of blockcopy_pp for 2xN, 4xN, 6x8 and 8xN blocks [285a4d8c42a0] 2013-12-09 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred16.asm: asm: 16bpp asm code for intra_pred_ang4_8 and intra_pred_ang4_9 [66d8405320d2] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred16.asm: asm: 16bpp asm code for intra_pred_ang4_7 [f33ca21fe0c2] 2013-12-10 Min Chen * source/common/x86/intrapred16.asm: asm: alignment branch to 16 bytes [89fea75bbc1b] 2013-12-10 Kavitha Sampath * source/Lib/TLibEncoder/TEncCu.cpp: log: fix crash caused by logging after CU analysis [ef26367cd10c] 2013-12-09 Steve Borho * Merge with stable [a88c5723d266] 2013-12-03 Steve Borho * source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibEncoder/TEncSbac.cpp: sbac: move global tables into x265 namespace [7d4f5cbc68e7] 2013-12-09 Steve Borho * source/encoder/ratecontrol.cpp: Merge with stable [c6c73ef24c97] * source/encoder/ratecontrol.cpp: ratecontrol: avoid reads past the end of chroma buffers [67e711fde921] * source/common/vec/dct-ssse3.cpp: dct: drop intrinsic DCT 8x8 primitive, we have asm coverage [eacdbae47e47] * source/encoder/ratecontrol.cpp: ratecontrol: make weightp analysis aware of colorspaces [f25e60a2b62c] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: nit [644d27bb26e9] 2013-12-09 Shazeb Nawaz Khan * source/encoder/ratecontrol.cpp: Use correct width/height for chroma in ssd calculation [7bd7937e762b] 2013-12-09 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred16.asm: asm: 16bpp asm code for intra_pred_ang4_6 [40e204fcf5d4] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred16.asm: asm: 16bpp asm code for intra_pred_ang4_5 [0587de3aeb9b] 2013-12-09 Dnyaneshwar G * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred16.asm: 16bpp: assembly code for intra_planar8 [4c5a86ff2c99] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred16.asm: 16bpp: assembly code for intra_planar4 [39b7cf1f3a89] 2013-12-09 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred16.asm: asm: 16bpp asm code for intra_pred_ang4_4 [6f2660e5a857] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred16.asm: asm: 16bpp support for intra_pred_ang4_3 [9116410f11b4] 2013-12-09 Murugan Vairavel * source/common/x86/pixeladd8.asm: asm: 10bpp code for pixel_add_ps_6x8 [cbd96bfe5732] * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: asm: 10bpp code for pixel_add_ps_64xN [6385549fefa3] 2013-12-09 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/const-a.asm, source/common/x86/intrapred16.asm: asm: 16bpp asm code for intra_pred_ang4_2 [36ffa3ba6039] 2013-12-09 Min Chen * source/common/x86/intrapred8.asm: asm: little improvement(pextrd -> movd, jmp to alignlemt address) [e16a67613973] 2013-12-09 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: asm: 10bpp code for pixel_add_ps_48x64 [69766745fb6d] * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: asm: 10bpp code for pixel_add_ps_32xN [ef3bfef112c1] * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: asm: 10bpp code for pixel_add_ps_24x32 [46a23a64eb1e] * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: asm: 10bpp code for pixel_add_ps_16xN [fdb1ed6efd5b] * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: asm: 10bpp code for pixel_add_ps_12x16 [ced72100d067] * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: asm: 10bpp code for pixel_add_ps_8xN [1c4d5a2538d5] 2013-12-09 Deepthi Nandakumar * source/x265.h: x265: fix bad merge [55d99b6651f2] * source/x265.h: Merge [c7e7003df711] 2013-12-09 Min Chen * source/test/pixelharness.cpp: fix bug: avg_pp use weight 32 [5bb46ef28bc5] * source/common/x86/asm-primitives.cpp, source/common/x86/const-a.asm, source/common/x86/dct8.asm, source/common/x86/dct8.h: asm: assembly code for DCT8x8 [8ffd72844276] 2013-12-07 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: asm: 10bpp code for pixel_add_ps_4xN [4f9dc5dc44e0] 2013-12-07 Min Chen * source/test/testpool.cpp: Merge branch 'X' [2353322df540] 2013-12-06 Steve Borho * Merge [f655add8bcc2] 2013-12-06 Dnyaneshwar G * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/IntraPred.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm, source/encoder/compress.cpp, source/encoder/slicetype.cpp, source/test/intrapredharness.cpp, source/test/intrapredharness.h: cleanup: merge Intra Pred PLANAR mode into intra_pred[] [8773f7f028c2] 2013-12-06 Min Chen * rename IntraPred.cpp to intrapred.cpp [a5984c686c55] 2013-12-06 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: asm: 10bpp code for pixel_add_ps_2xN [8eba4667a5e3] * source/test/pixelharness.cpp: 10bpp: testbench code for pixel_add_ps [41bfe2b249f8] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util.h, source/common/x86/pixel-util8.asm: asm: 10bpp code of pixel_sub for 16xN, 24x32, 32xN,48x64 and 64xN [4bb40809a372] 2013-12-06 Dnyaneshwar G * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred16.asm: 16bpp: assembly code for intra_pred_dc32 [3933b4a1380d] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred16.asm: 16bpp: assembly code for intra_pred_dc16 [056a712852c9] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred16.asm: 16bpp: assembly code for intra_pred_dc8 [ef6f2bdbaf7d] * source/common/CMakeLists.txt, source/common/x86/asm-primitives.cpp, source/common/x86/const-a.asm, source/common/x86/intrapred16.asm: 16bpp: assembly code for intra_pred_dc4 [059af4b49f8e] 2013-12-06 Min Chen * source/common/x86/intrapred8.asm: asm: cleanup garbage after fucntion declare [fef16dcf106f] 2013-12-06 Deepthi Nandakumar * source/x265.h: x265: remove obsolete R-D enums [dadb3ae865cb] * source/x265.h: rc params: documentation on i/p/bfactor, qpstep, crf [3c0a1652611e] * source/x265.h: ratecontrol params: documentation for rateTolerance [08cf1b4ba081] * source/x265.h: ratecontrol parameters: add documentation for qcomp [c889005baa5f] 2013-12-05 Steve Borho * source/test/CMakeLists.txt, source/test/testpool.cpp: cmake: drop pool test; not seriously used since May [ebd32ea1f84e] * source/CMakeLists.txt: cmake: add ENABLE_SHARED cmake option, default to ON Allow MSVC users to opt-out; to roughly halve the compile time. Clean up a few nits in the process. [707901470d11] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/encoder/encoder.cpp: TEncCu: coding style, lower case initial letter for totalCu [458173c60685] * source/CMakeLists.txt: cmake: bump X265_BUILD post 0.6, since x265_param has changed [9442edac08b7] * source/CMakeLists.txt, source/common/CMakeLists.txt, source/common/cpu.cpp, source/common/primitives.cpp, source/common/primitives.h, source/common/vec/vec-primitives.cpp, source/test/TestBench.cpp: cmake: rename ENABLE_PRIMITIVES_ASM to ENABLE_ASSEMBLY And use the same name for the build define. Also, rename Setup_Vector_Primitives() to Setup_Instrinsic_Primitives() [a3a4689496e8] * source/CMakeLists.txt, source/common/CMakeLists.txt, source/common/primitives.cpp, source/test/TestBench.cpp: cmake: remove ENABLE_PRIMITIVES_VEC build option The use of the few remaining compiler intrinsic functions is now unconditional. Compiler detection will remove them cleanly in case they cannot be compiled, so there is no reason to make them a top level build option [46cbb9f96850] * source/Lib/TLibCommon/CommonDef.h, source/common/IntraPred.cpp, source/common/primitives.h, source/common/vec/intra-ssse3.cpp, source/test/intrapredharness.cpp, source/test/intrapredharness.h: primitives: cleanup intra prediction table dimensions [435c68acd2a1] * source/common/CMakeLists.txt: cmake: move asm-primitives.cpp and asm headers into VS source group A cosmetic change only [89b4d233b57f] * source/encoder/compress.cpp: Merge [6fd83a8d944c] 2013-12-05 Praveen Tiwari * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm, source/test/intrapredharness.cpp: all_angs_pred_4x4, asm code for all modes [be8b52e8f903] 2013-12-05 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util8.asm: asm: 10bpp code for pixel_sub_12x16 [f2ce16c8d65a] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util8.asm: asm: 10bpp code for pixel_sub_8xN [a30515de4c2d] 2013-12-05 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/sad16-a.asm: asm: 16bpp support for sad_x4 - all block sizes [ca7d0e04c324] 2013-12-05 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util8.asm: asm: 10bpp code for pixel_sub_6x8 [9e0b2aa531a9] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util8.asm: asm: 10bpp code for pixel_sub_4xN [952d606c08ed] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util.h, source/common/x86/pixel-util8.asm: asm: 10bpp code for pixel_sub_2xN [376c68701fb7] 2013-12-05 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/sad16-a.asm: asm: 16bpp support for sad_x3 - all block sizes [057581245e2f] 2013-12-05 Murugan Vairavel * source/common/x86/asm-primitives.cpp: asm: primitives of sse_ss for 12x16, 24x32, 48x64 and 64xN blocks [6570bef3bc2b] 2013-12-05 Min Chen * source/common/x86/intrapred8.asm: improvement by remove reduce ADD instruction in intra_pred_dc16 [229ec0d4164f] * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/IntraPred.cpp, source/common/primitives.h, source/common/vec/intra-ssse3.cpp, source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm, source/encoder/compress.cpp, source/encoder/slicetype.cpp, source/test/intrapredharness.cpp, source/test/intrapredharness.h: cleanup:merge Intra Pred DC mode into intra_pred[] [e1cf58c22166] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: assembly code for IntraPredAng4x4 Mode 18 [f4b8486659ad] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: assembly code for IntraPredAng4x4 Mode 17 & 19 [06cb5289dfcf] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: assembly code for IntraPredAng4x4 Mode 16 & 20 [56506c2913d8] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: assembly code for IntraPredAng4x4 Mode 15 & 21 [112dabd56faf] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: assembly code for IntraPredAng4x4 Mode 14 & 22 [2c2f9294e033] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: assembly code for IntraPredAng4x4 Mode 13 & 23 [d77cf817b11e] * source/test/intrapredharness.cpp: testbench: swap order to call asm code Our old intra_pred_ang algorithm will fill buffer before input pLeft and pabove, in this time, the offset [-1] pixel equal to [4], it affect detect asm code error, so I swap the order [3aa3d68f1552] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: assembly code for IntraPredAng4x4 Mode 12 & 24 [666ad0f9f68e] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: assembly code for IntraPredAng4x4 Mode 11 & 25 [36da30382f5f] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm, source/test/intrapredharness.cpp: asm: improvement intra_pred_ang by SSE4(pextrd,pextrb) [ca7d44856001] 2013-12-05 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util8.asm: asm: 10bpp code for scale2D_64to32 routine [4d6b8c30f15e] 2013-12-05 Yuvaraj Venkatesh * source/common/primitives.cpp: integrating asm code for sa8d in primitives.cpp there was no separate functions for sa8d in assembly, we are just re-using sa8d_inter functions for sa8d. [1f96b2234977] 2013-12-05 Min Chen * source/common/vec/intra-ssse3.cpp: cleanup unused array intra_ang4[] [f16f9f0ea93c] * Merge branch 'X' [d11dbd953d6d] 2013-12-04 Nabajit Deka * source/common/x86/ipfilter8.h: Function declarations for modified luma_hps and chroma_hps functions. [fc7883c471e4] * source/common/primitives.h, source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: Test bench code for luma_hps and chroma_hps [f29d063bf40d] * source/common/ipfilter.cpp: C primitive changes for luma_hps and chroma_hps. [d19d6ac4bc4b] * source/common/x86/ipfilter8.asm: asm : Modifications for luma_hps and chroma_hps(extra rows) [3e8632ea6c95] 2013-12-05 Min Chen * source/Lib/TLibCommon/TComPrediction.cpp, source/common/IntraPred.cpp, source/common/primitives.h, source/common/vec/intra-ssse3.cpp, source/common/x86/asm- primitives.cpp, source/common/x86/intrapred.h, source/test/intrapredharness.cpp, source/test/intrapredharness.h: asm: simplify code by use intra_pred_ang[][], and avoid build error when disable yasm [660a23104096] * rename IntraPred.cpp to intrapred.cpp to avoid team's hg merge conflict [d7bdf9a5b2c6] 2013-12-07 Steve Borho * source/test/testbench.cpp: testbench: remove long-since idiotic comment [b29f2f31ec46] * source/CMakeLists.txt, source/common/CMakeLists.txt, source/common/cpu.cpp, source/common/primitives.cpp, source/test/testbench.cpp: cmake: simplify use of ENABLE_ASSEMBLY build define The define is only needed in primitives.cpp. Move all of the CPU detect fallback code together in primitives.cpp making cpu.cpp more standalone. Make the testbench only build if the assembly code is enabled. [e1fbbf947b60] 2013-12-07 Deepthi Nandakumar * source/x265.h: rc params: complete documentation for rc params in x265.h [d8d844b36c6c] 2013-12-06 Steve Borho * Merge [a482cf5de173] 2013-12-06 Dnyaneshwar G * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/intrapred.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm, source/encoder/compress.cpp, source/encoder/slicetype.cpp, source/test/intrapredharness.cpp, source/test/intrapredharness.h: cleanup: merge Intra Pred PLANAR mode into intra_pred[] [c093e7847025] 2013-12-06 Min Chen * rename IntraPred.cpp to intrapred.cpp [f4166f824c2b] 2013-12-06 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: asm: 10bpp code for pixel_add_ps_2xN [967297338b27] * source/test/pixelharness.cpp: 10bpp: testbench code for pixel_add_ps [13314db77cf8] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util.h, source/common/x86/pixel-util8.asm: asm: 10bpp code of pixel_sub for 16xN, 24x32, 32xN,48x64 and 64xN [f27fb7c2676a] 2013-12-06 Dnyaneshwar G * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred16.asm: 16bpp: assembly code for intra_pred_dc32 [d36fb6852698] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred16.asm: 16bpp: assembly code for intra_pred_dc16 [6d2d7c2a5d79] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred16.asm: 16bpp: assembly code for intra_pred_dc8 [110d716e67a7] * source/common/CMakeLists.txt, source/common/x86/asm-primitives.cpp, source/common/x86/const-a.asm, source/common/x86/intrapred16.asm: 16bpp: assembly code for intra_pred_dc4 [9e24dcae2ebf] 2013-12-06 Min Chen * source/common/x86/intrapred8.asm: asm: cleanup garbage after fucntion declare [ad08db06a7c6] 2013-12-06 Deepthi Nandakumar * source/x265.h: x265: remove obsolete R-D enums [56a17500909e] * source/x265.h: rc params: documentation on i/p/bfactor, qpstep, crf [c5e91abfeb05] * source/x265.h: ratecontrol params: documentation for rateTolerance [49288da0ee3e] * source/x265.h: ratecontrol parameters: add documentation for qcomp [608874dc84ab] 2013-12-05 Steve Borho * source/test/CMakeLists.txt, source/test/testpool.cpp: cmake: drop pool test; not seriously used since May [d5dc48e6cd16] * source/CMakeLists.txt: cmake: add ENABLE_SHARED cmake option, default to ON Allow MSVC users to opt-out; to roughly halve the compile time. Clean up a few nits in the process. [3e6be1e11720] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/encoder/encoder.cpp: TEncCu: coding style, lower case initial letter for totalCu [97e917c4a923] * source/CMakeLists.txt: cmake: bump X265_BUILD post 0.6, since x265_param has changed [6ed44381cb6c] * source/CMakeLists.txt, source/common/CMakeLists.txt, source/common/cpu.cpp, source/common/primitives.cpp, source/common/primitives.h, source/common/vec/vec-primitives.cpp, source/test/testbench.cpp: cmake: rename ENABLE_PRIMITIVES_ASM to ENABLE_ASSEMBLY And use the same name for the build define. Also, rename Setup_Vector_Primitives() to Setup_Instrinsic_Primitives() [f321d4a467fb] * source/CMakeLists.txt, source/common/CMakeLists.txt, source/common/primitives.cpp, source/test/testbench.cpp: cmake: remove ENABLE_PRIMITIVES_VEC build option The use of the few remaining compiler intrinsic functions is now unconditional. Compiler detection will remove them cleanly in case they cannot be compiled, so there is no reason to make them a top level build option [a458b8d6b476] * source/Lib/TLibCommon/CommonDef.h, source/common/intrapred.cpp, source/common/primitives.h, source/common/vec/intra-ssse3.cpp, source/test/intrapredharness.cpp, source/test/intrapredharness.h: primitives: cleanup intra prediction table dimensions [49c0408febfd] * source/common/CMakeLists.txt: cmake: move asm-primitives.cpp and asm headers into VS source group A cosmetic change only [41e80c591116] * source/encoder/compress.cpp: Merge [67d755e2a30c] 2013-12-05 Praveen Tiwari * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm, source/test/intrapredharness.cpp: all_angs_pred_4x4, asm code for all modes [6d1b07d41cdd] 2013-12-05 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util8.asm: asm: 10bpp code for pixel_sub_12x16 [9d974915023f] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util8.asm: asm: 10bpp code for pixel_sub_8xN [832d1d134449] 2013-12-05 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/sad16-a.asm: asm: 16bpp support for sad_x4 - all block sizes [f864064737bc] 2013-12-05 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util8.asm: asm: 10bpp code for pixel_sub_6x8 [c83d6906f665] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util8.asm: asm: 10bpp code for pixel_sub_4xN [31b3bf1246c7] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util.h, source/common/x86/pixel-util8.asm: asm: 10bpp code for pixel_sub_2xN [c36134873a8d] 2013-12-05 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/sad16-a.asm: asm: 16bpp support for sad_x3 - all block sizes [8f3af42f7f44] 2013-12-05 Murugan Vairavel * source/common/x86/asm-primitives.cpp: asm: primitives of sse_ss for 12x16, 24x32, 48x64 and 64xN blocks [4c9b7eb235a9] 2013-12-05 Min Chen * source/common/x86/intrapred8.asm: improvement by remove reduce ADD instruction in intra_pred_dc16 [c9a67d02ad1c] * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/intrapred.cpp, source/common/primitives.h, source/common/vec/intra-ssse3.cpp, source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm, source/encoder/compress.cpp, source/encoder/slicetype.cpp, source/test/intrapredharness.cpp, source/test/intrapredharness.h: cleanup:merge Intra Pred DC mode into intra_pred[] [7febdbc37965] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: assembly code for IntraPredAng4x4 Mode 18 [91fe66f971d2] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: assembly code for IntraPredAng4x4 Mode 17 & 19 [59f0433ffca0] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: assembly code for IntraPredAng4x4 Mode 16 & 20 [d551487023ba] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: assembly code for IntraPredAng4x4 Mode 15 & 21 [2ae36352e08c] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: assembly code for IntraPredAng4x4 Mode 14 & 22 [88e38d7f926b] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: assembly code for IntraPredAng4x4 Mode 13 & 23 [7995a50e0fc2] * source/test/intrapredharness.cpp: testbench: swap order to call asm code Our old intra_pred_ang algorithm will fill buffer before input pLeft and pabove, in this time, the offset [-1] pixel equal to [4], it affect detect asm code error, so I swap the order [b9e0bfacfb8e] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: assembly code for IntraPredAng4x4 Mode 12 & 24 [e39c11970ca0] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: assembly code for IntraPredAng4x4 Mode 11 & 25 [c8641f015e5b] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm, source/test/intrapredharness.cpp: asm: improvement intra_pred_ang by SSE4(pextrd,pextrb) [c3d07f251bd8] 2013-12-05 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util8.asm: asm: 10bpp code for scale2D_64to32 routine [1845917cb66d] 2013-12-05 Yuvaraj Venkatesh * source/common/primitives.cpp: integrating asm code for sa8d in primitives.cpp there was no separate functions for sa8d in assembly, we are just re-using sa8d_inter functions for sa8d. [b7656aa5f346] 2013-12-05 Min Chen * source/common/vec/intra-ssse3.cpp: cleanup unused array intra_ang4[] [70a042f36c2c] * Merge branch 'X' [78165334eed6] 2013-12-04 Nabajit Deka * source/common/x86/ipfilter8.h: Function declarations for modified luma_hps and chroma_hps functions. [79d649d551f0] * source/common/primitives.h, source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: Test bench code for luma_hps and chroma_hps [06f89ffdba43] * source/common/ipfilter.cpp: C primitive changes for luma_hps and chroma_hps. [835ee97789af] * source/common/x86/ipfilter8.asm: asm : Modifications for luma_hps and chroma_hps(extra rows) [6a0f7924321e] 2013-12-05 Min Chen * source/Lib/TLibCommon/TComPrediction.cpp, source/common/intrapred.cpp, source/common/primitives.h, source/common/vec/intra-ssse3.cpp, source/common/x86/asm- primitives.cpp, source/common/x86/intrapred.h, source/test/intrapredharness.cpp, source/test/intrapredharness.h: asm: simplify code by use intra_pred_ang[][], and avoid build error when disable yasm [dcc2e11e5643] * rename IntraPred.cpp to intrapred.cpp to avoid team's hg merge conflict [b04134971883] 2013-12-04 Deepthi Devaki * source/encoder/compress.cpp: rdlevel: skip Intra if inter/merge sa8d less than a threshold In higher rdlevels Intra is skipped if inter/merge cu cbf is 0. A threshold of sa8d expects that cu cbf will be 0. Thresholds have to be refined further. [e7424e0cb60f] * source/encoder/compress.cpp: rdlevel: compare Merge-skip(merge2Nx2N with no residue) to best among inter/intra/merge in rdlevel 2 [4668ede3a332] * source/encoder/compress.cpp: rdlevel: Add code for rdlevel 2 Use signalling bits + sa8d cost to choose best among inter/merge/intra. Encode only best mode at each depth. [6694ef611b41] * source/encoder/compress.cpp: Enable topskip and earlyexit for all rd levels <= 4 (output changes for presets faster than "slow") Also use the encodeResandCalcRDInter instead of the refactored estimate function. [e44315ab36b9] 2013-12-05 Steve Borho * source/encoder/encoder.cpp: encoder: fix warning of potentially unused locals [c8ca8c93083b] * source/x265.cpp: cli: fix final stat line handling of optional PSNR and SSIM stats [ee8f2fa7d82a] 2013-12-05 Kavitha Sampath * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp, source/encoder/encoder.cpp: log: collect statistics after CU analysis Report percentage of CU blocks encoded at each depth of P/B slice as EncCU [ed7c32d83490] 2013-12-05 Steve Borho * source/common/x86/pixel-a.asm: pixel-a: fix x64 calling convention for several HEVC satd functions Bug fix from Min Chen [64096a4dcdc1] 2013-12-04 Steve Borho * source/CMakeLists.txt: cmake: use -DHAVE_ALIGNED_STACK=1 when building asm for Xcode This matches the command line we use in the Makefile, and prevents stack corruption when debugging within Xcode [f9d3154732d9] * source/CMakeLists.txt: cmake: workaround to allow Xcode 5 to link x265 CLI app [d35b42382331] * source/encoder/encoder.cpp: encoder: remove trailing white-space [e4a7885f377e] * source/test/ipfilterharness.cpp: oops [834d6f7608c1] * source/test/ipfilterharness.cpp: ipfilterharness: do not test chroma for i400 color space Because, umh, it doesn't have any chroma channels [716ec3505f43] * source/CMakeLists.txt, source/VectorClass/README.txt, source/VectorClass/instrset.h, source/VectorClass/vectorclass.h, source/VectorClass/vectori128.h, source/VectorClass/vectori256.h, source/VectorClass/vectori256e.h, source/common/CMakeLists.txt, source/common/vec/intra-ssse3.cpp, source/common/vec/ipfilter- sse41.cpp, source/common/vec/pixel16-sse41.cpp, source/common/vec /vec-primitives.cpp: remove Agner Fog's vector classes and their last few users We'll take a step back for HIGH_BIT_DEPTH perf for a few days, but these functions are all expected to have assembly coverage soon. This allows us to remove a few hacks from our cmake scripts as well. [421a37d0924d] * source/common/vec/pixel16-sse41.cpp: vec: drop 16bpp sad vector intrinsics, we have ASM coverage [304354e736dc] * Merge [2f41fae4a776] 2013-12-04 Min Chen * source/test/pixelharness.cpp: fix crash in ssim_end testbench, the x264 support 10bpp only, but testbench use 12bpp [0716a8ca46b4] 2013-12-04 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util8.asm: asm: 10bpp code for scale1D_128to64 module [58674cdab926] 2013-12-04 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: 16bpp support for sa8d_64xN [6aaea628af95] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: 16bpp support for sa8d_32xN [2b6d31ae96e1] 2013-12-04 Murugan Vairavel * source/common/pixel.cpp, source/common/x86/asm-primitives.cpp: asm: 10bpp code for enabling ssim_end_4 [d73d32097efc] 2013-12-04 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: 16bpp support for sa8d - 24x32 and 48x64 [61c46e787877] 2013-12-04 Dnyaneshwar G * source/common/x86/const-a.asm, source/common/x86/intrapred8.asm: asm: move constant to const-a.asm [9b062eb8124e] 2013-12-04 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util8.asm: asm: 10bpp code for transpose 64x64 [f697c98cb63f] 2013-12-04 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: 16bpp asm code for pixel_sa8d_16xN [4547d3d03d1e] 2013-12-04 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util8.asm: asm: 10bpp code for transpose 32x32 [146aae425df2] 2013-12-04 Dnyaneshwar G * source/common/x86/asm-primitives.cpp: 16bpp: enabled avt32to16_shr and cvt16to32_shl assembly code [c38d2f74432f] 2013-12-04 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util8.asm: asm: 10bpp code for transpose 16x16 [32bac98d3605] 2013-12-04 Dnyaneshwar G * source/common/CMakeLists.txt, source/common/x86/asm-primitives.cpp, source/common/x86/sad16-a.asm: 16bpp: assembly code for sad_NxN functions [3602d193676d] 2013-12-04 Min Chen * source/common/vec/intra-ssse3.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: assembly code for IntraPredAng4x4 Mode 26 [346830caf664] * source/common/vec/intra-ssse3.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: assembly code for IntraPredAng4x4 Mode 10 [d142d2ba7168] * source/common/vec/intra-ssse3.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: assembly code for IntraPredAng4x4 Mode 9 & 27 [f8d0c7b5b502] * source/common/vec/intra-ssse3.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: assembly code for IntraPredAng4x4 Mode 8 & 28 [e37b4badaaa4] * source/common/vec/intra-ssse3.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: assembly code for IntraPredAng4x4 Mode 7 & 29 [2f49dab61e52] * source/common/vec/intra-ssse3.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: assembly code for IntraPredAng4x4 Mode 6 & 30 [2275a3803a80] * source/common/vec/intra-ssse3.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: assembly code for IntraPredAng4x4 Mode 5 & 31 [f6dbd8dcec6c] * source/common/x86/intrapred8.asm: asm: ALIGN branch target to improvement performance [f35737d6abfe] * source/common/vec/intra-ssse3.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: assembly code for IntraPredAng4x4 Mode 4 & 32 [d4fe3e90aebf] 2013-12-03 Steve Borho * source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibEncoder/TEncSbac.cpp: sbac: move global tables into x265 namespace [1d2d60f4eb81] * source/Lib/TLibCommon/TComPrediction.cpp: TComPrediction: remove obsolete argument comment [55c0bf9d9966] * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/x86/asm- primitives.cpp, source/encoder/compress.cpp: Merge with stable [4b455bb3caf6] * .hgtags: Added tag 0.6 for changeset b970ffbdd696 [6b7550eed359] * source/common/x86/asm-primitives.cpp: asm: fix for icpc build [b970ffbdd696] [0.6] * source/common/vec/intra-sse41.cpp, source/common/vec/intra- ssse3.cpp: vec: use square block size enums [70dba94f6012] * source/common/CMakeLists.txt, source/common/vec/pixel-sse41.cpp, source/common/vec/vec-primitives.cpp: vec: remove pixel-sse41.cpp, we have full 8bpp pixelcmp coverage in asm [8c32edd92522] * source/Lib/TLibEncoder/TEncSearch.cpp: tskip: temporary workaround for heap corruption When tskip is enabled and tu-intra-depth is > 1 and --ctu is 64, we often see heap corruption when the encoder is destroyed. Disabling transform-skip on chroma seems to be an effective workaround until we can find a proper fix. [8e107ce14b43] 2013-12-03 Aarthi Thirumalai * source/encoder/compress.cpp: aq: bug fix for hash mismatch between recon with decoded output [c541804106c7] 2013-12-03 Steve Borho * source/encoder/ratecontrol.cpp: partial backout of 9cfe20b782da Aarthi was correct, getSliceType() returns an HM SliceType enum. Five lines above this it was testing whether getSliceType() == I_SLICE. It is far less than optimal that we have two sets of slice type definitions, but we have to be careful not to mix them up. [432a87f546cd] 2013-12-03 Yuvaraj Venkatesh * source/common/vec/intra-sse41.cpp: fix 16bpp build fail due to intra-sse41.cpp [6cc25bb700fc] 2013-12-03 Steve Borho * source/common/vec/intra-sse41.cpp: Backed out changeset: 8a3bb3ecf8f6 [552d46bc20a9] * Merge [80938e33bb04] 2013-12-03 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util8.asm: asm: 10bpp code for transpose 4x4 and 8x8 [c9fe21f4676e] 2013-12-03 Min Chen * Merge branch 'X' [04350bfb3147] 2013-12-03 Murugan Vairavel * source/common/x86/ssd-a.asm: asm: 10bpp code for pixel_sse_pp for 12x16, 24x32 and 64xN [78aa21f66013] 2013-12-03 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: pixel_satd_32xN for 16bpp [f8b0946edc8f] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: pixel_satd_64xN for 16bpp [b4740dcd1621] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: pixel_satd - 12x16, 24x32, 48x64 for 16bpp [69c110c3751b] 2013-12-03 Dnyaneshwar G * source/common/x86/sad-a.asm: asm: pixel_sad_64xN reduce large code size [ca60c165ba4b] 2013-12-03 Murugan Vairavel * source/common/x86/ssd-a.asm: asm: 10bpp fix for alignment in sse_ss routine [cd018d294e96] 2013-12-03 Min Chen * source/common/vec/intra-ssse3.cpp, source/common/x86/const-a.asm, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm, source/test/intrapredharness.cpp: asm: assembly code for IntraPredAng4x4 Mode 3 & 33 [9f7dad70e6a9] * source/common/x86/const-a.asm, source/common/x86/dct8.asm: asm: support IDCT4-10bpp [6f284a447088] * source/common/vec/intra-ssse3.cpp, source/common/x86/intrapred8.asm, source/test/intrapredharness.cpp: asm: intra_pred_ang Mode 34 [21adddaee460] * source/common/x86/blockcopy8.asm: asm: fix xmm register error in cvt16to32_shl [7fa921f5845d] 2013-12-02 Murugan Vairavel * source/common/x86/asm-primitives.cpp: asm: 10bpp support to sse_ss for 8xN, 16xN and 32xN blocks [102b5042e596] 2013-12-02 Min Chen * source/common/x86/mc-a.asm, source/common/x86/mc.h: asm: fix miss avg_64x32 [b2c7a7310e9f] 2013-12-02 Dnyaneshwar G * source/common/x86/asm-primitives.cpp, source/common/x86/mc-a.asm: 16bpp: assembly code for pixelavg_pp [3fea1dd70211] 2013-12-02 Murugan Vairavel * source/common/vec/intra-sse41.cpp: fix: bug in inra-sse41.cpp [8a3bb3ecf8f6] 2013-12-02 Min Chen * source/common/vec/intra-ssse3.cpp, source/common/x86/intrapred.h, source/common/x86/intrapred8.asm: asm: assembly code for IntraPredAng4x4 Mode 2 [f1ccd8eab389] * source/common/primitives.h: fixup proto of intra_pred_ang_t [5457fd3a26a7] 2013-12-03 Min Chen * source/test/pixelharness.cpp: testbench: increment buffer size to avoid crash in check_pixeladd_ss [21fe86adaa9a] 2013-12-03 Aarthi Thirumalai * source/encoder/compress.cpp: aq: bug fix for hash mismatch between recon with decoded output [660ec2c02798] 2013-12-03 Deepthi Devaki * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/common.cpp, source/encoder/cturow.cpp, source/encoder/encoder.cpp, source/x265.cpp, source/x265.h: define new rdlevels, default presets changed accordingly. levels 6,5 equivalent to current rd 2, 4 equivalent to current rd 1, and rest equivalent to rd 0. More parameters will be added to distinguish each levels. [86d23688b017] * source/encoder/encoder.cpp: Move rdoQTS initialization after rdoQ is set. [9f96817c8894] 2013-12-02 Gopu Govindaswamy * source/common/common.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h, source/encoder/slicetype.cpp: cuTree: integrated CuTree into RateControl and Added b-references into RC [9cfe20b782da] 2013-12-03 Deepthi Nandakumar * source/Lib/TLibEncoder/TEncSearch.cpp: heap corruption: temporarily disable tskip in chroma. Temporary fix for the crash caused by enabling tskip in chroma. [f539fa01f20c] 2013-12-02 Steve Borho * source/common/TShortYUV.cpp, source/common/TShortYUV.h, source/common/vec/intra-sse41.cpp, source/input/y4m.cpp: Merge with stable [ca7bd538e052] * source/input/y4m.cpp: y4m: initialize colorSpace to avoid crashes after failing to parse y4m header [40f9842972da] * source/common/vec/intra-sse41.cpp: vec: disable allangs 32x32 intrinsic primitive for clang clang seems to compile it ok, and the testbench passes, but it causes runtime exceptions when used within the encoder. [353a34a5d35f] * source/common/TShortYUV.cpp, source/common/TShortYUV.h: Backed out changeset: 5df643257054 This was causing memory corruption when --tskip and --rd=2 were used together. It needs to be further investigated and fixed on the default branch. [c2911115b79a] * source/common/x86/pixel-a.asm, source/common/x86/pixel.h: asm: make it more clear that pixel-a.asm has only satd and sa8d now [70e127d735a5] * source/common/CMakeLists.txt, source/common/x86/pixel-a.asm, source/common/x86/ssd-a.asm: asm: move ssd functions into their own ssd-a.asm file, similar to sad-a.asm [a9f629fac91e] * source/common/x86/pixel-a.asm, source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm, source/common/x86/pixel.h: asm: move variance functions to pixel-util8.asm [eea094a84b9c] * source/common/x86/mc.h, source/common/x86/pixel-a.asm, source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm, source/common/x86/pixel.h: asm: move pixel_sub to pixel-util8.asm, move pixel_avg funcdef to mc.h [2de04bb5da1d] * source/common/x86/pixel-a.asm: pixel: remove an unused macro [2ed3b664c370] * source/common/x86/pixel-a.asm, source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm, source/common/x86/pixel.h: asm: move scale functions to pixel-util [a439c19ee304] * source/common/x86/pixel-a.asm, source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm, source/common/x86/pixel.h: asm: move SSIM functions to pixel-util [b091438d1446] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm, source/common/x86/pixel.h: asm: move transpose from pixel-a.asm to pixel-util8.asm, add pixel- util.h [a182faf23ead] * source/common/x86/pixel.h: asm: remove more unused funcdefs from pixel.h [41c6dc5b35e8] * source/common/x86/blockcopy8.asm, source/common/x86/pixel-util8.asm: asm: move cvt* functions to blockcopy8.asm [b6766dc86e2a] * source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp: rc: fixups for cutree changes [dab34fa63c0c] 2013-12-02 Murugan Vairavel * source/common/x86/pixel.h: asm: removed unused function defnitions from pixel.h [47ddbf9b5866] 2013-12-02 Yuvaraj Venkatesh * source/common/x86/pixel.h, source/common/x86/sad-a.asm: cleanup: removed unused code from sad-a.asm [a615a46d4631] 2013-12-02 Steve Borho * source/common/pixel.cpp: picel: fix compile error from older gcc [4508b8c923e6] * source/common/CMakeLists.txt: cmake: fix Win64 vector primitive compile flags [ccf65888fc2c] * Merge with stable [d8d716eb11b8] 2013-12-02 Shazeb Nawaz Khan * source/Lib/TLibEncoder/WeightPredAnalysis.cpp: fix for the number of weighted references exceeding 8 in HM weight analysis [bf778de26451] 2013-12-02 Gopu Govindaswamy * source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: fix for gcc warnings [0a8023666206] 2013-12-02 Murugan Vairavel * source/common/x86/pixel-a.asm: asm: removed unused code from pixel-a.asm [df0b4f81609e] 2013-12-02 Steve Borho * source/common/pixel.cpp: pixel: fix 16bpp warnings that were previously hidden by cmake rules [0a85121531fc] 2013-12-02 Gopu Govindaswamy * source/common/common.cpp, source/common/lowres.cpp, source/common/lowres.h, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.h, source/encoder/slicetype.cpp, source/encoder/slicetype.h, source/x265.h: slicetype: CuTree Implementation for AQ RateControl Added Following methods into slicetype for CuTree Implementation 1.cuTree - Entry Point for CuTree 2.estimateCUPropagate and estimateCUPropagateCost - Calculate the CU Propagate cost for CU's 3.cuTreeFinish - update the qpOffset using Precomputed PropagateCost, weightedCostDelta and lookahead costs Added cuTree option into param->rc and make it as a Disable, still the cuTree is an Under Construction [c75c3431b108] 2013-12-02 Steve Borho * source/common/CMakeLists.txt: cmake: nits [189ac76266a9] * source/common/CMakeLists.txt: cmake: ignore gcc warnings in vector intrinsic files [bb65f4686d68] 2013-12-01 Steve Borho * source/common/CMakeLists.txt, source/common/vec/pixel-ssse3.cpp, source/common/vec/vec-primitives.cpp: vec: remove pixel-ssse3.cpp, its last function has asm coverage [bd3fad7cffec] * source/common/CMakeLists.txt, source/common/vec/dct-sse3.cpp, source/common/vec/dct-ssse3.cpp, source/common/vec/intra-sse41.cpp, source/common/vec/ipfilter-ssse3.cpp, source/common/vec/pixel- sse41.cpp, source/common/vec/pixel16-sse41.cpp: cmake: ignore unreferenced formal paramter warnings in common/vec And remove all the hacks that were in place to avoid those warnings [b4eef7d41af1] * source/common/x86/asm-primitives.cpp: asm: nits [e83550d5f10d] * source/common/x86/asm-primitives.cpp: asm: 16bpp fixup [5db9eba4b2df] * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/TShortYUV.cpp, source/common/TShortYUV.h, source/common/common.cpp, source/common/cpu.cpp, source/common/ipfilter.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/vec/blockcopy-sse3.cpp, source/common/vec/dct- sse3.cpp, source/common/vec/dct-ssse3.cpp, source/common/vec/intra- sse41.cpp, source/common/vec/intra-ssse3.cpp, source/common/x86/asm- primitives.cpp, source/common/x86/blockcopy8.h, source/common/x86/ipfilter8.h, source/common/x86/pixel.h, source/encoder/compress.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/motion.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h, source/encoder/slicetype.cpp, source/encoder/slicetype.h, source/input/y4m.cpp, source/input/yuv.cpp, source/output/y4m.cpp, source/output/yuv.cpp, source/test/intrapredharness.cpp, source/test/ipfilterharness.cpp, source/test/pixelharness.cpp, source/test/testbench.cpp, source/x265.h: uncrustify all source [5bf05c39e566] * source/common/common.cpp, source/encoder/encoder.cpp, source/x265.cpp, source/x265.h: Merge with stable [7f2bc20e9ff1] * source/encoder/encoder.cpp, source/x265.def.in, source/x265.h: api: add alloc/free methods for x265_picture for future safety [32942ebd5793] * source/encoder/encoder.cpp, source/x265.cpp, source/x265.def.in, source/x265.h: api: add alloc/free methods for x265_param This allows apps to use x265_param as pure abstract structures, just like x265_encoder, in order to make their app future-safe against changes to x265_param (without requiring recompiles or code changes). [aabaf5382ac5] * source/common/common.cpp, source/encoder/encoder.cpp, source/encoder/slicetype.cpp, source/x265.cpp, source/x265.h: api: change x265_param.bpyramid to bBPyramid (bool) x264's strict bpyramid mode seems to be H.264/blue-ray specific and thus we are left with only on or off. [53b1eeb6333b] * source/encoder/encoder.cpp: csv: improve CSV headers to use title caps [418e55eefbb8] * source/test/intrapredharness.cpp: test: intrapred harness fixup [0547f1672f13] * source/encoder/encoder.cpp: encoder: nits [d17843e942b5] 2013-11-08 Xun Xu, PPLive Corporation * source/common/common.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h, source/x265.cpp, source/x265.h: rc: initial work towards VBV rate control 1. add parameter "vbv-maxrate" "vbv-bufsize" "vbv-init" into cmd line 2. implement vbv methods, this patch doesn't use lookahead data future work, 1. vbv-lookahead 2. CU level ratecontrol [8a90153de720] 2013-12-01 Steve Borho * source/common/vec/intra-sse41.cpp: vec: drop intra planar intrinsic primitives, we have asm coverage [343d9ba487b2] * source/test/intrapredharness.cpp: intra: testbench fixups after dropping 64x64 C refs [81c09b55acf1] * source/common/vec/dct-sse3.cpp, source/common/vec/dct-ssse3.cpp: vec: remove two DCT intrinsic primitives with asm coverage [9facac4f81f7] * source/common/intrapred.cpp: intrapred: fix func decl of intra-ang C ref [50261fa292ad] * source/common/intrapred.cpp: intrapred: use square block defines, do not instantiate intra 64x64 [3409078021ac] * source/common/x86/asm-primitives.cpp: asm: plumb out more 16bpp asm setup infrastructure [776fc3575e2d] 2013-11-29 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: 10bpp: asm code for pixel_var_32x32 and 64x64 [803048f62317] 2013-11-29 Nabajit Deka * source/common/vec/dct-sse41.cpp, source/common/x86/asm- primitives.cpp: Enable idst4 asm [d8c523bd9f90] * source/common/x86/dct8.asm, source/common/x86/dct8.h: asm : Adding asm routine for idst4 [3e8c280b16a6] 2013-11-29 Min Chen * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/common/intrapred.cpp, source/common/primitives.h, source/common/vec/intra-ssse3.cpp, source/test/intrapredharness.cpp, source/test/intrapredharness.h: size based array for intra_pred_ang[] [cc7bb2f18d01] 2013-11-28 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: enabled asm routines for HIGH_BIT_DEPTH, which has the support for 16bpp [bb776ea49cba] 2013-11-28 Nabajit Deka * source/common/vec/dct-ssse3.cpp, source/common/x86/asm- primitives.cpp, source/common/x86/dct8.asm, source/common/x86/dct8.h: asm : Adding asm routine for dst4. [2ab09fab2826] 2013-11-28 Dnyaneshwar Gorade * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.h, source/common/x86/pixel-util8.asm: asm: assembly code for cvt16to32_shl [9bda4cecf6c0] 2013-11-28 Min Chen * source/common/primitives.h: cleanup: remove unused cvt16to16_shl_t [8f1a72797abb] 2013-11-28 Dnyaneshwar Gorade * source/test/pixelharness.cpp, source/test/pixelharness.h: testbench: added cvt16to32_shl primitive function [f9935384fa2a] 2013-12-01 Steve Borho * source/common/vec/pixel-sse41.cpp: pixel: remove sse_sp intrinsic primitives, we have asm coverage [5857fdc3c3ff] 2013-11-28 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel.h: asm: cleanups for pixel_sse_sp [8a9a0ef760e8] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: asm: code for pixel_sse_sp_4xN [052a1b094def] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: asm: code for pixel_sse_sp_12x16 [8683adc61bec] 2013-11-28 Min Chen * source/common/CMakeLists.txt, source/common/x86/intrapred.asm, source/common/x86/intrapred8.asm, source/common/x86/pixel-util.asm, source/common/x86/pixel-util8.asm: rename to avoid 10bpp conflict [016709ae6264] 2013-11-28 Dnyaneshwar G * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.asm, source/common/x86/intrapred.h: asm: assembly code for intra_pred_planar[32x32] [e6a32d404e18] 2013-11-30 Deepthi Nandakumar * Merge from stable [2786f9e92560] * source/common/common.cpp: presets: bpyramid default value reset to 1 No support for strict b-pyramid yet. [87dc694fc016] * source/encoder/encoder.cpp: ssim: increase precision in ssim reporting [b08f3853adb9] 2013-11-29 Deepthi Nandakumar * Merge from stable [833d78aaf71e] * source/common/common.cpp: presets: correct bframes in "slow" to 4 [fb93582b5f3f] * source/encoder/compress.cpp: compress: cleanup [ac01f12310ed] * source/encoder/compress.cpp: compress: save distortion info in xComputeCostInter. [2559b4c52148] * source/encoder/compress.cpp: compress: save best bits, sad in xcomputeCostIntrainInter [a7d2fb189311] * source/encoder/compress.cpp: compress: disable EARLY_EXIT and TOP_SKIP (temporarily) [e0036ec4a61b] 2013-11-28 Steve Borho * Merge with stable [e7a5780843de] * source/common/vec/vec-primitives.cpp: vec: tab to spaces [2456d360a4ce] 2013-11-29 Deepthi Nandakumar * source/common/common.cpp: presets: modifications to smoothen the performance-efficiency plot. [bcc0941f67b3] 2013-11-28 Deepthi Nandakumar * source/encoder/compress.cpp: RD merge: refine merge costs with estimated merge mode bits. [42892f4f4cc2] 2013-11-28 Steve Borho * source/CMakeLists.txt, source/common/CMakeLists.txt, source/common/vec/vec-primitives.cpp: cmake: gcc flag introspection to fix Mac OS X 10.6 build [38719294293f] 2013-11-28 Deepthi Nandakumar * source/encoder/compress.cpp: RD merge: add in early-skip param. [2ba6c26c9feb] * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp: RD merge: remove earlyDetectionSkip, output is unchanged. [ca8c57f0c532] * source/encoder/compress.cpp: RD merge: remove more redundant set-fields [54379de63b85] 2013-11-27 Deepthi Devaki * source/encoder/compress.cpp: merge2nx2n: move initializations out of the loop Only mergeIndex and MVs will be changed in each loop. [f516ff5d6af3] 2013-11-28 Deepthi Nandakumar * source/encoder/compress.cpp: RD: use sa8d in inter/merge cost measurements instead of satd [0c2a9f913c0b] * source/encoder/compress.cpp: RD: change cost measurements for inter The cost calculation for inter modes now use cost = satd(orig, pred) + lambda*mebits. This is an estimation to the actual RD-cost. [0ab1c01bf952] 2013-11-27 Steve Borho * source/encoder/encoder.cpp: encoder: change default frameNumThreads for 4-core HT CPUs to 3 [f92e0c49a9f0] 2013-11-27 Shazeb Nawaz Khan * source/encoder/frameencoder.cpp: Fix to eliminate unwanted application of weight in some (ref, enc) pairs [bfd5204ef226] 2013-11-27 Aarthi Thirumalai * source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp: aq: Bug Fixes in aq , ssim when ctu size is not set as 64. 1.Calculate qp offset for CU based maxCuSize set in FrameEncoder::calcQpForCu 2.Fix height for ssim computation based on maxCuHeight in FrameFilter::processRowPost [6eb45b5bf181] 2013-11-27 Steve Borho * source/encoder/encoder.cpp: encoder: use more portable %PRIu64, define __STDC_FORMAT_MACROS Older GCC versions and clang require __STDC_FORMAT_MACROS to be defined prior to including stdint.h when compiling for C++, in order for PRIu64 and friends to be defined [13f60881bf01] * Merge with stable [949f85337789] * source/encoder/CMakeLists.txt, source/encoder/encoder.cpp: cmake: detect inttypes.h and use for uint64_t printfs [e4baf53cefe8] * source/common/vec/intra-sse41.cpp: vec: remove intra_pred_planar16_sse4, we have asm coverage [892addcb1c94] * source/common/vec/pixel-ssse3.cpp: vec: remove scale2D_64to32, we have asm coverage [c5efe0603b61] * source/common/x86/intrapred.asm: intra: fix yasm warning about redefined macro [04811b42aa6b] * Merge [ec904fab863a] 2013-11-27 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: asm: code for pixel_sse_sp_24x32 [cf5c2f982353] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: asm: code for pixel_sse_sp_8xN [54ba57708276] 2013-11-27 Nabajit Deka * source/common/vec/dct-sse3.cpp, source/common/x86/asm- primitives.cpp, source/common/x86/dct8.h: Enable the idct4 asm routine. [7dbe6495ebb8] * source/common/x86/dct8.asm: asm: Adding asm routine for idct4 [e463501f8a20] * source/common/x86/const-a.asm: Adding constant tables used for idct4 asm routine [a49c0228e06e] 2013-11-27 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: pixel_sse_ss_64xN assembly routine [bf7cf2555571] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: pixel_sse_ss_48x64 assembly routine [45ce09834506] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: pixel_sse_ss_24x32 assembly routine [8edf6fa32a74] 2013-11-27 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: asm: code for pixel_sse_sp_64xN [248a56faff0a] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: asm: code for pixel_sse_sp_48x64 [6051967b60cd] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: asm: code for pixel_sse_sp_32xN [aeb1c93c69d2] * source/common/pixel.cpp, source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: asm: code for pixel_var_32x32 and 64x64 blocks [8846d37b3d9c] 2013-11-27 Dnyaneshwar Gorade * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.asm, source/common/x86/intrapred.h: asm : assembly code for intra_pred_planar[16x16] [09b5e8f592ac] 2013-11-27 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: fix the alignment issues occured in sse_ss [9c60abb71cf6] 2013-11-18 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: asm: code for scale2D_64to32 routine [78c171e33865] 2013-11-27 Steve Borho * source/Lib/TLibCommon/ContextModel.cpp, source/Lib/TLibCommon/ContextModel.h, source/Lib/TLibEncoder/TEncAnalyze.h, source/common/reference.cpp, source/common/reference.h, source/common/vec/blockcopy-avx2.cpp, source/common/vec/intra-sse3.cpp, source/common/vec/pixel-avx2.cpp, source/common/vec/pixel-sse3.cpp, source/compat/msvc/LGPL.txt, source/compat/msvc/getopt.c, source/compat/msvc/getopt.h: Merge with default (feature freeze for 0.6) Bug fixes and tunings only on the stable branch, until the next tag is issued. [417f794274e5] * source/encoder/encoder.cpp: encoder: do not print weightp stats if no P frames were generated (prevents NAN or worse errors) [ece323e1b603] * source/encoder/encoder.cpp: log: replace "Skip" with more accurate "Merge" [eadcdeb661bc] 2013-11-26 Steve Borho * source/common/vec/intra-sse41.cpp: vec: drop intra_pred_planar 4x4 and 8x8 intrinsic primitives, we have asm [b09b6fa7e89a] * source/encoder/encoder.cpp: encoder: return pic.sliceType = X265_TYPE_IDR if keyframe [39286dff86ea] * source/common/vec/dct-sse41.cpp: vec: drop dequant_normal intrinsic primitive, we have asm [5b5d37ef369a] * source/common/vec/dct-sse3.cpp: vec: remove dct4 intrinsic primitive [543390a8644c] * Merge [ba8e95798860] 2013-11-26 Nabajit Deka * source/common/vec/dct-sse3.cpp, source/common/x86/asm- primitives.cpp: Enable the new dct4 asm routine. [5e3b1d59d8dd] * source/common/CMakeLists.txt: Adding dct8.asm and dct8.h to CMakeLists [51b6d0c6ecf5] * source/common/x86/const-a.asm: Adding constant table used for dct4 [78431cd16bb5] * source/common/x86/dct8.asm, source/common/x86/dct8.h: asm: assembly code for dct4x4 [e9ac715f16cf] * source/common/x86/pixel-util.asm: asm: Correct number of xmm registers for weight_sp routine. [8bc370263676] 2013-11-26 Dnyaneshwar Gorade * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.asm, source/common/x86/intrapred.h: asm: assembly code for intra_pred_planar[8x8] [13fe158374e7] 2013-11-26 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: asm: code for pixel_sse_sp_16xN [3791482e68f5] * source/common/pixel.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h, source/encoder/ratecontrol.cpp, source/test/pixelharness.cpp: asm: removed unused code in pixel_var module [a903be46b40d] 2013-11-26 Min Chen * source/common/dct.cpp: fix: in 14bpp mode, maximum shift is 10 [7b48cda38797] * source/common/pixel.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/encoder/framefilter.cpp, source/test/pixelharness.cpp, source/test/pixelharness.h: asm: active x264 ssim code Side effect: Remove ssim_t to avoid conflict with x264 asm code we use int64_t when HIGH_BIT_DEPTH enable, but x264 always 'int' [63a87d839bed] 2013-11-25 Steve Borho * source/common/vec/pixel-sse41.cpp: pixel: remove intrinsic pixel weight functions, we have asm coverage [491fd3ee6fd1] 2013-11-26 Steve Borho * source/x265.h: api: document a few rate control settings [5accd2ae5ceb] 2013-11-26 Min Chen * source/common/x86/pixel-a.asm, source/common/x86/pixel-util.asm, source/common/x86/pixel.h: asm: fix build error on x64 [116d91f08fcb] 2013-11-26 chenm003 * source/common/dct.cpp, source/common/x86/asm-primitives.cpp: 合并 multicoreware/x265 到 default [06d509e2e687] 2013-11-25 Murugan Vairavel * source/common/pixel.cpp, source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: asm: code for pixel_var_16xN [672ae35d4e5f] 2013-11-25 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for pixel_sse_ss_32xN [8075b13cee00] 2013-11-25 Dnyaneshwar G * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.asm, source/common/x86/intrapred.h: asm: assembly code for intra_pred_planar[4x4] [6a8fbb091722] 2013-11-25 Murugan Vairavel * source/common/pixel.cpp, source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: asm: code for pixel_var_8xN [da18434af735] 2013-11-25 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for pixel_sse_ss_12x16 [71262c718dfa] 2013-11-25 Murugan Vairavel * source/test/pixelharness.cpp, source/test/pixelharness.h: Test bench: code for pixel_var [529bd0084265] 2013-11-25 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: asm: assembly code for sse_ss - 4xN, 8xN, 16xN [7cab79758dd7] 2013-11-25 Nabajit Deka * source/test/pixelharness.cpp: Test bench modifications for weight_sp() asm routine [3e688d424f05] * source/common/vec/pixel-sse41.cpp, source/common/x86/asm- primitives.cpp, source/common/x86/pixel.h: Adding asm function declaration and initialization for weight_sp asm routine [47ef19a1734c] * source/common/x86/pixel-util.asm: asm : routine for weight_sp(). [d9d6b8b4e4f1] 2013-11-25 Min Chen * source/common/x86/const-a.asm, source/common/x86/ipfilter8.asm: asm: move constant 8192 to const-a.asm for share [a5c7cd496583] 2013-11-25 Nabajit Deka * source/common/vec/pixel-sse41.cpp, source/common/x86/asm- primitives.cpp, source/common/x86/pixel.h: Adding asm function declaration and initialization for weight_pp asm routine. [be74f1731279] * source/test/pixelharness.cpp: Test bench modifications for weight_pp() asm routine. [13126513fe61] * source/common/x86/pixel-util.asm: asm : routine for weight_pp(), for input width in multiples of 16 [3e4c257d88ab] 2013-11-25 Praveen Tiwari * source/common/x86/asm-primitives.cpp: cleanup the temporary function pointer initialization [b54870f0cdd3] 2013-11-25 Min Chen * source/common/dct.cpp, source/common/x86/asm-primitives.cpp, source/common/x86/pixel-util.asm, source/common/x86/pixel.h: asm: assembly code for dequant_normal [67e8ecb2b0e5] * source/common/x86/mc-a.asm: cleanup: remove unused code in mc-a.asm [9c7142ced7c4] 2013-11-24 Min Chen * source/common/x86/pixel-a.asm: cleanup: remove unused constant in pixel-a.asm [c0c862dc71fb] * source/common/x86/pixel-a.asm: cleanup: remove unused code in pixel-a.asm [513f564ba360] * source/common/x86/mc-a2.asm: cleanup: remove unused code in mc-a2.asm [464af047f7b1] 2013-11-25 Steve Borho * source/encoder/encoder.cpp: encoder: do not warn of b-pyramid and small bframe value Many default presets can do this, it is harmless [fdaa754dfbd4] * source/encoder/encoder.cpp: log: shorten Planar to P [e607520863c0] * source/encoder/encoder.cpp: log: do not output statistics for disabled features [484ac0c345a2] * source/common/dct.cpp: dct: remove unused static array [81f4e226c5a3] * source/encoder/encoder.cpp: encoder: compilers can't agree on how to print long longs [319881b4ebf3] 2013-11-25 Kavitha Sampath * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp, source/encoder/encoder.cpp: log: improve statistics display represent 4x4 statistics for I frame, combine I frame log in single line, preserve space in log [c7b97ebc1c9b] 2013-11-24 Steve Borho * source/common/x86/asm-primitives.cpp: asm: repair ICL compile on Windows [864f4664c775] 2013-11-22 Steve Borho * source/common/vec/vec-primitives.cpp: clang: remove compilation guards around Setup_Vec_IPredPrimitives_sse41() Now that a number of primitives have been replace by assembly, the functions are safe. [10f605bd0530] * source/common/CMakeLists.txt, source/common/vec/pixel-sse3.cpp, source/common/vec/pixel-ssse3.cpp, source/common/vec/vec- primitives.cpp: cmake: merge pixel-sse3.cpp into pixel-ssse3.cpp Both files only had one primitive each, and they will both probably be replaced soon [e5db4a4859ee] * source/common/vec/pixel-ssse3.cpp: pixel-ssse3: remove scale1D_128to64, we have ASM [7e2694f9a226] * source/common/vec/pixel-sse41.cpp: pixel-sse41: cleanup intrinsic weight function names [a6da40d0584f] * source/common/vec/intra-sse41.cpp: vec: remove intrinsic predDCFiltering() and intra_pred_dc(), we have ASM [285fe7a59cf5] * source/common/x86/asm-primitives.cpp: asm: remove assignements to square block sa8d[] methods These are handled specially in x265_setup_primitives() [e28d9b6b5d65] 2013-11-22 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: crf: bug fix. regulate qp of first frame based on ABR_INIT_QP. [e6ec06cf5d3d] 2013-11-22 Deepthi Nandakumar * Merge [cc075ae1098f] 2013-11-20 Sumalatha Polureddy * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp: no-rdo: implemented topskip algorithm It is basically setting the starting depth from which the partitioning should happen for particular CU. The starting depth for particular CU in present frame is selected form the previous frame's colocated CU minimum depth. the performance, bitrate increase and psnr comparison are given below CLI: x265.exe input.y4m -o abc.hevc -r recon.y4m --rd 1 --ref 1 a. Early exit OFF and Top Skip OFF b. Early exit OFF and Top Skip ON BasketballDrive_1920x1080_50 Timetaken to encode: 681/639s bitrate: 3650/3657 kb/s PSNR: 36.7/36.703 perf improvement: 6.16% (compared to TopSkip OFF and ON) Bitrate increase: 0.19% (compared to TopSkip OFF and ON) Cactus_1920x1080_50 Timetaken to encode: 530/492s bitrate: 2787/2795 kb/s PSNR: 35.527/35.529 perf improvement: 7.16% (compared to TopSkip OFF and ON) Bitrate increase: 0.28% (compared to TopSkip OFF and ON) Kimono1_1920x1080_24 Timetaken to encode: 278/264s bitrate: 1243/1246 kb/s PSNR: 38.16/38.16 perf improvement: 5.03% (compared to TopSkip OFF and ON) Bitrate increase: 0.24% (compared to TopSkip OFF and ON) FourPeople_1280x720_60 Timetaken to encode: 173/163s bitrate: 486/492 kb/s PSNR: 39.097/39.094 perf improvement: 5.78% (compared to TopSkip OFF and ON) Bitrate increase: 1.2% (compared to TopSkip OFF and ON) PartyScene_832x480_50 Timetaken to encode: 134/119s bitrate: 1652/1661 kb/s PSNR: 31.374/31.377 perf improvement: 11.16% (compared to TopSkip OFF and ON) Bitrate increase: 0.544% (compared to TopSkip OFF and ON) big_buck_bunny_360p24 Timetaken to encode: 1772/1477s bitrate: 174/175 kb/s PSNR: 37.798/37.797 perf improvement: 16.6% (compared to TopSkip OFF and ON) Bitrate increase: 0.5% (compared to TopSkip OFF and ON) [b6323f2be057] 2013-11-22 Deepthi Nandakumar * source/encoder/slicetype.cpp: lookahead primitives: fix bug that caused wrong cost estimates in ducks_take_off. [28f42f1be951] 2013-11-22 Steve Borho * source/common/vec/pixel-sse41.cpp: pixel: drop intrinsic sse_pp functions, we have ASM coverage [1c74d7bfd007] * source/test/pixelharness.cpp: pixelharness: fix the other header buffer [3c827bba6cd6] 2013-11-22 Praveen Tiwari * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h: TComYuv::addClipChroma, integrated pixel_add_ps function [cc123a1ec253] 2013-11-22 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: asm: code of sse_pp routine for 64x32, 64x48 and 64x64 blocks [f082c556f337] 2013-11-22 Praveen Tiwari * source/common/x86/asm-primitives.cpp: added blockcopy_sp function pointers [4b437f76280d] * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h: TComYuv::addClip, integrated luma_add_ps [fd90bd911169] 2013-11-22 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: asm: code of sse_pp routine for 48x64 and 64x16 blocks [2e0a0a5eb0c7] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: asm: code for sse_pp_24x32 routine [0b9bccb2ef7f] 2013-11-22 Praveen Tiwari * source/common/x86/asm-primitives.cpp: asm-primitives.cpp, removed temporary function pointer initialization, generated through macro calls [76e2c787aadb] * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: pixel_add_ps_64xN, asm code [e7eeb6443303] * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: pixel_add_ps_48x64, asm code [3847098e9553] * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: pixel_add_ps_12x16, asm code [9f34d1d82296] 2013-11-22 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: asm: code for sse_pp_12x16 routine [f09ca4290a55] 2013-11-22 Min Chen * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/dct.cpp, source/common/primitives.h, source/common/vec/dct-sse41.cpp, source/test/mbdstharness.cpp, source/test/mbdstharness.h: split dequant to normal and scaling path [4ec80bd40603] * source/test/pixelharness.cpp: fix bug for testbench string buffer overflow [ab94f6effb71] 2013-11-22 Steve Borho * source/common/cpu.cpp: cpu: fix non-Windows build with ASM disabled [5009254d3d3a] * source/CMakeLists.txt: cmake: backout cmake_policy(); cmake is idiotic Why would you issue an error if your version of cmake doesn't know about the given policy? Especially if the selected policy is OLD? Hello?? [830deb5fb3d3] 2013-11-21 Steve Borho * source/CMakeLists.txt, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/CMakeLists.txt: cmake: almost revive Xcode support # macbrew based instructions brew install cmake --HEAD cmake -G Xcode ../source open x265.xcodeproj > cmake --version cmake version 2.8.12.20131121 The static library is still not linking properly, so the cli does not link as well; but it does build the shared library [f4e10e4d3f0d] * source/encoder/motion.cpp, source/encoder/motion.h: motion: use fast weighted subpel refine Don't do the full-blown weighted motion compensation for ME. Just interpolate the weighted full pel pixels. It is not 100% accurate to the pixels that will be used to encode the final prediction; but close enough for ME. Testing with sintel_trailer_2k_720p24.y4m at medium preset and all defaults x265 [info]: 651 of 1124 (57.92%) P frames weighted before: 1253 frames in 512.74s (2.44 fps), 223.51 kb/s, Global PSNR: 50.552 after: 1253 frames in 410.25s (3.05 fps), 223.59 kb/s, Global PSNR: 50.589 [8f156b97360b] * source/common/vec/intra-sse41.cpp: intra: fix 16bpp builds [b172259c07f1] 2013-11-21 Praveen Tiwari * source/common/x86/pixeladd8.asm: pixel_add_ps, 32xN corrected xmm register count [76b0d2a278fb] 2013-11-21 Steve Borho * source/test/pixelharness.cpp, source/test/pixelharness.h: pixelharness: cleanup check function names [8dfe7282ce81] * source/test/intrapredharness.cpp, source/test/pixelharness.cpp, source/test/testharness.h: testbench: re-line up test results to improve readability [1643c78be418] * source/Lib/TLibCommon/TComWeightPrediction.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/vec/pixel-sse41.cpp, source/encoder/motion.cpp, source/encoder/reference.cpp, source/encoder/slicetype.cpp, source/test/pixelharness.cpp, source/test/pixelharness.h: primitive: rename weight primitives to match our naming convention weight_pp -> weight pixels to pixels weight_sp -> weight shorts to pixels [49f8b71ae89b] * source/encoder/slicetype.cpp: slicetype: prevent gcc 4.8.1 compiler error [8dc9e5e4a0e6] * source/Lib/TLibCommon/TComPrediction.cpp: TComPrediction: fixup planar size index [e733415996a1] * source/encoder/slicetype.cpp: slicetype: remove hungarian pointer prefixes and unnecessary pixel casts [d7cf0dd2133e] * source/common/intrapred.cpp: intrapred: cleanup intra C references [bcef0e896234] * source/common/x86/asm-primitives.cpp: asm: remove cmp templated wrapper function [46e4175eeb88] * source/Lib/TLibCommon/TComPrediction.cpp: TComPrediction: nits [562eea581dcf] 2013-11-21 Dnyaneshwar G * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/intrapred.cpp, source/common/primitives.h, source/common/vec/intra-sse41.cpp, source/encoder/compress.cpp, source/encoder/slicetype.cpp, source/test/intrapredharness.cpp: remove width arg from intra_pred_planar [bdff2c785860] 2013-11-21 Santhoshini Sekar * source/encoder/encoder.cpp: bug fix: print Mean psnr Y,U,V properly [012b3d1da19b] 2013-11-21 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp: asm: added sa8d-4x4,4x8,8x4,4x16,16x4,12x16,16x12 to asm- primitives.cpp [fbb0dab55009] 2013-11-21 Praveen Tiwari * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: pixel_add_ps_32x64, asm code [3b27df9d0a54] * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: pixel_add_ps_16x64, asm code [4f53bb000c70] * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: pixel_add_ps, asm code [2683153044c8] * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: asm: pixel_add_ps,32xN [23626c3cac6b] * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: pixel_add_ps, 16x8, 16x12, 16x16, 16x32 asm code [583152af6f66] 2013-11-21 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: asm: code for transpose_64x64 routine [b305aa607e0b] * source/common/x86/pixel-a.asm: asm: Improvement by replace macro extend by function call [0caa6518420e] 2013-11-21 Praveen Tiwari * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: pixel_add_ps_2x8 asm code [98fac41f309c] 2013-11-21 Min Chen * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: [asm]: pixel_add_ps_2x4 [f290ec5a0532] 2013-11-21 Praveen Tiwari * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: pixel_add_ps_6x8, asm code [3f227acdb082] * source/common/x86/pixeladd8.asm: pixeladd8.asm, removed unsed header 'x86util.asm' [0e9ae87861ba] * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: pixel_add_ps_16x4, asm code [5077332c5bcc] 2013-11-21 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for pixel_sa8d_8x32 [16b15235cd76] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for pixel_sa8d_32x8 [0b4b4143ceea] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for pixel_sa8d_24x32 [a71839b646b9] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for pixel_sa8d_32x24 [47c04fd98b80] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for pixel_sa8d_8x16 and pixel_sa8d_16x8 [977220137f22] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for pixel_sa8d_16x64 [2b8e89b5b836] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for pixel_sa8d_64x16 [d43255da9bd6] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for pixel_sa8d_48x64 [2d6721016c9a] 2013-11-21 Min Chen * source/test/ipfilterharness.cpp: testbench: initialize output buffer to solve lumz_sp[] mistake problem [7e4656d4fd33] 2013-11-21 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for pixel_sa8d_64x48 [6a82e5177eb3] 2013-11-21 Dnyaneshwar G * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.asm, source/common/x86/intrapred.h, source/test/intrapredharness.cpp: asm: assembly code for IntraPred_DC[32x32] [286984ebb6c7] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.asm, source/common/x86/intrapred.h: asm: assembly code for IntraPred_DC[16x16] [4eb59e47be20] * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.asm, source/common/x86/intrapred.h: asm: assembly code for IntraPred_DC[8x8] [40a060130b62] 2013-11-20 Steve Borho * source/common/primitives.h: primitive: nits [db1151bb4974] * source/common/pixel.cpp, source/common/primitives.h, source/common/vec/blockcopy-sse3.cpp, source/test/pixelharness.cpp, source/test/pixelharness.h: primitive: remove dead blockcpy_sp [b3749e1d64c0] * source/common/pixel.cpp, source/common/primitives.h, source/common/vec/blockcopy-sse3.cpp, source/test/pixelharness.cpp, source/test/pixelharness.h: primitive: remove dead pixelsub_ps [0d54ec898e79] * source/common/ipfilter.cpp, source/common/primitives.h, source/common/vec/ipfilter-sse41.cpp, source/common/vec/ipfilter- ssse3.cpp, source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: primitive: remove dead ipfilter_s2p [f3962b7a971c] * source/common/ipfilter.cpp, source/common/primitives.h, source/common/vec/ipfilter-sse41.cpp, source/common/vec/ipfilter- ssse3.cpp, source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: primitive: remove dead ipfilter_p2s [f3d4f3ac215e] * source/Lib/TLibCommon/TComSlice.h: TComSlice: nits [4b53b32ea6d8] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/TShortYUV.cpp, source/common/common.cpp, source/common/ipfilter.cpp, source/common/pixel.cpp, source/common/primitives.cpp, source/common/primitives.h, source/common/vec/ipfilter-sse41.cpp, source/common/x86/asm-primitives.cpp, source/encoder/encoder.cpp, source/input/y4m.cpp, source/test/ipfilterharness.cpp, source/test/pixelharness.cpp, source/x265.cpp, source/x265.h: TComSlice: nits [cdfb587319f8] * source/cmake/CMakeASM_YASMInformation.cmake: cmake: fix cygwin builds - yasm must output windows object files [871f3367fd45] * source/test/testbench.cpp: test: bump pixel depth to 12 for HIGH_BIT_DEPTH builds [1561d1f1d1da] * source/common/vec/blockcopy-sse3.cpp, source/common/vec/dct- sse3.cpp, source/common/vec/dct-sse41.cpp, source/common/vec/dct- ssse3.cpp, source/common/vec/intra-sse41.cpp, source/common/vec /intra-ssse3.cpp: vec: fix compile warnings with clang at 16bpp - remove dead functions [f7590776c5b2] 2013-11-20 Praveen Tiwari * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: pixel_add_ps, 8x8, 8x16, 8x32 asm code [c75b72fcd284] * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: pixel_add_ps_8x6, asm code [e2f8b18cd253] * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: pixel_add_ps_8x4, asm code [079864d97afc] * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: pixel_add_ps_8x2, asm code [f65fbb5d2d44] * source/common/primitives.h, source/common/x86/pixel.h: pixel.h and primitives.h, int replaced with intptr_t [f07d8d18212b] * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: asm code for pixel_add_ps_4x2 [28e57d696b36] * source/common/x86/pixeladd8.asm: pixel_add_pp_4x4, merged movd and pmovzxbw [bee92606b540] * source/common/x86/pixeladd8.asm: pixel_add_pp: 4x8, 4x16, merged movd and pmovzxbw instructions [5fb3eae8a29d] * source/common/x86/pixel.h: added pixel_add_ps chroma function definitions [406c500c0b0d] * source/common/x86/pixeladd8.asm: pixeladd8.asm, int replaced with intptr_t for strides data type [0532a37e6a7e] * source/common/x86/asm-primitives.cpp, source/common/x86/pixeladd8.asm: asm code for pixel_add_ps, 4x8 and 4x16 [2fe88d075204] * source/common/CMakeLists.txt, source/common/x86/asm-primitives.cpp, source/common/x86/pixel.h, source/common/x86/pixeladd8.asm: asm code for pixeladd_ps_4x4 and testbench integration [a3e4cbbc63e1] * source/test/pixelharness.cpp, source/test/pixelharness.h: unit test code for pixel_add_ps [59964c99aa17] * source/common/pixel.cpp, source/common/primitives.h: added pixel_add_ps_c as a primitve [ec0758b3ecfa] 2013-11-20 Steve Borho * source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.h: TEncBinCABAC: fix naming prefix convention of bIsCounter [0607aef383b7] * source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncBinCoderCABAC.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp, source/encoder/encoder.cpp, source/encoder/framefilter.cpp, source/encoder/ratecontrol.cpp: TypeDef: replace UInt64 with uint64_t [58dfac0ab062] * source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/WeightPredAnalysis.cpp, source/Lib/TLibEncoder/WeightPredAnalysis.h: TypeDef: replace Int64 with int64_t [93f03580b998] * source/common/x86/asm-primitives.cpp: asm: white-space nits [e3f82c9daafb] 2013-11-20 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for pixel_sa8d_32x64 [915bb51b6489] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for pixel_sa8d_64x32 [aa44b552bdd4] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for pixel_sa8d_16x32 [cbf8720197fb] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for pixel_sa8d_32x16 [bd44cdfcbba8] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for pixel_sa8d_64x64 [ef1a9a583c4a] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for pixel_sa8d_32x32 [357c693f8888] 2013-11-20 Min Chen * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/CMakeLists.txt, source/common/intrapred.cpp, source/common/primitives.h, source/common/vec/intra-sse41.cpp, source/common/x86/asm- primitives.cpp, source/common/x86/intrapred.asm, source/common/x86/intrapred.h, source/encoder/compress.cpp, source/encoder/slicetype.cpp, source/test/intrapredharness.cpp, source/test/intrapredharness.h: asm: assembly code for IntraPred_DC[4x4] [172b66a79401] 2013-11-20 Steve Borho * source/common/primitives.h, source/common/vec/pixel-sse3.cpp: primitive: remove unused cvt16to16_shl [174bd2b5e652] * source/common/vec/dct-sse41.cpp: vec: drop intrinsic quant primitive, we have assembly code [5e18a1158c5f] * source/common/vec/pixel-sse3.cpp: vec: drop intrinsic transpose primitives, we have assembly code [7a154e9fccbd] 2013-11-20 Min Chen * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util.asm, source/common/x86/pixel.h, source/test/mbdstharness.cpp: asm: assembly code for quant [63b9ba51bac0] 2013-11-20 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: asm: code for transpose_32x32 routine [6c9d7641bdca] * source/common/x86/pixel-a.asm: asm: cleanup routines of transpose module for 4x4, 8x8 and 16x16 [fe81ba733564] 2013-11-20 Gopu Govindaswamy * source/encoder/slicetype.cpp: bpyramid: Support for b-pyramid with b-adapt 0 Test results for reference when enable and disable the b-pyramid with b-adapt=0 Cli option : --bframes=10 --b-adapt=0 --b-pyramid=1 -f 100 Enable B-references : --b-pyramid=1 Disable B-references : --b-pyramid=0 Results: Enable / Disable clip - BasketballDrive_1920x1080_50 Total time taken - 57.84s (1.73 fps) / 51.74s (1.93 fps) Bitrates - 4725.37 / 5660.68 PSNR - 37.178 / 37.178 Clip - Cactus_1920x1080_50 Total time taken - 41.90s (2.39 fps) / 47.08s (2.12 fps) Bitrates - 3800.62 / 4838.73 PSNR - 35.640 / 35.615 Clip - Johnny_1280x720_60 Total time taken - 10.41s (9.61 fps) / 10.34s (9.67 fps) Bitrates - 327.21 / 383.25 PSNR - 40.674 / 40.631 Clip - FourPeople_1280x720_60 Total time taken - 10.72s (9.33 fps) / 10.18s (9.82 fps) Bitrates - 547.18 / 640.88 PSNR - 39.808 / 39.789 [8e9c965648f6] 2013-11-19 Steve Borho * source/Lib/TLibCommon/TComYuv.cpp, source/common/TShortYUV.cpp: clang: fix build warnings [108ddc9e5c6b] 2013-11-19 Praveen Tiwari * source/common/TShortYUV.cpp, source/common/TShortYUV.h: blockcpy_sp asm integration [5df643257054] * source/common/pixel.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/test/pixelharness.cpp: csp support for blockcopy_sp [fd382d7bfeea] * source/Lib/TLibCommon/TComYuv.cpp: blockcopy_ps, asm integration [cc88ae755af4] * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibEncoder/TEncSearch.cpp: TComYuv::copyPartToPartChroma, blockcopy_ps asm integration [036a65157263] * source/common/pixel.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/test/pixelharness.cpp: csp support for blockcopy_ps [32bd40623496] * source/Lib/TLibCommon/TComYuv.cpp: TComYuv::copyPartToPartChroma, blockcopy_pp asm integration [10617a4ef7a5] * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h: TComYuv::copyToPicLuma, blockcopy_pp asm integration [e77e7c4465f1] 2013-11-19 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: asm: code for transpose_16x16 routine [d8d9f36d0a44] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: asm: code for transpose_8x8 routine [1e1ecddee271] 2013-11-18 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: asm: code for transpose4x4 routine [d484c28c63f5] 2013-11-19 Steve Borho * source/common/common.cpp, source/x265.h: api: enable weightp by default, disable for ultrafast [f68e0b9cae2e] * source/x265.h: api: fix typos and improve chroma qp offset descriptions [59dcbb0be7ca] * source/common/common.cpp, source/x265.h: api: enable b-pyramid by default The only reason for it to be disabled is if the decoder/use case prevented it [de92149b3c9b] * source/x265.cpp: cli: fix warning in CLI help [e63916b50ac1] * source/common/common.cpp: common: nit [a901089e8218] * source/common/common.cpp: common: validate --subme value [371f83f5c9cd] * source/x265.h: api: cleanup x265_param orderings, add full comments [7dea1450b7fa] 2013-11-18 Steve Borho * source/encoder/encoder.cpp: encoder: simplify size variables [8abf4200186a] * source/x265.h: api: nit [ca30b6c351c2] * source/encoder/encoder.cpp, source/encoder/encoder.h, source/x265.cpp, source/x265.h: api: make x265_encoder_get_stats() somewhat future proof By passing in the size of x265_stats as the user application knows about the encoder can know not to try to set new fields that were added to the end of x265_stats. This requires some discipline on our part to only append to the structure and to always check the size for any new fields we might add. [5ae9bb8daaec] * source/x265.h: api: remove old suffix and prefix from C symbols in comment, reflow [afde9f11046a] * source/encoder/encoder.cpp, source/x265.cpp, source/x265.h: api: remove hungarian prefixes from x265_nal members These particular prefixes came from x264 originally [75328ddf6ef1] * source/x265.h: api: remove reserved NAL enums and C++ style comments from public header [6bf2bdc1dd1c] 2013-11-19 Steve Borho * source/x265.cpp, source/x265.h: api: cleanup bpyramid [f38139868da6] 2013-11-19 Gopu Govindaswamy * source/common/common.cpp, source/encoder/dpb.cpp, source/encoder/encoder.cpp, source/encoder/slicetype.cpp, source/x265.cpp, source/x265.h: b-pyramid implementation: Allow the use of B-frames as references for non B and B frames when we enable the b-pyramid the bitrates efficienctly reduced and there is not much diff in the performance and the PSNR 00. increased some of the clips and decreased some of clips Test results for reference when enable and disable the b-pyramid: cli option : -b 10 --hash=1 -f 100 --b-pyramid=1 --b-adapt=2 Enable B-reference : --b-pyramid=1 Disable B-reference : --b-pyramid=0 Results: Enable / Disable Clips - Johnny_1280x720_60.y4m Total time taken - 11.19s (8.94 fps) / 13.44s (7.44 fps) Bitrates - 303.52 kb/s / 326.79 kb/s PSNR - 40.679 / 40.612 Clips - Cactus_1920x1080_50.y4m Total Time taken - 44.61s (2.24 fps) / 48.23s (2.07 fps) Bitrates - 3420.80 kb/s / 3575.20 kb/s PSNR - 35.709 / 35.726 Clips - BasketballDrive_1920x1080_50.y4m Total time taken - 54.15s (1.85 fps) / 53.72s (1.86 fps) Bitrates - 4114.07 kb/s / 4310.45 kb/s PSNR - 37.283 / 37.290 Clips - FourPeople_1280x720_60 Total time taken - 11.79s (8.48 fps) / 12.16s (8.23 fps) Bitrates - 514.90 kb/s / 539.08 kb/s PSNR - 39.782 / 39.757 [1449a1a2041f] 2013-11-18 Steve Borho * source/common/common.cpp: log: do not show aq-strength if AQ is disabled [2f5f538d2cbc] * source/common/common.cpp: preset: return superfast/ultrafast lookahead depths to 10 [628be479be44] 2013-11-18 Aarthi Thirumalai * source/common/common.cpp, source/x265.cpp: cli: add aq-strength to cli input options, add validations for aq mode [6a068b264c84] 2013-11-18 Steve Borho * source/encoder/frameencoder.cpp: frameencoder: fix initialization order to prevent warnings [cfd834ba8e4f] 2013-11-18 Praveen Tiwari * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h: TComYuv::copyPartToPartYuv, blockcopy_pp asm integration [ad5dff9a2374] 2013-11-18 Murugan Vairavel * source/test/pixelharness.cpp, source/test/pixelharness.h: Test bench code for transpose routine [301f9f86ae23] * source/common/TShortYUV.cpp, source/common/TShortYUV.h, source/common/pixel.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/test/pixelharness.cpp: TShortYUV: asm code integration for pixelsub_ps [58646537ce29] 2013-11-18 Yuvaraj Venkatesh * source/common/x86/pixel-a.asm: asm: fix the bug caused on 32-bit linux due to satd routines. [690f6534d310] 2013-11-18 Kavitha Sampath * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/common.h, source/encoder/compress.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/x265.cpp: Encoder statistics: Inter[% (2Nx2N %2NxN %Nx2N %AMP)] Intra[% (%DC %PLANAR %ANG)] Split[%] Skip[%] [2321ebe0bf64] 2013-11-18 Nabajit Deka * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.h: Adding asm function declarations and initializations for chroma hps filter functions. [ac9e64d8a80b] 2013-11-18 Deepthi Nandakumar * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h: TComPrediction: cleanup, remove unused buffers [58f4e30dbe8f] 2013-11-17 Steve Borho * source/test/ipfilterharness.cpp: testbench: quit zeroing buffers before every test [e2895ce7bbeb] * source/common/vec/ipfilter-sse41.cpp: vec: disable 16bpp ipfilter_ps[] functions, not 10bit pixel safe [b32dc442ca83] * source/common/vec/intra-ssse3.cpp: clang: fix ambiguous * operator in intra-ssse3.cpp [7cae5e2e17ed] 2013-11-16 Steve Borho * source/common/common.cpp: common: remove thread counts from param2string [e276322c6288] * source/common/common.cpp, source/common/common.h, source/x265.cpp, source/x265.h: cli: allow string argument names for --me, generalize [14cd6a901cc4] * source/common/vec/pixel-sse3.cpp: vec: drop blockfill intrinsic primitives, we have ASM [1544cf94837d] * source/common/pixel.cpp, source/common/vec/pixel-sse3.cpp: vec: drop residual and recon intrinsic primitives, we have ASM [3052fca7e7d1] * source/common/x86/pixel-util.asm: fix eoln of pixel-util.asm [119c01293aa5] 2013-11-16 Min Chen * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util.asm, source/common/x86/pixel.h: asm: assembly code for calcresidual[] [24bcae464492] * source/common/pixel.cpp, source/common/vec/pixel-sse3.cpp, source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util.asm, source/common/x86/pixel.h: cleanup: remove unused 64x64 functions [64ece76a2152] * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/x86/pixel- util.asm: asm: residual buffer is alignment to size, so we can use alignment load instruction [e43b1e005ffa] 2013-11-16 Steve Borho * source/encoder/encoder.cpp, source/encoder/slicetype.cpp: repair -i0 behavior [2552369e3537] * source/encoder/slicetype.cpp: slicetype: hoist intra cost estimate out of weightsAnalyze [da5b10cf5ee5] 2013-11-15 Praveen Tiwari * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h: TComYuv::copyPartToYuv, asm code integration for blockcopy_pp [7e7397e823c9] * source/Lib/TLibCommon/TComYuv.cpp: TComYuv::copyToPartYuv, asm integration for blockcopy_pp [08cb5a0bff32] * source/common/primitives.cpp, source/common/primitives.h, source/test/pixelharness.cpp: checking for all supported csp values [a4b880b9114d] * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/common/pixel.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/test/pixelharness.cpp: TComYuv::copyFromPicLuma, asm integration for chroma blockcopy_pp [0aa7be2c038a] 2013-11-15 Nabajit Deka * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.h: Adding asm function declarations and initializations for luma vss filter functions. [ec9295e39fe6] * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.h: Adding asm function declarations and initializations for chroma vss filter functions [726f302ca952] * source/common/x86/ipfilter8.asm: asm: routines for luma vss filter functions for all block sizes. [4ee15557ea11] * source/common/x86/ipfilter8.asm: asm: routines for chroma vss filter functions for all block sizes [83c9a7a473c4] * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: Adding test bench code for luma vss filter functions. [7fd467ca4f3e] * source/common/ipfilter.cpp, source/common/primitives.h: Adding function pointer array and C primitive initializations for luma vss filter functions [544c4712cd45] * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: Adding test bench code for chroma vss filter functions [47de8ca8952c] * source/common/ipfilter.cpp: Adding C primitive for chroma vss filter functions [fdaef69fbf19] * source/common/primitives.h: Adding function pointer type & array declaration for chroma vss filter functions [f6efa96cfbd4] 2013-11-16 Steve Borho * source/CMakeLists.txt, source/common/CMakeLists.txt: cmake: disable some flags for clang, old versions balk at them [60a66cbd8b47] 2013-11-15 Praveen Tiwari * source/Lib/TLibCommon/TComPrediction.cpp: reverted chroma_copy_pp asm integration to avoid csp break [2cb5461ccd45] 2013-11-15 Steve Borho * source/Lib/TLibCommon/TComPic.cpp, source/common/lowres.cpp, source/common/lowres.h, source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: hoist weightp analysis above dosearch checks [3e9bb2ca458b] * source/Lib/TLibCommon/TComPrediction.cpp: TComPrediction: cleanup hugarian notations and redundant vars [959cabcc9ece] * source/Lib/TLibCommon/TComSlice.h: fix variable shadow warning [95f292369c06] 2013-11-15 Deepthi Nandakumar * Merge [c45770e5a2ae] * source/common/common.cpp: presets: fix bugs, better spread out the efficiency/speed data points. [a85c5f418794] * source/x265.h: x265: whitespace nit [a5689bb5808e] 2013-11-14 Steve Borho * source/encoder/slicetype.cpp: slicetype: correct non-denom round, improve some comments [ee42f57411ae] * source/encoder/slicetype.cpp: slicetype: remove unnecessary lines, simplify a few things [31bbe5e1142e] * source/encoder/slicetype.cpp: slicetype: use x265 style camelCase auto vars [82b9f30398ae] * source/encoder/slicetype.cpp: slicetype: since w is an auto-var there is no need to zero at early- outs [02fd5b099fa3] * source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: optimize away mcWeight helper function [ba00da135945] 2013-11-14 Shazeb Nawaz Khan * source/common/lowres.cpp, source/common/lowres.h, source/encoder/slicetype.cpp, source/encoder/slicetype.h: Using weighted lowres ref frames in cost estimation in lookahead [899731955c6d] * source/Lib/TLibCommon/TComSlice.h, source/encoder/slicetype.cpp, source/encoder/slicetype.h: Pulling x264 weight decision into x265 lookahead [61f9fc2e91d2] 2013-11-14 Min Chen * source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util.asm, source/common/x86/pixel.h, source/test/pixelharness.cpp: asm: assembly code for calcrecon[] [1b9545e23e36] 2013-11-14 Sumalatha Polureddy * source/encoder/compress.cpp: no-rdo early exit: giving weightage to the cost of that CU and neighbour CU's for early exit Early exit is done when CU cost at depth "n" is lessthan sum of 60% of avgcost of that CU at same depth and 40% of avgcost of neighbour CU's at same depth. the performance, bitrate increase and psnr comparison are given below CLI: x265.exe input.y4m -o abc.hevc -r recon.y4m --rd 1 --ref 1 BasketballDrive_1920x1080_50 Timetaken to encode: 704/585/564s bitrate: 3650/3696/3696 PSNR: 36.7/36.67/36.67 perf improvement: 16.9% (compared to early exit OFF and already existing early exit) perf improvement: 19.8% (compared to early exit OFF and new early exit) Cactus_1920x1080_50 Timetaken to encode: 526/443/436s bitrate: 2787/2831/2833 PSNR: 35.527/35.48/35.48 perf improvement: 15.7% (compared to early exit OFF and already existing early exit) perf improvement: 17.1% (compared to early exit OFF and new early exit) Kimono1_1920x1080_24 Timetaken to encode: 279/235/238s bitrate: 1243/1252/1252 PSNR: 38.16/38.158/38.159 perf improvement: 15.7% (compared to early exit OFF and already existing early exit) perf improvement: 14.6% (compared to early exit OFF and new early exit) FourPeople_1280x720_60 Timetaken to encode: 169/157/157s 16.9%/19.8% bitrate: 486/489/489 PSNR: 39.09/39.052/39.042 perf improvement: 7.1% (compared to early exit OFF and already existing early exit) perf improvement: 7.1% (compared to early exit OFF and new early exit) big_buck_bunny_360p24 Timetaken to encode: 1739/1511/1505s 16.9%/19.8% bitrate: 174.9/175.38/175.5 PSNR: 37.798/37.746/37.752 perf improvement: 13.1% (compared to early exit OFF and already existing early exit) perf improvement: 13.4% (compared to early exit OFF and new early exit) PartyScene_832x480_50 Timetaken to encode: 123/120/120s 16.9%/19.8% bitrate: 208/208/208 PSNR: 40.344/40.33/40.332 perf improvement: 2.4% (compared to early exit OFF and already existing early exit) perf improvement: 2.4% (compared to early exit OFF and new early exit) [1a033fe23a3e] 2013-11-14 Praveen Tiwari * source/Lib/TLibEncoder/TEncSearch.cpp: reverted chroma_copy_pp asm integration code, avoiding csp break [b0ce6bd99b15] 2013-11-14 Murugan Vairavel * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: asm: code for scale1D_128to64 routine [05484f075744] * source/test/pixelharness.cpp, source/test/pixelharness.h: Unit test code for Pixel scaling [38e124ec202c] 2013-11-14 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for pixel_satd_32x64 and pixel_satd_48x64 [84f9ced21747] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for pixel_satd_64x64 [99b64d267788] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for pixel_satd_64x32 and pixel_satd_64x48 [ed1dab579cb1] 2013-11-13 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: nit [e871fe75d5ab] 2013-11-13 Nabajit Deka * source/common/x86/ipfilter8.asm: asm: routines for chroma vps filter functions for 2x4 and 2x8 block sizes. [c828dd4d9eae] 2013-11-13 Derek Buitenhuis * source/Lib/TLibEncoder/TEncSearch.cpp: Reindent after last commit [5683ee5b793c] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: Fix parameter type of xEstimateResidualQT Fixes compilation with g++. [c89e22d26bcd] 2013-11-13 Nabajit Deka * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm, source/common/x86/ipfilter8.h: Change minimum architecture to sse4 as chroma vsp functions for block sizes(2x4,2x8 and 6x8) need faster SSE4 instructions. [a04ca925ad3f] * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.h: Adding asm function declarations and initializations for chroma vps filter functions. [5fc6ca938864] * source/common/x86/ipfilter8.asm: asm: routines for chroma vps filter functions for 32xN block sizes. [701b696d0670] * source/common/x86/ipfilter8.asm: asm: routines for chroma vps filter function for 24x32 block size. [21d27b188e71] * source/common/x86/ipfilter8.asm: asm: routines for chroma vps filter functions for 16xN block sizes. [52d18d911356] * source/common/x86/ipfilter8.asm: asm: routines for chroma vps filter functions for 6x8 and 12x16 block sizes. [8e6dcabdccd5] * source/common/x86/ipfilter8.asm: asm: routines for chroma vps filter functions for 8xN block sizes [91cfcd159ff3] * source/common/x86/ipfilter8.asm: asm: routines for chroma vps filter functions for 4xN block sizes. [23aecd3f9180] * source/common/x86/ipfilter8.asm: asm: routines for chroma hps filter functions for 16xN, 24xN and 32xN [d80ab2913b31] * source/common/x86/ipfilter8.asm: asm: routines for chroma hps filter functions for 8xN block sizes. [3448252924ad] * source/common/x86/ipfilter8.asm: asm: Proper indentation and function prototype updation for chroma hps filter functions for 2xN, 4xN, 6x8 and 12x16 block sizes. [51d3c0782e46] 2013-11-13 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for pixel_satd_64x16 [32e01ab333a6] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for pixel_satd_32x32 [4ee655b93b03] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for pixel_satd_24x32 [2ffe634ebd71] 2013-11-12 Murugan Vairavel * source/common/pixel.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/common/x86/pixel.h, source/test/pixelharness.cpp, source/test/pixelharness.h: asm: Unit test code for pixelsub_ps function [c4ca80d19105] 2013-11-13 Murugan Vairavel * source/common/x86/pixel-a.asm: asm: pixelsub_ps routine for all block sizes [2d6dd46dc286] 2013-11-12 sagarkotecha * source/common/ipfilter.cpp: Bug fix : In ipfilter for 10 bit yuv support [90c2763ee027] 2013-11-12 Shazeb Nawaz Khan * source/encoder/ratecontrol.cpp: Adding initialisation for ssd/sum values for lowress frame [a19ba09c1fd7] 2013-11-12 Nabajit Deka * source/test/ipfilterharness.cpp: Adding test bench code for chroma vps filter functions. [2185b81ae35b] * source/common/ipfilter.cpp, source/common/primitives.h: Adding function pointer array and C primitive initializations for chroma vps filter functions. [1ddacfd89112] * source/common/x86/ipfilter8.asm: asm: routines for chroma hps filter functions for 2xN, 4xN, 6x8 and 12x16 block sizes. [533bca3ec7e9] * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: Adding test bench code for chroma hps filter functions. [e6d26209c45f] * source/common/ipfilter.cpp, source/common/primitives.h: Adding function pointer array and initializations for chroma hps filter functions. [8a8b967500e5] * source/common/x86/asm-primitives.cpp: Adding function pointer initializations for asm chroma vsp functions. [028b911ae623] * source/common/x86/ipfilter8.h: Adding asm function declarations for chroma vsp filter functions. [8fe8d8f9f7cb] * source/common/x86/ipfilter8.asm: asm: routines for chroma vsp filter functions for all block sizes. [4844849073b7] * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: Adding test bench code for chroma vsp filter functions. [ed8a6cd4d8ec] * source/common/ipfilter.cpp, source/common/primitives.h: Adding function pointer array and initializations for chroma vsp filter functions. [e676cbd86238] 2013-11-12 Min Chen * source/common/x86/asm-primitives.cpp, source/common/x86/mc-a.asm, source/common/x86/pixel.h: asm: assembly code for x265_pixel_avg_12x16 [d0f80f375c3b] 2013-11-12 Praveen Tiwari * source/Lib/TLibCommon/TComYuv.cpp: TComYuv.cpp, use new luma_copy_ps asm primitives where feasible [31528c277c64] * source/Lib/TLibCommon/TComYuv.cpp: TComYuv.cpp, use new blockcopy_pp luma primitives where feasible [8708689dcca2] * source/Lib/TLibCommon/TComYuv.cpp: TComYuv::copyFromPicLuma, blockcopy_pp luma asm code integration [c56ea57ce3ab] * source/Lib/TLibCommon/TComYuv.cpp: TComYuv::copyToPicLuma, blockcopy_pp asm code integration [04c28af13c4d] 2013-11-12 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for pixel_satd_12x16 [c56ce77dc081] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for satd_16x32, satd_16x64, satd_8x32 [d636952ed093] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for pixel_satd_16x4 [7818f5b7cc25] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for pixel_satd_16x12 [2baf62a8e47d] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for pixel_satd_32x24 and rearranged the functions [085d5c625c53] 2013-11-11 Steve Borho * source/encoder/compress.cpp: compress: fix shadow warning from GCC [58bdb05da194] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: use luma block copy (luma part size) if bChromaSame [ea4f939478ed] 2013-11-12 Deepthi Nandakumar * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/encoder/compress.cpp: Backout: Causing non-determinism in rd 0 and 1. Needs to be further investigated. [ab0968b4b65d] 2013-11-12 Min Chen * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/TShortYUV.cpp: cleanup: hardcoded m_qtTempTComYuv[qtLayer].m_width to MAX_CU_SIZE [12053d6bf759] 2013-11-12 Dnyaneshwar Gorade * source/common/x86/asm-primitives.cpp, source/common/x86/mc-a.asm, source/common/x86/pixel.h: asm: pixel_avg_48x64, pixel_avg_8x32 [4a4fd61e98e6] * source/common/x86/asm-primitives.cpp, source/common/x86/mc-a.asm, source/common/x86/pixel.h: asm: asm: pixel_avg_24x32 [56642525d09e] * source/common/x86/asm-primitives.cpp, source/common/x86/mc-a.asm, source/common/x86/pixel.h: asm: pixel_avg_64x(64,48,16) [9c92947860e0] * source/common/x86/asm-primitives.cpp, source/common/x86/mc-a.asm, source/common/x86/pixel.h: asm: pixel_avg_32x(64,32,24,8) [5b0e1731f776] 2013-11-12 Sumalatha Polureddy * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/encoder/compress.cpp: no-rdo early exit: giving weightage to the cost of all CU's and neighbour CU's for early exit Early exit is done when CU cost at depth "n" is lessthan sum of 60% of avgcost of all CU's and 40% of avgcost of neighbour CU's at same depth. [dc5c51ff542f] 2013-11-11 Deepthi Devaki * source/Lib/TLibEncoder/TEncSearch.cpp: no-rdo: cleanups. Remove unnecessary memsets, rearrange computations. [1ca01c82609f] 2013-11-11 Steve Borho * source/Lib/TLibCommon/TComYuv.h: TComYuv: de-hungarian nits [d1d716083aa7] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/motion.cpp, source/encoder/ratecontrol.cpp: asm: use new block copy primitives where feasible [1c95568c7143] * source/Lib/TLibCommon/TComPrediction.cpp, source/common/ipfilter.cpp, source/common/primitives.h, source/common/vec/ipfilter-sse41.cpp, source/common/x86/asm- primitives.cpp, source/common/x86/ipfilter8.asm, source/common/x86/ipfilter8.h, source/encoder/motion.cpp: asm: hookup luma_vsp primitive, drop asm and intrinsic non-block versions [904b788b09e2] 2013-11-11 Nabajit Deka * source/common/x86/asm-primitives.cpp: Adding function pointer initializations for luma vsp functions. [d11de5be8e25] * source/common/x86/ipfilter8.h: Adding asm function declarations for luma vsp filter functions. [937ac0c1bac4] * source/common/x86/ipfilter8.asm: asm: routines for luma vsp filter functions for all block sizes. [1eae34eb5995] 2013-11-11 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for x265_pixel_satd_32x16 [27b97bc50331] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: assembly code for x265_pixel_satd_32x8 [da13148e7c6e] 2013-11-11 Dnyaneshwar Gorade * source/common/x86/asm-primitives.cpp, source/common/x86/mc-a.asm, source/common/x86/pixel.h: asm: enabled pixel_avg_16x(64,32,12,4) assembly functions [1990e66030d1] 2013-11-11 Min Chen * source/Lib/TLibEncoder/TEncSearch.cpp: use fixed stride/size on m_qtTempTComYuv, to reduce number of calcRecon() parameters [0f9c6391fa19] * source/common/x86/asm-primitives.cpp, source/common/x86/mc-a.asm, source/common/x86/pixel.h: asm: pixel_avg[32x16] [79a452bec247] 2013-11-11 Praveen Tiwari * source/common/x86/asm-primitives.cpp: added macro call for luma partition blockcopy_ps function [18dd57c38254] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: asm code for blockcopy_ps_64xN [ed32ed5a0785] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: asm code for luma blockcopy_ps_48x64 [c19168acd391] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: asm code for luma blockcopy_ps_32x64 [15b705145e15] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: added asm function for luma blockcopy_ps_16x64 [8e20f3c1dbb4] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: added asm code blockcopy_ps_4x16 and invoked function pointer initialization with macro [67fb80ee548a] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: asm code for blockcopy_ps_6x8 [b208adfaaba6] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: asm code for blockcopy_ps_2x8 [c047d5898b59] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: asm code for blockcopy_ps_2x4 [cf089f73913d] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: asm code for blockcopy_ps_24x32 [c8e0d150b111] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: asm code for blockcopy_ps_4x8 [332793211a8d] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: asm code for blockcopy_ps_4x4 [953fe27840b6] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: asm code for blockcopy_ps_4x2 [4c45ee313c3c] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: asm code for blockcopy_ps_12x16 [c09ba17002c0] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: asm code for blockcopy_ps_32xN [badcc7920c91] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: blockcopy_ps_16x4, asm code is now sse4 [1365b796a75e] * source/common/x86/blockcopy8.asm: eliminated register copy from BLOCKCOPY_PS_W16_H4 macro [7a0afcd7c4c9] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: asm code for asm code for blockcopy_ps,16x8, 16x12, 16x16, 16x32 [e5567a4eeec5] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: asm code for blockcopy_ps_16x4 [cb378330b31b] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: asm code for blockcopy_ps, 8x6, 8x16 and 8x32 [7d74ee88f3fe] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: asm code for blockcopy_ps_8x6 [1fbaef13feb7] 2013-11-11 Steve Borho * source/encoder/compress.cpp: compress: white-space nits [c94d51359a5f] 2013-11-11 Mahesh Doijade * source/encoder/compress.cpp: TEncCu: cleanup xComputeCostIntraInInter to use 32x32 logic for 64x64 [2e90d81098af] 2013-11-11 Min Chen * source/test/pixelharness.cpp: bugfix: PixelHarness::check_pixelavg_pp() output buffer did not initialize [9642b5b6500b] * source/common/x86/asm-primitives.cpp, source/common/x86/mc-a.asm: re-enable asm code for pixel_avg, the problem is miss EMMS [a1577003ee96] 2013-11-11 Praveen Tiwari * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: asm code for blockcopy_ps_8x4 [25300bdf7bbe] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: asm code for blockcopy_ps_8x2 [11b09a9fa32f] * source/test/pixelharness.cpp, source/test/pixelharness.h: unit test code for block_copy_ps function [eab2cd89e813] * source/common/pixel.cpp, source/common/primitives.h: added blockcopy_ps c primitive and function pointes [7f3164f16551] 2013-11-11 Nabajit Deka * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: Adding test bench code for luma vsp filter functions. [51358e3422b7] * source/common/ipfilter.cpp: Adding C primitive for luma vsp filter functions. [d2b3aefb522e] * source/common/primitives.h: Adding function pointer type & array definition for luma vsp filter functions. [8d496292dd1d] 2013-11-11 Deepthi Nandakumar * source/common/vec/dct-sse3.cpp, source/common/vec/dct-sse41.cpp: 16bpp primitives: disabling dct/idct/dst/idst primitives [8ca334701a92] 2013-11-09 Steve Borho * source/test/testbench.cpp: testbench: set g_bitDepth to 10 for HIGH_BIT_DEPTH builds This more accurately tests our optimized primitives vs the C ref, and several of them now fail validation. The intrinsic primitives need to be updated to the changes made in commit b24d05dd4990 and/or disabled for 16bpp. [9d74638c3640] * source/common/vec/dct-sse3.cpp: dct: white-space cleanup [975d0089a37d] * source/output/y4m.cpp: y4m: fix 8bpp build [efb26544f8aa] * source/Lib/TLibCommon/TComPicYuv.cpp: TComPicYuv: add a comment for future optimizations [2be9bd65f418] * source/input/yuv.cpp: yuv: pic.stride should be in units of pixels, not bytes [b2b455afd60e] * source/Lib/TLibCommon/TComPicYuv.cpp: csp: fix allocation size calculation of chroma planes [99d934beca75] * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h: TComPicYuv: remove unused luma-oriented functions, cleanup destroy method [9dece99f7faa] * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h: TComPicYuv: remove unused copy methods [ad8b9d120f8c] * source/Lib/TLibCommon/TComPicYuv.cpp: TComPicYuv: cleanup prefixes [c05952a71525] * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h: TComPicYuv: remove unused dump function [8774e07b9d8a] * source/output/output.cpp, source/output/y4m.cpp, source/output/y4m.h, source/output/yuv.cpp, source/x265.cpp: cli: file writers should validate output bitdepth, if any is specified [5c3ecc48bf3b] * source/common/CMakeLists.txt, source/common/vec/pixel-avx2.cpp, source/common/vec/vec-primitives.cpp: pixel: remove AVX2 vector class SAD primitives These are superceded by assembly - the ASM doesn't use AVX2 yet but it's already faster [af9ec83d864a] * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h: TComYuv: remove unused removeHighFreq() [cd9b013529ad] * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/common/pixel.cpp, source/common/primitives.h, source/common/vec/blockcopy-sse3.cpp, source/test/pixelharness.cpp, source/test/pixelharness.h: primitive: remove pixeladd_pp and TComYuv::addClip() These were used by the old HM bidir search [57caf112acf9] 2013-11-08 Steve Borho * source/input/input.h, source/input/y4m.cpp, source/input/y4m.h, source/input/yuv.cpp, source/input/yuv.h: input: drop unthreaded reader paths for simplicity [29ad451b3026] * source/input/yuv.cpp: yuv: simplify framesize usage [27486e340eac] * source/input/yuv.cpp: yuv: initialize pixelbytes as early as possible [45c5ba1dc340] * source/input/y4m.cpp, source/input/yuv.cpp: input: include nits [620c2a377cf6] * source/x265.cpp: cli: do not check recon bit depth if no recon file is requested For now, just enforce our current requirement that the output bitdepth must match the input bit depth. If the recon file writers ever support depth conversions, these checks can be revisited [4a824497b3f4] * source/common/common.cpp: common: set default params to match medium preset, keep star search for medium [5b688170c506] 2013-11-06 Steve Borho * source/common/common.cpp: presets: adjust presets to increase spread and align closer with x264 presets [8487f675effa] 2013-11-08 Deepthi Devaki * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp: no-rdo: refactor enodeResandCalcRDInterCU function Divide estimateBits and modeDecision inside the function. EstimateBits uses a pseudo encode. Bitstream changes with this patch for --rd 1. [66659d4a7b31] 2013-11-08 Steve Borho * source/Lib/TLibCommon/TComPicYuv.cpp: TComPicYuv: fixup 16x16 picture padding by using unpadded width as pad base [74bed0a288f5] 2013-11-08 Mahesh Doijade * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup estIntraPredQT to use 32x32 logic for 64x64 blocks [abb7c130ca2f] 2013-11-08 Yuvaraj Venkatesh * source/common/x86/sad-a.asm: asm: optimised pixel_sad_xN_24x32 assembly code [cd16d2ed3128] 2013-11-08 Praveen Tiwari * source/common/x86/blockcopy8.asm: blockcopy_sp_2x8, optimized asm code [1e7c99e5b511] * source/common/x86/blockcopy8.asm: blockcopy_sp_2x4, optimized asm code [7bd27dfad3bf] * source/common/x86/blockcopy8.asm: blockcopy_sp_6x8, optimized asm code [073ca727d5de] * source/common/x86/blockcopy8.asm: blockcopy_sp_32xN, optimized asm code [b95f9e753039] * source/common/x86/blockcopy8.asm: blockcopy_sp_48x64, optimized asm code [fa5544054a1d] * source/common/x86/blockcopy8.asm: blockcopy_sp_64xN, optimized asm code [a1c0eb5f5d84] * source/common/x86/blockcopy8.asm: blockcopy_sp_24x32, optimized asm code [3cf4edc66844] * source/common/x86/blockcopy8.asm: blockcopy_sp_16xN, optimized asm code [a1a9b29cccf9] * source/common/x86/blockcopy8.asm: blockcopy_sp_12x16, optimized asm code [970517e2eb4c] * source/common/x86/blockcopy8.asm: blockcopy_sp_8x16, optimized asm code [a0b003aac23e] * source/common/x86/blockcopy8.asm: blockcopy_sp_8x8, optimized asm code [8cfa90a574f8] * source/common/x86/blockcopy8.asm: blockcopy_sp_8x2, optimized asm code [c8d25ce3b965] * source/common/x86/blockcopy8.asm: blockcopy_sp_8x6, optimized asm code [2fd3cf3b5edb] * source/common/x86/blockcopy8.asm: blockcopy_sp_8x4, optimized asm code [27c70b409c1b] * source/common/x86/blockcopy8.asm: blockcopy_sp_4x8, optimized asm code [ceed26f375d5] * source/common/x86/blockcopy8.asm: blockcopy_sp_4x16, optimized asm code [b20b89bf5348] * source/common/x86/blockcopy8.asm: blockcopy_sp_4x4, optimized asm code according to modified C primitive [d5f67f9cba2c] * source/common/x86/blockcopy8.asm: blockcopy_sp_4x2, optimized asm code according to modified C primitive [85dddb9aa165] 2013-11-08 Steve Borho * source/common/ipfilter.cpp, source/common/primitives.h, source/common/vec/ipfilter-sse41.cpp, source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: primitives: remove unused ipfilter_pp_t funcdef and C and intrinsic primitives These are now completely replaced by block based assembly code [fef74c2e329d] * source/common/vec/pixel-sse41.cpp: linux: re-enable sse_12x16 for clang and gcc [94cba84de8dd] 2013-11-08 Min Chen * source/common/vec/pixel-sse41.cpp: fix bug in sse_sp12 [f76b591b7aef] * source/test/pixelharness.cpp, source/test/pixelharness.h: testbench: update for blockcopy, these function use dynamic range [0,255] [c5e633516217] 2013-11-07 Steve Borho * source/x265.cpp: cli: add missing --version long option for -V, and -? short option for --help [fd721a5ba063] * source/x265.cpp: cli: report a warning on preset or tune string mismatches [08872c3c4735] * source/common/vec/pixel-sse41.cpp: linux: disable sse_12x16 for GCC and clang [fd0ebb4b4709] * source/test/pixelharness.cpp: linux: fix pixelharness on linux which has full-range rand() [1ea82d16d334] * source/common/vec/blockcopy-sse3.cpp: vec: remove use of deleted primitive for 16bpp [014e3303ad3d] * source/common/lowres.h: lowres: reorder members of Lowres struct for clarity [5563bd58c1e3] * source/common/lowres.h, source/common/mv.h, source/encoder/motion.cpp, source/encoder/reference.h: lowres: move ReferencePlanes from mv.h to lowres.h [dac2888cbf4c] * source/common/mv.h, source/encoder/motion.cpp, source/encoder/slicetype.cpp: lowres: pull lowres motion compensation and residual costs into lowres struct [9668c5b6373a] 2013-11-07 Min Chen * source/common/TShortYUV.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/vec/blockcopy-sse3.cpp, source/test/pixelharness.cpp, source/test/pixelharness.h: rename: pixelsub_sp to pixelsub_ps, because it sub two Pixel and result is Short [cb24ed71905d] 2013-11-07 Praveen Tiwari * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: asm code for blockfil_s, 32x32 [b4993b1fef7c] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: asm code for blockfill_s, 16x16 [a8df8123e9ab] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: asm code for blockfill_s, 8x8 [7d3e461312a5] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h: asm code for blockfill_s, 4x4 [29d208555299] * source/test/pixelharness.cpp, source/test/pixelharness.h: unit test code for blockfill_s_c function [12ec248f7390] 2013-11-07 Steve Borho * source/Lib/TLibCommon/TComPrediction.cpp, source/encoder/motion.cpp: asm: enable luma_vpp block MC functions [4d9aac4f0985] 2013-11-07 Nabajit Deka * source/common/x86/ipfilter8.asm: Bug fix for luma vpp asm routines.Also incorporated review comment changes. [9ba49b482a1e] 2013-11-07 Min Chen * source/common/pixel.cpp, source/common/primitives.h, source/common/vec/blockcopy-sse3.cpp, source/test/pixelharness.cpp, source/test/pixelharness.h: cleanup: remove unused blockcpy_sc [db7752a46693] * source/common/pixel.cpp: asm: the pixel value in blockcopy_ps is saturation by calcRecon, so asm can use packuswb [b572831429ec] 2013-11-07 Aarthi Thirumalai * source/Lib/TLibCommon/TComPicYuv.cpp: tcompicyuv: add right boundary padding while applying bottom row padding. [397a201b0ea3] * source/Lib/TLibCommon/TComPicYuv.cpp, source/common/lowres.cpp, source/encoder/frameencoder.cpp: aq: bug fix, extend right and bot of TComPic::m_origPicYuv to a multiple of 16 [93a4f88844f1] 2013-11-07 Steve Borho * source/common/vec/pixel-sse41.cpp: pixel: remove last remaining intrinsic SAD primitives [536db32fc253] 2013-11-07 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm: asm: assembly code for pixel_sad_x4_64xN [dc31fc1daf42] * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm: asm: assembly code for pixel_sad_x3_64xN [d6644a32e6bc] * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm: asm: assembly code for pixel_sad_x4_48x64 [96f1bb63b747] * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm: asm: assembly code for pixel_sad_x3_48x64 [74682dfe5342] 2013-11-07 Gopu Govindaswamy * source/Lib/TLibCommon/TComPicYuv.cpp: tcompicyuv: improvement for Extend the right if width is not multiple of min CU size [85002898f5b4] 2013-11-07 Min Chen * source/common/pixel.cpp: asm: the pixel value in blockcopy_ps is saturation by calcRecon, so asm can use packuswb [0a1b379be359] 2013-11-07 Gopu Govindaswamy * source/Lib/TLibCommon/TComPicYuv.cpp: tcompicyuv: fix for copyFromPicture() when HIGH_BIT_DEPTH enable, sizeof(Pel)=2 and pic.bitDepth=8 [ed1b1a7b0b38] 2013-11-07 Steve Borho * source/encoder/encoder.cpp: api: output x265_picture.bitDepth should reflect actual internal bitdepth And not sizeof(pixel) * 8. [0ab509a661c7] 2013-11-06 Steve Borho * source/common/common.cpp, source/encoder/encoder.cpp, source/x265.cpp, source/x265.h: api: simplistic auto-determination of frame thread count [90d9c1067f50] * source/encoder/motion.cpp: motion: fixup weightp - use unweighted reference pixels as interpolation source [93cccbe49a93] * source/x265.cpp: cli: do not lookup a colorspace name if not supplied [60f78cbfacc8] * source/common/common.cpp: common: set a default color space of I420 [d9ea97e248bc] * source/Lib/TLibCommon/TComPrediction.cpp, source/encoder/motion.cpp: asm: use new block based single-pass H-filter motion compensation primitives [dbb86150c919] * source/Lib/TLibCommon/TComPrediction.cpp: asm: use new block based chroma single-pass MC primitives [8d1bd79d3618] * source/common/CMakeLists.txt, source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.h, source/common/x86/pixel.h: asm: move block copy funcdefs into blockcopy8.h [edf77f60b55c] * source/common/x86/asm-primitives.cpp: asm: move _sse4 block copy function pointer assignments into SSE4 section [34d494a8051f] 2013-11-06 Praveen Tiwari * source/common/x86/blockcopy8.asm: blockcopy_sp, corrected number of xmm registers [0c359d82ebc1] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm: asm code for blockcopy_sp, 64xN [f0214135645a] * source/common/x86/blockcopy8.asm: blockcopy_sp, 48x64 changed the macro name according to width [d87d627b2161] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm: asm code for blockcopy_sp, 48x64 [cde21084ca9d] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm: blockcopy_sp, added 16x64 block size [598a03afc62f] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm: asm code for blockcopy_sp, 32x64 [1a46771b9f87] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/pixel.h: used sse4 for 2x4, 2x8 and 6x8 [ddaa80b9b959] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm: asm code for blockcopy_sp, 6x8 [2ae2eb6c8e51] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm: asm code for blockcopy_sp, 2x8 [529bf6093782] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm: asm code for blockcopy_sp, 2x4 [ea33d0f85b8e] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm: asm code for blockcopy_sp, 12x16 block [99c3b2e4f1cc] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm: asm code for blockcopy_sp, 32xN [6b6d54cc234e] 2013-11-06 Gopu Govindaswamy * source/Lib/TLibCommon/TComDataCU.cpp: tcomdatacu: partStartIdx is always negative, no need to have else block in InitCU() [11a4c5a15d79] * source/Lib/TLibCommon/TComDataCU.cpp: tcomdatacu: remove the for loop in InitCU(), which will never execute partStartIdx is always zero or negative, and the numElements is also always zero or negative the for will never executed if numElements is zero or negative, removed the for loop block in initCU() [8bdb65fef0f0] 2013-11-06 Steve Borho * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h: TComSlice: nits [eab2d925a0e0] * source/common/x86/pixel.h: pixel.h: nit [267b3da1a734] 2013-11-06 Min Chen * source/Lib/TLibCommon/TComPrediction.cpp, source/common/ipfilter.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm, source/common/x86/ipfilter8.h, source/encoder/motion.cpp, source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: asm: ipfilter_ss[FILTER_V_S_S_8] [de7a50155cba] 2013-11-06 Deepthi Nandakumar * source/output/y4m.cpp, source/output/yuv.cpp: YUV, Y4M Output: bitdepth confusion resolved [846e2c0d8478] 2013-11-06 Praveen Tiwari * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm: asm code for blockcopy_sp, 24x32 block [8f71fba52d55] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm: asm code for blockcopy_sp, 16xN blocks [264b1458963a] 2013-11-06 Nabajit Deka * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.h: Adding asm function declaration and function pointer initializations for luma hps functions. [450947d76251] * source/common/x86/ipfilter8.asm: asm: routines for luma hps filter functions for all block sizes. [01d97a51d37d] 2013-11-06 Deepthi Nandakumar * Merge [21e08cf159c5] * source/output/yuv.cpp: YUV Output: more rext merge bugs [b2068453b55b] * source/output/yuv.cpp: YUV output: correct a rext merge issue [dd8510d84b5a] 2013-11-06 Praveen Tiwari * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm: asm code for blockcopy_sp, 4xN blocks [bab35592e71c] * source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm: asm code for blockcopy_sp, 8xN blocks [73b4015984fd] 2013-11-06 Nabajit Deka * source/test/ipfilterharness.cpp: Adding test bench code for luma hps filter functions. [cb323bec7d06] * source/common/ipfilter.cpp, source/common/primitives.h: Adding function pointer array and C primitive for luma hps filter functions. [e31319dfb866] 2013-11-06 Gopu Govindaswamy * source/Lib/TLibCommon/TComDataCU.cpp: tcomdatacu: remove memset in initSubCU() m_trCoeffY, m_trCoeffCb, m_trCoeffCr, m_iPCMSampleY, m_iPCMSampleCb and m_iPCMSampleCr buffers are getting initialized in initCU(), and its not required to set 0 in initSubCU() [1b913b8f7f19] * source/Lib/TLibCommon/TComDataCU.cpp: tcomdatacu: remove memset in initEstData() m_trCoeffY, m_trCoeffCb, m_trCoeffCr, m_iPCMSampleY, m_iPCMSampleCb and m_iPCMSampleCr buffers are getting initialized in initCU(), and its not required to set 0 in initEstData() [d044314537ad] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h: tcomdatacu: remove unused set functions [9368bfd107b8] 2013-11-06 Steve Borho * source/encoder/motion.cpp, source/encoder/motion.h: motion: simplify subpel refine, drop height+1 interpolation This is in preparation of enabling assembly versions of interpolation functions [a1d576fbd0b0] 2013-11-05 Steve Borho * source/encoder/motion.cpp: motion: simplify lowres subpel refine [72520485725e] 2013-11-06 Steve Borho * source/encoder/slicetype.cpp: slicetype: move lastNonB set outside if expression for both I and P clauses [412d2f3a2bd2] 2013-11-05 Steve Borho * source/encoder/motion.cpp: motion: move StarPatternSearch higher in the file, no behavior change [bc99537483f1] 2013-11-06 Steve Borho * source/CMakeLists.txt: cmake: link platform libraries into the shared library (fixes PPA builds) [0234bd136cb9] 2013-11-05 Steve Borho * source/cmake/CMakeDetermineASM_YASMCompiler.cmake: cmake: use detected yasm executable for CMAKE_ASM_YASM_COMPILER variable [ae906d212c5e] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/common/TShortYUV.cpp, source/common/TShortYUV.h, source/common/common.cpp, source/common/common.h, source/encoder/cturow.cpp, source/encoder/encoder.cpp, source/input/input.h, source/input/y4m.cpp, source/input/y4m.h, source/input/yuv.cpp, source/input/yuv.h, source/output/output.cpp, source/output/output.h, source/output/y4m.cpp, source/output/y4m.h, source/output/yuv.cpp, source/output/yuv.h, source/x265.cpp, source/x265.h: rext: partial support for 4:2:2 and 4:4:4 color spaces reconFileBitDepth did not need to be a member of x265_param, and the comment for inputBitDepth needed to mention that it also determined the internal bit depth of the encoder. [7cdcf1a03d93] * source/common/common.cpp, source/common/version.cpp, source/encoder/encoder.cpp, source/input/input.cpp, source/input/input.h, source/input/y4m.cpp, source/input/y4m.h, source/input/yuv.cpp, source/input/yuv.h, source/output/y4m.cpp, source/x265.cpp, source/x265.h: main10: allow pixel sizes of 10 and 12 for HIGH_BIT_DEPTH builds Removes param.internalBitDepth and uses inputBitDepth to mean both the size of input pixels and internal pixels (x265 will do no color space conversions) [6a94dca867c8] * source/common/dct.cpp, source/common/ipfilter.cpp: main10: fix dct and MC primitives to correctly respect larger pixel sizes [b24d05dd4990] * source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPicYuvMD5.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/NALwrite.h, source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/common/common.cpp, source/common/cpu.cpp, source/common/dct.cpp, source/common/ipfilter.cpp, source/common/lowres.cpp, source/common/lowres.h, source/common/pixel.cpp, source/common/vec /dct-sse41.cpp, source/common/vec/intra-sse41.cpp, source/common/vec /intra-ssse3.cpp, source/common/vec/ipfilter-sse41.cpp, source/common/vec/ipfilter-ssse3.cpp, source/common/vec/pixel- avx2.cpp, source/common/vec/pixel16-sse41.cpp, source/common/x86 /asm-primitives.cpp, source/common/x86/ipfilter8.h, source/common/x86/mc.h, source/common/x86/pixel.h, source/encoder/bitcost.cpp, source/encoder/compress.cpp, source/encoder/cturow.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/ratecontrol.cpp, source/input/y4m.cpp, source/input/y4m.h, source/input/yuv.cpp, source/input/yuv.h, source/output/y4m.cpp, source/output/yuv.cpp, source/test/ipfilterharness.cpp, source/test/pixelharness.h, source/test/testbench.cpp, source/x265.cpp: uncrustify source tree [0c9d8360e1b0] * source/encoder/slicetype.cpp: slicetype: better fix for --b-adapt 0 Don't allow an IDR to be re-ordered [f56a9fc5e999] * source/x265.cpp: cli: re-introduce x265_setup_primitives() call prior to printVersion() This way --cpuid N is properly respected. This orders the output of the log messages, but the total number is the same. [76d1d1aa3700] * source/encoder/encoder.cpp: encoder: nits [9b7ca5a14605] * source/encoder/encoder.cpp: log: cleanup Encoder::printSummary() [d8513c114f42] * source/encoder/slicetype.cpp: slicetype: do not force P before I with --b-adapt 0 I don't remember what bug this was covering up, but it's no longer necessary and it was breaking the later code which expected a single non-B per mini-GOP [f7e55b468373] * source/common/primitives.cpp: log: only log primitve status if some primitives are missing Don't waste a line of log output to report everything is normal [e566ef4d3e95] 2013-11-05 Aarthi Thirumalai * source/common/common.cpp, source/x265.cpp, source/x265.h: cli: add option to turn on AQ [ddf4d33e8c15] 2013-11-05 Steve Borho * source/encoder/encoder.cpp: log: white-space nit [f6cb006b3628] 2013-10-30 Kurtnoise * source/x265.cpp: Display also version info during encoding instead of primitives setup. [5895ca0d36be] 2013-11-05 Gopu Govindaswamy * source/Lib/TLibEncoder/TEncCu.cpp: tenccu: remove calling outTempCU->initEstData() multiple time without modifying outTempCU [486f2cff2c3e] * source/Lib/TLibCommon/TComDataCU.cpp: tcomdatacu: Remove memset from create(), these variables are initialized in initCU() [67ec1b965461] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h: tcomdatacu: remove unused copySubCU() function [1028756870f7] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h: tcomdatacu: remove unused copyInterPredInfoFrom() function [f3f510808287] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h: tcomdatacu: remove unused setOutsideCUPart() function [a38c5f57cf7e] 2013-11-05 Praveen Tiwari * source/common/x86/pixel.h: changed the naming convention for blockcopy_sp [e3853b2cbaa8] * source/common/pixel.cpp, source/common/primitives.h, source/test/pixelharness.cpp, source/test/pixelharness.h: changed naming convention and added unit test code for blockcopy_sp function [9deec9d96ed4] 2013-11-02 Neil Piken * build/README.txt: cmake: document minimum cmake required version for VC12 [be7af3216ebd] 2013-11-05 Steve Borho * source/x265.cpp: Merge with stable [ba8c09070e54] * source/x265.cpp: cli: use 64bit byte counter (closes #1) [3c15a9f74091] 2013-11-05 Gopu Govindaswamy * source/input/y4m.cpp, source/input/yuv.cpp: input:reset the file pointer before return in guessFrameCount() [ece7af249573] * source/Lib/TLibEncoder/TEncCu.cpp: tenccu:remove calling outTempCU->initEstData() multiple time without changing outTempCU from xCompressIntraCU [925ed6f7ed34] 2013-11-05 Nabajit Deka * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.h: Adding asm function declaration and function pointer initializations for luma vps functions. [df9d7d85a146] * source/common/x86/ipfilter8.asm: asm: routines for luma vps filter functions for all block sizes. [29d3861c5370] * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: Adding test bench code for luma vps filter functions. [f8053c69b732] * source/common/ipfilter.cpp: Adding C primitive for luma vps filter functions. [9d29fff93f3a] * source/common/primitives.h: Adding function pointer type & array definition for luma vps filter functions. [ed0dd83bb7ca] 2013-11-05 Steve Borho * source/encoder/encoder.cpp, source/encoder/encoder.h, source/x265.h: api: use uint64_t to accumulate bits [c57ed1fd7bd5] 2013-11-05 Santhoshini Sekar * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncAnalyze.h, source/encoder/CMakeLists.txt, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/framefilter.cpp: collect global stats of psnr and ssim [6f19e6ef9ab5] 2013-11-04 Steve Borho * source/encoder/slicetype.cpp: slicetype: make b-adapt 0 set lastNonB, leadingBframes, and bLastMiniGopBFrame [7aa33c9734f5] * source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSearch.cpp: white-space fixes following UInt->uint32_t search and replace [686b5b502797] * source/input/y4m.cpp: y4m: fix two more while loops [22d51335d4ec] * source/input/y4m.cpp: y4m: fix eof detection during header parsing Evaluating an istream as a bool returns the file status. When ifs was converted to a stream pointer, these while loops needed to be changed because a bool evaluation of a pointer is always true if the pointer is not NULL [9732c845db44] * source/test/pixelharness.cpp: pixelharness: shorten copy primitive names for consistency [f3106abb88b2] 2013-11-04 Praveen Tiwari * source/test/pixelharness.cpp: corrected buffer name for chroma_copy_pp [35989e4e0b46] * source/common/x86/pixel.h: pixel.h, added asm function decleration for blockcopy_ps_c [4cd16b86488c] * source/common/pixel.cpp: pixel.cpp, initialization of function pointer table for blockcopy_ps_c partitions [64f25611bcb2] * source/common/pixel.cpp, source/common/primitives.h: added C primitive for blockcopy_p_s and function pointer creation for new type [e61a0b1c035b] * source/common/CMakeLists.txt, source/common/x86/asm-primitives.cpp, source/common/x86/blockcopy8.asm, source/common/x86/pixel.h, source/test/pixelharness.cpp: asm code and test bench integration code for blockcopy_pp_c partitions [7898c58d9cbc] 2013-11-04 Min Chen * source/common/x86/ipfilter8.asm, source/test/ipfilterharness.cpp: fix bug in chroma_p2s and testbench [c83157a8b616] * source/test/ipfilterharness.cpp: update authors header [6e211f980d98] 2013-11-04 Deepthi Devaki * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: RDOQ : pass a parameter to temporarily disable RDOQ. default value of parameter is true, that means RDOQ is not disabled. Outputs mustnot change in any rd levels. [91d96a6038e2] 2013-11-04 Shazeb Nawaz Khan * source/Lib/TLibCommon/TComDataCU.cpp, source/common/lowres.cpp, source/common/lowres.h, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp: Dropping the 'm_' prefix from names used for members of struct type Lowres [37903c6fd1f9] 2013-11-04 Steve Borho * source/common/x86/asm-primitives.cpp: asm: re-enable sad_x3 following alignment workaround [814b4639d6a6] 2013-11-04 Shazeb Nawaz Khan * source/common/lowres.h, source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp: Generating sum & ssd values for weightp decision in lookahead [2ab39c2dd50f] 2013-11-02 Wenju He * source/encoder/motion.cpp: fix vec/asm crash in COST_MV_X3_DIR: costs+3 is not aligned [8621008756ba] 2013-10-30 idxa * source/common/common.cpp, source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h, source/x265.cpp, source/x265.h: rc: add CRF ratecontrol 1. add a parameter of "--crf" to the command line 2. modify the running branches of rateControlStart, using "if(isAbr)" instead of "switch (cfg->param.rc.rateControlMode)", for the logic of classifying the combination of multiple ratecontrol methods is very complex, it is not only based on rateControlMode, so porting x264's way looks feasible. 3. add crf method into x265 [c51c35880df5] 2013-11-01 Steve Borho * source/common/CMakeLists.txt: cmake: cleanup intrinc primitives [f81af999ef6c] * source/common/CMakeLists.txt: cmake: more asm simplifications [ad8222ed1360] * source/encoder/ratecontrol.cpp: rc: replace tabs with spaces [0d79e31728a4] * source/CMakeLists.txt: cmake: drop STLport support, it is no longer necessary [a3d07bee1316] 2013-10-27 Neil Piken * build/vc12-x86/build-all.bat, build/vc12-x86/make-solutions.bat, build/vc12-x86_64/build-all.bat, build/vc12-x86_64/make- solutions.bat: cmake: add Visual Studio 2013 build folder [d7986ac66bc1] 2013-11-01 Steve Borho * source/common/CMakeLists.txt: cmake: remove obsolete build flags [a1502a1f1fa2] 2013-10-31 Steve Borho * source/CMakeLists.txt, source/common/CMakeLists.txt: cmake: remove assembly library to fix MSVC static lib This fixes the static library built by VisualStudio to include the assembly objects. It has the side effect of causing the assembly objects to be built once for the static lib and once for the shared lib, which can be avoided by unloading the shared lib project while you are working on assembly within VisualStudio [3716c9f588df] * source/cmake/CMakeDetermineASM_YASMCompiler.cmake: cmake: fix warning about ASM_YASM compiler being unknown [1c5122851247] * source/x265.cpp: cli: tweaks for command line help [bd53cb226710] * source/common/common.cpp: common: fix int typecast to operate on results of float expression [ae576a38ca5b] * source/common/common.cpp, source/common/primitives.cpp, source/common/vec/vec-primitives.cpp, source/x265.h: Merge with stable [a4e9f242fdf3] * source/x265.h: api: give structs the same name as their typedef This allows them to be forward-decl'd. [30a0c2c5fcbd] * source/common/cpu.cpp, source/common/vec/vec-primitives.cpp: cpu: move ASM fallback functions out of vec-primitives.cpp This fixes link errors when ASM and vector primitives are both disabled [e1dde58cf6e1] * source/common/common.cpp: common: disable MSVC warning that is exposed when compiling without primitives [01e77fde7194] * source/common/primitives.cpp: primitives: fix compile warning exposed when ASM and instrincs are both disabled [ad6d6ddd7037] * source/common/common.cpp, source/x265.h: api: add zero-latency tune target This just disables lookahead and B frames at the moment. [8afb161419df] * source/common/x86/asm-primitives.cpp: asm: disable more sad_x3 functions which cause crashes on Haswell [885e41fac726] * source/common/x86/asm-primitives.cpp: asm: disable sad_x3[LUMA_32xN], they cause crashes on Haswell Seen crashes on Windows, Mac, and Linux. The only constant is Haswell. [51660f092aa4] * source/common/common.cpp: common: lower search range for higher presets with max CTU size 32 [21da3bba6e70] 2013-10-30 Steve Borho * source/CMakeLists.txt, source/common/common.cpp, source/x265.cpp, source/x265.def.in, source/x265.h: api: introduce performance presets [0607132e6b11] 2013-10-31 Steve Borho * source/common/x86/asm-primitives.cpp: disable two avx2 routines which fail unit tests [2621639c96b5] * source/common/vec/pixel-sse41.cpp: clang: re-disable 12x16, sse_pp_12x16 testbench fails [8f4744bdf6fc] 2013-10-31 Min Chen * source/common/x86/ipfilter8.asm: asm: fix typo bug in chroma_p2s [e842b2a4aeeb] 2013-10-31 Nabajit Deka * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: routines for vertical luma filter for all block sizes [faf29e19669f] * source/test/ipfilterharness.cpp: Ensure that the destination buffer is not overwritten. 64 is added as it is the maximum width supported for luma filter. [935d96d93b70] 2013-10-31 Steve Borho * source/common/vec/pixel-sse41.cpp: remove clang prevention for 12x16 pixel primitives [30c655ec95f7] * source/common/vec/pixel-sse41.cpp: pixel: remove sad_x3_12 and sad_x4_16 intrinsic functions [2d08d77871b0] * source/encoder/ratecontrol.cpp: aq: remove unnecessary double->float->double conversions [abedbfdb1e12] * source/encoder/ratecontrol.cpp: aq: fixes for loop over 16x16 blocks This loop was busted when maxCUSize was not 64. It still has a problem with pictures that are not even multiples of 16. The lookahead will extend out the frame during lowres init to an even multiple of 16 pixels, so it's lowres CU width will be wider than the AQ code will use, so the block_xy offsets will be wrong for lookahead analysis. The pixel extension needs to be moved earlier so AQ and the lookahead have a consistent 16x16 CU width [974a6afaddca] * source/encoder/ratecontrol.cpp: aq: simplify acEnergyCu EMMS was in the wrong place, there were a few white-space issues. [180d95f09057] * source/encoder/ratecontrol.cpp: aq: use more explicit chroma variance stride [3e2d69028a3b] * source/encoder/slicetype.cpp: aq: fix NULL pointer check [9acea4fbacef] 2013-10-31 Aarthi Thirumalai * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: aq: set qp, lambda for every CU in the row before processing the CU enabled bUseDQP flag when AQ is mode is ON. [650e40a62322] 2013-10-31 Deepthi Nandakumar * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp: compress: cleanup, remove unused data structs [eed2b51675cf] 2013-10-31 Deepthi Devaki * source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp: no-rdo: Use entropy encoder for bit estimation. Instead of me-bit estimation, use entropy encoder. [775519fb9ba1] 2013-10-31 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm: assembly code for pixel_sad_x4_12x16 [ed884e91d5d5] * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm: assembly code for pixel_sad_x3_12x16 [7ccdf622d081] 2013-10-31 Min Chen * source/Lib/TLibCommon/TComPrediction.cpp, source/common/ipfilter.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm, source/common/x86/ipfilter8.h, source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: asm: chroma_p2s to replace ipfilter_p2s [4a40c4069ad1] * source/Lib/TLibCommon/TComPrediction.cpp, source/common/x86/ipfilter8.asm, source/test/ipfilterharness.cpp: asm: fix bug in luma_p2s and active it in encoder [21dbf988079b] * source/common/x86/ipfilter8.asm: asm: less code size by reduce constant offset [a64e813de628] * source/common/x86/sad-a.asm: asm: fix stack broken bug [08bc7ccc8aad] 2013-10-31 Dnyaneshwar Gorade * source/common/x86/sad-a.asm: asm: reduce large code size in sad_16xN, sad_32xN for better cache performance [9a0da4e6d9e3] * source/common/x86/sad-a.asm: asm: reduce large code size in pixel_sad_8x32 for better cache performance [e4a75488c147] 2013-10-31 Yuvaraj Venkatesh * source/common/x86/sad-a.asm: asm: fix the bug which occured at win32 compile [4a886c170a51] 2013-10-31 Steve Borho * source/test/testpool.cpp: testpool: add missing stdio.h for printf [ec6b4d35f110] 2013-10-30 Steve Borho * source/common/vec/ipfilter-sse41.cpp: ipfilter: fix 16bpp build following f0eea23735a6 [f06e4a24b388] * source/encoder/framefilter.cpp: fix shadowed variable warning [a406f7c1dd3b] 2013-10-30 Praveen Tiwari * source/common/pixel.cpp: added blockcopy_pp_c primitive according to modified argument list [7f68debc632b] * source/common/primitives.h, source/test/pixelharness.cpp, source/test/pixelharness.h: added test code for blockcopy_pp function [e8e84b67cf8f] 2013-10-30 Steve Borho * source/common/vec/pixel-sse41.cpp: pixel: remove sad_12, sad_48, and sad_64 All single sads have asm coverage [645899ddda59] * source/common/vec/pixel-sse41.cpp: pixel: remove 24 and 32 width sad intrinsic functions These are now covered by assembly. Only 12, 48, and 64 remain because they still lack x3 and x4 versions. [eccfe236169b] 2013-10-30 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm: assembly code for pixel_sad_x4_32xN [c3cf2c42e854] * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm: assembly code for pixel_sad_x3_32xN [e371719c4c47] * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm: assembly code for pixel_sad_x4_24x32 [f021f06f3b80] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel.h, source/common/x86/sad-a.asm: assembly code for pixel_sad_x3_24x32 [de91fbc95b4a] 2013-10-30 Dnyaneshwar Gorade * source/common/x86/asm-primitives.cpp, source/common/x86/pixel.h, source/common/x86/sad-a.asm: asm: assembly code for pixel_sad_12x16 [8ee637b11d17] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel.h, source/common/x86/sad-a.asm: asm: assembly code for pixel_sad_24x32 [ed5d877b8452] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel.h, source/common/x86/sad-a.asm: asm: assembly code for pixel_sad_48x64 [78db76b7abec] 2013-10-30 Min Chen * source/Lib/TLibCommon/TComPrediction.cpp, source/common/ipfilter.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm, source/common/x86/ipfilter8.h, source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: asm: filterConvertPelToShort [1a51e6cb0e0c] 2013-10-30 Dnyaneshwar Gorade * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm: asm: assembly code for pixel_sad_64x48 and pixel_sad_64x64 [700b46a1a0cf] * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm: asm: assembly code for pixel_sad_64x32 [42ad273b1d4f] * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm: asm: assembly code for pixel_sad_64x16 [4414f3394a61] * source/common/x86/sad-a.asm: asm: modified common macro for pixel_sad_64xN [e9340727231d] 2013-10-30 Deepthi Devaki * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp: no-rdo: use bit estimates from ME to calculate RDcost. bits estimated in ME stored in CU and used for calculating rdcost along with distortion. This results in better bitrate with no-rdo, with small drop in PSNR. [77db80a67f4e] 2013-10-30 Praveen Tiwari * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: chroma interp_4tap_vert_pp all blocks asm code [74bf8634037c] 2013-10-30 Dnyaneshwar Gorade * source/common/x86/pixel.h: asm: declare asm function pointers for sad_64xN partitions [9f9b2f8d293a] 2013-10-30 Steve Borho * source/common/vec/pixel-sse41.cpp: pixel: remove sad_x3_4x16 and sad_x4_4x16, no longer HAVE_MMX [65462024832b] 2013-10-30 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm: assembly code for pixel_sad_x3_4x16 and pixel_sad_x4_4x16 [50c2c41ac0ea] 2013-10-30 Santhoshini Sekar * source/Lib/TLibEncoder/NALwrite.cpp, source/Lib/TLibEncoder/NALwrite.h, source/encoder/frameencoder.cpp: rename variable name m_Bitstream to m_bitstream [e2a1dcca4518] * source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: writing hash SEI messages in frameencoder [4c047e5ff69b] 2013-10-30 Dnyaneshwar Gorade * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm: asm: assembly code for pixel_sad_16x12 [40e38dfa5cdd] 2013-10-30 Steve Borho * source/common/vec/pixel-sse41.cpp: pixel: remove sad_8, sad_x3_8, sad_x4_8 intrinsic functions [abf8286f3fa9] 2013-10-30 Min Chen * source/test/ipfilterharness.cpp: testbench: upgrade for check_IPFilter_primitive, don't pass wrong (width, height, stride) to asm [20aa88626c52] 2013-10-29 Dnyaneshwar Gorade * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm: asm: assembly code for pixel_sad_8x32 [c048ef93ea55] * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm: asm: assembly code for pixel_sad_32x64 [d3e510bb67cf] * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm: asm: assembly code for pixel_sad_32x16 [def3d61bc4b0] * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm: asm: assembly code for pixel_sad_32x32 [77aa24f08e76] * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm: asm: assembly code for pixel_sad_32x24 [840a638609b0] * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm: asm: assembly code for pixel_sad_32x8 [1aec8ddad7a3] * source/common/x86/sad-a.asm: asm: created comman asm macro for pixel_sad_32xN functions [f69c0f13c7b0] 2013-10-29 Steve Borho * source/common/vec/pixel-sse41.cpp: pixel: remove sad_16, sad_x3_16 and sad_x4_16 We have assembly coverage for everything but sad_16x12; which I've put on the top of our TODO list. [42ae4dc90005] 2013-10-29 Murugan Vairavel * source/common/ipfilter.cpp, source/encoder/motion.cpp, source/test/intrapredharness.cpp: refactor: Check need for signed/unsigned int16_t [c946d617fd9f] 2013-10-29 Steve Borho * Merge [b02df3ebdf39] 2013-10-29 Gopu Govindaswamy * source/Lib/TLibCommon/TComDataCU.cpp: TComDataCU: Remove initializations in initCU() already initialized in create() currently m_partSizes, m_mvpIdx[0] and m_mvpIdx[1] all three variables initialized using memset in TComDataCU::create() and same initialization in done in TComDataCU::initCU(), removed the memset in initCU() to avoid the duplicate initilization [deac0d819c43] 2013-10-29 Deepthi Devaki * source/Lib/TLibCommon/TComMotionInfo.cpp: cleanups: Remove unnecessary reset. If refIdx is set to NOT_VALID, mv will not be used. Hence resetting MVs to 0 can be safely removed. [50cd62d85ead] * source/Lib/TLibEncoder/TEncSearch.cpp: Cleanups: Remove call to setALLMVField, and set only required members. [6552629b45c5] * source/Lib/TLibCommon/TComMotionInfo.h: Cleanups: MVField - make members public. set and clear methods take many cycles, where most of the time only one index need to be set. By giving public access, caller can set required indexes. [f1a1d4f19db4] 2013-10-29 Sumalatha Polureddy * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/encoder/compress.cpp: no_rdo: implementation of new early exit early exit is done when the RD cost of best mode at depth "n" is less than the average of RD cost of the CU's at depth "n" of previosuly coded CU's(CUAbove, CUAboveRight, CUAoveLeft, CULeft, CUColocated). For HD videos performance improvement of 20 to 27% bitrate increases by 0.75 to 0.02% [0e0d0d2e1d2b] 2013-10-29 Dnyaneshwar Gorade * source/common/x86/pixel.h: asm: declare asm function pointers for sad_32xN partitions [b3208fa4294b] 2013-10-29 Min Chen * source/common/x86/ipfilter8.asm: asm: improvement on chroma_hpp{2,4} by reduce memory operator [48b75fc2e614] 2013-10-29 Dnyaneshwar Gorade * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm: asm: assembly code for pixel_sad_16x4 [fb7b95d11c77] 2013-10-29 Deepthi Devaki * source/encoder/compress.cpp: no-rdo: add no-residue candidate in merge2Nx2N [064f309d4862] 2013-10-29 Steve Borho * source/common/common.cpp, source/common/primitives.h, source/encoder/ratecontrol.cpp: Merge with stable [8b909d315964] * .hgtags: Added tag 0.5 for changeset 69acb3cb777f [9eef2952ea16] 2013-10-28 idxa * source/common/common.cpp, source/encoder/ratecontrol.cpp: rc: improvements for ABR 1. modify rateTolerance from 0.1 to 1.0, in order to allow the final bitrate to fluctuate more(CBR to ABR) 2. ncu in initialization of ratecontrol is set according to 16x16 block size which is same to x264, for the empirical formula in x264 is for 16x16 size. 3. do more modification to make ratecontrol algorithm of x265 more similar to x264 for x264 has been developed for about 10 years and is very mature , it is reasonale to take its method firstly. [69acb3cb777f] [0.5] 2013-10-25 Steve Borho * source/encoder/encoder.cpp: encoder: prevent divide by zero in elapsedVideoTime calculation [6528ab023062] 2013-10-29 Steve Borho * source/common/primitives.h: primitives: fix ordering of LUMA_4x16 LUMA_16x4 to match other AMP partitions This also fixes the testbench to properly represent 16x4 and 4x16 partition primitives [9713ec98fa8a] 2013-10-29 Deepthi Devaki * source/encoder/compress.cpp: no-rdo: add no-residue candidate in merge2Nx2N [358400cb0c67] 2013-10-29 Murugan Vairavel * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TypeDef.h: Cleanups: Replacing Ushort with uint16_t [4c618e33c25f] 2013-10-29 Steve Borho * source/common/primitives.h: primitives: fix ordering of LUMA_4x16 LUMA_16x4 to match other AMP partitions This also fixes the testbench to properly represent 16x4 and 4x16 partition primitives [4db0aec57138] 2013-10-29 Dnyaneshwar Gorade * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm: asm: assembly code for pixel_sad_16x64 [3c0b386fe799] * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm: asm: assembly code for pixel_sad_16x32 [f44cc9f976cc] 2013-10-29 Steve Borho * source/common/vec/vec-primitives.cpp: vec: fix VC9 build with ASM disabled but intrinsics enabled [8846f5cf6d8d] * source/common/threadpool.cpp, source/input/y4m.cpp, source/input/yuv.cpp: use correct _WIN32 build guard [560bd09eb4bb] 2013-10-29 Min Chen * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm, source/common/x86/ipfilter8.h, source/test/ipfilterharness.cpp: asm: interp_8tap_v_sp for ipfilter_sp[FILTER_V_S_P_8] [44c38df44532] 2013-10-28 Min Chen * source/Lib/TLibCommon/TComPrediction.cpp, source/common/ipfilter.cpp, source/common/primitives.h, source/common/vec/ipfilter-sse41.cpp, source/encoder/motion.cpp, source/test/ipfilterharness.cpp: replace pointer to coeff by coeffIdx in ipfilter_sp [f0eea23735a6] * source/encoder/motion.cpp: disable interpolate horizontal merge we need width is multiple of 4 in asm code, the maskmovq is very expensive [a36a2e39f983] * source/common/ipfilter.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm, source/common/x86/ipfilter8.h, source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: asm: interp_8tap_hv_pp_8x8() for Interpolate_HV_8x8 [31dfc1580bf2] 2013-10-28 Yuvaraj Venkatesh * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm: asm code for pixel_sad_x3_16x64 and pixel_sad_x4_16x64 [0666d56aaa42] 2013-10-28 Aarthi Thirumalai * source/common/lowres.cpp, source/common/lowres.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h, source/encoder/slicetype.cpp: rc: implement qp with Aq for each Cu before encoding them. [c3a28172894a] 2013-10-28 Kavitha Sampath * source/encoder/encoder.cpp, source/input/input.h, source/input/y4m.cpp, source/input/y4m.h, source/input/yuv.cpp, source/input/yuv.h, source/output/output.cpp, source/output/output.h, source/output/yuv.cpp, source/output/yuv.h, source/x265.cpp, source/x265.h: refactor: (Input/Output files) - Check need of signed/unsigned int [5e1fb266b39f] 2013-10-28 murugan * source/output/y4m.cpp, source/output/yuv.cpp: refactor: use unsigned int16 types where applicable [4de8551f1f52] 2013-10-28 Kavitha Sampath * source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComBitCounter.h, source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComBitStream.h, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h, source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPicYuvMD5.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.h, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/NALwrite.cpp, source/Lib/TLibEncoder/NALwrite.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/SyntaxElementWriter.cpp, source/Lib/TLibEncoder/SyntaxElementWriter.h, source/Lib/TLibEncoder/TEncAnalyze.h, source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/WeightPredAnalysis.cpp, source/Lib/TLibEncoder/WeightPredAnalysis.h, source/common/common.cpp, source/common/dct.cpp, source/common/lowres.cpp, source/common/lowres.h, source/common/pixel.cpp, source/common/primitives.h, source/common/threading.h, source/common/vec/dct-sse3.cpp, source/common/vec/dct-sse41.cpp, source/common/vec/dct-ssse3.cpp, source/common/vec/intra-sse41.cpp, source/common/vec/pixel-avx2.cpp, source/common/vec/pixel-sse3.cpp, source/common/vec/pixel-sse41.cpp, source/common/vec/pixel16-sse41.cpp, source/compat/getopt/getopt.c, source/compat/getopt/getopt.h, source/encoder/compress.cpp, source/encoder/cturow.cpp, source/encoder/cturow.h, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp: refactor: replace int pointers with int32_t and UInt with uint32_t [a96b8f225c4a] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/WeightPredAnalysis.cpp, source/encoder/compress.cpp, source/encoder/dpb.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp: refactor: replace ternary operator with loop variable and enum with #define [4176ba91f62d] 2013-10-28 Santhoshini Sekar * source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPicYuvMD5.cpp, source/encoder/encoder.cpp, source/encoder/framefilter.cpp, source/encoder/framefilter.h: row wise generation of hash in framefilter [edd33e942d7b] 2013-10-28 Steve Borho * source/input/input.cpp, source/input/input.h, source/x265.cpp: cli: add --y4m option to force Y4M stream parser [fa30212a64f8] 2013-10-28 Gopu Govindaswamy * source/input/y4m.cpp, source/input/y4m.h: input: read y4m input from stdin if filename is passed as "-" [f59393a695ee] * source/input/y4m.cpp: y4m : bug fix for calculating framesize in skipFrames() [7916afc6c9c4] 2013-10-28 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/primitives.h, source/encoder/compress.cpp, source/encoder/motion.cpp, source/encoder/slicetype.cpp, source/test/pixelharness.cpp: primitives: lower case partitionFromSizes() function to follow coding style [ef2428fd32fe] 2013-10-27 Steve Borho * source/common/primitives.cpp, source/common/primitives.h: primitives: micro optimizations of PartitionFromSizes() * use int for w, h * change lookup table to uint8_t * make function inlined [1a65c6df7e70] 2013-10-27 Wenju He * source/Lib/TLibEncoder/TEncSearch.cpp: need not compute chroma in xGetInterPredictionError [7c2ce4d33f62] * source/Lib/TLibEncoder/TEncSearch.cpp: fix variable name, msg to mrg [e1453bc3ae1e] 2013-10-25 Steve Borho * source/input/y4m.cpp, source/input/yuv.cpp: input: do not check for inactive read thread until read queue is empty [ccac3a7d3622] * source/input/yuv.cpp: yuv: set binary mode on stdin on Windows [34573a44f81d] * source/input/y4m.cpp, source/input/yuv.cpp: input: do not use ifstream.good(), use ifstream.ignore() for skipFrames [bc044398a2c1] * source/x265.cpp: cli: improve handling of encoder start failures; no pictures encoded [8606211480ea] * source/encoder/encoder.cpp: encoder: prevent divide by zero in elapsedVideoTime calculation [824ede6074a6] * source/input/y4m.cpp, source/input/yuv.cpp: input: prevent more deadlocks on file read errors [12d6ba61b235] * source/input/yuv.cpp: yuv: fix --skip behavior for stdin [565abe18280a] * source/cmake/version.cmake: cmake: improve .hg_archive parsing Patch submitted by HaaeeD via pull request [7dff7b61898c] * Merge [4d024982658d] * Merge with stable [4cdd80a730ab] * source/x265.cpp: cli: improve handling of unknown input frame count [0c8e2580b410] * source/encoder/encoder.cpp: encoder: calculate encoded video time in floating point [9c26397ec80c] * source/common/ipfilter.cpp: Merged in mcwmurugan/x265 (pull request #5) CleanUps: Replacing Short with int16_t [4ced02a9a5b2] 2013-10-25 Murugan * source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/common/TShortYUV.cpp, source/common/TShortYUV.h, source/common/dct.cpp, source/common/intrapred.cpp, source/common/ipfilter.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/vec/blockcopy-sse3.cpp, source/common/vec/dct- sse3.cpp, source/common/vec/dct-sse41.cpp, source/common/vec/dct- ssse3.cpp, source/common/vec/intra-ssse3.cpp, source/common/vec /ipfilter-sse41.cpp, source/common/vec/ipfilter-ssse3.cpp, source/common/vec/pixel-sse3.cpp, source/common/vec/pixel-sse41.cpp, source/common/x86/pixel.h, source/encoder/motion.cpp, source/encoder/motion.h, source/output/y4m.cpp, source/output/yuv.cpp, source/test/intrapredharness.cpp, source/test/ipfilterharness.cpp, source/test/ipfilterharness.h, source/test/mbdstharness.cpp, source/test/mbdstharness.h, source/test/pixelharness.cpp, source/test/pixelharness.h: CleanUps: Replacing Short with int16_t [2126b735949e] 2013-10-25 Steve Borho * source/Lib/TLibCommon/TComPicYuv.cpp, source/encoder/ratecontrol.cpp: Merge with stable [f645df2eb5bd] * source/input/yuv.cpp: yuv: do not attempt to measure size of stdin [88e0d2dbb8fe] * source/Lib/TLibCommon/TComPicYuv.cpp: TComPicYuv: increase vertical padding to account for TComDataCU::clipMv() logic mvmin is clamped to -(g_maxCUHeight + offset + m_cuPelY) where offset is 8 [9a7c5831ebf8] 2013-10-25 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: rc: Bug fix. use the slice type from the right context in rateControlEnd. [782e2d041d3f] 2013-10-25 Steve Borho * source/input/yuv.cpp: Merge with stable [333c7a8d1f49] * source/input/yuv.cpp: yuv: zero ifs pointer if deleted [3d733e4c52c7] 2013-10-25 Nabajit Deka * source/common/ipfilter.cpp, source/common/x86/ipfilter8.h: Function declarations and function pointers set up for the vertical luma filter functions. [2adbf0c4c4c0] 2013-10-25 Gopu Govindaswamy * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: tenccu : remove unused functions [74f7e6d96d2d] * source/Lib/TLibCommon/NAL.h: nal: remove unused helper functions [85c064318253] * source/input/y4m.cpp, source/input/yuv.cpp: input: initialize the input buffer (buf) pointer [ba7d3d79c5a3] * source/input/yuv.cpp, source/input/yuv.h: input: read yuv input from stdin if filename is passed as "-" [9223c4aff1e0] 2013-10-25 Nabajit Deka * source/common/primitives.h, source/test/ipfilterharness.cpp: Test bench code for vertical luma filter. [4ca4da7bdd36] 2013-10-25 Steve Borho * source/test/pixelharness.cpp: testbench: differentiate the two weight functions [159876e25c7a] 2013-10-25 Yuvaraj Venkatesh * source/common/vec/pixel-sse41.cpp: pixel: modified weightUnidirPixel to match the changes done in c code [298b17e548d4] 2013-10-25 Steve Borho * source/encoder/reference.cpp: reference: initialize weight buffer pointer [4125c74ff21d] 2013-10-25 Min Chen * source/common/x86/ipfilter8.asm: more general on ipfilter macro FILTER_H8_W8 [6d6fe9d208d1] 2013-10-25 Steve Borho * source/CMakeLists.txt, source/compat/getopt/LGPL.txt, source/compat/getopt/getopt.c, source/compat/getopt/getopt.h, source/compat/msvc/LGPL.txt, source/compat/msvc/getopt.c, source/compat/msvc/getopt.h: cmake: segregate the getopt files into their own compat/ folder [84aea900ea0d] * Merge with stable [7145f423fd03] * source/CMakeLists.txt: cmake: add compat/msvc to include path if using our getopt.h [7cc9e1566162] * source/input/y4m.cpp, source/input/yuv.cpp, source/x265.cpp: input: improve handling of frame count estimation failures [88f69939bc17] 2013-10-24 Steve Borho * source/input/input.h, source/input/y4m.cpp, source/input/y4m.h, source/input/yuv.cpp, source/input/yuv.h, source/x265.cpp: input: add explicit startReader() method to prevent file handle use collisions [6e4ef45441b7] * source/encoder/encoder.cpp: encoder: fix per-frame logging without CSV file [260bff6100f2] * source/input/y4m.cpp: y4m: directly use member variables while parsing header [0174ac7bc2b1] * source/output/yuv.cpp: yuv: fix VC9 compile warning - possible loss of precision [34c9951b15fa] * source/common/common.cpp: Merge with stable [f886f2ed1fcd] * source/CMakeLists.txt: cmake: use system native stdint.h and getopt if they are found [1ab80557656a] * source/common/vec/pixel-sse41.cpp: pixel: sse_sp[LUMA_12x16] fails tests on clang, disable it [17195e65e91b] * source/input/y4m.cpp, source/input/yuv.cpp: input: add missing carriage returns from error log messages [63ca0173f8cb] * source/input/y4m.cpp: y4m: disable file reader thread on frame header errors Prevents deadlocks from malformed Y4M files [776c2ec26a5f] * source/common/common.cpp: common: hoist x265_mdate above using namespace x265 I do not understand why, but this fixes cli linkage on Mac [4ac43db2d640] * source/encoder/reference.cpp, source/encoder/reference.h: reference: more robust initialization, remove m_startPad member variable m_startPad was only used in the init() function so it could be an auto-var [015839081c84] * source/Lib/TLibCommon/TComPicYuv.cpp, source/encoder/reference.cpp: Merge with stable [201468d75f33] * source/Lib/TLibEncoder/WeightPredAnalysis.cpp: weightp: use source reference frames for weight analysis This fixes weightp when used in combination with frame parallelism, where the reference's reconstructed picture is most likely not yet avaialable. Some measurements using the sintel 480p clip no-weightp -F1: 408.47s (3.07 fps), 144.63 kb/s, Global PSNR: 48.956 no-weightp -F3: 361.14s (3.47 fps), 144.01 kb/s, Global PSNR: 48.746 Prior to this change (recon refs used for weightp analysis): weightp -F1: 402.84s (3.11 fps), 131.09 kb/s, Global PSNR: 49.908 x265 [info]: 278 of 687 (40.47%) P frames weighted weightp -F3: 355.88s (3.52 fps), 132.09 kb/s, Global PSNR: 49.768 x265 [info]: 242 of 687 (35.23%) P frames weighted After this change (source refs used for weightp analysis): weightp -F1: 404.83s (3.10 fps), 131.82 kb/s, Global PSNR: 49.414 x265 [info]: 325 of 687 (47.31%) P frames weighted weightp -F3: 348.32s (3.60 fps), 131.01 kb/s, Global PSNR: 49.957 x265 [info]: 325 of 687 (47.31%) P frames weighted Because of the lower bitrate, enabling weightp actually makes this clip encode faster. No idea why -F1 has so much less PSNR than -F3; needs investigation. [a44b48b74d6f] * source/Lib/TLibCommon/TComPicYuv.cpp, source/common/reference.cpp: TComPicYuv: fix padding of picture buffers Ensure row starts are at a multiple of 32, this causes strides to be multiple of 64. Before this patch, strides we capable of being multiples of 8, causing alignment exceptions for some videos. [0315cf14deda] * source/Lib/TLibCommon/TComPicYuv.cpp: TComPicYuv: remove unused include [a54a9fa53063] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/frameencoder.cpp, source/encoder/slicetype.cpp: Merge with stable [a349dec61168] 2013-10-24 Min Chen * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: improvement xGetRateLast by remove reduce double operator [4bb4dbe427ec] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSbac.cpp: improvement getSigCoeffGroupCtxInc by merge pointer calculate [c986a9fc7f8f] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSbac.cpp: improvement TComTrQuant::calcPatternSigCtx 1. replace width/height by size, since there are only NxN 2. use mask operatior to avoid condition and branch [84bf706ace32] * source/Lib/TLibCommon/TComTrQuant.cpp: improvement TComTrQuant::getSigCtxInc by lookup table for 'cnt' [25d372f13fb6] 2013-10-24 Deepthi Devaki * source/encoder/slicetype.cpp: lookahead: fix reference initialization for intra prediction buffer size of pAbove/pLeft is height+1+width = 2*cusize+1 [1aaa596bb20b] 2013-10-24 Gopu Govindaswamy * source/input/y4m.cpp: input: If Any error in reading frame from file, deactivate the thread and exit encoder gracefully [b69e4433cc97] * source/output/y4m.cpp, source/output/yuv.cpp: output: use 64bit file offsets to prevent overflow with 4k video [f94f18950283] 2013-10-24 Steve Borho * source/encoder/encoder.cpp: encoder: fix bitrate statistic (accBits is a bit count, not byte count) [98bf7e4154f5] 2013-10-24 Shazeb Nawaz Khan * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/x265.h: Displaying the number of weighted P frames used in console log [e8992549a970] 2013-10-24 Min Chen * source/Lib/TLibEncoder/TEncSbac.h: fix commit typo [eb694f6150b1] 2013-10-24 Steve Borho * source/common/x86/asm-primitives.cpp, source/common/x86/pixel.h, source/common/x86/sad-a.asm: asm: instantiate some sad_x3 and sad_x4 functions for HEVC partitions [3b8fa23f68ec] 2013-10-23 Steve Borho * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h: TComSlice: remove unused copySliceInfo [e8f05b1c543a] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h: TComSlice: remove unused m_bEqualRef and helper functions [d31740e6905d] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/encoder/dpb.cpp: TComSlice: remove unused TComRefPicListModification [855151a30078] * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/common/CMakeLists.txt, source/common/lowres.h, source/common/mv.h, source/common/reference.cpp, source/common/reference.h, source/encoder/CMakeLists.txt, source/encoder/dpb.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/reference.cpp, source/encoder/reference.h: reference: cache MotionReference instances in each FrameEncoder This prevents these structures from being allocated over and over for each frame The source files were moved into the encoder folder where they've belonged but couldn't live in the past because TComPicYuv needed to know their contents. [95384f8f7c22] 2013-10-24 Steve Borho * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/common/common.cpp, source/common/common.h, source/common/primitives.cpp: Merge with stable [6ea79d6f7e17] 2013-10-23 Steve Borho * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibEncoder/TEncCfg.h, source/common/common.cpp, source/common/common.h, source/common/primitives.cpp, source/dllmain.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h, source/input/input.h, source/input/y4m.cpp, source/input/y4m.h, source/input/yuv.cpp, source/input/yuv.h, source/output/output.h, source/output/y4m.cpp, source/output/y4m.h, source/output/yuv.cpp, source/output/yuv.h, source/x265.cpp, source/x265.h: api: drop _t suffix from public data types, for POSIX compatibility x265_t was changed to x265_encoder, since x265 is too short and would collide with our namespace. [b07c29e930fe] * source/x265.h: api: white-space cleanups in x265.h [7beeab25a8fb] * source/CMakeLists.txt, source/Lib/TLibCommon/CommonDef.h, source/common/common.cpp, source/dllmain.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h, source/x265.cpp, source/x265.def.in, source/x265.h: api: large reorg of logging and statistics * move all CSV logging into the encoder so API users can take advantage of it * remove hacky global PSNR return value from x265_encoder_close * add time and bitrate values to x265_stats_t * remove some dead HM code * use x265_log in the CLI [3e53b004a8f8] 2013-10-23 Kavitha Sampath * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/common/common.cpp, source/common/common.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/x265.cpp, source/x265.h: CSV log: Enable frame-by-frame CSV logging [0c8dbda94696] 2013-10-22 Steve Borho * source/CMakeLists.txt, source/x265.pc.in: cmake: generate and install pkgconfig file This installs the x265.pc into /usr/local/lib/pkgconfig/ with these contents: prefix=/usr/local exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Name: x265 Description: H.265/HEVC video encoder Version: 0.4.1 Libs: -L${libdir} -lx265 Libs.private: -lstdc++ -lm -lc -lpthread -lrt Cflags: -I${includedir} The pkg-config file is only generated and installed if CMake finds pkg-config Q1: it seems unwise to hard-code "/lib" in a few places, what if lib64 is used or something else? Q2: Should x265.pc have a version number like x265-0.4.1.pc? [b2fcb1bf7b75] 2013-10-23 Min Chen * source/Lib/TLibCommon/ContextModel.cpp, source/Lib/TLibCommon/ContextModel.h, source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.h, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/common/CMakeLists.txt, source/common/primitives.cpp: cabac: cleanup and convert class ContextModel to struct [0cb0692d6c69] * source/Lib/TLibCommon/ContextModel.cpp, source/Lib/TLibCommon/ContextModel.h: cabac: move static table to global space [11a4ca818c57] * source/Lib/TLibCommon/ContextModel.h, source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp: cabac: imprvement by merge context status update path [b53d40e1c7cf] 2013-10-23 Steve Borho * source/Lib/TLibCommon/TComRom.h, source/common/CMakeLists.txt, source/encoder/slicetype.cpp: Merge with stable [8ebddbb7acd3] * source/common/CMakeLists.txt, source/common/vec/blockcopy-avx2.cpp, source/common/vec/vec-primitives.cpp: remove blockcopy-avx2.cpp - not worth the trouble to convert and maintain [020eb714b9cc] 2013-10-23 Aarthi Thirumalai * source/encoder/slicetype.cpp: slicetype: bug fix for estimated frame costs By the time rate control queries the estimated frame cost, lastNonB might have moved. Use the slice's actual L0 reference. [6a7383b8cbf0] 2013-10-23 Steve Borho * source/common/vec/intra-ssse3.cpp: intra: move 8x8 and 16x16 into their final order None of the 8bpp intra primitives use vector clases any more. blockcopy-avx2 is the last 8bpp vector primitive. [465e48ca0d15] * source/common/vec/intra-ssse3.cpp: intra: remove unused macros [d167d149b59e] 2013-10-23 Min Chen * source/common/vec/intra-ssse3.cpp: Fix memory write beyond bound bug in intraPredAng8x8() [30be14fa79d6] 2013-10-23 Jan Ekström * source/Lib/TLibCommon/TComRom.h, source/common/CMakeLists.txt: Fix compilation with Visual Studio 2013 The header is needed for std::min and friends, and the CMakeLists.txt modification makes the version check match what is used in the source code. Unfortunately cmake does not seem to contain a GREATER_OR_EQUAL macro, so NOT(LESS) has to be used. [4922bf148182] 2013-10-23 Yuvaraj Venkatesh * source/common/vec/intra-ssse3.cpp: intra: converted intraPredAng16x16 vector class functin to intrinsic [521ecea592fa] 2013-10-23 Dnyaneshwar Gorade * source/common/vec/intra-ssse3.cpp: intra-ssse3: intra angular 8x8 vector to intrinsic [aaee6da4f02c] 2013-10-23 Steve Borho * source/common/vec/pixel-avx2.cpp: pixel: remove vector class include from pixel-avx2.cpp [51a48f878f39] 2013-10-23 Yuvaraj Venkatesh * source/common/vec/pixel-avx2.cpp: pixel: converted sad_avx2_x4_64 vector class to intrinsic [435665d9233e] * source/common/vec/pixel-avx2.cpp: pixel: converted sad_avx2_x4_32 vector class to intrinsic [2d4ee19a40b4] 2013-10-22 Aarthi Thirumalai * source/encoder/slicetype.cpp: slicetype: calculate weighted frame costs for Aq [6d96d64c4e9a] 2013-10-22 Yuvaraj Venkatesh * source/common/vec/pixel-avx2.cpp: pixel: converted some sad_avx2 vector class functions to intrinsic [0bb1d7221938] 2013-10-22 Steve Borho * source/common/CMakeLists.txt, source/common/vec/intra-sse3.cpp, source/common/vec/intra-ssse3.cpp, source/common/vec/vec- primitives.cpp: intra: rename intra-sse3.cpp to intra-ssse3.cpp [20bf892451db] * source/common/vec/intra-sse3.cpp: intra: move 32x32 angular prediction function into non-vector portion [41aa6dd645ed] 2013-10-22 Dnyaneshwar Gorade * source/common/vec/intra-sse3.cpp: intra-sse3.cpp: replace intraPredAng32x32 vector class function with intrinsic [9827c0129014] * source/common/vec/intra-sse3.cpp: intra-sse3.cpp: replace intraPredAng8x8 vector class function with intrinsic [de32b76c391d] 2013-10-22 Steve Borho * source/Lib/TLibEncoder/TEncBinCoder.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCavlc.h, source/common/common.cpp, source/encoder/ratecontrol.cpp: Merge with stable [88de242f7530] 2013-10-22 Min Chen * source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp: cabac: improvement performance by use negative cabac counter [88b3831ab799] * source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCavlc.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/encoder/CMakeLists.txt, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: cleanup: merge header operator from TEncCavlc into class TEncSbac [4ec21109440b] * source/Lib/TLibEncoder/TEncBinCoder.h, source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.h, source/Lib/TLibEncoder/TEncSbac.h, source/encoder/CMakeLists.txt, source/encoder/frameencoder.cpp: cleanup:remove unused base class TEncBinIf [b6427fa01195] * source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp: cleanup: remove unused getNumberOfWrittenBits() from TEncBinCABAC::getNumWrittenBits() [af1695e1808c] * source/common/x86/ipfilter8.asm: remove reduce register copy in FILTER_H4_w2_2 and FILTER_H4_w4_2 (update for linux build error) [f1045bead3b5] 2013-10-22 Steve Borho * source/encoder/ratecontrol.cpp: ratecontrol: consistent comment style [27265ca6dd90] 2013-10-22 Gopu Govindaswamy * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/common/common.cpp, source/encoder/encoder.cpp: encoder: auto-padding to min CU size and set conformance window [27a149b2062c] 2013-10-22 Shazeb Nawaz Khan * source/common/pixel.cpp: Eliminating decreament in pointer index in weightp primitives could have been a source of possible crash [49849de33234] 2013-10-22 Steve Borho * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: ratecontrol: use cfg->param.frameNumThreads directly; nit cleanups [cd65a3311df5] 2013-10-22 Aarthi Thirumalai * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: rc: Bug fixes for ABR. remove uninitialized local variables and use values from cfg.param.rc as required. [e2dc3ec294a8] 2013-10-22 Deepthi Nandakumar * source/Lib/TLibEncoder/TEncCu.cpp: TEncCu: nits [f1bdacac6497] 2013-10-22 Aarthi Thirumalai * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: rc: Bug fixes for ABR. remove uninitialized local variables and use values from cfg.param.rc as required. [f8ab02273bdb] 2013-10-21 Steve Borho * source/common/common.cpp: Merge with stable [9245a882ccee] * source/common/common.cpp: common: add --ref to the tool list so it is visible in the log [40eb6be35caa] * source/common/lowres.cpp: lowres: initialize satdCost to -1 [606cdb8d05ef] 2013-10-21 Aarthi Thirumalai * source/common/lowres.cpp, source/common/lowres.h, source/encoder/slicetype.cpp, source/encoder/slicetype.h: lowres: Add states to store weighted Aq costs per frame. [ee5e9caa0ff9] * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/common/common.cpp, source/common/common.h: add methods to convert qpAqoffsets to qscale [afa3a6660764] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/common/lowres.cpp, source/common/lowres.h, source/encoder/ratecontrol.cpp: lowres: move m_qpAqOffset from TComPic to Lowres [588c8fcc1df6] 2013-10-21 Steve Borho * doc/README_data-structure.ppt, doc/astyle/AStyle.exe, doc/astyle /apply-to-all-source.py, doc/astyle/astyle-config.txt, doc/astyle /drag-astyle.bat, doc/intra/T16.TXT, doc/intra/T32.TXT, doc/intra/T4.TXT, doc/intra/T8.TXT, doc/software-manual.pdf, doc/uncrustify/uncrustify.bat, doc/uncrustify/uncrustify.exe, source/Lib/TLibCommon/AccessUnit.h, source/Lib/TLibCommon/ContextModel3DBuffer.cpp, source/Lib/TLibCommon/ContextModel3DBuffer.h, source/Lib/TLibCommon/TComList.h, source/Lib/TLibEncoder/TEncBinCoderCABACCounter.cpp, source/Lib/TLibEncoder/TEncBinCoderCABACCounter.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/VectorClass/instrset_detect.cpp, source/cmake/mergestaticlibs.cmake, source/common/vec/CMakeLists.txt, source/common/vec/avx.cpp, source/common/vec/avx2.cpp, source/common/vec/blockcopy-avx.cpp, source/common/vec/blockcopy-sse41.cpp, source/common/vec/blockcopy- ssse3.cpp, source/common/vec/blockcopy-xop.cpp, source/common/vec/blockcopy.inc, source/common/vec/dct-avx.cpp, source/common/vec/dct-avx2.cpp, source/common/vec/dct-xop.cpp, source/common/vec/dct.inc, source/common/vec/intra-avx.cpp, source/common/vec/intra-avx2.cpp, source/common/vec/intra-ssse3.cpp, source/common/vec/intra-xop.cpp, source/common/vec/intrapred.inc, source/common/vec/ipfilter-avx.cpp, source/common/vec/ipfilter- avx2.cpp, source/common/vec/ipfilter-sse3.cpp, source/common/vec /ipfilter-xop.cpp, source/common/vec/ipfilter.inc, source/common/vec/ipfilter16.inc, source/common/vec/ipfilter8.inc, source/common/vec/pixel-avx.cpp, source/common/vec/pixel-ssse3.cpp, source/common/vec/pixel-xop.cpp, source/common/vec/pixel.inc, source/common/vec/pixel16.inc, source/common/vec/pixel8.inc, source/common/vec/sse.inc, source/common/vec/sse3.cpp, source/common/vec/sse41.cpp, source/common/vec/ssse3.cpp, source/common/vec/utils.h, source/common/vec/vecprimitives.inc, source/common/vec/xop.cpp, source/common/x86/CMakeLists.txt, source/test/unittest.cpp, source/test/unittest.h, source/x265opts.h: Merge with default (feature freeze for 0.5) [f2fcda06d76a] 2013-10-21 Min Chen * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSearch.cpp: merge multiple encodeBinEP to encodeBinsEP [6817f34b0572] 2013-10-21 Steve Borho * source/encoder/compress.cpp: compress: remove a pile of unnecessary intra estimation code [dd26e0a9c3df] * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp: compress: remove pointer reference from xComputeCostIntraInInter and simplify [c1ee22ece6f5] * source/encoder/compress.cpp: compress: replace magic numbers with proper enums [505b1c488b39] 2013-10-21 Dnyaneshwar Gorade * source/common/vec/intra-sse3.cpp: intra-sse3.cpp: replace predIntraAng8_32 vector class function with intrinsic [e24a4bb6de84] 2013-10-21 Sumalatha Polureddy * source/encoder/compress.cpp: no-rdo: compute Luma only in MC for cost estimation for mode decision luma alone is computed in MC since luma cost alone is used for mode decision. After best mode is selected, before encoding, chroma MC is done [16a5fc504005] 2013-10-21 Shazeb Nawaz Khan * source/common/pixel.cpp, source/common/vec/pixel-sse41.cpp: Adapting weightp primitive for pixel input By simulating shift & round as in convertPixelToShort primitive. The SSE4.1 intrinsic primitives are disabled because they no longer match [e719f0de8d9c] 2013-10-21 Steve Borho * source/common/ipfilter.cpp, source/common/vec/ipfilter-sse41.cpp, source/common/vec/ipfilter-ssse3.cpp: ipfilter: cleanup C and intrinsic functions [90dde3b44ada] 2013-10-21 Praveen Tiwari * source/common/ipfilter.cpp: added C code for chroma filter_vpp function [2e0076f3f694] * source/common/x86/ipfilter8.h: created function declerations for chroma_vpp [9477665dd935] * source/test/ipfilterharness.cpp: ipfilterharness.cpp, modified chroma filter_hpp unit test code to support filter_vpp [60ade24dbf9b] * source/test/ipfilterharness.cpp: ipfilterharness.cpp, added measure speed code for ipfilter_vpp function [091fb24735da] * source/test/ipfilterharness.cpp: ipfilterharness.cpp, added test correctness code for ipfilter_vpp function [e42826e06e06] * source/common/primitives.h: added array of function pointers for chroma ipfilter_vpp function [e3b4b6b778a5] 2013-10-21 Gopu Govindaswamy * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCfg.h, source/encoder/encoder.cpp: tcomslice : removed set and get window*offset() methods [ee5ef0f3fd3d] * source/Lib/TLibEncoder/TEncCfg.h, source/encoder/encoder.cpp, source/encoder/framefilter.cpp: tenccfg : removed unused setpad() and getpad() methods [caa8db6b7986] 2013-10-21 Steve Borho * source/x265.cpp: cli: reintroduce -w short option for weightp [c4cc469e5286] 2013-10-21 Deepthi Devaki * source/encoder/slicetype.cpp: Lookahead: wavefront bugfix. conditionally assign estimated cost to avoid overwriting intra cost. [92d13feba8fe] 2013-10-21 =?utf-8?b?UmFmYcOrbCBDYXJyw6kgPGZ1bm1hbkB2aWRlb2xhbi5vcmc+?= <=?utf-8?b?UmFmYcOrbCBDYXJyw6kgPGZ1bm1hbkB2aWRlb2xhbi5vcmc+?=> * source/encoder/ratecontrol.cpp: [x265] ratecontrol: initialize frameThreads Fix a floating point exceptio --- source/encoder/ratecontrol.cpp | 1 + 1 file changed, 1 insertion(+) [3fe9a9d0a0b6] 2013-10-21 Deepthi Nandakumar * source/common/lowres.cpp: lowres: right and bottom margins are being extended twice? [f987c24c7bf2] 2013-10-21 Sumalatha Polureddy * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.cpp: bug fix for passing bLuma and bChroma as separate arguments if there are default arguments other than bLuma and bChroma, those default values (bRound, refIdx) are not passed during the function call(addWeightBi(), xWeightedPredictionUni()) [b2aa2aad2c66] 2013-10-21 Deepthi Nandakumar * source/common/vec/intra-sse3.cpp: intra-sse: Fix for HIGH_BIT_DEPTH build error [8fc308449916] 2013-10-21 Min Chen * source/Lib/TLibCommon/ContextModel3DBuffer.cpp, source/Lib/TLibCommon/ContextModel3DBuffer.h, source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/common/CMakeLists.txt: cabac: cleanup array of cabac context [15588437fc24] 2013-10-19 Min Chen * source/common/x86/ipfilter8.asm: remove reduce register copy in FILTER_H4_w2_2 and FILTER_H4_w4_2 [fabb25ae4db4] 2013-10-20 Steve Borho * source/common/vec/intra-sse3.cpp, source/common/vec/intra-sse41.cpp: intra: move intra_pred_dc to intra-sse41.cpp; it uses SSSE3 instructions We don't have an intra-ssse3.cpp and it seems a waste to create one just for this one function. [7ec69cb067fd] 2013-10-18 Steve Borho * source/common/wavefront.h, source/encoder/encoder.cpp, source/encoder/slicetype.cpp, source/encoder/slicetype.h: Lookahead: implement wavefront parallel processing [c96f97cf3914] 2013-10-18 Deepthi Devaki * source/common/wavefront.cpp, source/common/wavefront.h: WaveFront: add new function to enable all rows [dd45e55248c8] 2013-10-18 Steve Borho * source/test/ipfilterharness.cpp: ipfilterharness: simplify filter names [4066e6e725ee] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: add x265_emms() after use of pixelavg_pp and satd primitives [1fa93e1f4caa] 2013-10-18 Praveen Tiwari * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm code for luma filter functions [0d146f05d561] * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: added 24x32 partion size asm code to chroma function [a301f749b0bc] * source/common/x86/asm-primitives.cpp, source/test/ipfilterharness.cpp: asm: corrected luma enum variable, testbench fix [8b507771e6b0] * source/common/ipfilter.cpp: ipfilter.cpp, added code to support luma coefficients too [4bcfc0e23935] 2013-10-18 Steve Borho * source/common/vec/intra-sse3.cpp: intra: isolate last remaining vector class functions (angular intra 8, 16, 32) [8de380c7bd41] * source/common/vec/intra-sse3.cpp: intra: sane function names and typedefs [1959dbe1b643] * source/common/vec/intra-sse3.cpp: intra: nits [6a453beeea88] * source/common/vec/intra-sse3.cpp: intra: remove SSE3 planar intrinsic functions; they are redundant [edf6eb8da4ca] 2013-10-18 Yuvaraj Venkatesh * source/common/vec/intra-sse3.cpp: intra: replace predDCFiltering vector class function with intrinsic [140f90417702] * source/common/vec/intra-sse3.cpp: intra: replace intra_pred_dc vector class function with intrinsic [d24283fe5e31] 2013-10-18 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: rc : removed warning , moved strength to acEnergyCu [089b29b4da2a] 2013-10-18 Steve Borho * source/common/x86/asm-primitives.cpp: asm: disable remaining pixelavg primitives, they fail against our C ref [904ff6d6e5d9] * source/test/pixelharness.cpp: pixelharness: fix iteration through partition enums [7e95be5f70bc] 2013-10-18 Dnyaneshwar Gorade * source/test/pixelharness.cpp, source/test/pixelharness.h: added pixelavg_pp function to testbench [fdd1262059ad] * source/common/vec/blockcopy-sse3.cpp: blockcopy-sse3.cpp: removed unnecessary variable. [9ff06eb3bc4d] 2013-10-18 Steve Borho * source/common/CMakeLists.txt: cmake: msvc yasm dependency fix [357a6d0c305d] 2013-10-18 Dnyaneshwar Gorade * source/test/pixelharness.cpp, source/test/pixelharness.h: added cvt32to16_shr_sse2 function to testbench. Speed up measured is almost 14x. [f3523973eafb] * source/common/vec/blockcopy-sse3.cpp: blockcopy-sse3.cpp: removed warning: overflow in implicit constant conversion. [48afd41e0753] * source/common/vec/intra-sse3.cpp: intra-sse3.cpp: replace xPredIntraAng4x4 vector class function with intrinsic. [c1e53b796ef4] 2013-10-18 Steve Borho * source/common/vec/intra-sse3.cpp: intra: remove unused variable [d6d7187c5f4e] * source/common/x86/asm-primitives.cpp: asm: fix 32bit build following partition enum carnage [27dfc522397e] 2013-10-17 Min Chen * source/common/CMakeLists.txt, source/common/vec/pixel-sse3.cpp, source/common/x86/asm-primitives.cpp, source/common/x86/pixel- util.asm, source/common/x86/pixel.h: asm: add cvt32to16_shr_sse2, remove intrinsic primitive [84857e7ba3e1] 2013-10-17 Steve Borho * source/common/common.h: common: force float and double arguments to logf() and log(), respectively Fixes warnings on some MSVC versions [d61e2ff59c29] * source/common/vec/intra-sse3.cpp: intra: fix GCC warning about potentially uninitialized sum variable [61abe115acfc] * source/common/vec/intra-sse3.cpp, source/test/intrapredharness.cpp: intra: segregate 8bpp from 16bpp functions, drop 16bpp angular, drop 64x64 The HIGH_BIT_DEPTH angular function was just a copy of the C reference, we do not need 64x64 blocks any more [5ab2da8320f5] * source/common/vec/intra-sse3.cpp: intra: remove unused argument to predDCFiltering(), remove static There's no need to declare the function static, it is within an anonymous namespace [d05cf1a4d3a5] * source/common/vec/pixel-avx2.cpp, source/common/vec/pixel16-sse41.cpp, source/test/testbench.cpp, source/test/testharness.h: pixel: fix avx2, 16bpp, and testbench following luma enum reorg [39ceb9570c5d] 2013-10-17 Praveen Tiwari * source/test/ipfilterharness.cpp: removed unnecessary calculation from chroma REPORT_SPEEDUP function [b42f1963229b] * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.h: asm: fundef creation and function pointer table setup for luma asm primitives [165d27a37689] * source/common/ipfilter.cpp: ipfilter: setup luma function pointers [2ecc6883d465] * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: unit test code for luma filter [2b312edc7d7d] 2013-10-17 Steve Borho * source/common/primitives.h: primitives: define luma_hpp block interpolation function pointers [8f0f4bb9825e] * source/common/CMakeLists.txt, source/common/ipfilter.cpp, source/common/pixel.cpp, source/common/primitives.cpp, source/common/primitives.h, source/common/vec/pixel-sse41.cpp, source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.h, source/common/x86/mc.h, source/common/x86/pixel-a.asm, source/common/x86/pixel.h, source/encoder/framefilter.cpp, source/encoder/motion.cpp, source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp, source/test/ipfilterharness.cpp, source/test/pixelharness.cpp, source/test/testharness.h: primitives: cleanup luma partition enums and primitive initialization Don't define any enums for partitions which are not used by HEVC. Line up chroma enums to match luma enums. Stop instantiating C primitives that are never used. Shorten up the partition enum names. Prune unused SSD assembly routines, move ASM funcdefs into headers [2eb3f19bb34a] 2013-10-17 Yuvaraj Venkatesh * source/common/vec/pixel16-sse41.cpp: pixel16: converted sad_4 from vector class to intrinsic [f5cdcb7cdaca] 2013-10-17 Aarthi Thirumalai * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: rc: implement Adaptive Quantization. added functions to compute AC Energy per CU for all planes, calculate qpAqOffset for each CU [c49db12611a2] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/encoder/encoder.cpp: TComPic: add m_qpAqOffset to store qp offsets per CU when Aq is enabled [e2333fe80c56] 2013-10-17 Steve Borho * source/common/CMakeLists.txt: cmake: fix assembly dependency path [a09583956501] 2013-10-17 Gopu Govindaswamy * source/common/common.cpp, source/encoder/encoder.cpp, source/x265.cpp, source/x265.h: cli: rename bRDLevel to rdLevel [ffb8df2f3778] * source/common/common.cpp, source/common/common.h: common : Added new function x265_param2string [09bb631e4253] 2013-10-17 Min Chen * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/vec/pixel-sse3.cpp: improvement cvt32to16_shr by merge width and height loop [f6226cef13f1] 2013-10-17 Yuvaraj Venkatesh * source/common/vec/pixel-sse3.cpp: pixel: fix the hash mismatch due to convert32to16_shr [a31b03ff2cff] 2013-10-17 Min Chen * source/common/x86/pixel-a.asm: x265_pixel_ssd_4x4_ssse3 miss EMMS [2a3af4fe8e5c] 2013-10-17 Praveen Tiwari * source/test/ipfilterharness.cpp: removed unnecessary calculation form rand_srcStride [dfae391107c3] * source/test/ipfilterharness.cpp: added genration of random stride in chroma unit test code [fc9dbd798ac3] * source/common/x86/ipfilter8.asm: fixed output mismatch problem with chroma 2xN block [b3852d6908a5] 2013-10-17 Steve Borho * source/common/vec/intra-sse3.cpp: intra: remove dead tables, fix comment typos, and other white-space issues [2fbeab18f182] * source/encoder/slicetype.cpp: slicetype: fix pre-calculation of slice cost for ABR [ce1116e9def7] * source/common/vec/intra-sse3.cpp: intra: add parens to macros to fix auto-alignment [d05787e07b21] 2013-10-16 Steve Borho * doc/uncrustify/codingstyle.cfg, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComTrQuant.cpp: uncrustify: another brace-style tweak [ebec58e22380] * source/Lib/TLibCommon/ContextModel.h, source/Lib/TLibCommon/ContextModel3DBuffer.h, source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibCommon/TComBitCounter.h, source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPicYuvMD5.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibEncoder/NALwrite.cpp, source/Lib/TLibEncoder/NALwrite.h, source/Lib/TLibEncoder/SyntaxElementWriter.cpp, source/Lib/TLibEncoder/TEncAnalyze.h, source/Lib/TLibEncoder/TEncBinCoderCABAC.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/TShortYUV.cpp, source/common/common.cpp, source/common/common.h, source/common/cpu.h, source/common/ipfilter.cpp, source/common/lowres.cpp, source/common/lowres.h, source/common/piclist.cpp, source/common/piclist.h, source/common/pixel.cpp, source/common/primitives.cpp, source/common/reference.cpp, source/common/threading.cpp, source/common/threading.h, source/common/vec/blockcopy-avx2.cpp, source/common/vec/blockcopy-sse3.cpp, source/common/vec/dct- sse3.cpp, source/common/vec/dct-sse41.cpp, source/common/vec/intra- sse3.cpp, source/common/vec/intra-sse41.cpp, source/common/vec /ipfilter-sse41.cpp, source/common/vec/ipfilter-ssse3.cpp, source/common/vec/pixel-avx2.cpp, source/common/vec/pixel-sse3.cpp, source/common/vec/pixel-sse41.cpp, source/common/vec/pixel- ssse3.cpp, source/common/vec/pixel16-sse41.cpp, source/common/vec /vec-primitives.cpp, source/common/x86/asm-primitives.cpp, source/common/x86/pixel.h, source/dllmain.cpp, source/encoder/compress.cpp, source/encoder/cturow.h, source/encoder/dpb.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/encoder/motion.cpp, source/encoder/motion.h, source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp, source/input/y4m.cpp, source/input/y4m.h, source/input/yuv.cpp, source/input/yuv.h, source/test/intrapredharness.cpp, source/test/ipfilterharness.cpp, source/test/pixelharness.cpp, source/test/pixelharness.h, source/test/testbench.cpp, source/test/testharness.h, source/x265.cpp, source/x265.h: uncrustify entire source tree [1d6b3626f1b3] * doc/uncrustify/apply-to-all-source.py: uncrustify: allow uncrustify to process .cpp and .h in common/x86 [03be69eab3db] * doc/uncrustify/codingstyle.cfg: uncrustify: do not remove whitespace in an empty brace section {} (just ignore it) [6405dca03059] 2013-10-14 Steve Borho * source/CMakeLists.txt, source/compat/msvc/LGPL.txt, source/compat/msvc/getopt.c, source/compat/msvc/getopt.h: getopt: grab an unambiguously LGPL version of getopt Found at: https://github.com/Tietew/mediawiki- xml2sql/tree/master/getopt The only change made was to move getopt_long() into getopt.c from getopt1.c # HG changeset patch # User Steve Borho # Date 1381776922 18000 # Mon Oct 14 13:55:22 2013 -0500 # Node ID b6cca1b1a9b700a8ffc316f3186dbf10bc1149cc # Parent abae6903e0af0d9940bb734ba34dff6928d72e61 getopt: grab an unambiguously LGPL version of getopt Found at: https://github.com/Tietew/mediawiki- xml2sql/tree/master/getopt The only change made was to move getopt_long() into getopt.c from getopt1.c [60a105fed8c8] 2013-10-16 Steve Borho * source/common/vec/pixel-sse3.cpp: pixel: disable intrinsic cvt32to16_shr; it is causing hash mismatches [258394d8ab91] * source/common/ipfilter.cpp: ipfilter: gcc preprocessor does not allow ## use for non-symbols The ## in this case was totally unnecessary [63a63e668fb7] * source/x265.cpp: cli: add missing --cpuid handler [af92ca11aa13] * source/test/ipfilterharness.cpp: test: revert accidental change to 64 dims so testbench passes [16ae0ba47935] * source/common/vec/dct-sse41.cpp: dct: remove SSE41 dct 8x8, 16x16 and 32x32 intrinsic primitives These were adapted from vector class functions but were much slower than the hand-tuned dct SSSE3 functions written by Min. [6c3aa856dc65] * source/common/primitives.h, source/common/vec/vec-primitives.cpp, source/common/x86/asm-primitives.cpp: primitives: do not include the public API header in primitives.h This was necessary in the past for the CPU level enums but those are now gone. Only vec-primitives.cpp and asm-primitives.cpp need the CPU capability defines and they can include x265.h themselves. [5e269e353bc6] 2013-10-16 Praveen Tiwari * source/test/ipfilterharness.cpp: check_IPFilterChroma_primitive, stride made equal to min width 2 short-term workaround for 2XN blocks [89a299c198d0] 2013-10-16 Steve Borho * source/x265.cpp: cli: tighten up command line help, remove redundancies and save whitespace [f7d1914d1f61] * source/x265.cpp: cli: pull CLIOptions methods out of struct definition (cleanup) Remove i_ hungarian notation from variables [5c258896b571] * build/vc10-x86/make-solutions.bat, build/vc10-x86_64/make- solutions.bat, build/vc11-x86/make-solutions.bat, build/vc11-x86_64 /make-solutions.bat, build/vc9-x86/make-solutions.bat, build/vc9-x86_64/make-solutions.bat: build: wtf is a Visual Studion? [798f12a3ca4c] 2013-10-16 Sumalatha Polureddy * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.h, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: pass bLuma and bChroma parameters for functions Based on the values of two parameters, luma and chroma operations are done. Default value for both is set as true todo both operations [872e98c8bc7b] 2013-10-16 Gopu Govindaswamy * source/CMakeLists.txt, source/x265opts.h: cli: remove unused x265opts.h [9317198e26e2] * source/x265.cpp: cli: long_options structure initialization without using x265opts.h [1cf1fe777d14] * source/x265.cpp: cli: implemented do_help() without using x265opts.h [9347808f2f9b] * source/common/common.cpp, source/x265.cpp, source/x265.def.in, source/x265.h: api: add x265_param_parse() function based on x264_param_parse() [69d8796e57e4] 2013-10-16 Deepthi Devaki * source/Lib/TLibEncoder/TEncSearch.cpp: bidir: fix for hash mismatch with B-frames Use seperate variables for mvp and mvpidx used for zero mv candidates. Also copy the corresponding AMVPinfo for each reflist/refIdx. [c415f32219fe] 2013-10-16 Praveen Tiwari * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.asm: asm: update chroma interpolation primitives [bc1399dbc2ed] * source/common/ipfilter.cpp, source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: primitive: added C primitive and unit test code for one chroma filter [762ca3c4b6f2] * source/common/primitives.h: primitive: chroma partition enums by full dimension and function pointers [08ecee513efc] 2013-10-16 Sumalatha Polureddy * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: no-rdo: remove unused checks [d45ce25752cf] 2013-10-16 Dnyaneshwar Gorade * source/common/vec/intra-sse3.cpp: intra-sse3.cpp: Remove unused vector class macros [ec5a816c4ef3] 2013-10-16 Min Chen * source/Lib/TLibEncoder/TEncCavlc.h, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h: cleanup: remove unused updateContextTables() [ad081b5f340f] 2013-10-16 Kavitha Sampath * source/input/yuv.cpp, source/input/yuv.h: yuv: make file reading threaded [18c935330e9e] 2013-10-16 Steve Borho * source/common/x86/asm-primitives.cpp: asm: disable the use of x264 pixel weighting functions These are breaking lowres qpel generation [4b1716b232e5] 2013-10-16 Aarthi Thirumalai * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h: move ssim calculation to frameFilters [09c0e0209d84] 2013-10-15 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: remove unused static MV arrays [a998daed8459] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: nits [9bff70c75d32] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/dpb.cpp: TComSlice: remove unused m_list1IdxToList0Idx and methods [676788df0ab2] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: remove unused variables [397589048016] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: rename refList -> list, refIdxTmp -> idx (more readable) [53323636b8d3] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: simplify unidirectional search logic There was a lot of extra code to check if an L0 pic was in the L1 list and was already searched. We do not copy our L0 pics into the L1 list so this isn't an issue. [d8665f64a662] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: remove unnecessary memsets [f2f61a2626ef] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/frameencoder.cpp: TEncSearch: hoist setSourcePlane() to be called just once per frame [1fda6e4da927] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: move variables closer to their use [b6db83cab831] * source/Lib/TLibCommon/ContextModel3DBuffer.cpp, source/Lib/TLibCommon/ContextModel3DBuffer.h, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/encoder/framefilter.cpp: global search and replace for common hungarian prefixed variables [5ada776190c0] * source/Lib/TLibEncoder/WeightPredAnalysis.cpp, source/Lib/TLibEncoder/WeightPredAnalysis.h: WeightPredAnalysis: remove hungarian prefixes [e0893637f5ac] * source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCavlc.h: TEncCavlc: remove hungarian prefixes [c5ac154bfb4d] * source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.h: TEncBinCABAC: remove hungarian prefixes [b7d09f879c51] * source/common/CMakeLists.txt: cmake: fix gcc 16bpp build [b04d75ceb182] * source/Lib/TLibCommon/TComPic.h, source/encoder/encoder.cpp, source/x265.h: api: pass presentation timestamp through the encoder [7c8c591908ac] 2013-10-15 Min Chen * source/Lib/TLibCommon/TComBitStream.cpp: faster grow buffer size to reduce number of memcpy [f66122e4565e] * source/Lib/TLibCommon/TComBitCounter.h, source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComBitStream.h, source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp: cabac: writeByte() for faster CABAC output [7bd38dc97fa1] * source/Lib/TLibCommon/ContextModel.h, source/Lib/TLibCommon/ContextModel3DBuffer.cpp, source/Lib/TLibCommon/ContextModel3DBuffer.h, source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncSbac.cpp: cleanup:reduce ContextModel3DBuffer to 1D [e4f130853d90] 2013-10-15 Praveen Tiwari * source/common/primitives.h: primitives: add chroma partition widths and interpolation function def [d011ba82c852] 2013-10-15 Dnyaneshwar Gorade * source/common/vec/pixel-sse41.cpp: pixel-sse41.cpp: Modified PROCESS_SSE_SS4x1 macro with faster intrinsics [352781943ca8] 2013-10-15 Kavitha Sampath * source/input/input.h, source/input/y4m.cpp, source/input/y4m.h: y4m: make file reading threaded [dd78cc895f2d] 2013-10-15 Santhoshini Sekar * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/encoder/framefilter.h: PSNR: row-by-row PSNR measurement with SSD accumulators in TComPic [404528f1ed26] 2013-10-15 Deepthi Nandakumar * source/common/vec/ipfilter-sse41.cpp: ipfilter: Fix for 16bpp build [1a85d8814346] 2013-10-15 Steve Borho * source/common/vec/pixel-sse41.cpp: pixel: fix 16bpp build [bbe95ece093f] 2013-10-15 sairam * source/encoder/motion.cpp: Fixed the --me 4 cli option error [cb83e2f93592] 2013-10-15 Yuvaraj Venkatesh * source/common/vec/pixel-sse41.cpp: pixel: cleared the bug in sse_sp8, through sse_sp64 [8c8d5700d22b] * source/common/vec/pixel-sse41.cpp: pixel: modified weightUnidir to clear the bug. [07f03a3fa2b8] * source/common/vec/pixel-sse41.cpp: pixel: cleared the bug in sse_sp4. [cc35cb2f55e8] 2013-10-15 Steve Borho * source/common/CMakeLists.txt, source/common/vec/pixel-sse41.cpp, source/common/vec/pixel16-sse41.cpp, source/common/vec/pixel16.inc: cmake: give 16bpp vector sad primitives their own C++ file [764c0e9984f0] * source/CMakeLists.txt: cmake: do not query clang version, it is not used [fa90c915a323] 2013-10-14 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: fix comment for TEncSearch::predInterSearch [062c51758069] * source/CMakeLists.txt: cmake: move X265_BUILD definition to near top of main CMakeLists.txt This is just to make it easier to find [abae6903e0af] * source/common/CMakeLists.txt, source/common/common.cpp, source/common/version.cpp: version: move export variables into version.cpp [eeffa630e770] * source/CMakeLists.txt: cmake: allow MinGW to rename x265-static to x265 MinGW uses libx265.dll.a for the shim loader library, which does not collide with libx265.a, so it is ok. Only MSVC wants to use x265.lib for both [28e2a3926c95] * source/common/CMakeLists.txt: cmake: fix 32bit GCC compile [b2c148b71db8] * source/CMakeLists.txt: cmake: drop x265 folder suffix to archive install path [5af31960c41d] 2013-10-13 Steve Borho * source/common/common.cpp, source/common/common.h, source/common/lowres.h, source/encoder/slicetype.h: common: sanity check some lookahead settings [eb0aa9c42bba] 2013-09-10 Steve Borho * source/common/lowres.cpp, source/common/lowres.h, source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: fill in missing detail from slicetypeDecide() This moves slicetypeDecide() to make the file more readable. It also adds stubs for features that we do not support yet including weightp, B-pyramid, intra refresh, user-supplied slice types, etc [9bdff3310321] 2013-10-13 Steve Borho * source/common/CMakeLists.txt: cpu: disable -Wnarrowing for cpu.cpp This C99 code from x264 causes warnings when compiled for C++ [8011064113f7] 2013-10-13 Min Chen * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibEncoder/TEncBinCoder.h, source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.h, source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp, source/encoder/cturow.cpp: cabac: cleanup unused code [1eeac78dbddb] * source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.h, source/Lib/TLibEncoder/TEncBinCoderCABACCounter.cpp, source/Lib/TLibEncoder/TEncBinCoderCABACCounter.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSbac.h, source/encoder/CMakeLists.txt, source/encoder/cturow.cpp, source/encoder/cturow.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h: cabac: cleanup TEncBinCoderCABACCounter to reduce C++ feature [6d351ec699e5] 2013-10-12 Steve Borho * source/common/vec/vec-primitives.cpp: vec: it seems clang has its own set of intrinsic generation bugs If clang is allowed to run the instrinsic functions it builds in these two files it causes SEGVs [db12b4bf3ffd] * source/common/primitives.cpp: primitives: show capabilities used even when cpuid is specified [4423fc3fcd08] * source/test/testbench.cpp: testbench: repair --cpuid command line argument [c1acbd493213] * source/common/vec/ipfilter-sse41.cpp: ipfilter: move 16bpp primitives into a separate area of the file This isolates the remaining vector primitives from the intrinsic primitives [7196914eff8f] 2013-10-10 Steve Borho * source/VectorClass/instrset.h, source/VectorClass/instrset_detect.cpp, source/common/CMakeLists.txt, source/common/cpu.cpp, source/common/cpu.h, source/common/primitives.cpp, source/common/primitives.h, source/common/vec/vec-primitives.cpp, source/common/x86/asm-primitives.cpp, source/test/testbench.cpp, source/x265.h: asm: adopt x264 CPU detection and flags [76260e1b472d] 2013-10-12 Steve Borho * source/CMakeLists.txt, source/common/CMakeLists.txt, source/common/common.cpp, source/common/common.h, source/x265.cpp, source/x265.def.in, source/x265.h: api: add exported strings which describe version and build info It seemed more useful for this data to be in the x265 library rather than the CLI app [6d5df4858df6] * source/CMakeLists.txt, source/cmake/cmake_uninstall.cmake.in: cmake: add uninstall rule for non-Windows platforms CMake on Windows doesn't appear to generate an install manifest file [c18a09b9d2d3] * source/CMakeLists.txt, source/common/CMakeLists.txt, source/encoder/CMakeLists.txt: cmake: enable vim syntax hightlighting [ec98f30c5185] * source/cmake/version.cmake: cmake: nit cleanups in version.cmake [c032a0fbc863] * source/CMakeLists.txt, source/cmake/version.cmake, source/x265.def, source/x265.def.in, source/x265.h, source/x265_config.h.in: cmake: add install targets, machine generate x265.def and x265_config.h Now X265_BUILD is maintained in just a single place, souce/CMakeLists.txt. The shared library is only installed if a valid tag is found; meaning the user must be building a Mercurial clone or a release tarball with .hg_archive.txt file in it (otherwise they must install the shared library themselves) [1097e547c441] * source/common/common.h: common: properly report clang compiled by version [28690748ab1d] 2013-10-12 Deepthi Nandakumar * source/test/pixelharness.cpp, source/test/testharness.h: testbench fix: short buffers now have short values [aef52403ed5a] 2013-10-11 Steve Borho * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: ratecontrol: use param.rc.rateControlMode, from duplicate RC var [9a02765f182e] * source/common/vec/intra-sse41.cpp: intra: remove vector class header include from intra-sse41.cpp intra-sse3.cpp is the last file with 8bpp (non-AVX2) vector class primitives [f77efd501767] * source/common/vec/blockcopy-sse3.cpp: blockcopy-sse3: consistent naming convention [8518e39a2b74] * source/common/vec/blockcopy-sse3.cpp: blockcopy-sse3: remove vector class use from last 16bpp intrinsic blockcopy files are now vector class clean [41b7ceea1e32] * source/common/vec/blockcopy-sse3.cpp: blockcopy-sse3: consistent naming convention [0be273b5f082] * source/common/vec/intra-sse3.cpp: intra: prevent variable shadow warnings from GCC [d97cf152f620] 2013-10-11 Aarthi Thirumalai * source/common/pixel.cpp, source/common/primitives.h: primitves: add c primitives for the following : compute AC energy for each block copy pixels of chroma plane [725ac176cd13] * source/common/common.cpp, source/x265.h: param: added rc states for setting Aq mode and Aq strength [73d085da8533] * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: rc: added TEncCfg instance to RateControl to reuse all the rc params directly. [ce889cef37be] 2013-10-11 Shazeb Nawaz Khan * source/common/reference.cpp, source/encoder/motion.cpp: Some fixes in applyWeight() function These wont fix the PSNR drop but are necessary [b70432f7b275] 2013-10-11 Steve Borho * source/common/vec/dct-ssse3.cpp: dct-ssse3: remove vector class includes; dct files are now clean [1cd3bc5e6881] * source/common/vec/dct-sse3.cpp: dct-sse3: don't compile dct4 for 16bpp builds when it is not used [2267068cc7e1] * source/common/vec/dct-sse41.cpp: dct-sse41: reorder functions for clarity - no code change [d6dc4ebb5cbe] * source/common/vec/dct-sse3.cpp: dct-sse3: remove idst4; it uses SSE4.1 but dct-sse41.cpp already has idst4 [839a9ba551e4] 2013-10-11 Yuvaraj Venkatesh * source/common/vec/dct-sse3.cpp: dct: Replaced inversedst vector class function to intrinsic [df024b91ffd6] 2013-10-11 Steve Borho * source/common/vec/pixel-sse3.cpp: pixel-sse3: move convert32to16_shr to top of file, remove vector class includes [9f37e3d7818c] 2013-10-11 Dnyaneshwar Gorade * source/common/vec/pixel-sse3.cpp: pixel-sse3.cpp: Replace convert32to16_shr vector class function with intrinsic. [efb230642757] 2013-10-11 Steve Borho * source/common/vec/dct-sse3.cpp, source/common/vec/dct-sse41.cpp: dct: move dct32 to dct-sse41.cpp, inline convert16to32 [def1551c14f0] 2013-10-11 Yuvaraj Venkatesh * source/common/vec/dct-sse3.cpp: dct: Replaced partialButterfly32 vector class function to intrinsic [ca00db64f5bb] 2013-10-11 Dnyaneshwar Gorade * source/common/vec/intra-sse3.cpp: intra-sse3.cpp: Replace PredIntraAng4_m_32 vector class function with intrinsic. [4824f15116e6] * source/common/vec/intra-sse3.cpp: intra-sse3.cpp: Replace PredIntraAng4_m_26 vector class function with intrinsic. [267fa83cd7b9] * source/common/vec/intra-sse3.cpp: intra-sse3.cpp: Replace PredIntraAng4_m_21 vector class function with intrinsic. [90b34ae5e8de] * source/common/vec/intra-sse3.cpp: intra-sse3.cpp: Replace PredIntraAng4_m_17 vector class function with intrinsic. [263acbde8ec1] * source/common/vec/intra-sse3.cpp: intra-sse3.cpp: Replace PredIntraAng4_m_13 vector class function with intrinsic. [f1013117efab] * source/common/vec/intra-sse3.cpp: intra-sse3.cpp: Replace PredIntraAng4_m_9 vector class function with intrinsic. [5c6f7106c918] * source/common/vec/intra-sse3.cpp: intra-sse3.cpp: Replace PredIntraAng4_m_5 vector class function with intrinsic. [87a56e0ff6a9] * source/common/vec/intra-sse3.cpp: intra-sse3.cpp: Replace PredIntraAng4_m_2 vector class function with intrinsic. [e4efd408f394] * source/common/vec/intra-sse3.cpp: intra-sse3.cpp: Replace PredIntraAng4_2 vector class function with intrinsic. [bd335e21744d] * source/common/vec/intra-sse3.cpp: intra-sse3.cpp: Replace PredIntraAng4_5 vector class function with intrinsic. [2b9f94e11cc5] * source/common/vec/intra-sse3.cpp: intra-sse3.cpp: Replace PredIntraAng4_9 vector class function with intrinsic. [e65e3714bbb9] * source/common/vec/intra-sse3.cpp: intra-sse3.cpp: Replace PredIntraAng4_13 vector class function with intrinsic. [f3d0ced4a4f1] * source/common/vec/intra-sse3.cpp: intra-sse3.cpp: Replace PredIntraAng4_17 vector class function with intrinsic. [17c772394df3] 2013-10-11 Steve Borho * source/common/vec/dct-sse3.cpp, source/common/vec/dct-sse41.cpp: dct: move dct8 to dct-sse41.cpp, inline convert16to32 [f0eebdf90a58] 2013-10-11 Yuvaraj Venkatesh * source/common/vec/dct-sse3.cpp: dct: Replaced partialButterfly16 vector class function to intrinsic [f760de7f5596] 2013-10-11 Dnyaneshwar Gorade * source/common/vec/intra-sse3.cpp: intra-sse3.cpp: Replace PredIntraAng4_21 vector class function with intrinsic. [e9b401f5c655] 2013-10-11 Min Chen * source/common/x86/ipfilter8.asm: asm: improvement filterHorizontal_p_p_4 by reorder intermedia data 1. repleace phaddw to paddw 2. use extra load operator to split data dependency and reduce table size [080a9fdada2c] * source/common/x86/ipfilter8.asm: asm: fix bug in filterHorizontal_p_p_4 with width less than 8 (seed 0x52578C72) [953a4e9f3d57] 2013-10-11 Dnyaneshwar Gorade * source/common/vec/intra-sse3.cpp: intra-sse3.cpp: Replace PredIntraAng4_26 vector class function with intrinsic using intrinsic macros PRED_INTRA_ANGLE_4_START and PRED_INTRA_ANGLE_4_END. [295973cbc020] * source/common/vec/intra-sse3.cpp: intra-sse3.cpp: Created common macros PRED_INTRA_ANGLE_4_START, PRED_INTRA_ANGLE_4_END for PredIntraAng4_[ANGLE] function. [ee4f9ae07523] 2013-10-11 Steve Borho * source/common/vec/dct-sse41.cpp: dct: manually inline convert16to32, for 10% improvement [ab9f6ad97d30] 2013-10-11 Yuvaraj Venkatesh * source/common/vec/dct-sse41.cpp: dct: modified block copy used in dct8 with convert16to32 inline function [855757691efc] 2013-10-11 Steve Borho * source/common/vec/dct-sse3.cpp: dct: fix 16bpp, dct primitives are not 16bpp safe [c6d89dc62e19] 2013-10-10 Steve Borho * source/common/piclist.cpp: piclist: ensure a TComPic is not enqueued in two lists at once [7134a091a71d] 2013-10-11 Steve Borho * source/common/pixel.cpp, source/common/primitives.h, source/common/vec/pixel-sse3.cpp: pixel: remove unreferenced cvt16to32_t and cvt32to16_t primitives [9bbaa60db38b] * source/common/vec/pixel-sse41.cpp: pixel: remove unreferenced sse_pp4 function [fa480d5c2166] 2013-10-10 Steve Borho * source/common/vec/pixel-avx2.cpp: pixel: allow clang to build AVX2 pixel primitives functions [0fabe33e0448] 2013-10-11 Min Chen * source/cmake/version.cmake: cmake: default value for X265_VERSION [b6756c2e6386] 2013-10-10 Steve Borho * source/CMakeLists.txt, source/common/CMakeLists.txt: cmake: repair ICL nmake builds - do not use yasm custom rule with nmake [57e6b2cf633d] 2013-10-11 Steve Borho * source/CMakeLists.txt, source/common/CMakeLists.txt: cmake: make intel C++ compiler detection independent of env vars [e282601b92d6] 2013-10-10 Steve Borho * source/CMakeLists.txt, source/common/CMakeLists.txt: cmake: cleanup compiler determination [95f8e0c146b8] * source/common/CMakeLists.txt: cmake: add parens to fix icpc builds of intrinsic primitives [7320ecd0901c] * source/Lib/TLibCommon/TComSlice.h: TComSlice: add missing cstring include for memcpy [71fca64942a6] * source/Lib/TLibCommon/TComSlice.h: TComSlice: remove unreferenced member variable [614a68ab4703] * source/Lib/TLibEncoder/NALwrite.cpp: NALwrite: reintroduce include of cstring, required for memcpy on Linux [d6b9cc9c402f] * source/encoder/CMakeLists.txt: cmake: merge TLibEncoderH source group into TLibEncoder They are both small enough now that they are manageable as a single unit [bfdfeb2fd817] * source/CMakeLists.txt: cmake: link PPA and other libs into x265-shared and x265-static [499ef0e4e254] * source/common/vec/dct-sse3.cpp, source/common/vec/dct-sse41.cpp: dct: add comments for future opts/code reuse [7b4a6a5f8efc] * source/common/vec/dct-sse41.cpp: dct: remove vector class includes from dct-sse41.cpp, it is clean [3be4451ea3aa] * source/common/vec/dct-sse3.cpp, source/common/vec/dct-sse41.cpp: dct: move functions which require SSE4.1 from dct-sse3.cpp to dct- sse41.cpp [be7c6c42566a] * source/common/vec/dct-sse3.cpp: dct: move last vector dct function into its own section [b0b5c22f5a34] 2013-10-10 Yuvaraj Venkatesh * source/common/vec/dct-sse3.cpp: dct: replaced partialButterfly8 vector class function with intrinsic [6fa763ba9da8] * source/common/vec/dct-sse3.cpp: dct: replace dequant vector class function with intrinsic [b77a66b6b93d] 2013-10-10 Dnyaneshwar Gorade * source/common/vec/intra-sse3.cpp: intra-sse3.cpp: Replace PredIntraAng4_32 vector class function with intrinsic. [8b49d3995f0c] 2013-10-10 Steve Borho * source/common/vec/blockcopy-sse3.cpp: blockcopy: move intrinsic function out of vector-class section [7dbbbb2a42bc] 2013-10-10 Dnyaneshwar Gorade * source/common/vec/blockcopy-sse3.cpp: blockcopy-sse3.cpp: Replace pixeladd_pp vector class function with intrinsic. [12d098e5d907] 2013-10-10 Gopu Govindaswamy * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: tcomtrquant:remove unused methods [a79ecf3a7875] * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibEncoder/NALwrite.cpp, source/Lib/TLibEncoder/TEncSbac.cpp, source/common/dct.cpp, source/common/pixel.cpp, source/common/vec/dct-sse3.cpp, source/common/vec/dct-sse41.cpp, source/x265.cpp: remove unused includes [dce6ced4b4a3] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/frameencoder.cpp: tcomslice:remove unused set methods [c2fb3d12c812] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h: tcomslice: removed unused set methods in TComReferencePictureSet class [bb43823efa92] 2013-10-10 Steve Borho * source/common/vec/pixel-sse41.cpp, source/common/vec/sse.inc: sse: move last SSE function into vector-class section of pixel- sse41.cpp [7b4685130793] * source/common/vec/ipfilter-ssse3.cpp: ipfilter: remove vector class headers from ipfilter-ssse3.cpp [29844e1eb697] 2013-10-10 Dnyaneshwar Gorade * source/common/vec/ipfilter-ssse3.cpp: ipfilter-ssse3.cpp: Replace filterConvertPelToShort vector class function with intrinsic. [b7b00d3533b1] * source/common/vec/ipfilter-ssse3.cpp: ipfilter-ssse3.cpp: Replace filterConvertShortToPel vector class function with intrinsic. [fc4bc74c095a] 2013-10-10 Steve Borho * source/common/vec/pixel-sse41.cpp, source/common/vec/sse.inc: sse: move intrinsic functions to pixel-sse41.cpp [02fd071a875b] 2013-10-10 Yuvaraj Venkatesh * source/common/vec/sse.inc: pixel: replace sse_sp64 vector class with intrinsic [250b1b037e94] * source/common/vec/sse.inc: pixel: replace sse_sp48 vector class with intrinsic [1d872b8c6480] * source/common/vec/sse.inc: pixel: replace sse_sp32 vector class with intrinsic [92b11584470c] * source/common/vec/sse.inc: pixel: replace sse_sp24 vector class with intrinsic [cae449cb7965] * source/common/vec/sse.inc: pixel: replace sse_sp16 vector class with intrinsic [087267802b1c] * source/common/vec/sse.inc: pixel: modified sse_sp8 with a comman macro SSE_SP8x1 [fb043c201cce] 2013-10-10 Min Chen * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSeach: add alignment to bidir output buffer fixes crash in x265_pixel_avg_w16_sse2 from aligned writes to the output buffer [6a6f72ea32a3] 2013-10-10 Steve Borho * source/x265.def, source/x265.h: api: make notice of how the build number now must be echoed in x265.def [8ae52f2b159c] * source/encoder/encoder.cpp: encoder: silence idiotic compiler warning from VC10 [4b84c969a079] 2013-10-09 Steve Borho * source/x265.h: api: add API version to x265_encoder_open to prevent dynamic library link skew Gratefully borrowed from x264 [52284d8d4dc1] * source/common/CMakeLists.txt, source/common/vec/vec-primitives.cpp: cmake: enable clang to compile intrinsic primitives without version checks [edcc92f2b2ab] * source/common/vec/blockcopy-sse3.cpp: blockcopy: isolate vector class routines together (firing squad) [82f20a7cb593] * source/VectorClass/vectori128.h, source/VectorClass/vectori256.h, source/VectorClass/vectori256e.h: vector: bypass a number of functions we do not use when compiled by clang The sooner these classes go away the better [5cc9abe88e62] * source/common/vec/pixel-ssse3.cpp: pixel: remove vector class headers from pixel-ssse3.cpp [a574f4347855] * source/common/vec/intra-sse3.cpp: intra: remove an unreferenced function [27a3de7a742c] * source/common/vec/ipfilter-sse41.cpp: ipfilter: remove two unreferenced functions [9518070da726] * source/common/ipfilter.cpp: ipfilter: remove two unused functions [6a08d0e9178c] * source/CMakeLists.txt: cmake: detect clang compiler anf fix some link issues [d7922b02ef3c] * source/CMakeLists.txt: cmake: bump minimum required version to 2.8.8 [5dceef85c58c] * source/CMakeLists.txt: cmake: add -ffast-math to GCC compile flags [4710e2b5e134] * source/Lib/TLibCommon/TComSlice.h: TComSlice: linux build fix, include for memcpy [80af6aaa16e2] 2013-10-09 Sumalatha Polureddy * source/encoder/compress.cpp: no-rdo(early exit): update the memory with info from m_interCU_NxN The encoding and prediction details which are updated in the m_interCU_NxN in NxN calculation are updated in the m_tempCU [bd3f43f06dd4] 2013-10-09 Steve Borho * source/common/vec/dct-ssse3.cpp, source/encoder/bitcost.cpp: remove more includes [e4369bb24ad7] * source/Lib/TLibEncoder/TEncCu.cpp: TEncCu: replace with X265_MIN, X265_MAX [50d55737f6b0] * source/Lib/TLibCommon/ContextModel.cpp: ContextModel: replace with X265_MIN, X265_MAX [8cd4c7e800ed] * source/Lib/TLibEncoder/NALwrite.cpp: NALwrite: remove "using namespace std" [05b6f86ebda6] * source/test/unittest.cpp, source/test/unittest.h: remove unused unittest class (is not even compiled today) [882d6a2b329e] * source/x265.cpp: cli: remove "using namespace std" [ddb9d884df8d] * source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComBitStream.h, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibEncoder/NALwrite.cpp: remove a pile of unused STL includes, reorder includes for clarity [7c15a193cef9] * source/Lib/TLibEncoder/TEncSbac.cpp: TEncSBac: remove unused #include [64b58c78dd68] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h: TComSlice: remove unused ParameterSetMap and #include [5a50663968f5] 2013-10-09 Gopu Govindaswamy * source/Lib/TLibCommon/TComList.h, source/Lib/TLibCommon/TComSlice.h, source/common/CMakeLists.txt, source/encoder/encoder.cpp: TLibCommon: Removed unused TComList [fd1d967972d0] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp, source/encoder/dpb.h, source/encoder/encoder.h: dpb and TComSlice: replaced TComList with PicList [85c733f8a057] 2013-10-09 Shazeb Nawaz Khan * source/common/reference.cpp, source/common/reference.h, source/encoder/frameencoder.cpp, source/encoder/motion.cpp, source/encoder/motion.h: Enabling weight prediction for half and full pel [b44fccc8e6ea] 2013-10-09 Steve Borho * source/common/vec/pixel-sse3.cpp, source/common/vec/pixel-sse41.cpp, source/common/vec/pixel.inc, source/common/vec/pixel8.inc: pixel: fixup GCC builds, remove pixel8.inc and pixel.inc [271b02645979] 2013-10-09 Yuvaraj Venkatesh * source/common/vec/pixel8.inc: pixel: Replace weightUnidir vector class function with intrinsic. [408ca7050bc7] * source/common/vec/sse.inc: pixel: replace sse_sp12 vector class with intrinsic [e828f98d388a] * source/common/vec/sse.inc: pixel: replace sse_sp8 vector class with intrinsic [d9665d0ad277] * source/common/vec/sse.inc: pixel: replace sse_sp4 vector class with intrinsic [dc0bd9d959db] 2013-10-09 Dnyaneshwar Gorade * source/common/vec/sse.inc: sse.inc: Modified sse_ss64 intrinsic function. Removed redundancy using comman macro PROCESS_SSE_SS4x1. [756de900bae5] * source/common/vec/sse.inc: sse.inc: Modified sse_ss48 intrinsic function. Removed redundancy using comman macro PROCESS_SSE_SS4x1. [50a2725a989d] * source/common/vec/sse.inc: sse.inc: Modified sse_ss32 intrinsic function. Removed redundancy using comman macro PROCESS_SSE_SS4x1. [363ff9b66afa] * source/common/vec/sse.inc: sse.inc: Modified sse_ss24 intrinsic function. Removed redundancy using comman macro PROCESS_SSE_SS4x1. [9f1ec1c9cdb6] * source/common/vec/sse.inc: sse.inc: Modified sse_ss16 intrinsic function. Removed redundancy using comman macro PROCESS_SSE_SS4x1. [aca490fa02d7] * source/common/vec/sse.inc: sse.inc: Modified sse_ss12 intrinsic function. Removed redundancy using comman macro PROCESS_SSE_SS4x1. [3f5fe6d9a81d] * source/common/vec/sse.inc: sse.inc: Modified sse_ss8 intrinsic function. Removed redundancy using comman macro PROCESS_SSE_SS4x1. [1428dcddfa4d] * source/common/vec/sse.inc: pixel.inc: Modified sse_ss4 intrinsic function. Removed redundancy using comman macro PROCESS_SSE_SS4x1. [d1ca36034d9f] * source/common/vec/sse.inc: sse.inc: Created comman macro PROCESS_SSE_SS4x1 for functions sse_ss4, sse_ss8, sse_ss16, sse_ss24, sse_ss32, sse_ss48, sse_ss64. [95da8fa18a2e] * source/common/vec/pixel8.inc: pixel8.inc: Replace weightUnidirPixel vector class function with intrinsic. [9a20693c6ff2] * source/common/vec/pixel-sse3.cpp: pixel-sse3.cpp: Modified calcRecons function argument names. Removed hungarian prefixes. [9d534f295529] * source/common/vec/pixel-sse3.cpp: pixel-sse3.cpp: Modified calcRecons8 function argument names. Removed hungarian prefixes. [a1a2233536d5] * source/common/vec/pixel-sse3.cpp: pixel-sse3.cpp: Modified calcRecons4 function argument names. Removed hungarian prefixes. [87084e0f93f4] 2013-10-09 Steve Borho * source/Lib/TLibEncoder/TEncCavlc.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/encoder/CMakeLists.txt, source/encoder/cturow.cpp, source/encoder/cturow.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h: pull TEncTop code into Encoder class in encoder.cpp, encoder.h The TEncTop in our repo bears little resemblance to the original HM class, so I think it is applicable to move this code into one of our files where it makes the most sense. Some methods were renamed to our naming style in the process. [47d92e8a8a41] 2013-10-09 Gopu Govindaswamy * source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: removed TComList(std::list) and used PicList to store the TComPics [497ef3556b12] 2013-10-09 Steve Borho * source/CMakeLists.txt: cmake: this time for reals [fc7fbdd18bc0] 2013-10-08 Steve Borho * source/CMakeLists.txt: cmake: fixes for non-assembly builds and windows builds [4737b5423ea4] * source/CMakeLists.txt: cmake: tweak static library names to avoid conflict MSVC was trying to write both the static library and the DLL shim loader to x265.lib. After this change, the static library is now x265-static.lib and the shim loader is x265.lib (corresponding with x265.dll) [4b354b902b50] 2013-10-07 Steve Borho * source/CMakeLists.txt, source/cmake/mergestaticlibs.cmake, source/common/CMakeLists.txt, source/common/common.cpp, source/common/common.h, source/common/primitives.cpp, source/common/vec/CMakeLists.txt, source/common/x86/CMakeLists.txt, source/encoder/CMakeLists.txt, source/encoder/encoder.cpp, source/test/CMakeLists.txt, source/x265.cpp, source/x265.def, source/x265.h: cmake: use cmake 2.8 OBJECT target type to manage static and share libs With the OBJECT target type, the common and encoder folders are compiled to object files but not linked until main static or shared library is built. This removes the need for mergestatic.cmake and cleans up a lot of messy problems - at the cost of requiring a somewhat recent cmake. For MSVC (and presumably Xcode) we must keep the assembly as a static lib since it uses custom build commands which do not work with OBJECT target types. This static lib is then linked with the main x265.lib or x265.dll The X265_EXPORT macro is no longer necessary since we are generating both the static library and shared library from one compile we are forced to use an x265.def file to define DLL exports. x265.exe must link with the static library because on Windows the static lib will be empty if no EXE links with it. x265_mdate() was moved into the CLI x265.cpp so the CLI could link with the shared library if necessary (x265_mdate is not exported) [713c2133c77c] 2013-10-08 Steve Borho * source/common/vec/pixel-sse3.cpp, source/common/vec/pixel-sse41.cpp, source/common/vec/pixel8.inc: pixel: move intrinsic residual and recon functions to pixel-sse3.cpp [3202ca7a44bb] 2013-10-08 Shazeb Nawaz Khan * source/common/reference.cpp: Check against numRows in applyweight applyWeight() processes rows a 'refLag' number of rows in advance as compared to the current iteration in compressCTURows() [7831bda44186] * source/common/reference.cpp: Fix for possible memory access violation in applyWeight() [85cc6aaac7ec] * source/Lib/TLibCommon/TComPrediction.cpp: Use unweighted pixels before interpolation for Luma in Motion Compensation [65f56d5e2ee7] 2013-10-08 Steve Borho * source/common/piclist.cpp, source/common/piclist.h: piclist: pass non-optional pictures by reference to avoid NULL checks [71afca6c173b] 2013-10-08 Gopu Govindaswamy * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/common/CMakeLists.txt, source/common/piclist.cpp, source/common/piclist.h: piclist: add class PicList for picture list manipulations Created new file piclist.cpp and piclist.h for linked list manipulation, there will be no intermediate storage in piclist, PicList just links TComPic objects together. PicList will be used to replace TComList and this will remove std::list dependency in x265 [df812d396499] 2013-10-08 Yuvaraj Venkatesh * source/common/vec/pixel8.inc: pixel: replace getResidual64 from vector class to intrinsic [bb27ac985cb9] * source/common/vec/pixel8.inc: pixel: replace getResidual32 from vector class to intrinsic [1e53142731ab] * source/common/vec/pixel8.inc: pixel: replace getResidual16 from vector class to intrinsic [c27e9b8951d0] 2013-10-08 Dnyaneshwar Gorade * source/common/vec/pixel8.inc: pixel8.inc: replace calcRecons vector class function with intrinsic. [add71d9845a7] * source/common/vec/pixel8.inc: pixel8.inc: replace calcRecons8 vector class function with intrinsic. [1d2e192467a8] * source/common/vec/pixel8.inc: pixel8.inc: replace calcRecons4 vector class function with intrinsic. [d2c8e7248f4a] 2013-10-08 Gopu Govindaswamy * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h: tcomslice: removed un-used sortPicList() function [91aea72a1de9] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h: tcomslice: removed un-used checkThatAllRefPicsAreAvailable() function [ed0d3fd544e6] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h: TComSlice: Removed un-used createExplicitReferencePictureSetFromReference() Method [268a34d4389f] 2013-10-08 Min Chen * source/test/testpool.cpp: Update testbench for threadpool [57c15726158a] 2013-10-08 Aarthi Thirumalai * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: calculate SSIM for each Row after deblock, sao [349206daad1d] * source/common/pixel.cpp, source/common/primitives.h: primitives: added C primitives to compute SSIM [279e050947cf] 2013-10-08 Deepthi Devaki * source/encoder/slicetype.cpp: slicetype: Bidir cost estimation added to lookahead [0204da76bdb6] 2013-10-08 Gopu Govindaswamy * source/Lib/TLibCommon/TComBitStream.cpp: tcombitstream: bug fix for count StartCodeEmulations to calculate the substream size [9b3a427a1009] 2013-10-07 Gopu Govindaswamy * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/encoder/frameencoder.cpp: tcomdatacu: Removed Un-used NDBFBlockInfo - Non-deblocking filter processing block information 1.setNDBFilterBlockBorderAvailability() 2.createNonDBFilterInfo() 3.createNonDBFilterInfoLCU() 4.destroyNonDBFilterInfo() All the above methods are used to set and destroy the NDBFBlockInformation, but NDBFBlockInfo m_vNDFBlock is not getting used encoding process [d71078917df0] 2013-10-07 Steve Borho * source/common/common.cpp: common: rename AILIGNBYTES to avoid conflict with apple i386/param.h [41e5e72e2a46] * source/CMakeLists.txt: cmake: white-space nit [5ff1a56ba33b] * source/CMakeLists.txt, source/test/CMakeLists.txt: cmake: simplify test build structure [d79cbcdcb538] * source/common/vec/pixel-sse3.cpp: pixel: wrap primitives in anononymous namespace (file static) [e1be6debf9a7] * source/common/vec/pixel-sse3.cpp: pixel: fix spelling of blockfill functions, add calcresidual functions [c8b2682f8ee3] * source/common/vec/pixel-sse3.cpp, source/common/vec/pixel-sse41.cpp, source/common/vec/pixel8.inc: pixel: move intrinsic getResidual4 and getResidual8 to pixel- sse3.cpp [baf9d1d30a9c] 2013-10-07 Yuvaraj Venkatesh * source/common/vec/pixel8.inc: pixel: replace getResidual8 vector class with intrinsic [5be3fea0721a] * source/common/vec/pixel8.inc: pixel: replace Residual4 vector class with intrinsic [5a0c772fd165] 2013-10-07 Dnyaneshwar Gorade * source/common/vec/pixel-sse41.cpp: pixel: simplify sad_x4_32 to make it easier to maintain [b6f29369879c] * source/common/vec/pixel-sse41.cpp: pixel: simplify sad_x4_24 to make it easier to maintain [9facd6b0a9f8] * source/common/vec/pixel-sse41.cpp: pixel: simplify sad_x4_12 to make it easier to maintain [d6dc18f9cead] * source/common/vec/pixel-sse41.cpp: pixel: simplify sad_x3_32 to make it easier to maintain [91df941f46bc] * source/common/vec/pixel-sse41.cpp: pixel: simplify sad_x3_24 to make it easier to maintain [908f617c8847] * source/common/vec/pixel-sse41.cpp: pixel: simplify sad_12 to make easier to maintain [b8756aa16d1a] * source/common/vec/pixel-sse41.cpp: pixel: simplify sad_x3_12 to make it easier to maintain [afcfd17e395f] * source/common/vec/pixel-sse41.cpp: pixel: simplify sad_32 to make it easier to maintain [b52b52cd0f77] * source/common/vec/pixel-sse41.cpp: pixel: simplify sad_24 to make easier to maintain [2556af7a5c0d] 2013-10-06 Steve Borho * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/vec/pixel-sse3.cpp: primitives: rename blockfil_s to blockfill_s_c [bed5c2765dc8] * source/common/primitives.h: primitives: remove unused function decl [c433691041a2] * source/common/primitives.h: primitives: remove obsolete FilterConf enum [69d2774132c4] * source/common/ipfilter.cpp, source/common/primitives.h: ipfilter: remove unused filterRow primitives [808210e75c21] 2013-10-07 Steve Borho * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: ipfilterharness: remove test harnesses for removed primitives [6fdea23da2b9] 2013-10-06 Steve Borho * source/common/ipfilter.cpp, source/common/primitives.h, source/common/vec/ipfilter-sse41.cpp: ipfilter: remove unused weighted interpolation primitives [15c6e2451b34] * source/CMakeLists.txt: cmake: use add_definitions() instead of modifying CMAKE_CXX_FLAGS manually [c010342f7605] 2013-10-02 Steve Borho * source/CMakeLists.txt, source/common/common.cpp, source/common/primitives.cpp, source/dllmain.cpp, source/encoder/encoder.cpp, source/x265.h: cmake: add ENABLE_SHARED build option for creating a shared library (dll/so) [33ea0f317564] 2013-10-06 Steve Borho * source/common/vec/pixel-avx2.cpp: pixel: fix eoln damage to pixel-avx2.cpp [2190f2f036a1] * source/common/x86/asm-primitives.cpp: asm: simplify setup of HEVC partitions for SATD primitives [484d1d98710b] * source/common/vec/pixel-sse41.cpp: pixel: simplify sad_x3_16 and sad_x4_16 to make them easier to maintain [d27d01ffa4f0] 2013-10-05 Steve Borho * source/common/vec/pixel-sse41.cpp: pixel: simplify sad_16 to make it easier to maintain [bf5852bbf75f] * source/common/vec/pixel-sse41.cpp, source/common/x86/asm- primitives.cpp: pixel: fix HIGH_BIT_DEPTH builds [bc3d1a8ebc89] * source/common/vec/pixel-sse41.cpp: pixel: add missing sse_pp_12x16, untemplatize others [017aab1983dd] * source/common/x86/asm-primitives.cpp: asm: don't build wrappers for functions with intrinsic implementations [da37cd44a77c] * source/common/vec/pixel-sse41.cpp: pixel: drop SSE primitives that have assembly [08b4bb1e5dbe] * source/common/x86/asm-primitives.cpp: asm: cleanup the assignment of SSD primitives [dc74d9932a3f] * source/common/x86/asm-primitives.cpp: asm: simplify generation of sa8d_inter functions from 8x8 and 16x16 blocks [276f98fe1c59] * source/test/testbench.cpp: testbench: fix off-by one initialization of primitives [e352d1f1a7c6] * source/common/vec/pixel-sse41.cpp: pixel: add back intrinsics for sad_x3_4x16 and sad_x4_4x16 These routines do not yet have assembly code [2e8d7b261880] * source/common/primitives.cpp: primitives: fix off-by one initialization of primitives [6e46fabdef40] * source/common/primitives.cpp: primitives: fixup 12x16 and 16x2 sa8d_inter pointers 32x12 isn't used but 12x16 and 16x12 are (for AMP) [884016c98502] * source/common/primitives.cpp, source/common/x86/asm-primitives.cpp: primitives: setup square sa8d_inter function pointers from sa8d block pointers [58bacc9ae3d1] * source/common/x86/asm-primitives.cpp: asm: use x265_pixel_satd_8x4_xop for p.satd[PARTITION_16x4] for 32 bit builds On 64bit builds, we have native sse2 functions [4f837e3ebd26] * source/common/primitives.cpp, source/common/x86/asm-primitives.cpp: primitives: move small block sa8d_inter setup to primitives.cpp This hack didn't belong in the assembly setup function [83ae910874e3] * source/test/pixelharness.cpp: pixelharness: report sad, sad_x3, and sad_x4 scores together [4089b17f33ed] * source/common/x86/asm-primitives.cpp: asm: quit instantiating functions which are not necessary Re-order functions for more clarity [5c27d330da43] * source/common/vec/pixel-sse41.cpp: pixel: stop building 16x16, 16x8, and 8x16 intrinsic primitives [73f14d5ca8a9] * source/common/vec/pixel-sse41.cpp: pixel: limit sad_8 routines to just height 32 8x4, 8x8, and 8x16 are handled by x264 assembly, only 8x32 remains for the intrinsic function to cover [19b319c9a6aa] * source/common/vec/pixel-sse41.cpp: pixel: eliminate width 48 SAD code for height != 64 [8f7091d09c11] * source/common/vec/pixel-sse41.cpp: pixel: simplify sad_32 primitives to a single loop 32 width blocks will only be height 8, 16, 24, or 32. Having an 8-row loop is just fine [affee51d4f86] * source/common/vec/pixel-sse41.cpp: pixel: simplify sad_64 primitives to a single loop 64 width blocks will only be height 16, 32, 48, or 64. Having an 8-row loop is just fine [87b5a379a1d8] * source/common/vec/pixel-sse41.cpp: pixel: remove sad_*_4<> intrinsic functions, they are covered by assembly x264 assembly code covers 4x4, 4x8, and 4x16 and those are the only 4-width partitions used by x265. [1ae7953bceb4] * source/common/vec/pixel-sse41.cpp: pixel: eliminate width 24 SAD code for height != 32 [fb475b36852c] * source/common/vec/pixel-sse41.cpp: pixel: eliminate width 12 SAD code for height != 16 [bbc040a8109c] * source/common/vec/pixel-avx2.cpp, source/common/vec/pixel-sse3.cpp, source/common/vec/pixel-sse41.cpp, source/common/vec/pixel.inc: pixel: only compile partition sizes that are used by the encoder [e5369adbccba] * source/test/pixelharness.cpp, source/test/pixelharness.h: pixelharness: only test partition sizes plausibly used by the encoder [699b843073de] * source/common/vec/pixel-sse41.cpp: pixel: use unaligned loads for reference pixels in sad_12 [49231db18e60] * source/common/vec/pixel-sse41.cpp: pixel: fix typo which was copied and pasted 36 times [fbfa3a5c5ae8] * source/common/vec/pixel-sse41.cpp: pixel: use unaligned loads for reference pixels in sad_24 [bee7275174f1] 2013-10-05 Min Chen * source/encoder/framefilter.cpp: fix bug on SAO initialize [46a901ac1aff] 2013-10-04 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/x86/CMakeLists.txt, source/common/x86/asm-primitives.cpp, source/common/x86/mc-a.asm, source/encoder/motion.cpp: use x264 pixel average assembly routines for bidir and lowres QPEL This required adding a weight parameter and re-ordering arguments. Bidir might eventually use the weighting feature so this didn't seem like a bad trade-off. This commit naively pulls in all of mc-a.asm from x264 for just this one set of assembly functions. [84d0f4f907f7] * source/encoder/motion.cpp: motion: use new pixelavg_pp primitive for lowres QPEL pixel generation [7976c35f5b76] * source/encoder/motion.cpp: motion: remove NULL checks prior to X265_FREE calls [cb6b3038a1e6] * source/common/x86/CMakeLists.txt: cmake: add ASM files to MSVC solution so they are easily edited this has no effect on the build [4ee217cd64cc] 2013-10-04 Shazeb Nawaz Khan * source/common/vec/pixel.inc, source/common/vec/pixel8.inc, source/test/pixelharness.cpp: Fix for Testbench fail in weightpUni for Pixel input [e1404a7a05b0] * source/Lib/TLibCommon/TComWeightPrediction.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/vec/pixel.inc, source/test/pixelharness.cpp: Using int16_t rather than uint16_t in weightpUni primitive; inputs can be signed [491996e415b0] 2013-10-04 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: rc : bug fix for quality drop with larger number of frame threads. [b960d808d0be] 2013-10-04 Dnyaneshwar * source/common/vec/blockcopy-sse3.cpp: Replace "pixeladd_ss" vector class function with intrinsic. Performance measured is same as that of vector function. [cfc69c57d335] * source/common/vec/blockcopy-sse3.cpp: replace "pixelsub_sp" vector class function with intrinsic. Performance is same as that of vector function. [1a884afb63bb] * source/common/vec/blockcopy-sse3.cpp: replace blockcopy_s_p (pixel to short) vector class function with intrinsic. Performance is same as that of vector class function. [5b7226f332be] * source/common/vec/blockcopy-sse3.cpp: replace block_copy_p_s (short to pixel) vector class function with intrinsic. Performance measured is same as that of vector function. [64325084bd3b] * source/common/vec/blockcopy-sse3.cpp: replace block_copy_p_p vector class function with intrinsic code. Performance is almost same as that of vector function. [7b93c1cae0c4] 2013-10-04 Steve Borho * source/common/vec/pixel-sse41.cpp, source/common/vec/pixel8.inc: pixel: move SSE4.1 functions from pixel8.inc to pixel-sse41.cpp [8829b508822b] 2013-10-04 yuvaraj * source/common/vec/pixel8.inc: Replace sad_x4_64 vector class function with intrinsic. [d59dcf48b9de] * source/common/vec/pixel8.inc: Replace sad_x4_48 vector class function with intrinsic. [d370697071ed] * source/common/vec/pixel8.inc: Replace sad_x3_64 vector class function with intrinsic. [6dcae4946fe3] * source/common/vec/pixel8.inc: Replace sad_x3_48 vector class function with intrinsic. [c29821f80cd3] * source/common/vec/pixel8.inc: Replace sad_64 vector class function with intrinsic. [4f990ec05dc5] * source/common/vec/pixel8.inc: Replace sad_48 vector class function with intrinsic. [88378feb4794] 2013-10-04 Deepthi Devaki * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: remove unused code [a201bc951e10] * source/Lib/TLibEncoder/TEncSearch.cpp: Bidir ME: store bits required for bidir which will be used for merge estimation [5b987ed0a557] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: fix for gcc warning [ae9c68edd6b2] 2013-10-04 Steve Borho * source/common/vec/pixel.inc, source/common/vec/pixel16.inc: pixel: remove 16bpp vector class satd functions They were not competitive with assembly and were unlikely to be competitive as intrinsics [bf14f75b8cf9] * source/common/vec/pixel-avx2.cpp, source/common/vec/pixel-sse3.cpp, source/common/vec/pixel-sse41.cpp: pixel: comment nits [1dd953bba5ed] * source/common/vec/pixel-sse3.cpp: pixel: move vector class include to bottom of the file the clearly segregates vector class primitives from intrinsic primitives [cfe01e12b04f] * source/common/vec/pixel-sse41.cpp, source/common/vec/pixel8.inc, source/common/vec/sse.inc: pixel: move SSE4.1 intrinsic primitives into pixel-sse41.cpp [9794528eef7b] * source/common/vec/pixel-sse3.cpp, source/common/vec/pixel.inc, source/common/vec/pixel8.inc: pixel: move SSE3 intrinsic primitives into pixel-sse3.cpp This improves compile time slightly [4d00380f0da0] * source/common/vec/CMakeLists.txt, source/common/vec/pixel-ssse3.cpp, source/common/vec/pixel.inc, source/common/vec/pixel8.inc, source/common/vec/vec-primitives.cpp: cmake: move SSSE3 routines into pixel-ssse3.cpp [4018a2281c9c] 2013-10-03 Steve Borho * source/common/vec/pixel.inc, source/common/vec/pixel8.inc: pixel: cleanup pixel.inc Remove copy of C primitive transpose Move 8bpp-only functions to pixel8.inc cleanup setup function [64886382abe2] * source/common/vec/CMakeLists.txt, source/common/vec/pixel-xop.cpp, source/common/vec/vec-primitives.cpp: cmake: drop pixel-xop.cpp Now that there are very few vector class intrinsics left, there is almost no point to compiling pixel.inc with the XOP flag enabled. This saves compile time. It's setup function wasn't even being called. [9091bdd024b1] * source/common/vec/pixel-avx2.cpp, source/common/vec/pixel8.inc: pixel: move avx2 functions into pixel-avx2.cpp [b08fb0b5de8a] 2013-10-03 Dnyaneshwar * source/common/vec/pixel8.inc: replace sad_x4_32 vector class function with intrinsic. [93c4e5d784d7] * source/common/vec/pixel8.inc: replace sad_x4_24 vector class function with intrinsic. [d92ccc92698e] * source/common/vec/pixel8.inc: replace sad_x4_12 vector class function with intrinsic. [86e702079865] * source/common/vec/pixel8.inc: replace sad_x3_32 vector class function with intrinsic. [489fac4bebfe] * source/common/vec/pixel8.inc: replace sad_x3_24 vector class function with intrinsic. [ea4f5cb0799f] * source/common/vec/pixel8.inc: replace sad_x3_12 vector class function with intrinsic. [7b8c822b884e] * source/common/vec/pixel8.inc: replace sad_32 vector class function with intrinsic. [fbc82a9e97e7] * source/common/vec/pixel8.inc: replace sad_24 vector class function with intrinsic. [0b19614fe2bf] * source/common/vec/pixel8.inc: replace sad_12 vector class function with intrinsic. [c96520dc9795] 2013-10-03 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: remove methods unreachable after bidir replacement [86469b2bc1bd] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/common/common.cpp, source/x265.h, source/x265opts.h: api: remove dead bipredSearchRange parameter and CLI option [97444bf3e5bd] 2013-10-03 Deepthi Devaki * source/Lib/TLibEncoder/TEncSearch.cpp: Bidir ME: add (0,0) candidate [99812ad37453] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp: Bidir ME: new logic adapted from x264 L0 and L1 MVs from unidir ME used for bidir MV. bidir cost is calculated from the average of references. [a6a0e6e90536] * source/common/pixel.cpp, source/common/primitives.h: primitives: add pixelavg primitive [3a2297992a24] 2013-10-03 Gopu Govindaswamy * source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComBitStream.h, source/Lib/TLibEncoder/NALwrite.cpp, source/common/common.h: Tcombitstream: Encoded Bit stream storage (fifo) moved from std::vector to Non STL Class 1.Removed std::vector Class from Tcombitstream 2.Removed std::search_n algorithm from Tcombitstream 3.Implemented fifo using Pointers to an array - Encoded Bit stream storage [2d04a0bb09c3] 2013-10-03 Sumalatha Polureddy * source/encoder/compress.cpp: no rdo: Turn OFF the early exit code Turning off the early exit code since it increases the bitrate by 2% This will be enabled when the hash mismatch issue is solved for the reuse of NxN calculataion in early exit code [3e24e1081c16] 2013-10-01 Shazeb Nawaz Khan * source/common/reference.cpp, source/common/reference.h: reference: add applyWeight method to MotionReference to generate weighted full pel pixels for one or more CTU rows [4f68ed1126b6] 2013-10-02 Shazeb Nawaz Khan * source/Lib/TLibCommon/TComWeightPrediction.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/vec/pixel.inc, source/common/vec/pixel8.inc, source/test/pixelharness.cpp, source/test/pixelharness.h: primitives: weightUnidir primitive to support pixel or uint16 inputs [2c73823af522] 2013-10-01 Steve Borho * source/common/primitives.cpp: primitives: shorten log message to prevent 80char terminal wrap [0be80d41c551] * source/common/common.cpp: common: tighten up tool descriptions; save horizontal space [41aa8e024102] 2013-10-01 Aarthi Thirumalai * source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/encoder/encoder.cpp, source/x265.cpp, source/x265.h: api: added x265_stats_t structure and x265_encoder_stats() function [c5dc3e37d767] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: added states for storing ssim values per frame and globally at encoder level [572ddbf8428e] 2013-10-01 Shazeb Nawaz Khan * source/Lib/TLibCommon/TComPicYuv.cpp, source/common/reference.cpp, source/common/reference.h: Adding few checks and an init() function in MotionRefrence class to properly signal malloc failure for 'fpelPlane'; handling to be added later [b1900856741c] * source/x265opts.h: Enable cli parameters for unidirectional weighted prediction As part of re-enabling unidirectional weighted prediction after introduction of frame parallelism [c94c053eda36] 2013-09-30 Min Chen * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/cturow.h, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp: get deterministic output when frame threading is enabled (for all -Fn, n > 1) Output mistake reasons: 1. CABAC Table Initialize The HM have decide best table for CABAC, but in frame parallelism, we can't get this information before thread start, we have to disable it now. Side effect: maybe lost some compress performance 2. SAO Global Disable The HM decide SAO global disable flag depend previous same type of slice. but here, we can get right statistics informat before start, so we have to disable it. Side effect: more computer cost since we always try SAO on every LCU 3. CABAC status m_frac not reset. This HM bug still alive, we found more here. [af559fe3e565] 2013-09-30 Steve Borho * source/test/pixelharness.cpp: pixelharness: always use STRIDE for source buffers Because they are allocated based on that dimension and the max iterations [a03659cfa957] * source/common/vec/blockcopy-sse3.cpp: blockcopy: fix missing stride checks [25f8402ad767] * source/common/x86/asm-primitives.cpp: asm: use named defines rather than hard-coded values [1206434af474] 2013-09-27 Steve Borho * source/common/x86/ipfilter8.asm: ipfilter: remove needless width==0 check [3dae8ff2902a] 2013-09-27 praveen Tiwari * source/common/x86/CMakeLists.txt, source/common/x86/asm- primitives.cpp, source/common/x86/ipfilter8.asm: asm code for ipfilterH_pp, 4 tap filter [d65224005524] 2013-09-28 Aarthi Thirumalai * source/common/common.cpp, source/x265.h, source/x265opts.h: cli: add options for toggling PSNR and SSIM metrics (currently inactive) By default (for now) PSNR is turned on, SSIM is off. [21307df78bdb] 2013-09-28 Steve Borho * source/common/common.h: common: white-space nit [55edc34e253c] * source/common/common.h: common: directly call x265_malloc from CHECKED_MALLOC, fix malloc size problem [1ce1e18ee05c] 2013-09-27 Steve Borho * source/common/vec/intra-sse3.cpp: intra: fix eoln damage [4014edcf2157] 2013-09-26 Steve Borho * source/common/primitives.cpp, source/test/testbench.cpp: primitives: build primitive list iteratively Rather than collect all intrinsic primitives and then collect all assembly primitives, do the process iteratively for each CPU capability. This plausibly allows an SSE41 intrinsic primitive to have higher priority than an SSE assembly primitive. [93319ce8bb92] * source/common/primitives.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/test/testbench.cpp: primitives: convert Setup_Assembly_Primitives to a CPU mask instead of ID This allows the testbench to isolate the functions added for a given arch [9cdf05d40249] * source/common/primitives.cpp, source/common/primitives.h, source/common/vec/vec-primitives.cpp, source/test/testbench.cpp: primitives: convert Setup_Vector_Primitives to a CPU mask instead of ID This allows the testbench to isolate the functions added for a given arch [19e1d1c80268] 2013-09-27 Steve Borho * source/common/vec/intra-sse3.cpp: intra: re-enable __forceinline for MSVC to recover perf of angular predictions [6f85cb3f7813] * source/common/vec/intra-sse41.cpp: intra: remove redundant intra angular prediction functions [cdda742b1e83] * source/common/vec/intra-sse41.cpp: intra: remove redundant 16bpp angular prediction code [f8106e88f5e3] * source/common/vec/vec-primitives.cpp: vec: prevent link errors on older compilers, do not try to call missing funcs [28febb6e52f0] * source/common/vec/intra-sse41.cpp: intra: merge consecutive 8bpp regions and remove dead code [e9fcfa1df742] * source/common/vec/intra-sse41.cpp: intra: remove redundant planar primitives [b8fa74815587] 2013-09-26 Steve Borho * source/common/vec/intra-sse41.cpp: intra: remove redundant copy of intra_pred_dc [dfac2c1c4c64] * source/common/vec/vec-primitives.cpp: vec: add missing call to Setup_Vec_IPredPrimitives_sse3() [94c1079648a8] * source/common/vec/ipfilter-ssse3.cpp: ipfilter: don't use 8bpp primitives for 16bpp builds [99be942b3855] * source/common/vec/blockcopy-avx2.cpp, source/common/vec/dct- ssse3.cpp: vec: prevent unreferenced parameter warnings for 16bpp builds [7f168ba0e444] * source/common/vec/intra-sse41.cpp: intra: remove unused extern [0607ecb8adef] * source/encoder/motion.cpp: motion: fix shadow warnings [008903846fb1] 2013-09-25 Steve Borho * source/common/vec/CMakeLists.txt, source/common/vec/avx2.cpp, source/common/vec/sse3.cpp, source/common/vec/sse41.cpp, source/common/vec/ssse3.cpp, source/common/vec/vec-primitives.cpp, source/common/vec/xop.cpp: combine per-architecture files into vec-primitives.cpp [1058aa043e5e] * source/common/vec/CMakeLists.txt, source/common/vec/pixel.inc, source/common/vec/utils.h: inline utils.h into the last place it is included [2e2f773dff36] * source/common/vec/CMakeLists.txt, source/common/vec/avx.cpp, source/common/vec/pixel-avx.cpp, source/common/vec/pixel-ssse3.cpp, source/common/vec/ssse3.cpp, source/common/vec/vec-primitives.cpp: remove ssse3 and avx pixel files, which makes avx.cpp redundant [74efcc344e32] * source/common/vec/CMakeLists.txt, source/common/vec/avx.cpp, source/common/vec/avx2.cpp, source/common/vec/ipfilter-avx.cpp, source/common/vec/ipfilter-avx2.cpp, source/common/vec/ipfilter- sse3.cpp, source/common/vec/ipfilter-sse41.cpp, source/common/vec /ipfilter-ssse3.cpp, source/common/vec/ipfilter-xop.cpp, source/common/vec/ipfilter.inc, source/common/vec/ipfilter16.inc, source/common/vec/ipfilter8.inc, source/common/vec/sse3.cpp, source/common/vec/xop.cpp: split ipfilter.inc into ssse3 and sse41 CPP files [953172b04f19] * source/common/vec/CMakeLists.txt, source/common/vec/avx.cpp, source/common/vec/avx2.cpp, source/common/vec/intra-avx.cpp, source/common/vec/intra-avx2.cpp, source/common/vec/intra-sse3.cpp, source/common/vec/intra-sse41.cpp, source/common/vec/intra- ssse3.cpp, source/common/vec/intra-xop.cpp, source/common/vec/intrapred.inc, source/common/vec/ssse3.cpp, source/common/vec/xop.cpp: split intrapred.inc into sse3 and sse41 CPP files [cad4970ef197] * source/common/vec/CMakeLists.txt, source/common/vec/avx.cpp, source/common/vec/avx2.cpp, source/common/vec/dct-avx.cpp, source/common/vec/dct-avx2.cpp, source/common/vec/dct-sse3.cpp, source/common/vec/dct-sse41.cpp, source/common/vec/dct-ssse3.cpp, source/common/vec/dct-xop.cpp, source/common/vec/dct.inc, source/common/vec/xop.cpp: split dct.inc into sse3, sse41, ssse3 CPP files [6b0a78ffaaa9] 2013-09-26 Steve Borho * source/common/vec/blockcopy-sse3.cpp: blockcopy: fix INSTRSET define for SSE3 [c47e5c9d89f4] 2013-09-25 Steve Borho * source/common/vec/CMakeLists.txt, source/common/vec/avx.cpp, source/common/vec/avx2.cpp, source/common/vec/blockcopy-avx.cpp, source/common/vec/blockcopy-avx2.cpp, source/common/vec/blockcopy- sse3.cpp, source/common/vec/blockcopy-sse41.cpp, source/common/vec /blockcopy-ssse3.cpp, source/common/vec/blockcopy-xop.cpp, source/common/vec/blockcopy.inc, source/common/vec/sse3.cpp, source/common/vec/sse41.cpp, source/common/vec/ssse3.cpp, source/common/vec/vecprimitives.inc, source/common/vec/xop.cpp: merge blockcopy.inc into blockcopy-sse3.cpp and -avx2.cpp This is the first step towards four goals: 1 - reduce compile time, no more redundant primitive compiles 2 - reduce redirections / templating of intrinsic primitives 3 - move away from vector class library's INSTRSET CPU level define 4 - make the test bench faster, only validate each primitive once [baaefda928fa] 2013-09-26 Deepthi Devaki * source/encoder/dpb.cpp: Force numPics in RPS <= maxDecPicBuffering - 1 because maxDecPicBuffering is now set to numReferences+1 [7bbdd9cb086f] 2013-09-25 Shazeb Nawaz Khan * source/common/common.cpp, source/encoder/dpb.h, source/encoder/encoder.cpp, source/x265.h, source/x265opts.h: Added support for multiple references Added a commandline parameter '--ref '. DPB size adjusted to use number of references. [0dbfb0bbca1a] 2013-09-25 Steve Borho * source/common/common.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp: Merge with stable [a66a677b65b4] 2013-09-25 Min Chen * source/common/vec/ipfilter8.inc: Avoid VS2008 X64 compiler bug [fb4e4dfdb841] * source/common/vec/ipfilter8.inc, source/encoder/motion.cpp, source/encoder/motion.h: Merge HPEL interpolations with the same HPEL offsets In the square1[9], the candidate HPEL offsets are: 5 1 7 3 x 4 6 2 8 The main idea is two HPEL distances makes one FPEL so we can merge 1-2, 3-4, 5-6, and 7-8 into one interpolation each by adding 1 extra row/col to the interpolation [5768db8ac355] 2013-09-25 Steve Borho * source/encoder/encoder.cpp: encoder: range check number of NAL units [d514d8685797] 2013-09-25 Min Chen * source/common/common.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp: fix hash mistake from --sao-lcu-opt=0 --frame-threads 2 Delay all deblock and SAO until the entire frame is available. Frame SAO and frame parallelism will now generate correct results, but it will have very poor performance, so the hard check is relaxed to a warning. [2d77d4a2c31b] 2013-09-25 Steve Borho * source/encoder/encoder.cpp: encoder: disable lookahead for all-intra encodes This works around a bug in the current Lookahead::slicetypeDecide(). I have a patch in the works which fixes this properly, but I think this is a reasonable workaround. Tested with ABR and it works ok. [b8658deb4a77] 2013-09-25 Gopu Govindaswamy * source/Lib/TLibCommon/NAL.h, source/Lib/TLibEncoder/NALwrite.cpp, source/Lib/TLibEncoder/NALwrite.h: NAL: Remove unused NALUnitEBSP functions Removed the unused NALUnitEBSP(OutputNALUnit& nalu) and copyNaluData() methods from NAL [4d0ced5c64fe] * source/Lib/TLibCommon/AccessUnit.h, source/Lib/TLibEncoder/TEncTop.h, source/common/CMakeLists.txt, source/encoder/frameencoder.h: Accessunit: Remove unused accessUnit class AccessUnit class derived from std template list, Accessunit class replaced with pointers to an array [bb88bbe34c95] 2013-09-24 Steve Borho * source/encoder/encoder.cpp: encoder: ensure returned NAL count matches output array size On CHECKED_MALLOC failure, m_packetData and/or m_nals will be NULL and thus the returned count must be 0. Also, do not free the packet data from within this utility function. It is cleaner to release that memory in the function which declared the pointers on the stack. [bdd26fd0325a] * source/encoder/frameencoder.cpp: frameencoder: do not cause deadlock on malloc fail [bb5d3e9aadc3] * source/Lib/TLibEncoder/TEncTop.cpp: TEncTop: prevent divide by zero if no frames were output by stream [ae6d6584b193] 2013-09-24 Gopu Govindaswamy * source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: encoder: do not use std::list for the class AccessUnit [d62d31ea1520] * source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComBitStream.h: bitstream: remove unused std::vector class code [235726d72281] 2013-09-24 Steve Borho * source/encoder/slicetype.cpp: Merge with stable [dec0309ec94c] * .hgtags: Added tag 0.4.1 for changeset 93707bc4fccd [ddb7abf83f98] * source/common/vec/CMakeLists.txt: cmake: ignore icpc warnings about EMMS from pixelcmp primitives [93707bc4fccd] [0.4.1] * source/encoder/slicetype.cpp: slicetype: fix variable shadow warning [3a77059e1ebf] 2013-09-24 Min Chen * source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp: Reset CABAC status to get same output between single and multi threading [fe00fb449af4] 2013-09-24 Deepthi Nandakumar * source/common/CMakeLists.txt: Merge with stable [a8f6f62217d5] * source/common/CMakeLists.txt: MinGW: build fix for common.cpp [f56cd5c652ef] 2013-09-24 Steve Borho * source/encoder/slicetype.cpp: Merge with stable [c56e392b2c68] 2013-09-24 sumalatha polureddy * source/encoder/ratecontrol.cpp: RateControl : Bug fix when previous estimated frame cost is zero [2824b8e732e9] 2013-09-23 Steve Borho * source/common/common.cpp: common: prevent an API race hazard The public API should be thread-safe for a given encoder or param object (they are distinct data structures). However x265 has a small number of global vars that are configured on first use and must be the same for all encoders in the same process (max CTU size and pixel bit-depth). Using an atomic compare-and- swap here prevents simultaneous encoder creations from violating those rules. [3ee2a8a2d852] * source/common/common.cpp: common: rename CONFIRM macro to CHECK The logic of the macro is: if (expr) fail So CONFIRM is highly misleading [15ab448f1607] 2013-09-20 Gopu Govindaswamy * source/Lib/TLibCommon/NAL.h, source/Lib/TLibEncoder/NALwrite.h, source/common/common.h, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp: frameencoder: use CHECKED_MALLOC in getStreamHeaders() [886a765eb760] 2013-09-24 Steve Borho * source/encoder/slicetype.cpp: lowres intra fixes [46cc93c497c5] 2013-09-23 Steve Borho * doc/intra/T16.TXT, doc/intra/T32.TXT, doc/intra/T4.TXT, doc/intra/T8.TXT, doc/intra/intra-16x16.txt, doc/intra/intra- 32x32.txt, doc/intra/intra-4x4.txt, doc/intra/intra-8x8.txt: rename intra docs, switch to unix eoln [ad7866811610] * build/README.txt, build/regression/commandlines-example.txt, build/regression/config-example.txt, build/regression/email-csv.py, doc/uncrustify/apply-to-all-source.py, doc/uncrustify/codingstyle.cfg, source/Lib/README.txt, source/VectorClass/README.txt, source/VectorClass/vectorclass.h, source/VectorClass/vectori128.h, source/VectorClass/vectori256.h, source/VectorClass/vectori256e.h: use unix EOLN for all non-bat files [a194cf5486e7] * .hgignore, doc/uncrustify/drag-uncrustify.bat, doc/uncrustify/uncrustify.bat, doc/uncrustify/uncrustify.exe: prune uncrustify.exe; ignore any executable copied into that folder uncrustify.bat was unused, so it was also removed [0600e707b254] * doc/README_data-structure.ppt, doc/software-manual.pdf: remove binary documentation files leftover from HM source tree [46f25d98c8b2] * doc/astyle/AStyle.exe, doc/astyle/apply-to-all-source.py, doc/astyle /astyle-config.txt, doc/astyle/drag-astyle.bat: remove obsolete astyle scripts and tools [fa07f9e00dcb] * source/common/lowres.cpp: lowres: fixup bad merge/patch re-import [a2d7412377dd] * source/encoder/encoder.cpp: encoder: explicitly disable AMP if rectangular modes are disabled In the mode decision logic, asymmetrical motion prediction is implicitly disabled when rectangular modes are disabled. This makes the disabling more explicit, AMP will not appear as enabled in the "encoding tools" log line. [0656b16f0c4a] 2013-09-23 Min Chen * source/common/vec/ipfilter8.inc: Replace (maskmovq) by (blendvb + movq) [98903821e0dc] * source/common/vec/ipfilter8.inc: Replace combo padd(32)+psra(6) by pmulhrsw [017743def32e] 2013-09-23 Steve Borho * source/common/lowres.cpp: lowres: remove NULL pointer checks, x265_free does this internally [d6082fcfc3dd] * source/common/lowres.cpp: lowres: white-space nits and minor cleanup [b877bb01f231] * source/common/lowres.cpp: Merge with stable [500686c60c97] 2013-09-23 Shazeb Nawaz Khan * source/common/lowres.cpp: Adapting lowress frame dimensions to multiples of lowress CU size. The full res frame is required to be extended accordingly to achieve a lowres frame with dimensions in multiples of lowres CU size. [90be63021e7d] 2013-09-23 Deepthi Devaki * source/common/lowres.cpp: lowres: bug fix - move initialization from create() to init() lowres objects are reused, hence they should be re-initialized. [bba314600ed0] 2013-09-23 Shazeb Nawaz Khan * source/common/lowres.cpp: Adapting lowress frame dimensions to multiples of lowress CU size. The full res frame is required to be extended accordingly to achieve a lowres frame with dimensions in multiples of lowres CU size. [4b794e2ffcb4] 2013-09-20 Steve Borho * source/encoder/encoder.cpp: encoder: hoist declaration of offset var to fix GCC goto warnings, avoid casts [ff797c5087ae] * source/encoder/encoder.cpp: encoder: white-space fixes [7291eaa504d2] * source/encoder/encoder.cpp: encoder: remove NULL checks prior to X265_FREE, which does its own [9dce39147a94] * source/encoder/encoder.cpp: encoder: fix indentation of extract_naldata [1a1752129829] * source/CMakeLists.txt: cmake: force creation of ENABLE_PRIMITIVES_ASM option for all yasm versions [2a00fe5b8a1c] * Merge with stable [d6494dd903f6] 2013-09-20 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: Bug Fix - copy last Recq value to thread local rce object Missed this out in previous patch. [1311936ef9cf] 2013-09-19 Steve Borho * source/CMakeLists.txt: cmake: fix auto-link issues with MSVC If you tell MSVC to link with the static lib, the dependencies somehow fail and x265.exe is not re-linked properly when the static lib is changed. [d47ef13cb735] 2013-09-20 Steve Borho * source/encoder/encoder.cpp: encoder: style nits, no logic change [e672b5f15e9c] 2013-09-20 Gopu Govindaswamy * source/encoder/encoder.cpp: encoder: Do not use X265_MALLOC use CHECKED_MALLOC Currently X265_MALLOC did't validate the returned pointer, CHECKED_MALLOC Always validate the returned pointer and print the Log message and jumps to fail lable if returned pointer is not valid, [af8daa6c720b] * source/common/common.cpp, source/common/common.h: common: add CHECKED_MALLOC macro that logs malloc failures and jumps to fail label [678ae6e4f3fd] 2013-09-20 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: Bug Fix - copy last Recq value to thread local rce object Missed this out in previous patch. [de084699ba00] 2013-09-19 Steve Borho * source/encoder/slicetype.cpp: slicetype: fix shadow warning reported by GCC [20d8fa0541d8] * source/CMakeLists.txt: cmake: fix auto-link issues with MSVC If you tell MSVC to link with the static lib, the dependencies somehow fail and x265.exe is not re-linked properly when the static lib is changed. [73a710b6d1c1] * source/common/CMakeLists.txt: cmake: use explicit file list for HM TLibCommon files [6aea8272dcd8] * source/encoder/CMakeLists.txt: cmake: use explicit file list for HM TLibEncoder files This prevents issues when HM files are deleted; we simply remove them from this list and then CMake automatically regenerates projects or Makefiles. With globs, you have to know to poke CMake to regenerate the files, but most do not know this. [bd1d4bdc996e] * source/common/common.cpp: common: white-space logging nit [00429bb81ef7] * source/common/common.cpp: common: improve logging string for lookahead configuration - conveys more info [233046035a5f] * Merge with stable [5c6c9c095cb8] * .hgtags: Added tag 0.4 for changeset 2ba6ec553f21 [85219cda3127] * source/encoder/slicetype.cpp: slicetype: respect --bframes count when --b-adapt is 0 --b-adapt 0 --bframes 3 => IPBBBPBBBPBBB --b-adapt 0 --bframes 4 => IPBBBBPBBBBPBBBB This is a stop-gap feature until --b-adapt 1 and 2 are fully functional [2ba6ec553f21] [0.4] * source/encoder/slicetype.cpp: slicetype: remove x265_ prefix from internal functions These were adapted from x264 functions, and the prefix was incorrectly preserved [4c97a2025103] * build/linux/batch.py, source/Lib/TLibCommon/SEI.cpp: Merge with default [9d97cddc0fac] 2013-09-20 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: tuned up ABR logic to better adapt for frame parallelism Rate control needs to be more aggressive based on actual ecoded bits cost rather than estimated costs from concurrent threads .Tuned up some parameters to effect this idea. [395bf0a490c2] 2013-09-19 Aarthi Thirumalai * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: RateControl bug fixes for frame parallelism 1. Added lastRceq in ratecotrol structure and copied the value into thread local rate control entry obj so that Bframes can get latest lastRceq value. 2. Added framesDone state - to maintain a serial order of frames in RateCotrol to get a correct estimate of wantedBits. [d62c413b3c06] 2013-09-19 Steve Borho * source/x265.cpp: cli: use strerror to report signal error [82aceba785f0] * source/Lib/TLibEncoder/TEncTop.cpp: top: fix leak of output NALs on CTRL+C aborts [e50237973977] 2013-09-18 Steve Borho * source/Lib/TLibCommon/SEI.cpp, source/Lib/TLibCommon/SEI.h: sei: remove unused SEIMessages type define After this, and after AccessUnit is replaced with a simple pointer array, TComList is the only type derived from std::list, so we would no longer need a templated list class. TComList could be replaced with a simple list class that suits our exact needs. This also removes another HM file [53c551867006] * source/common/common.cpp, source/x265.cpp, source/x265.h: api: introduce an x265_picture_init() function [7f069c6e6b89] * source/Lib/TLibEncoder/TEncTop.cpp, source/common/lowres.cpp, source/common/lowres.h, source/encoder/slicetype.cpp, source/encoder/slicetype.h: lowres: pass poc and user slice type to lowres::init() [14af4e13ab66] * source/common/lowres.h: lowres: group fields by type, remove trailing white-space [f646ebe0b520] * source/common/lowres.cpp, source/common/lowres.h, source/encoder/dpb.cpp, source/encoder/slicetype.cpp: lowres: change int keyframe to bool bKeyframe [f5a6b908037c] * source/common/lowres.cpp, source/common/lowres.h, source/encoder/slicetype.cpp: lowres: change int scenecut to bool bScenecut [8df58890ff0b] 2013-09-19 Min Chen * source/encoder/framefilter.cpp, source/encoder/framefilter.h, source/x265.cpp: framefilter: allow SAO to be disabled independently of deblock filter [7b26e7c0bf88] 2013-09-19 Steve Borho * source/x265.cpp: cli: fix memory leaks on early exits [bc1a28d6f187] * source/common/common.cpp: sao: prevent picture based SAO to be used in combination with frame threading [12db8e96402b] 2013-09-19 Deepthi Devaki * source/encoder/slicetype.cpp: lookahead: fix crash for I frame cost estimation [e51ecfcabcaa] 2013-09-19 Deepthi Nandakumar * source/test/intrapredharness.cpp, source/test/ipfilterharness.cpp, source/test/mbdstharness.cpp, source/test/pixelharness.cpp, source/test/testbench.cpp, source/test/testharness.h: testharness cleanup: Testharness uses the same malloc/free wrapper as the rest of the encoder. Aligned mallocs in testharness use the wrapper (X265_MALLOC/FREE) defined in CommonDef.h. Remove alignedMalloc/Free definitions in the test class. [eea9154229a0] 2013-09-18 Steve Borho * source/encoder/slicetype.cpp: slicetype: fix bug in intra estimation in Lookahead::estimateCUCost() # HG changeset patch # User Steve Borho # Date 1379538813 18000 # Wed Sep 18 16:13:33 2013 -0500 # Node ID 5bab261d0dd7ac68c4af3837853d48d56017d4d6 # Parent 197dd6d2f54d7193d7dcf28d03a0b3dccb353fad slicetype: fix bug in intra estimation in Lookahead::estimateCUCost() [26d6f155f8df] * source/common/common.cpp, source/x265.h: white-space and comment nits [2531c630739e] * source/x265.cpp: cli: report errors from registering signal handler [197dd6d2f54d] * source/Lib/TLibEncoder/TEncSbac.h: TEncSbac: remove exit() calls from unsupported functions [ded83381f219] * source/Lib/TLibEncoder/TEncTop.cpp: TEncTop: replace debugging exit() call with abort(), use x265_log [4b3ff29d661d] * source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/common/wavefront.cpp, source/encoder/bitcost.cpp, source/input/y4m.cpp, source/input/yuv.cpp, source/output/y4m.cpp, source/output/yuv.cpp, source/test/testpool.cpp: do not check for NULL prior to delete, do not reset pointers in destructors A lot of our classes have destroy() methods. In those we try to zero deleted pointers since there is a chance for multiple destroy() calls. But in destructors the pointer storage itself will be released when the function exits [d8d209de87c2] * source/x265.cpp: cli: use sig_atomic_t type for variable modified by SIGINT handler Other nits: * removed unused b_exit_on_ctrl_c * removed unnecessary static initializer [6b1982cfc05d] 2013-09-18 Deepthi Devaki * source/encoder/slicetype.cpp: lookahead: fix cost estimation, use previous result when calculation is skipped [f467c4792a28] 2013-09-17 Aarthi Thirumalai * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: ABR - Removed unused states, cleaned up the comments. Removed states that are not used in ABR or CQP rate contnrol modes. [d05f4310a976] 2013-09-18 Min Chen * source/encoder/frameencoder.cpp: frameencoder: disable filter/extend lag when SAO and deblocking are off This improves frame parallelism when all loop filtering is disabled (aka: benchmark mode) [d694a96b181c] 2013-09-18 Deepthi Nandakumar * source/encoder/slicetype.cpp: lookahead: change const bool to const int, so as to use it safely as a loop counter. [9d5d4e4e6d6c] 2013-09-17 Wenju He * source/input/y4m.cpp: fix allocation crash if input y4m file is not found [1dc07ca4c4ce] 2013-09-17 Min Chen * source/common/wavefront.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: Resolve some patching issues for previous patch (deadlock). [13531b8f19cc] 2013-09-17 funman * source/x265.h: [x265] [PATCH] library header: use #ifdef __cplusplus Remove a warning when using from C [1c66f40da3e9] 2013-09-16 Min Chen * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h: Use mixed bitmap between FrameEncoder and FrameFilter to Fix crash and hash mistake in WPP mode I change task schedult bitmap to mixed FrameEncoder and FrameFilter because there catch two bugs, and I want to reduce latency of Frame Parallelism. The new bitmap mapping 2N+0 to FrameEncoder and 2N+1 to FrameFilter. Side effect: 1. We can remove the lock from FrameFilter. 2. Mixed bitmap let us do Filter early, so reduce latency of Frame Parallelism Solved bugs: 1. CRASH: the reason is sometime two of threads finish in same time, so they will enter Filter in wrong order and sent Finished Event early. when main thread dequeue JobProvider and execute FrameFilter, we will catch a crash! 2. HASH MISTAKE: the reason is same as below, but last row is right order, we will got worng reconst image. [0d33ff236f68] 2013-09-16 Deepthi Nandakumar * source/common/common.cpp: CLI Options: reset x265_param_default to extern "C" [9a727efab9fa] * Merge [960dbe714209] * source/common/common.cpp, source/encoder/encoder.cpp, source/x265opts.h: CLI options: Eliminate rdoqts option; cleanup 1. Eliminate rdoqts CLI option: enabled when rdoq and ts are both enabled. 2. Rearrange default initialisations in x265_param_ t structure [46b065f7d676] * source/encoder/framefilter.cpp: framefilter: Fix memcpy for pel-pixel datatype change [881444f5910b] * source/encoder/framefilter.cpp: framefilter: Fix memcpy for pel-pixel datatype change [810ceb9d2b7c] 2013-09-16 Gopu Govindaswamy * source/Lib/TLibCommon/AccessUnit.h, source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/ContextModel.h, source/Lib/TLibCommon/ContextModel3DBuffer.h, source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComBitCounter.h, source/Lib/TLibCommon/TComBitStream.h, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComList.h, source/Lib/TLibCommon/TComLoopFilter.h, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TComWeightPrediction.h, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/NALwrite.h, source/Lib/TLibEncoder/SEIwrite.h, source/Lib/TLibEncoder/SyntaxElementWriter.h, source/Lib/TLibEncoder/TEncAnalyze.h, source/Lib/TLibEncoder/TEncBinCoder.h, source/Lib/TLibEncoder/TEncBinCoderCABAC.h, source/Lib/TLibEncoder/TEncBinCoderCABACCounter.h, source/Lib/TLibEncoder/TEncCavlc.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncTop.h, source/Lib/TLibEncoder/WeightPredAnalysis.h, source/common/TShortYUV.h, source/common/common.h, source/common/lowres.h, source/common/md5.h, source/common/mv.h, source/common/reference.h, source/common/threading.h, source/common/threadpool.h, source/common/wavefront.h, source/compat/msvc/getopt.h, source/encoder/bitcost.h, source/encoder/cturow.h, source/encoder/dpb.h, source/encoder/frameencoder.h, source/encoder/framefilter.h, source/encoder/motion.h, source/encoder/ratecontrol.h, source/encoder/slicetype.h, source/input/input.h, source/input/y4m.h, source/input/yuv.h, source/output/output.h, source/output/y4m.h, source/output/yuv.h, source/x265.h: X265: header guards format Changed to X265__H Globally all the x265 header files header guards format changed into X265__H [d09f36e4dc8b] 2013-09-13 sumalatha polureddy * source/encoder/ratecontrol.cpp: ratecontrol: Tweak to better handle short term compensation Increase the coefficient cplxrSum is adjusted by so that short term compensation does not suffer as much. Also, clip the QP for the first frame. Overall improvement is about 5%. [6bab41a554b3] 2013-09-13 Steve Borho * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: move threadMain() into cpp file [d0883c21fc7f] * source/encoder/slicetype.cpp: slicetype: increase baseline bframe bias by 10% Our estimateFrameCost() function is not yet checking bidir candidates (because bidir search in the main encoder needs to be replaced first) and since B frame estimates cannot use intra modes either this tends to make B frame scores relatively higher than what x264 finds. So our default bias needs to be a bit higher in order for the lookahead to select B paths. [2555acbc9736] * source/cmake/mergestaticlibs.cmake: cmake: whitespace cleanups in mergestaticlibs.cmake (should not change behavior) this file was borrowed from another project, and wasn't scrubbed for our cmake script style (no tabs, 4 spaces, unix eoln, lower case cmd names) [9c5a74cfacca] 2013-09-13 Derek Buitenhuis * source/cmake/mergestaticlibs.cmake: cmake: Don't rely on non-POSIX ar functionality Fixes build on stricter systems like FreeBSD. [8e7d559df1ac] * source/Lib/TLibEncoder/NALwrite.cpp: NALwrite: Include forgotten header Fixes build on Linux, where memcpy is not global. [32922922a332] 2013-09-13 Steve Borho * source/encoder/framefilter.cpp: ppa: remove redundant PPA event The PPAScopeEvent macro causes a bar to appear in our profiler with the given name, associated with the CPU core and start/stop time. The problem with this particular instance is that the function was copy-pasted from another in this file and this profile scope came along for the ride and since they both have the same name and one calls the other it is essentially a NOP [f98bfe09f806] * source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp: framefilter: comment cleanups, use pixel data type [a1e34874f642] * source/test/CMakeLists.txt: cmake: fix test bench builds following static lib reorg [4206091a6278] 2013-09-13 Deepthi Nandakumar * source/encoder/encoder.cpp: Encoder: Remove x265_ prefix from NAL data extract functions. [45786d093571] * source/encoder/encoder.cpp: Encoder: Factor out duplicated code in NAL data extraction [Gopu] [fc32e3804b8b] 2013-09-12 Gopu Govindaswamy * source/Lib/TLibCommon/NAL.h, source/Lib/TLibEncoder/NALwrite.cpp, source/Lib/TLibEncoder/NALwrite.h, source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp: NAL : std::ostringstream replaced [92b1820c3e42] 2013-09-12 Derek Buitenhuis * source/common/threading.h: threading: Include fcntl.h on POSIX systems This is where O_CREAT and O_EXCL are defined. [17d41a7563aa] 2013-09-11 Steve Borho * source/CMakeLists.txt: cmake: set MACOS build flag on mac builds (fixes CPU count detection) [8fdafe573ef7] * source/common/threading.cpp, source/common/threading.h: threading: use named semaphores for POSIX events Mac OS X does not support unnamed semaphores. It's not clear what the performance implications of this are on Linux (or Mac). Also, this method is not very robust. If x265 crashes, it leaves named semaphores in the system until the kernel is restarted. [d95d94ee0e1d] * build/linux/batch.py: build: remove obsolete test script [7a3699202860] * source/common/ipfilter.cpp: ipfilter: remove two unused file-static functions Xcode reported these as warnings; Xcode build is now 100% clean [2d59beb5c0f4] * source/common/x86/CMakeLists.txt: cmake: add Xcode hacks for YASM integration (is there a better way?) [dfda8ed7bbf4] * source/CMakeLists.txt: cmake: detect Xcode generator, avoid static lib failure [74d7078f9afe] * build/xcode/make-project.sh: cmake: add xcode build folder [881263c02cc2] 2013-09-12 Steve Borho * source/encoder/framefilter.cpp, source/encoder/framefilter.h: framefilter: prevent row filter overlap race hazards [463fc13419b9] 2013-09-11 Wenju He * source/Lib/TLibEncoder/TEncCu.cpp: check before delete [80c133ffdbef] 2013-09-12 Steve Borho * source/common/CMakeLists.txt, source/common/vec/CMakeLists.txt, source/common/x86/CMakeLists.txt, source/encoder/CMakeLists.txt: cmake: mark project libs as static [d4a8f6b92eb2] 2013-09-11 Steve Borho * source/CMakeLists.txt, source/common/CMakeLists.txt, source/encoder/CMakeLists.txt: cmake: link primitive projects into libx264 directly, not through common [d5ffa406e4fb] * build/icl32/build-all.bat, build/icl32/make-makefile.bat, build/icl64/build-all.bat, build/icl64/make-makefile.bat: cmake: detect and use ICL version 14 [11785c1be804] 2013-09-12 Deepthi Nandakumar * Merge [a9ad48de415e] * source/x265opts.h: cli: moving rd option description to rate distortion section. [25291305a3b9] * source/common/common.cpp, source/encoder/encoder.cpp, source/x265.h, source/x265opts.h: cli: replacing no-rdo and no-rdoq options with rd: 0 means nordo,nordoq. 1 means nordo,rdoq and 2 means rdo, rdoq. [52630a3de867] 2013-09-11 Deepthi Nandakumar * source/x265.h: cli: clarifying enum comment in No-RDO. [989980166bed] 2013-09-11 Steve Borho * source/CMakeLists.txt: cmake: quiet ICL warnings from STLport's use of pragmas [ea0aa1f8abda] 2013-09-11 Min Chen * source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp: framefilter: Make code clearer We do not need the row delay when the loopfilter is disabled. [ffbe50c2f743] 2013-09-11 Deepthi Nandakumar * source/encoder/compress.cpp: compress: fast-no-rdo is stable enough to be a part of regular no- rdo [a6bf1f10e820] * source/x265.h: cli: Add enum RDOLevel to list of rate distortion modes. [babfab4f36a8] 2013-09-11 Steve Borho * source/encoder/slicetype.cpp: slicetype: remove extra parens (Mac GCC reports this as a warning) [af8cddab103e] 2013-09-09 Steve Borho * source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/encoder/framefilter.h: framefilter: run filters synchronously at end of each row [4ec9253cc3c1] 2013-09-10 Steve Borho * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibEncoder/TEncTop.cpp, source/common/lowres.cpp, source/common/lowres.h, source/encoder/dpb.cpp, source/encoder/slicetype.cpp: lowres: don't use bframes member var to store allocation count x264 used a bframes variable here to hold the number of leading B frames encoded before an I or a P (I assume for rate control use) [6ca33594fbf3] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: clamp mvmin.y to reflag distance as well [e5b5277956a8] * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: ratecontrol: remove unused bframes (this was probably not the bframes you need) [90a4d668f833] * source/x265opts.h: cli: move fast-no-rdo next to the other rdo options [f241eedf1ae1] * source/CMakeLists.txt: cmake: generate libx265 unconditionally [21d8b3a825ad] * source/CMakeLists.txt: cmake: merge fixup [e27907038796] * source/encoder/compress.cpp: compress: remove unnecessary line (GCC warning) [e2123d174c7c] * source/CMakeLists.txt, source/input/CMakeLists.txt, source/output/CMakeLists.txt: Merge with stable [b7646217f425] * source/CMakeLists.txt: cmake: rename x265 project to cli, force output name to x265. use libx265.a [841aaa5fa2ec] * source/encoder/encoder.cpp: encoder: replace long with UInt [616f585fa646] 2013-09-10 Deepthi Nandakumar * source/encoder/compress.cpp: compress: different lambdas for P and B slices, no efficiency drop. [4cd9216dd366] * source/encoder/compress.cpp: compress: replace early exit macro with fast-no-rdo option [5c8ce4a2e9fc] * source/common/common.cpp, source/x265.h, source/x265opts.h: compress: Introducing option fast no-rdo, only when no-rdo mode is enabled. [cda8c3d1f83c] * source/encoder/compress.cpp: compress: Intra mode checked only in P frames [1c72e3fbd641] * source/encoder/compress.cpp: compress: Enabling early exit macro. [ab77d80491d8] 2013-09-09 Steve Borho * source/common/vec/ipfilter8.inc: ipfilter: remove unused maxVal variable [98f0f7dde384] * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/VectorClass/instrset.h, source/common/TShortYUV.cpp, source/common/common.h, source/common/pixel.cpp, source/common/threading.h: convert stdlib.h includes to to avoid namespace conflicts [cfd76423dbf4] * source/CMakeLists.txt, source/input/CMakeLists.txt, source/output/CMakeLists.txt: cmake: merge InputFiles and OutputFiles projects into cli project (simplicity) [60dec1deb894] * doc/LookaheadGuide.txt, doc/LookaheadPlan.txt, source/Lib/TLibCommon/TComCABACTables.cpp, source/Lib/TLibCommon/TComCABACTables.h, source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp, source/Lib/TLibCommon/TComRdCostWeightPrediction.h, source/Lib/TLibEncoder/AnnexBwrite.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncRateCtrl.cpp, source/Lib/TLibEncoder/TEncRateCtrl.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/common/vec/blockcopy- sse42.cpp, source/common/vec/dct-sse42.cpp, source/common/vec/intra- sse42.cpp, source/common/vec/ipfilter-sse42.cpp, source/common/vec /pixel-sse42.cpp, source/common/vec/sse42.cpp, source/encoder/encoder.h: merge default into stable; feature freeze [1efd146deeeb] * source/x265.cpp: cli: add version id into CSV output [d11de33521cf] * source/x265.cpp: cli: report global PSNR on summary line [0811d6c95e44] * source/common/common.cpp: common: fix lookahead check [48ab740e5c7f] * source/CMakeLists.txt: cmake: do not use -fPIC on MinGW64 [84e49ab6fef1] * source/CMakeLists.txt: cmake: fix eoln damage [a24a04441e5e] * source/CMakeLists.txt: cmake: add STLport build option [943ffb8b220c] * source/input/input.h, source/input/y4m.h, source/input/yuv.h, source/x265.cpp: stl: fix warnings/errors reported by STLport headers [96f8d46f9e13] * source/common/common.cpp: common: fix lookahead depth dependency [d8511336efdb] * source/encoder/slicetype.cpp: slicetype: disable lookahead for all-P frame runs [8859d7da393c] * source/common/common.cpp: common: enable -b3 by default to match x264 Use -b0 to get the previous all-P frame default behavior [7717f84c5cfa] * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: ratecontrol: remove rce member variable pointer Pass RateControlEntry to functions that need it. It was pretty misleading to pass in an argument named m_rce. [42c2c838d492] 2013-09-09 Deepthi Nandakumar * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: ratecontrol: move lastRceq and qpaRc to RateControlEntry(). [22ac6e8ca357] * doc/LookaheadGuide.txt, doc/LookaheadPlan.txt: Merge [76f1e04c897e] * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/frameencoder.h, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: ratecontrol: rateControlEntry is now a member of FrameEncoder. [a5087ca01ab8] 2013-09-09 Steve Borho * doc/LookaheadGuide.txt, doc/LookaheadPlan.txt: doc: remove obsolete planning docs [bc4a13c9017c] * source/encoder/slicetype.cpp: slicetype: enable lookahead by default. --b-adapt 0 or --rc- lookahead 0 disables [d3c9a535c21d] * source/x265opts.h: cli: add --b-adapt CLI option [176055b7fadd] 2013-09-08 Min Chen * source/encoder/framefilter.cpp: support diable both thread and lft/sao [f9150ab39bf9] * source/encoder/frameencoder.cpp: support both diable thread and lft/sao [4ace08e490a0] * source/encoder/framefilter.cpp, source/encoder/framefilter.h: simplify by processRowPost() [6882f7eb6c31] 2013-09-07 Steve Borho * source/encoder/motion.cpp: motion: subpel offsets table needs a 'no-motion' entry [1f8760fdc2d8] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: remove unused m_searchRange [08ed93aebcdc] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: remove unused m_searchMethod [72f6cfac517d] * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/common.cpp, source/encoder/motion.cpp, source/encoder/motion.h, source/encoder/slicetype.cpp, source/x265.cpp, source/x265.h, source/x265opts.h: api: add -m/--subme to adjust level of subpel refine This is very similar to x264, but ours has no effect on RD analysis, it only affects the amount of HPEL and QPEL refinement for motion estimation. [0f8c8a921d1b] * source/Lib/TLibCommon/TComPic.h, source/Lib/TLibEncoder/TEncTop.cpp, source/x265.cpp, source/x265.h: api: pass through a void* user data pointer through the encoder [dcc5e822fb05] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/encoder/cturow.h, source/encoder/frameencoder.cpp: cturow: move completed column counter back into CTURow class (from TComPic) [8e945ca22fd5] * source/x265.cpp: cli: initialize input picture slice type [507ad2b9aa37] * source/Lib/TLibEncoder/TEncTop.h: TEncTop: remove dead meathod declaration [836a1b2beb3f] * source/Lib/TLibEncoder/TEncTop.cpp: TEncTop: prevent deadlocks on CTRL+C aborts [e46a1ae90f30] * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/slicetype.cpp, source/encoder/slicetype.h: lookahead: do not leak pictures left in lookahead queues on abort [1fd36612d2a9] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/frameencoder.cpp: TComSlice: remove unused lambda variables [090e76ad93c9] * source/encoder/frameencoder.cpp: frameencoder: use a more refined depth for SAO [065ada6a83f7] * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/encoder/frameencoder.cpp: sao: fix a typo [b7afed5ff5c4] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/frameencoder.cpp: slice: finally remove slice 'depth' parameter, use slice type to approximate Instead of relying on a fixed depth cadence, apply all the high- depth hacks to only B slices. [ea196d10f05e] * source/encoder/encoder.cpp: log: concise is almost always better [d337394a2f86] * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp: TEncSampleAdaptiveOffset: remove hungarian prefixes [bc6e986c96cc] * source/encoder/frameencoder.cpp: frameencoder: update a TODO comment [aa958a34d2f5] * source/encoder/compress.cpp: compress: enable SSD based merge decisions for --no-rdo path [302f9fd4fb0c] * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp: compress: cleanups [791da0534bb7] 2013-09-07 Aarthi Thirumalai * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp: TEncCu: optimized merge routine xcomputeCostmerge2x2N [3198b82d6709] 2013-09-07 Steve Borho * source/common/common.cpp, source/encoder/encoder.cpp: log: combine all threading info into one log line [fd0c4026514b] 2013-09-07 Min Chen * source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp: framepp: Support NO-WPP + FrameParallelism Mode [a376aeeb9638] * source/Lib/TLibEncoder/TEncBinCoderCABAC.h, source/Lib/TLibEncoder/TEncSbac.h, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/encoder/framefilter.h: framepp: let sao use own context [c9fd5009e72a] 2013-09-07 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: remove broadcast methods, inline row initializations [57959ef033e4] * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: remove unused accessor methods, inline scaling list sets [19571e08f69e] * source/encoder/frameencoder.h: frameencoder: remove unused accessor methods [a7b6d9b86b4a] * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: inline resetEncoder [470884b53ec3] * source/encoder/frameencoder.h: frameencoder: improve comments [392e8ebaba0b] * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: nits [859f9b557938] * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: move lambda initialization into the frame worker thread [831882d2f600] * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/dpb.cpp, source/encoder/dpb.h: dpb: we don't need to pass the FrameEncoder to DPB::prepareEncode() [5e00016ee73b] * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: ratecontrol: avoid lookahead overhead for CQP [a027cdf5a6e6] * source/encoder/ratecontrol.cpp: ratecontrol: avoid some operations in CQP mode [282d9b666254] * source/encoder/ratecontrol.cpp: ratecontrol: remove redundant clip and double conversions [61f44f7895c7] 2013-09-07 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: ratecontrol: bug fix - qp for ABR cant exceed MAX_QP = 51 [fb9aa649c13e] 2013-09-06 Steve Borho * source/Lib/TLibEncoder/TEncTop.cpp: TEncTop: lookAheadCost is a somewhat confusing variable name [385c0b29be4f] * source/x265.cpp: cli: assign poc on input pictures (ignored by encoder, but good example) [ef0c1d6fbd26] * source/common/vec/vec-primitives.cpp: vec: simplify externs, fix MSVC compiler version dependencies [090407717725] * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncTop.cpp: TEncCfg: use param.decodedPictureHashSEI directly without accessor [84f9983a5de7] * source/Lib/TLibEncoder/TEncCfg.h, source/x265.h, source/x265opts.h: api: rename bEnableDecodedPictureHashSEI (not a bool) [381e8ea239cb] * source/Lib/TLibEncoder/TEncTop.cpp, source/x265.h: api: add sliceType to output pictures [79ade4825d33] * source/common/lowres.h, source/x265.h: api: move slice type macros to public API [1256b9f2678e] * source/x265.cpp: x265: nits [850a0ddfb3ae] * source/x265.cpp: x265: print unrecognized short options as char instead of hex [883098a93d61] * source/x265.cpp: x265: emit a warning message if a short option is invalid [5a14cf8e8a3b] * source/x265.cpp: x265: remove -w short option for disabled weightp command [e41fd1a98838] 2013-09-06 Deepthi Devaki * source/encoder/slicetype.cpp: slicetype: Handle Bframes immediately preceding an IDR correctly. [aaeeb869133d] * source/common/lowres.cpp, source/common/lowres.h, source/encoder/dpb.cpp, source/encoder/dpb.h, source/encoder/slicetype.cpp: Set all I frames as keyframes, change nalunittype decision accordingly. [d934cc573e08] * source/encoder/slicetype.cpp: slicetype: uncrustified [66b3f3b38e84] * source/encoder/slicetype.cpp: slicetype: B-frames analysis integrated [86603fe88df5] * source/encoder/slicetype.cpp: slicetype: Remove unnecessary initialization [9c4c2b1c7fe0] 2013-09-06 Min Chen * source/common/vec/ipfilter8.inc, source/test/ipfilterharness.cpp: review: improvement filterVertical_p_p and filterHorizontal_p_p [0f79f2f96170] 2013-09-06 Steve Borho * source/CMakeLists.txt: cmake: MSVC does not understand -fPIC [11e0362a9835] 2013-09-06 Rafaël Carré * source/CMakeLists.txt, source/cmake/CMakeASM_YASMInformation.cmake: Always use -DPIC/-fPIC when targetting x64 Fix link failure when making a shared object on Linux [ae8499191c12] 2013-09-06 Steve Borho * source/encoder/slicetype.cpp: slicetype: nits [63364b91b72a] 2013-09-06 Deepthi Devaki * source/common/lowres.cpp, source/encoder/slicetype.cpp: Scenecut detection functional with no bframes [6b4a050476d1] 2013-09-05 Steve Borho * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: TEncSearch: clip mvmax by a fixed ammount for frame parallelism When frame parallelism is enabled, we enforce at least merange + interpolation half-length of reconstructed reference pixels to be available in all reference frames before allowing the encoder to begin compressing a given row. So we cannot allow the motion search to extend beyond merange past the colocated ref block (regardless of the MVP search starting location). We can't use the actual number of rows available because this results in non- determinism. [f3a583f4d0b1] * source/x265.cpp: ppa: use scoped PPA event for writeNALs [1b49fdef200e] * source/x265.cpp: x265: remove redundant help output line [8baa04aa131e] * source/encoder/frameencoder.cpp: frameencoder: poke idle thread after enabling a row This ensures at least one worker thread sees the state transition [69c280c82c83] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/bitcost.cpp, source/encoder/bitcost.h, source/encoder/slicetype.cpp: bitcost: always use non-I lambda table to seed bitcost table [2c525d4b2010] * source/encoder/frameencoder.cpp: nit [0a24b5f9c372] 2013-09-03 Steve Borho * source/encoder/frameencoder.cpp: frameencoder: start encoding CU rows once minimum reference row lag is met [9c5b11c33960] 2013-09-05 Steve Borho * source/encoder/encoder.cpp: encoder: declare destructor virtual [54612105847b] * source/Lib/TLibEncoder/TEncTop.h: TEncTop: nits [25bc610d324e] * source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: TEncTop: statistics lock was no longer necessary, always runs in API thread ctx [5e42cbe10f98] * source/Lib/TLibEncoder/TEncTop.h: TEncTop: cleanup [b0ac25bf249a] 2013-09-06 Aarthi Thirumalai * source/encoder/ratecontrol.cpp: tighten rate control logic for ABR [9266f876f316] 2013-09-05 Min Chen * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/encoder/framefilter.cpp: improvement: replace compressMV by index mapping [d6df26c90ee5] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp: framepp: move compressMV into loop [b121e96290e2] 2013-09-05 Gopu Govindaswamy * source/Lib/TLibCommon/SEI.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/encoder/frameencoder.cpp: SEI: Replaced STL Classes [bce4dbc57e09] * source/encoder/encoder.cpp: encoder: Added pad size in Malloc [842e8155f9dc] 2013-09-05 Deepthi Nandakumar * source/common/common.cpp: common: keyframeMax should always be >=0 [c30558100e0d] * source/x265opts.h: bOpenGOP: remove option openGOP, we only support closed GOP now; clarify comment [b3fe7c74c8ca] * source/encoder/encoder.cpp: bOpenGOP: Open GOP has nothing to do with keyframe interval [0a5662f7e27f] * source/x265.h: bOpenGOP: clarify in comment [550ae0ed71a2] 2013-09-05 Steve Borho * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/frameencoder.cpp: TEncTop: hoist compressFrame trigger back into encode() function [3d5c461db4a7] * source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: set QP and lambda on the correct FrameEncoder [84539616c439] * source/Lib/TLibEncoder/TEncTop.cpp: TEncTop: hold a reference for frames connected to FrameEncoders [3221580e71d6] * source/encoder/encoder.cpp: encoder: uncrustify [135b917429ac] 2013-09-05 Gopu Govindaswamy * source/encoder/encoder.cpp: Encoder: removed STL Container classes [b1e048696138] 2013-09-05 Min Chen * doc/intra/T16.TXT, doc/intra/T32.TXT, doc/intra/T4.TXT, doc/intra/T8.TXT, source/common/vec/intrapred.inc: doc: intra all angles algorithm [c05c9410a379] 2013-09-05 Steve Borho * source/encoder/slicetype.cpp: slicetype: handle odd keyframe intervals better [8d73d4ffd725] 2013-09-05 Gopu Govindaswamy * source/x265.cpp: x265Cli: Removed std::string in log [ce7faa93a060] 2013-09-05 Steve Borho * source/PPA/ppaCPUEvents.h, source/encoder/frameencoder.cpp: ppa: measure a different FrameEncoder method [9b9c4b842d10] 2013-09-04 Steve Borho * source/common/common.cpp, source/encoder/encoder.cpp, source/x265opts.h: encoder: make rate control mode implicit from other configs [6fb582a6d95e] * source/Lib/TLibEncoder/TEncCfg.h, source/encoder/dpb.cpp, source/encoder/encoder.cpp: TEncCfg: remove fixed GOP structures [8b79137bdd37] * source/Lib/TLibEncoder/TEncTop.cpp: TEncTop: require --log 4 to dump hash strings I don't see them being useful for display except for regression scripts [a871b170dd2d] * source/encoder/dpb.cpp: dpb: do not use fixed GOP cadence to select colocated direction [80ba827e2150] * source/Lib/TLibEncoder/TEncCfg.h, source/encoder/encoder.cpp: TEncCfg: remove unused dQP table [a8a002ebcde2] * source/Lib/TLibEncoder/TEncCfg.h, source/encoder/encoder.cpp: TEncCfg: remove obsolete configurables [60c1adcbc34a] * source/encoder/dpb.cpp: dpb: nits [0a211206d496] * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp: do not configure QP and lambda twice [77881138aa1d] * source/encoder/ratecontrol.cpp: ratecontrol: assign qp correctly [ce4c14ba9b85] * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: ratecontrol: move CQP support into our code [7bcd5530d55a] * source/encoder/frameencoder.cpp: FrameEncoder: remove min gop size from depth calculation [9ba4683de281] * source/Lib/TLibEncoder/TEncTop.cpp: TEncTop: hard code setNumRefIdxL0DefaultActive() and L1 default This was failing in debug with -i1 [6a47835b91e1] * source/Lib/TLibEncoder/TEncTop.cpp, source/common/lowres.h, source/encoder/dpb.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/slicetype.cpp: slicetype: remove gopIdx from lookahead output, simplify fake lookahead CQP uses a simple offset for non-I slices (temporary hack) [23911d66a504] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/encoder/compress.cpp, source/encoder/frameencoder.cpp: TEncEntropy: remove hungarian prefixes [b48bafd35b68] * source/Lib/TLibEncoder/TEncTop.cpp: TEncTop: remove hungarian prefixes from function arguments [99a1fb3c4730] * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: FrameEncoder: stop passing pic pointer to methods, use m_pic [ead51e579c13] * source/encoder/frameencoder.cpp: FrameEncoder: remove extra white-space [493d0dfc608a] * source/Lib/TLibEncoder/TEncTop.cpp: TEncTop: remove trailing white-space [ce33f819359b] * source/Lib/TLibEncoder/SyntaxElementWriter.cpp: SEI: remove hungarian prefixes [a2c84fdf74d7] * source/Lib/TLibCommon/TComSlice.cpp: TComSlice: missed deletion [43a27c6d551d] 2013-09-04 Deepthi Devaki * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/dpb.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/slicetype.cpp: using slicetypes from lookahead [7df7dab02f10] 2013-09-04 Min Chen * source/encoder/framefilter.cpp: Fix bug in PCM mode [6b2797b588c7] 2013-09-04 Gopu Govindaswamy * source/Lib/TLibCommon/TComSlice.h, source/encoder/frameencoder.cpp: TComSlice : Removed Unused std::vector Variable [6ef1bd02dd48] 2013-09-04 Steve Borho * source/common/common.cpp: common: replace std::string with const char * [70966790b40e] * source/CMakeLists.txt: cmake: make -Werror on GCC a build option defaulting to off It can be enabled on build-bots, etc, but not block typical development [e694a5fbf527] * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/frameencoder.cpp: coding style [209566e9acc5] 2013-09-04 sumalatha * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/frameencoder.cpp: QP- Lambda table -x265_lambda2_tab_I , x265_lambda2_tab_non_ I : for inter and intra blocks [5f0f2466345f] 2013-09-04 Deepthi Nandakumar * source/encoder/dpb.cpp: dpb: encode structure limitations Min GOP size for IP config is 4, for B frames it is 8. Keyframe interval should be a multiple of min GOP size. [a4cec6558ccc] * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/dpb.cpp, source/encoder/frameencoder.cpp, source/encoder/slicetype.cpp: TEncCfg: rename getGopSize to getGopSizeMin() [375d9f3157c1] * source/Lib/TLibEncoder/TEncCfg.h, source/encoder/dpb.cpp, source/encoder/encoder.cpp: dpb: rename m_gopsize in TEncCfg.h to gopsizeMin [9c558cf50fde] * source/common/common.cpp: framepp: number of frame threads always less than lookahead depth [06862133aecc] 2013-09-04 Steve Borho * source/Lib/TLibCommon/TypeDef.h: TypeDef: give explicit namespace to X265_DEPTH for 16bpp builds [e7cfb49dc587] 2013-09-03 Steve Borho * source/common/common.cpp: common: prune default search length to 60, for optimal frame parallelism [3ca96381d4f0] * source/encoder/frameencoder.cpp: frameencoder: clear enabled row bitmask at the start of each frame [1e8a103ef4d5] * source/common/wavefront.cpp, source/common/wavefront.h: wavefront: add a method to clear the enabled bitmask [3fd72a7b33b8] * source/encoder/frameencoder.cpp: frameencoder: remove TODO comment, it was already done [e976fe0b62bd] * source/Lib/TLibCommon/TComPrediction.cpp: TComPrediction: use pre-allocated temp buffer for weighted and chroma MC [6dde4a22e763] * source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/common/lowres.cpp, source/common/primitives.cpp, source/common/vec/blockcopy.inc, source/common/x86/asm-primitives.cpp, source/encoder/compress.cpp, source/encoder/dpb.cpp, source/encoder/dpb.h, source/encoder/encoder.cpp, source/encoder/frameencoder.h, source/encoder/slicetype.cpp, source/test/intrapredharness.cpp, source/test/intrapredharness.h, source/test/ipfilterharness.cpp, source/test/ipfilterharness.h, source/test/mbdstharness.h, source/test/pixelharness.cpp, source/test/pixelharness.h, source/test/testharness.h, source/x265.cpp: remove redundant x265 namespace qualifiers [7f8b72995aee] * source/Lib/TLibCommon/TComDataCU.cpp: tpyo [ade4ff7e2cb8] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/frameencoder.cpp: use X265_MIN/X265_MAX to avoid GCC warnings [a68aded38e69] * source/Lib/TLibEncoder/TEncAnalyze.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncTop.cpp: TEncAnalyze: cleanup hungarian notation and other issues [6044f5d13785] * COPYING: COPYING: add a mention to our available commercial license [2fa5d1060ded] * source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCavlc.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/Lib/TLibEncoder/WeightPredAnalysis.cpp, source/Lib/TLibEncoder/WeightPredAnalysis.h, source/encoder/compress.cpp, source/encoder/dpb.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/test/intrapredharness.cpp: reorg: replace HM's Bool typedef globally with C++ bool [4cbd0c51baa9] * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TypeDef.h: reorg: replace HM's Float typedef globally with C float [2feaea24b9ff] * source/Lib/TLibCommon/ContextModel3DBuffer.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncAnalyze.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/Lib/TLibEncoder/WeightPredAnalysis.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp: reorg: replace HM's Double typedef globally with C double [84e4e7bd4ba8] * source/Lib/TLibCommon/ContextModel.cpp, source/Lib/TLibCommon/ContextModel.h, source/Lib/TLibCommon/ContextModel3DBuffer.cpp, source/Lib/TLibCommon/ContextModel3DBuffer.h, source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComBitStream.h, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h, source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.h, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/SyntaxElementWriter.cpp, source/Lib/TLibEncoder/SyntaxElementWriter.h, source/Lib/TLibEncoder/TEncBinCoder.h, source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.h, source/Lib/TLibEncoder/TEncBinCoderCABACCounter.cpp, source/Lib/TLibEncoder/TEncBinCoderCABACCounter.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCavlc.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/Lib/TLibEncoder/WeightPredAnalysis.cpp, source/Lib/TLibEncoder/WeightPredAnalysis.h, source/common/TShortYUV.h, source/common/dct.cpp, source/common/ipfilter.cpp, source/common/lowres.cpp, source/common/vec/dct.inc, source/encoder/compress.cpp, source/encoder/cturow.cpp, source/encoder/dpb.cpp, source/encoder/dpb.h, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/slicetype.cpp: reorg: replace HM's Int typedef globally with C int [236d8e715ef2] * source/Lib/TLibCommon/ContextModel.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/common/TShortYUV.cpp, source/common/dct.cpp, source/common/vec/dct.inc, source/encoder/slicetype.cpp: reorg: replace HM's Short typedef globally with C short [e44a6950d22a] * source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComBitStream.h, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/NALwrite.cpp, source/Lib/TLibEncoder/SyntaxElementWriter.cpp, source/Lib/TLibEncoder/SyntaxElementWriter.h, source/Lib/TLibEncoder/TEncAnalyze.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCavlc.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp: reorg: replace HM's Char typedef globally with C char [37b99feefbfd] * source/Lib/TLibCommon/ContextModel.cpp, source/Lib/TLibCommon/ContextModel.h, source/Lib/TLibCommon/ContextModel3DBuffer.cpp, source/Lib/TLibCommon/ContextModel3DBuffer.h, source/Lib/TLibCommon/SEI.cpp, source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComBitCounter.h, source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComBitStream.h, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComList.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h, source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.h, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/NALwrite.cpp, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/SEIwrite.h, source/Lib/TLibEncoder/SyntaxElementWriter.cpp, source/Lib/TLibEncoder/SyntaxElementWriter.h, source/Lib/TLibEncoder/TEncAnalyze.h, source/Lib/TLibEncoder/TEncBinCoder.h, source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.h, source/Lib/TLibEncoder/TEncBinCoderCABACCounter.cpp, source/Lib/TLibEncoder/TEncBinCoderCABACCounter.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCavlc.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/Lib/TLibEncoder/WeightPredAnalysis.cpp, source/Lib/TLibEncoder/WeightPredAnalysis.h, source/common/TShortYUV.cpp, source/encoder/compress.cpp, source/encoder/dpb.cpp, source/encoder/dpb.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: reorg: replace HM's Void typedef globally with C void [1a9780eb8bea] * source/Lib/TLibCommon/TComCABACTables.cpp, source/Lib/TLibCommon/TComCABACTables.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.h: merge statically defined CABAC constant tables into TComRom [25c5139fe205] * source/Lib/TLibEncoder/AnnexBwrite.h: remove unused AnnexBwrite.h [a867152e7071] * source/Lib/TLibCommon/AccessUnit.h, source/Lib/TLibCommon/ContextModel.cpp, source/Lib/TLibCommon/ContextModel.h, source/Lib/TLibCommon/ContextModel3DBuffer.cpp, source/Lib/TLibCommon/ContextModel3DBuffer.h, source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/SEI.cpp, source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComBitCounter.h, source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComBitStream.h, source/Lib/TLibCommon/TComCABACTables.cpp, source/Lib/TLibCommon/TComCABACTables.h, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComList.h, source/Lib/TLibCommon/TComLoopFilter.h, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPicYuvMD5.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.h, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/NALwrite.cpp, source/Lib/TLibEncoder/NALwrite.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/SEIwrite.h, source/Lib/TLibEncoder/SyntaxElementWriter.cpp, source/Lib/TLibEncoder/SyntaxElementWriter.h, source/Lib/TLibEncoder/TEncAnalyze.h, source/Lib/TLibEncoder/TEncBinCoder.h, source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.h, source/Lib/TLibEncoder/TEncBinCoderCABACCounter.cpp, source/Lib/TLibEncoder/TEncBinCoderCABACCounter.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCavlc.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncTop.h, source/Lib/TLibEncoder/WeightPredAnalysis.cpp, source/Lib/TLibEncoder/WeightPredAnalysis.h, source/common/TShortYUV.cpp, source/common/TShortYUV.h, source/common/common.cpp, source/common/dct.cpp, source/common/intrapred.cpp, source/common/ipfilter.cpp, source/common/lowres.h, source/common/pixel.cpp, source/common/primitives.cpp, source/common/reference.h, source/common/vec/dct.inc, source/common/vec/intrapred.inc, source/common/vec/ipfilter8.inc, source/encoder/cturow.h, source/encoder/dpb.h, source/encoder/frameencoder.h, source/encoder/framefilter.h, source/encoder/ratecontrol.h, source/encoder/slicetype.h: reorg: move HM classes and functions under x265 namespace This makes it possible to link x265 and HM into a single application [aa94afeb8368] 2013-09-03 Gopu Govindaswamy * source/common/ipfilter.cpp: ipfilter : extendCURowColBorder() performance tuning [30daf6927e11] 2013-09-03 praveen Tiwari * source/common/vec/pixel8.inc: pixel8.inc: VC9 fix for SAD_4, 'pextrd' replaced with 'movd' [15c21c4da368] 2013-09-03 Steve Borho * source/common/common.cpp: common: log nit [b27576343f8c] * source/common/common.cpp, source/common/wavefront.cpp, source/encoder/dpb.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h, source/encoder/slicetype.h: uncrustify [71ee73499db4] * source/common/vec/pixel8.inc: pixel8: sad_x4_16 improvements [2a2c74c9eb02] * source/common/vec/pixel8.inc: pixel8: sad_x4_4 improvements [7caa93beb17f] * source/common/vec/pixel8.inc: pixel8: sad_x3_16 improvements [9e5372fe1f6c] * source/common/vec/pixel8.inc: pixel8: sad_x3_8 improvements [92256af4cf8b] * source/common/vec/pixel8.inc: pixel8: sad_x3_4 improvements [ae93ad833228] * source/encoder/frameencoder.cpp: frameencoder: fix initialization order [d62d57018d3d] * source/encoder/slicetype.cpp: slicetype: fix unsigned/signed comparison [8e4e2f0c10a9] * source/common/lowres.h, source/encoder/slicetype.h: lowres: move slice type defines into common/ headers in common/ should not include encoder/ headers [07599fd4a497] 2013-09-03 Deepthi Nandakumar * source/common/common.cpp: framepp: Changing output message [9a2eaa27b174] 2013-09-03 Min Chen * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncTop.cpp, source/common/common.cpp, source/common/ipfilter.cpp, source/common/primitives.h, source/common/wavefront.cpp, source/common/wavefront.h, source/encoder/dpb.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp: framepp: Active frame parallelism [bc1887f2bbc4] 2013-09-02 Shazeb Nawaz Khan * source/encoder/slicetype.cpp: Used slicetypeAnalyse() in slicetypeDecide() # HG changeset patch # User Shazeb Nawaz Khan # Date 1378118764 -19800 # Mon Sep 02 16:16:04 2013 +0530 # Node ID e4a57ae74dd96ceb31815a44098b81872e494fff # Parent e2d93166e034040d61c897264e1dfe7aeeb3d661 Used slicetypeAnalyse() in slicetypeDecide() [2f9fcf768918] * source/encoder/slicetype.cpp: Fixed slicetypeAnalyse() for no-B config # HG changeset patch # User Shazeb Nawaz Khan # Date 1378118617 -19800 # Mon Sep 02 16:13:37 2013 +0530 # Node ID e2d93166e034040d61c897264e1dfe7aeeb3d661 # Parent 3ea029900ab3ee58ed6b16c5c5a0a89975ba8c03 Fixed slicetypeAnalyse() for no-B config [e4142126e8ac] 2013-09-02 Gopu Govindaswamy * source/common/ipfilter.cpp, source/common/primitives.h, source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc, source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: ipfilter : Removed unused filterHorizontalExtendCol from testbench and primitive [e3e4e2c33331] 2013-09-02 praveen Tiwari * source/common/vec/pixel8.inc: pixel8.inc: Optimization with sad_x4 4xn [3ea029900ab3] 2013-09-02 Deepthi Nandakumar * source/common/common.cpp: slicetype: keyframe min and max values inported from x264 [10ec000a0902] * source/common/common.cpp: slicetype: default value for scenecutThreshold pulled in from x264 [e347a519e060] * source/common/lowres.cpp, source/common/lowres.h, source/encoder/slicetype.cpp: slicetype: Double defined macros replaced. Todo: investigate whether its safe to replace the table with just I, P, B (2,1,0) according to Table 7-7 [d3a13581ef98] 2013-09-01 Steve Borho * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h: TComPrediction: pre-allocate intermediates temp buffer [5c27dd5f8542] * source/Lib/TLibCommon/TComPrediction.cpp: TComPrediction: simplify xPredInterLumaBlk [98ea1b8fcfea] * source/encoder/motion.cpp: motion: split mvcost from subpelCompare [6948b2b8d1fd] * source/encoder/motion.cpp: replace 64s with MAX_CU_SIZE [7ce07886514a] * source/CMakeLists.txt, source/cmake/CMakeASM_YASMInformation.cmake, source/common/vec/CMakeLists.txt, source/common/vec/vec- primitives.cpp: cmake: detect and handle Mac OS X 10.8 default compiler It can't build any of the vector primitives, but at least now it generates a working x265 exectuable [6410d56ae417] 2013-07-25 Vittorio Giovara * source/x265.cpp, source/x265opts.h: replace --width and --height with --input-res [d41fadfab6de] * source/x265opts.h: change 'rate' option to 'fps' [20a4642c6f5b] 2013-09-01 Steve Borho * source/encoder/motion.cpp: motion: lowres qpel [61b2b54bf21b] * source/encoder/motion.cpp: motion: simplify subpel logic [dab5d5e5e69c] * source/encoder/motion.cpp, source/encoder/motion.h: motion: use lowresPlane for lowres subpel, make pixelcmp_t an argument [33900a0ca821] * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/common/lowres.cpp, source/common/reference.cpp, source/common/reference.h, source/encoder/frameencoder.cpp, source/encoder/motion.cpp, source/encoder/slicetype.cpp: reference: remove lumaPlane[][] and prior calculation [90af58daa658] * source/common/reference.cpp, source/common/reference.h, source/encoder/motion.cpp, source/encoder/motion.h: motion: cleanup subpel on-demand generation [546d00cfe1fd] * source/encoder/motion.cpp: motion: fix include slash [c937dc7f6d8e] * source/common/ipfilter.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/vec/ipfilter16.inc, source/common/vec/ipfilter8.inc, source/common/vec/pixel8.inc: primitives: use intptr_t for stride arguments [a2ff0d818bdf] 2013-09-01 Deepthi Nandakumar * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp, source/Lib/TLibCommon/TComRdCostWeightPrediction.h: Merge [c31b254a4bfc] * source/Lib/TLibCommon/TComPicYuv.cpp: reference: no pre-generating reference planes [35a513f3263b] * source/encoder/motion.cpp: motion: replace intermediate values with a tmp buffer. [0106d1f8d2a2] * source/encoder/motion.cpp: motion: COST_QMV redefined [95d92294576d] * source/common/reference.cpp, source/common/reference.h, source/encoder/motion.cpp: motion: correct strides in subpel buffer and intermediate values buffer [2cc40cfee287] 2013-08-31 Gopu Govindaswamy * source/common/reference.cpp, source/common/reference.h, source/encoder/motion.cpp, source/encoder/motion.h: Motion :subpel Generation [1032a9893607] 2013-08-31 Steve Borho * source/Lib/TLibCommon/TComSlice.cpp: TComSlice: fix init order for GCC [0e0a822fd344] * source/Lib/TLibCommon/TComRdCost.h: TComRdCost: add missing include of math.h (sqrt) [86e371cdb75e] * source/CMakeLists.txt, source/cmake/mergestaticlibs.cmake, source/common/CMakeLists.txt, source/encoder/CMakeLists.txt: cmake: add ENABLE_STATICLIB build option (requires some black magic) [02846fb1a082] * source/Lib/TLibCommon/TComRdCost.h: TComRdCost: remove unused includes [33efbdbb527c] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: remove buffer copy for full-pel SATD measurement [043b414d4317] * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp, source/Lib/TLibCommon/TComRdCostWeightPrediction.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TComRdCost: remove distortion functions and TComRdCostWeightPrediction TComRdCost is now just a pure-inline class with no CPP [48e8b5c0fd9b] 2013-08-30 Steve Borho * source/x265opts.h: x265: disable weighted unipred CLI option The recent changes to TComPrediction::xPredInterLumaBlk() to generate subpel on demand almost certainly busted weighted prediction. [326e3757c130] * source/x265opts.h: x265: disable weighted bipred CLI option [dd2e8492b873] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: simplify refPic initialization [9d8b579bf811] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: use optimized satd primitives for bidir fractional search [aa7343de0a87] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: fix a typo [7866a8b3d925] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: remove m_bc and inline xPatternSearchFracDIF [5444249106a9] * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: TComRdCost: remove step parameter, always 1, merge setDistParam methods [814c5a4538cf] * source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TComPicYuv: remove getLumaFilterBlock() methods, generate on demand in subpel TEncSearch::xPatternRefinement() is only used for bidir refinement, and is on the short-list to be removed once bidir is optimized. [29d2a7ce4c68] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: replace getLumaFilterBlock() use with fpel getLumaAddr() This returned address is stored in m_distParam but it never actually used. The fref is overwritten before any calls to SATD [f36e35862749] * source/encoder/slicetype.cpp: slicetype: hard-code 8x8 CU size for intra predictions output buffer [94d8f58137bc] 2013-08-30 Deepthi Devaki * source/Lib/TLibCommon/TComSlice.cpp: Fix decoder crash, Initialize m_numberOfReferencePictureSets to 0 [6798c3d229ac] 2013-08-30 Steve Borho * source/Lib/TLibCommon/TComRom.cpp: TComRom: tabs to spaces [242c4c511c4f] 2013-08-30 Deepthi Nandakumar * source/encoder/ratecontrol.cpp: ratecontrol: Slightly lower I frame qp to prevent quality drop. [090de727cc5b] * source/Lib/TLibEncoder/TEncTop.cpp: ratecontrol: minor edits [ac1f425f844f] * source/Lib/TLibEncoder/TEncTop.cpp: ratecontrol: fix compile error. [06c30405d308] 2013-08-30 Aarthi Thirumalai * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibEncoder/TEncTop.cpp, source/common/common.cpp, source/encoder/ratecontrol.cpp: modified x265_lambda2_tab[] , adjusted some rc factors, modifed chroma weight for chromaLambda [fbf6fedd9818] 2013-08-30 Deepthi Nandakumar * source/Lib/TLibCommon/TComPrediction.cpp: interpolate: fix hash error bug introduced by block-ip filter. [87bb45fa2ff3] 2013-08-30 Min Chen * source/common/ipfilter.cpp, source/common/reference.cpp: interpolate: fix bug that generate error interpolate pixel in border area [291cbb41ab47] 2013-08-29 Steve Borho * source/Lib/TLibCommon/TComPrediction.cpp: TComPrediction: cleanup xPredInterLumaBlk [8b78d8cff9d8] * source/Lib/TLibCommon/TComPrediction.cpp: TComPrediction: rename file static variable [cbf84884c34a] 2013-08-29 Gopu Govindaswamy * source/Lib/TLibCommon/TComPrediction.cpp, source/common/reference.h: TcomPridiction : IP calculation for a Block and modified the src buffer [341049cdcc5c] 2013-08-29 Deepthi Nandakumar * source/common/lowres.cpp: lookahead: Initialise I frame MBs to zero. This parameter gets incremented in CUcost. [4a5fd8756d8c] 2013-08-29 Steve Borho * source/encoder/slicetype.cpp: slicetype: fix eoln [77d92ca1d183] * source/encoder/slicetype.cpp: slicetype: do not allow edge CUs to contribute to frame cost totals (x264 does this, it seems to result in better cost estimates overall) [0632a39dd630] * source/encoder/slicetype.cpp: slicetype: use satd for lowres intra estimate [700603cdeb55] 2013-08-28 Steve Borho * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/encoder/dpb.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp: add partial framework for frame parallelism [1ce2c5c87b19] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: use optimized sad_x4 for bidir full search [b7c3aa334fda] * source/encoder/motion.cpp: motion: fix a typo in full-search [12addd543c0c] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: use optimized sad for bidir full search [e06f1b5c456d] * source/common/CMakeLists.txt: cmake: disable signed/unsigned comparisons from Intel C++ in common/ [a60d5991e6aa] * source/common/vec/CMakeLists.txt: cmake: disable some Intel warnings and errors we know are safe [0a88b5cee672] * source/common/threadpool.cpp: threadpool: fix a warning from InteL C++ compiler [eba7f716c515] * build/icl/build-all.bat, build/icl/make-makefile.bat, build/icl32 /build-all.bat, build/icl32/make-makefile.bat, build/icl64/build- all.bat, build/icl64/make-makefile.bat: cmake: split out 32bit and 64bit ICL nmake configurations [5fded61de5e8] 2013-08-28 Deepthi Devaki * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/dpb.cpp, source/encoder/dpb.h: Remove unused code related to dpb and rps [cb3521c28879] * source/encoder/dpb.cpp: dbp.cpp: white-space nits [eab25d12ece9] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp, source/encoder/dpb.h: Move dpb related functions from TComSlice to DPB [762bf799dca2] 2013-08-28 Steve Borho * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: ratecontrol: we have the param for frame parallelism [476f363c87f9] * source/encoder/framefilter.cpp: framefilter: use explicit 0 and 1 in lieu of Windows only FALSE and TRUE [7de6d0cde087] 2013-08-28 Deepthi Nandakumar * source/encoder/framefilter.cpp: Backout: breaks VC build [bdb54195f558] 2013-08-28 Rafaël Carré * source/encoder/framefilter.cpp: Use C++ true/false rather than Windows TRUE/FALSE Fix build on Linux [707c41aa5a63] 2013-08-27 Shazeb Nawaz Khan * source/encoder/dpb.cpp: A minor fix to computeRPS integration # HG changeset patch # User Shazeb Nawaz Khan # Date 1377595358 -19800 # Tue Aug 27 14:52:38 2013 +0530 # Node ID 8d26028f32cc9a2e5f09882368370689e1f317a0 # Parent bf72e539f3d8e25ff7fe1bc176ea1516c60a73d3 A minor fix to computeRPS integration [0de7523f43fc] * source/encoder/dpb.cpp, source/encoder/frameencoder.cpp: Integrating computeRPS to encoder # HG changeset patch # User Shazeb Nawaz Khan # Date 1377594214 -19800 # Tue Aug 27 14:33:34 2013 +0530 # Node ID bf72e539f3d8e25ff7fe1bc176ea1516c60a73d3 # Parent 5245113fa0d66de8933b18ca03fffde4f3fbdef0 Integrating computeRPS to encoder [527e8a0a0f9e] 2013-08-28 Deepthi Nandakumar * source/x265opts.h: ratecontrol: adding bitrate to CLI options [6ec33774f06a] * source/encoder/ratecontrol.cpp: ratecontrol: adding inits [62ce96dd8080] * source/encoder/ratecontrol.cpp: ratecontrol: minor edits [5c042746f711] * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: ratecontrol: fps member var renamed as framerate [159d27a7c7d3] 2013-08-27 Steve Borho * source/Lib/TLibEncoder/TEncTop.cpp: TEncTop: white-space nits [ea85b67907ca] * source/encoder/dpb.cpp: dpb: fix "statement has no effect" warning [2cf36835f6e1] * source/Lib/TLibCommon/TComSlice.cpp: TComSlice: fix initialization order [27d87f071a92] 2013-08-27 Deepthi Nandakumar * source/Lib/TLibEncoder/TEncTop.cpp: ratecontrol: Merge [d006294891d0] * source/Lib/TLibEncoder/TEncTop.cpp: ratecontrol: RateControl methods only when ABR is enabled. [a165b52487ca] 2013-08-27 Steve Borho * source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/encoder/ratecontrol.cpp: ratecontrol: fix header warning, replace tabs with spaces, uncrustify [f2041d164c74] 2013-08-27 Deepthi * source/x265opts.h: ratecontrol: correcting help message, Abr=0 and constQp=1 [20c6a69a2fe1] * source/encoder/ratecontrol.cpp, source/x265.h, source/x265opts.h: Adding rc-mode to CLI option list [80baf6900512] 2013-08-27 sumalatha * source/Lib/TLibEncoder/TEncTop.cpp: computeLambdaForQP - using the formulae of HM directly to get the lambda values [ff4044130a96] 2013-08-27 Shazeb Nawaz Khan * source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp, source/encoder/dpb.h: Adding support for RPS generation (not integrated yet) # HG changeset patch # User Shazeb Nawaz Khan # Date 1377594122 -19800 # Tue Aug 27 14:32:02 2013 +0530 # Node ID 5245113fa0d66de8933b18ca03fffde4f3fbdef0 # Parent 273b1face64ce9e0c391713165776c773ec54774 Adding support for RPS generation (not integrated yet) [71dedcc6922b] 2013-08-27 sumalatha * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: Included the computeLambdaqp()-- reset the lambda based on new QP [abd8a7189096] 2013-08-27 Deepthi * source/encoder/frameencoder.cpp: ratecontrol: Remove dqp, not relevant until AQ is implemented. Even then, dqp is an LCU parameter. [76ee630587a9] 2013-08-26 Steve Borho * source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: rename member vars for clarity [273b1face64c] * source/common/reference.cpp: reference: correctly handle frames not an even multiple of max CTU height [ee3ddeb3414d] * source/common/lowres.cpp, source/common/lowres.h, source/encoder/slicetype.cpp: lowres: use 8x8 blocks for lookahead analysis [56110b3e965d] * source/encoder/dpb.cpp: dpb: add default case for switch, remove trailing white-space [407d8c61698d] * source/common/reference.cpp: reference: fix member variable shadowing reported by GCC [5cff93d45be5] * source/common/vec/pixel8.inc: pixel: more explicit HAVE_MMX logic, fixes link errors with VC11 x64 [8a6859929055] 2013-08-26 praveentiwari * source/common/vec/pixel8.inc: pixel8.inc: Avoiding overlap of _MSC_VER macro [00873cc0099b] * source/common/vec/pixel8.inc: pixel8.inc: sad_x3_4 further optimization [015f93435ac3] * source/common/vec/pixel8.inc: pixel8.inc: sad_x4_8 further optimization [ff2a7b2dbfbf] * source/common/vec/pixel8.inc: pixel8.inc: Further optimization [22ccca70061e] * source/common/vec/pixel8.inc: pixel8.inc: sad_x3_8 further optimization [64d346fc559e] * source/common/vec/pixel8.inc: pixel8.inc: sad_x3_4 further optimization [faeb85aedd4a] * source/common/vec/pixel8.inc: pixel8.inc: sad_x4_16, vector replaced with intrinsic [af46df46431c] * source/common/vec/pixel8.inc: pixel8.inc: sad_x4_8, vector replaced with intrinsic [1736618230bc] * source/common/vec/pixel8.inc: pixel8.inc: sad_x4_4, enabled sad_x4_4 code for 32-build except VC [80577235dba0] * source/common/vec/pixel8.inc: pixel8.inc: sad_x3_8 enabled MMX code for 32-bit build except vc [47cf292c6619] * source/common/vec/pixel8.inc: pixel8.inc:sad_x3_4 enabled MMX code for 32-build except VC [63af120cd6cc] * source/common/vec/pixel8.inc: pixel8.inc: sad_8 enabled MMX code for 32-build except VC [5c38e12afe9a] * source/common/vec/pixel8.inc: pixel8.inc: sad_4 cleanup with macro [52e0b9869886] * source/common/vec/pixel8.inc: pixel8.inc: Enabled MMX code for 32-bit build except VC [added macro and swap postions of sse and MMX funtions] [6b7000546c20] 2013-08-26 Steve Borho * source/encoder/dpb.cpp, source/encoder/dpb.h: dpb: pass free list by reference (fixes memory leaks) Passing by copy was resulting in TEncTop::m_freeList never being used. recycleUnreferenced() was adding the free pictures to a list that was destroyed as soon as the function returned. [da8281ec88ac] 2013-08-26 Deepthi * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: Testharness: Removing filterV/HMultiplane from test harness. [a37e03a3f0b6] 2013-08-26 Min Chen * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/common/ipfilter.cpp, source/common/primitives.h, source/common/reference.cpp, source/common/reference.h, source/common/vec/ipfilter.inc: framepp: row based interpolate [63e0736c1f87] 2013-08-26 Deepthi * source/encoder/dpb.cpp: DPB::prepareEncode - replace code snippet with switch case [055c97bd9b7d] * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/dpb.cpp: TEncTop: Move FrameEncoder->initSlice() to TEncTop::encode [3dd7b6da60bb] * source/Lib/TLibEncoder/TEncTop.cpp: TEncTop: (Redundant) setPOC to max value [2f2acd2fc7ad] 2013-08-25 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: refIdx typo corrected [797c13ec5d2a] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: remove redundant bestIdx initialization [1f532e886a49] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: remove bFilled argument from xEstimateMvPredAMVP (always false) [a8b4963087b5] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: nit [9e020c0883c6] * source/common/vec/pixel8.inc: pixel: use unaligned loads for fref pixels [f05a6d740ede] 2013-08-25 Min Chen * source/common/vec/ipfilter8.inc: Improvement filterHorizontalMultiplaneExtend [1ea25137e5cc] 2013-08-25 praveentiwari * source/common/vec/pixel8.inc: pixel8.inc: Uncrustified [5d0c9e08265e] * source/common/vec/pixel8.inc: pixel8.inc: sad_x4_4 optimized assingment operators [8af27ce24619] * source/common/vec/pixel8.inc: pixel8.inc: sad_x3 64-bit build fail fixed [21981597572b] * source/common/vec/pixel.inc, source/common/vec/pixel8.inc: pixel8.inc: sad_x4_4 vector replaced with intrinsic [827cfb10feba] * source/common/vec/pixel.inc: uncrustified pixel.inc [1306bdb29227] * source/common/vec/pixel8.inc: pixel8.inc: new line cleanup [34db6fb0cfbc] * source/common/vec/pixel8.inc: pixel8.inc: sad_x3_8 avoiding extra condition check [86a5d7ceae78] * source/common/vec/pixel8.inc: pixel8.inc: sad_x3_16 cleanu some newlines [83af948acce4] * source/common/vec/pixel8.inc: pixel8.inc: sad_x3_4 more optimization [43d8ec7a9193] * source/common/vec/pixel8.inc: pixel8.cpp: sad_x3_16 vector replaced with intrinsic [aade693715b3] * source/common/vec/pixel8.inc: pixel8.inc: sad_x3_8 integrated fast MMX 32-bit build code [22b6b2ad15c1] * source/common/vec/pixel8.inc: pixel8.inc: sad_x3_4 integrated faster MMX code for 32-bit build [828ec0701097] * source/common/vec/pixel8.inc: pixel8.inc: Uncrustified [8f4e4d104dc0] 2013-08-25 Steve Borho * source/encoder/CMakeLists.txt: cmake: force -march=i686 for framefilter.cpp [5281d5789986] * source/encoder/ratecontrol.cpp: ratecontol: fix case sensitive includes [55d7edaa3e8e] 2013-08-23 Steve Borho * source/common/vec/pixel.inc, source/common/vec/pixel8.inc: pixel: new 16xN and x3 intrinsic primitives require SSE4.1 [c881d82f9d85] 2013-08-23 praveentiwari * source/common/vec/pixel8.inc: sad[16xN]:Intrinsic [97d0506cb0db] * source/common/vec/pixel8.inc: pixel8inc: sad_x3 8xN, replace vector with intrinsic [9e7e1c772ec3] * source/common/vec/pixel8.inc: sad_x3_4[4Xn]:Intrinsic [5805f5a34497] 2013-08-23 Steve Borho * source/common/threading.h, source/common/wavefront.cpp: threading: rename CLZ64 to CTZ64 and reverse bit search for GCC __builtin_ctzll(x) - Returns the number of trailing 0-bits in x, starting at the least significant bit position. If x is 0, the result is undefined [8cbc34f927b6] * source/common/common.h, source/encoder/ratecontrol.cpp: common: make log2 functions safe for GCC, use multiply instead of divide [9da03fb899de] * source/common/vec/pixel.inc, source/common/vec/pixel8.inc: pixel: sad primitives now require SSE4.1, properly wrap #pragma [58dcf14afa79] 2013-08-23 Deepthi * source/common/vec/pixel8.inc: pixel8inc: sad 4xN, replace vector with intrinsic [Praveen] [b489dfb2e90a] * source/common/vec/pixel8.inc: pixel8inc: sad 8xN, replace vector with intrinsic [Praveen] [eaf94c74774f] * source/common/vec/pixel8.inc: pixel8inc: Uncrustify [Praveen] [20bbd0ad6c1b] * source/common/ipfilter.cpp, source/common/primitives.h, source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc, source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: FilterExtendCURow: add primitives for horizontal filtering of each row: Gopu [77b53186d568] * source/encoder/ratecontrol.cpp: ratecontrol: replacing more log2 calculations with macro [c99cc112fd71] * source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: ratecontrol: move RCEnd back to TEncTop::encode [e187433abd5e] * source/encoder/ratecontrol.cpp: Avoid conversion to float [a7fad933a6c3] * source/common/common.h, source/encoder/ratecontrol.cpp: log2 define from x264 [e306203049cf] 2013-08-23 Aarthi * source/encoder/ratecontrol.cpp: fixed bugs in ABR mode - implemeted log2() instead of log() as required. [41f20253a3b8] 2013-08-22 Steve Borho * source/encoder/ratecontrol.cpp: ratecontrol: include all enums in switch statement, avoid GCC warning [77418bf4a67b] * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h: sao: remove dead rdoSaoUnitAll function [763165c09029] * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: ratecontrol: stub in partial code for CQP [4fd6bd86ff92] * source/encoder/ratecontrol.cpp: ratecontrol: initialize rce to NULL, prevent invalid free [12199cf44193] * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp: sao: fix GCC warnings about autos shadowing member variables [633718701cc9] 2013-08-21 sumalatha * source/encoder/ratecontrol.cpp: ratecontrol: added comments, corrected some errors in code [1d890ba79f64] * source/Lib/TLibEncoder/TEncTop.cpp: made changes to function call - rateControlEnd [1498b673e95a] 2013-08-22 Min Chen * source/CMakeLists.txt: fix bug in WinXP mode [9f38435eee26] * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h: framepp: Parallelism of SAO (saoLcuBasedOptimization mode only) [2b321cbfb953] * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h: framepp: replace static class array countPreDblk and offsetOrgPreDblk [d11de19b9d26] * source/encoder/framefilter.cpp, source/encoder/framefilter.h: improvement by replace lock to atom operator [0e2c2ab41bd9] 2013-08-20 Steve Borho * source/encoder/slicetype.cpp: slicetype: do not use backwards L1 for slicetype estimates The lookahead engine can't really handle it. [6fe2b6e1fd6f] * source/encoder/dpb.cpp: dpb: ensure bframe count same as m_gopSize when fixed GOP is in use [4bc719a5e735] * source/encoder/slicetype.cpp: slicetype: remove redundant break statements [5b67acbe7871] * source/encoder/slicetype.h: slicetype: re-order member variables by size [9994e722c6bc] * source/Lib/TLibEncoder/TEncTop.cpp, source/common/common.cpp, source/encoder/frameencoder.cpp, source/x265.h, source/x265opts.h: x265: move qp parameter within rc struct, use QP logging line for rate control [779ac0d75231] * source/common/common.cpp, source/encoder/encoder.cpp: common: combine WPP logging lines [3bc38a85503a] * source/common/common.cpp: common: add a summary log line for lookahead configuration [566f30410df1] * source/common/common.cpp: common: shorten "enabled coding tools" to "tools" [8cb425d6dbc4] 2013-08-20 Min Chen * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/encoder/framefilter.cpp: cleanup: remove unused function and process row once [af98ad50dd96] * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp: cleanup: move temporary pointer from class [b26267a38367] * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: fix bug correct row delay with '--sao-lcu-bounds 1' [52ba7c428cef] * source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h: cleanup: remove reduce m_sad since we are single thread now [9ba42b518d6b] * source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/encoder/framefilter.h: framepp: simplify FrameFilter control logic [d3d6119d5662] * source/common/threading.h, source/common/threadpool.cpp, source/common/wavefront.cpp: move ATOM operators to threading.h [b016dce3b990] 2013-08-20 Steve Borho * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: add a method to get estimated frame cost (calculated if not cached) [2a1e1e3fcba2] * source/encoder/dpb.cpp: dpb: remove obsolete TODO [24fc61094b55] * source/encoder/dpb.cpp: dpb: remove redundant calls to setNumRefIdx() [16f5434cf8e4] * source/encoder/ratecontrol.cpp: ratecontrol: nit [c177b592a915] * source/encoder/dpb.cpp, source/encoder/frameencoder.cpp: dpb: move setNumRefIdx from frameEncoder to DPB for clarity [6e45cb567792] 2013-08-19 Steve Borho * source/encoder/slicetype.cpp: slicetype: move special case logic for POC zero out of "fake" category [f5834b464a7c] * source/encoder/slicetype.cpp: slicetype: initialize row satd sums at each row, delay bIntraCalculated set [fb9f092e8291] * source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: malloc prediction buffer to avoid stack size issues [c4cd8d9d6c8c] * source/encoder/slicetype.cpp: slicetype: x and y loops were reversed [8157dcac7865] * source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: auto-variable cleanup [da6f7e555f0d] * source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: do_search is a bool as well [43f633c7b553] * source/common/lowres.cpp, source/common/lowres.h, source/encoder/slicetype.cpp: lowres: remove redundant stride variable, use ReferencePlanes::lumaStride [e5eeb053c459] * source/encoder/slicetype.cpp: slicetype: remove redundant assignment [e3fe0e2caa77] * source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: rename last_keyframe to lastKeyframe [d06cdce272ee] * source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: use cfg->param structure directly, do not copy data items [d568082adb02] * source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: copy bFrameBias from param structure [c6a47d383128] * source/encoder/slicetype.cpp: slicetype: fixup bIntraPenalty type [75833aca1872] * source/encoder/slicetype.h: slicetype: remove unused analyze_keyframe variable [84fa8299c4e2] * source/encoder/slicetype.cpp: slicetype: estimate SATD cost of first I frame [60fbdb64ed0c] * source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: realScenecut is a bool [2cc3f1686119] * source/encoder/slicetype.cpp: slicetype: add disabled "real path" [b250cbbd95ed] * source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: change slicetypeAnalyze argument type to bool, fix cuCount [7703d11126e8] * source/encoder/slicetype.cpp: slicetype: set lowres.frameNum in addPicture() [5d5247ccf3fb] * source/encoder/slicetype.cpp: slicetype: fix order of operations, remove obsolete comment [bafc37c130d7] * source/encoder/slicetype.cpp: slicetype: improve history comment [92e84207edc0] 2013-08-19 Min Chen * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp, source/encoder/framefilter.h: framepp: Refactor loopfilter thread [800465af4795] 2013-08-19 Steve Borho * source/common/wavefront.cpp: wavefront: use _BitScanForward64 on Windows to get proper bit priority order Spotted and fixed by Min Chen [fc12faa1672e] * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/dpb.cpp: dpb: move the pushBack of the frame into DPB::prepareEncode() [6bd04d658885] * source/Lib/TLibEncoder/TEncAnalyze.h, source/Lib/TLibEncoder/TEncTop.cpp: TEncAnalyze: rename setFrmRate to setFrameRate [ab8e517b3f5c] * source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: TEncTop: use multiple frame encoders (they do not overlap in execution time) [cf68474b7fd4] * source/Lib/TLibEncoder/TEncTop.cpp, source/common/common.cpp, source/common/threadpool.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/x265.cpp, source/x265.h, source/x265opts.h: x265: add -F/--frame-threads CLI option, param->frameNumThreads This required allocating an array of FrameEncoder instances, which required adding a method for initializing the thread pool after construction. [84c939999179] * source/Lib/TLibCommon/TComPic.h, source/common/CMakeLists.txt, source/common/lookahead.cpp, source/common/lookahead.h, source/common/lowres.cpp, source/common/lowres.h, source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp: rename lookahead.cpp to lowres.cpp (and also header) [9a5d62cf19f1] * source/Lib/TLibCommon/TComPic.h, source/common/lookahead.cpp, source/common/lookahead.h, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h, source/encoder/slicetype.cpp, source/encoder/slicetype.h: lookahead: rename LookaheadFrame struct to Lowres, statically allocate frames[] [f242ef373949] * source/common/CMakeLists.txt: cmake: add COPYING to common project to remove any ambiguity [c4963929c680] * source/Lib/TLibCommon/TComSlice.cpp: TComSlice: nit [c6ffd3ab9493] * source/PPA/ppaCPUEvents.h, source/encoder/dpb.cpp, source/encoder/frameencoder.cpp: ppa: resolve event names which conflict with method names, add DPB_encodeSlice [1adb33d3536a] 2013-08-18 Steve Borho * source/common/lookahead.cpp: lookahead: re-initialize lowresMvs by dereferencing first MV (nit) [5b97ea55042f] * source/encoder/cturow.cpp: cturow: remove prefixes from loop autos [e0b4698761fd] * source/encoder/cturow.cpp: cturow: remove pc prefix from rdSbacCoder [aaf4327d1be3] * source/common/lookahead.cpp: lookahead: fix intraCost data type for malloc [662d24a28312] * source/common/lookahead.cpp: lookahead: re-enable downscale, ensure lowres stride is multiple of 32 [d907e9a55ad1] * source/encoder/slicetype.cpp: slicetype: simplify intra processing [6badaa4d5e5f] * source/encoder/slicetype.cpp: slicetype: improve comments [7146682f5133] * source/encoder/slicetype.cpp: slicetype: remove warning disables now that functionality is all present [2048f9324890] * source/encoder/slicetype.cpp: slicetype: update authors now that x264 routines are removed [a1c1cbd257ff] * source/encoder/motion.cpp: motion: remove hungarian prefixes from temp vars [51d8d4962ab9] * source/common/mv.h: mv: switch from class to struct since member vars do not have m_ prefix [5b7014113b29] * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPrediction.cpp, source/common/lookahead.cpp, source/common/reference.cpp, source/common/reference.h, source/encoder/motion.cpp, source/encoder/slicetype.cpp: reference: remove m_ prefix from member variables [2a2569c73bdb] * source/common/reference.h: reference: convert ReferencePlanes from class to struct I want to remove m_ prefix, and a policy of m_ for class but not for struct seems reasonable [bf0b1cb360f9] * source/Lib/TLibEncoder/TEncTop.cpp, source/common/primitives.cpp: ContextModel: move static initialization out of TEncTop constructor [e0e620037485] * source/Lib/TLibCommon/ContextModel.cpp, source/Lib/TLibCommon/ContextModel.h: ContextModel: variable name cleanup [86fbb4094143] * source/common/lookahead.h, source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: move cuWidth and cuHeight from LookaheadFrame to Lookahead [e3b40ff627b7] * source/encoder/slicetype.cpp: slicetype: simplify intra cost check [e1fe931856ad] * source/encoder/motion.cpp: motion: avoid QPEL refinement during lookahead Our QPEL plane pointers simply reference the nearest HPEL plane so doing any QPEL refine would be a waste of time, and add rnadom bits. We should add an H.264 (A+B+1)>>1 primitive and then use this to create fake QPEL blocks for refinment during lookahead. [c1e1e8e43299] * source/common/lookahead.cpp, source/common/reference.h: reference: add lowres flag [6702102c2691] * source/encoder/slicetype.cpp: slicetype: establish lowres search bounds [db1d199e9f8e] 2013-08-16 Min Chen * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h: framepp: fix bug with '--sao-lcu-bounds 1' and move part of sao into compress loop [9cecd693489c] 2013-08-16 praveentiwari * source/common/vec/sse.inc: sse_pp8: Eliminated shift [87f93fe917f6] 2013-08-16 Steve Borho * source/encoder/slicetype.cpp: slicetype: more varname cleanups [a5a265b57844] * source/encoder/slicetype.cpp: slicetype: fix GCC nits [442dd01cacb1] * source/encoder/slicetype.cpp: slicetype: nits [41b35c287a2f] * source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: fill missing detail, use x265 varname style, remove old functions [815a3cce3969] * source/encoder/slicetype.cpp: slicetype: fix another cu_size [4c4e30671ad7] * source/encoder/slicetype.cpp: clicetype: uncrustify [0a5a90a0899e] 2013-08-16 ggopu * source/common/lookahead.h, source/encoder/slicetype.cpp, source/encoder/slicetype.h, source/x265.h: slicetype: Added slicetypeAnalyse [6551f04e7eed] 2013-08-16 Steve Borho * source/Lib/TLibCommon/TComTrQuant.cpp: TrComQuant: fix 8bpp build [c2f5275ecb49] * source/Lib/TLibCommon/TComTrQuant.cpp: TrComQuant: lastpos formal parameter unreferenced [16feaf4ec711] * source/common/vec/dct.inc: dct: prevent compilation of quant for < SSE4.1 (fixes GCC build) [8a0228a12a84] 2013-08-16 Min Chen * source/Lib/TLibEncoder/TEncSearch.cpp: idct: more dc mode detect code [76ca2eae8f0b] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: cleanup: remove unused code invRecurTransformNxN [983cc77e8526] * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/vec/pixel.inc: idct: primitive blockfil_s for dc fill [23b8aafb1fde] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSearch.cpp: idct: Improved performance by DC only block detect [0b225ee24b5d] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/dct.cpp, source/common/primitives.h, source/common/vec/dct.inc, source/test/mbdstharness.cpp: generate lastPos in quant [4be95d676094] * source/common/vec/dct.inc, source/test/mbdstharness.cpp: quant: Improved performance by SSE4 [681ab201ea0c] * source/encoder/slicetype.cpp: temp for Intra Buffer generate [ec4a9d8a39b1] 2013-08-16 Steve Borho * source/encoder/ratecontrol.cpp: tpyo [1cf5ed68ab58] * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: ratecontrol: move defines within CPP file [4a39b2fa427d] * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: ratecontrol: move math methods to CPP file as file statics [1f2577034e53] 2013-08-16 sumalatha * source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: integrate ratecontrol methods and changed some APIs [fe0adfe9d10d] 2013-08-16 Steve Borho * source/Lib/TLibEncoder/TEncTop.cpp: TEncTop: GCC needs math.h for log10() [a1a2eceec263] * source/encoder/encoder.cpp: encoder: add a comment explaining the odd nature of encoder.cpp [e8d616dbbd16] * source/Lib/TLibEncoder/TEncCfg.h, source/encoder/CMakeLists.txt, source/encoder/dpb.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h: dpb: move fixed GOP initialization function into dpb, drop encoder.h [b77b7dc21de9] * source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/encoder/CMakeLists.txt, source/encoder/dpb.cpp, source/encoder/dpb.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: dpb: split DPB logic and data from TEncTop into a separate class The DPB class is still using the HM's fixed GOP mess, but at least this is all mostly localized in one place so it can be cleaned up together and has a clean interface. [6d14b538caa6] * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frame: inline wait_lft and re-order code for more clarity [8f25a0cde46f] * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frame: simplify determineSliceBounds [96d870433517] 2013-08-15 Steve Borho * source/encoder/frameencoder.cpp: frame: nit [7efbd7bb9606] * source/encoder/frameencoder.cpp: frame: remove unused oneBitstreamPerSliceLength [646346ad4fe1] * source/encoder/frameencoder.cpp: frame: replace access method calls with direct variable accesses [59d41d6da41c] * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frame: rename compressSlice to compressCTURows() [8a322b6c90ec] * source/encoder/frameencoder.cpp: frame: hoist stat file logging into compressFrame() [175ae0c43c10] * source/encoder/frameencoder.cpp: frame: isolate CU processing functionality into compressSlice() Other unrelated functionality pulled up into compressFrame() [8137fa713b09] * source/encoder/frameencoder.cpp: frame: move xStoreWPparam() together with rest of weightp analysis [4262ef8c2495] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/encoder/cturow.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/ratecontrol.h: remove TEncGOP, merge remaining pieces into FrameEncoder [f2bdd05b440d] * source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/SyntaxElementWriter.cpp, source/Lib/TLibEncoder/SyntaxElementWriter.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCavlc.h: SEIWrite: varname cleanups [268b3e920752] * source/Lib/TLibEncoder/SEIwrite.h: SEIWrite: remove only unused data member [4de5d74111ee] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: TEncGOP: move hash and PSNR calculations to TEncTop Much of the function needs to use singleton data elements in TEncTop anyway, and very little of it needs the frame encoder. [c98c3ad68604] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: move digestToString so it doesn't need forward decl [bbcc53d4c501] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: remove unused xGetFirstSeiLocation [885718e12a06] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: inline xAttachSliceDataToNalUnit, only used once [b5027d04ff40] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: inline SEI creation functions I see no need to alloc/free them [ea53a8153f61] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: drop HRD/DU logic and SEI message generation This HRD logic is going to be broken badly by frame parallelism, and we do not allow it to be enabled, in any case, so I'm removing this code before it can be broken. [029ba5a2f11e] * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/frameencoder.cpp: TEncTop: move ASR initialization to compressSlice() [12bf524e02d3] 2013-08-16 Min Chen * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncGOP.cpp: framepp: move xPCMRestoration* outside from TComSampleAdaptiveOffset [84c4b829261b] * source/x265.cpp: framepp: loopfilter and sao need same control value [15e1795cbc78] * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h: cleanup: remove unused code TComSampleAdaptiveOffset::processSaoCu [3a0630fff639] * source/Lib/TLibEncoder/TEncGOP.cpp: cleanup: remove unused code [b1cb3809070d] * source/Lib/TLibEncoder/TEncGOP.cpp: cleanup: remove unused code [ddc1969b819a] * source/encoder/frameencoder.cpp: fix VC9 compile error [b079ba16208f] 2013-08-15 Steve Borho * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: unify hash and PSNR reporting into one routine [23d8d29c5242] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: remove redundant argument to xCreateSEIActiveParameterSets [d51950a93f5d] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: TEncTop: move prepareEncode and all RPS/DPB logic out of TEncGOP [6dc06a8b5ebc] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: reorder some code for more clarity [bc8d3239f833] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncTop.cpp: TEncGOP: prune unused cruft [1b745ef91669] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: remove access var only used twice [225ba0172ae5] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: use m_cfg in lieu of m_top where applicable [76b2e8aa1c18] * source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/encoder/encoder.cpp, source/encoder/frameencoder.h: Remove unused TEncSlice [95afc59fb926] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: TEncSlice: move xDetermineStartAndBoundingCUAddr to FrameEncoder And give a less idiotic name [7aa3ea09223d] * source/encoder/frameencoder.cpp: frameencoder: include math.h for GCC [ca1a412ecaad] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: TEncSlice: move encodeSlice into FrameEncoder [31676f5d2e19] * source/encoder/frameencoder.cpp: frameencoder: enqueue framefilter after frameencoder This gives higher priority to compressCU jobs over deblocking jobs [9d68f6d61ecf] * source/encoder/frameencoder.cpp: frameencoder: simplify motion reference generation [d1e0f1613380] * source/encoder/frameencoder.cpp: frameencoder: nits [e03a200c073c] * source/encoder/CMakeLists.txt, source/encoder/cturow.cpp, source/encoder/cturow.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: cturow: split CTURow class into its own cpp and h [93a8be5a9247] * source/encoder/CMakeLists.txt, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/framefilter.cpp, source/encoder/framefilter.h: framefilter: split FrameFilter class into its own cpp and h frameencoder is getting crowded with TEncSlice methods being integrated, and it is only going to grow as TEncGOP is broken up. [f4bbb38f427d] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: TEncSlice: move compressSlice logic into FrameEncoder [b057e7325398] * source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/encoder/frameencoder.cpp: TEncSlice: prune unnecessary cruft [e160aef8a3a1] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h: TEncSlice: inline SAR configuration into prepareEncode() [76636a121054] * source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h: TEncSlice: remove unused resetQP method [19e8c9de3746] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: move TEncSlice::initEncSlice to FrameEncoder::initSlice [ec371fd8c2a9] * source/Lib/TLibEncoder/TEncSlice.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: retrieve slice from pic [2f2413f173f1] * source/Lib/TLibEncoder/TEncSlice.h, source/encoder/frameencoder.h: more include cleanups [26c84a647f51] * source/Lib/TLibEncoder/WeightPredAnalysis.h: WeightPredAnalysis: simplify includes [d0332c1c4efa] * source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h: TEncSlice: remove unused xGetQPValueAccordingToLambda [88762f5981b5] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: report slice depth in verbose logging [e184ead1cb2e] * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/encoder/encoder.cpp: encoder: remove unexposed m_recalculateQPAccordingToLambda [32b7db776b91] * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibEncoder/TEncSlice.cpp: CommonDef: remove unnecessary HB_LAMBDA_FOR_LDC [61fe1722b31d] * source/Lib/TLibEncoder/TEncSlice.cpp: TEncSlice: re-order logic for more clarity [4b57d673354b] * source/Lib/TLibEncoder/TEncSlice.cpp: TEncSlice: remove obsolete comments for initEncSlice() [6a1ed114c77a] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: re-order some functions by use [08245cb48490] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h: TEncSlice: do not pass pocCurr to initEncSlice [8cc6ca8a86df] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncTop.cpp, source/PPA/ppaCPUEvents.h: TEncGOP: split DPB/RPS management into prepareEncode() function [449a3b84fb3e] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: remove unnecessary pointer argument reference [1f8f44007b88] * source/encoder/encoder.cpp: encoder: use true/false to assign bool values [312b7e281b1a] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/encoder/encoder.cpp: TEncTop: getStreamHeaders always returns one access unit [5c22574b8dd9] 2013-08-14 Steve Borho * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncTop.cpp: TEncGOP: rename m_frameEncoders to singular [735d3ee0ef97] * source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: TEncTop: remove m_picsEncoded [90fe33838e63] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: move utility functions to the end of the file, cleanups [b34a889f4388] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: increment m_totalCoded appropriately, improve comments [80f6de28afb2] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: remove unused ref pic fields [823a9a1ae579] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: use configured bitrate instead of hard-coded value [7b435f8feaad] * source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: prepare to bifurcate TEncGOP [d7ecc2be68b7] * source/Lib/TLibEncoder/TEncCfg.h: TEncCfg: drop unused m_framesToBeEncoded [b6debda1b70d] * source/Lib/TLibEncoder/TEncTop.cpp: TEncTop: fix recon file write with 16bpp builds [ba0badc108ed] * source/encoder/ratecontrol.cpp: ratecontrol: fix vc10 release build [a506ed0b9704] * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: ratecontrol: clean compile for GCC - not sure all these changes are correct [e8a95b63af2b] * source/encoder/slicetype.cpp: slicetype: more fixes [c0f68e202961] * source/encoder/slicetype.cpp: slicetype: include list used in lowresCosts 0 - intra 1 - inter L0 2 - inter L1 3 - bidir (future) [0182e9c3abe4] * source/encoder/slicetype.cpp: slicetype: fix I frame cost accumulation, use min to clamp lowresCosts [c744de283468] * source/common/lookahead.cpp, source/common/lookahead.h: lookahead: add intraCost array [c2a650e052a6] * source/encoder/slicetype.cpp: slicetype: fixup intra cost and combinations [ab0751792c3c] 2013-08-14 ggopu * source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype : estimateCUCost enhancement for selecting best cost [29acacb4afe8] 2013-08-14 Steve Borho * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h, source/x265.h: ratecontrol: use doubles, fix warnings [74b11e67f664] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: re-order some code for clarity [29635c591048] * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: ratecontrol: uncrustify [52a709ce88a8] * source/common/common.cpp: common: prevent warnings about double-to-float conversions [f3ec4ebd72c9] * source/encoder/CMakeLists.txt: cmake: add ratecontrol to the build [5c7f8a82e267] * source/Lib/TLibEncoder/TEncGOP.cpp, source/common/common.cpp, source/encoder/encoder.cpp, source/encoder/ratecontrol.h, source/x265.h: ratecontrol: nits [4dfc091ce662] 2013-08-14 sumalatha * source/common/common.cpp, source/common/common.h, source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h, source/encoder/slicetype.h, source/x265.h: add rate control parameters to x265_param_t make corresponding changes to ratecontrol.cpp and .h moved the macro definition of QP_BD_OFFSET from slicetype.cpp to common.h [d1d0d90ec2f1] 2013-08-14 Steve Borho * source/Lib/TLibEncoder/TEncTop.cpp: TEncTop: fix some obsolete comments [2c89a497dc5b] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/encoder/encoder.cpp, source/encoder/slicetype.cpp, source/encoder/slicetype.h, source/x265.cpp, source/x265.h: x265: remove GOP compress cadence, encode frames one at a time it is still using the HM's fixed GOP schedule, but the encoder only encodes one frame per encode call, and returns at most one encoded frame. [11cce4de927a] 2013-08-13 Steve Borho * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncTop.cpp: TComSlice: delay clearing of motion references until TComPic is recycled [a2026f0e1556] * source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: TEncTop: allocate frames as needed, recycle unreferenced frames from pic list [965dbb6e0880] * source/Lib/TLibCommon/TComPic.h, source/common/lookahead.cpp, source/common/lookahead.h: lookahead: add slicetype decision outputs [45743a306237] * source/common/lookahead.cpp: lookahead: hide unused formal parameter, prevent compiler warning [b4ff6dca63fa] * source/common/lookahead.cpp, source/common/lookahead.h: lookahead: fix EOLN, move methods to CPP file, disable downscale again for now [b8ad0352ce45] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: don't pretend the gop encoder has multiple frame encoders [c34463e78f61] * source/Lib/TLibEncoder/TEncTop.cpp, source/output/y4m.cpp, source/output/y4m.h, source/output/yuv.cpp, source/x265.h: recon: allow reconstructed images to be output in non-display order By returning the POC of the recon image, the output file writers can seek to the appropriate location in the output file before writing the frame data [1d710404b8bb] * source/Lib/TLibCommon/TComPic.cpp, source/common/lookahead.cpp, source/common/lookahead.h: lookahead: move remaining create logic into create method [90c11204554b] * source/common/lookahead.cpp: lookahead: simplify create() method slightly [506ee1b3ad69] * source/Lib/TLibCommon/TComPic.cpp: TComPic: add missing call to lowres.create() [8c468308ab8d] * source/Lib/TLibEncoder/TEncTop.cpp, source/common/lookahead.h: lookahead: move downscale and extend logic into lowres.init() [e3bd326a9f6f] * source/Lib/TLibCommon/TComPic.h: TComPic: add sliceType member variable for lookahead output indication The TComPic doesn't have a TEncSlice associated with it until encode time [74cc4a1bfd2c] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibEncoder/TEncTop.cpp, source/common/CMakeLists.txt, source/common/lookahead.cpp, source/common/lookahead.h: lookahead: isolate buffer allocation and release logic into LookaheadFrame class [79c8806844e7] * source/encoder/slicetype.cpp, source/encoder/slicetype.h: slicetype: remove incorrect comments [aea1b324270c] * source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/encoder/CMakeLists.txt, source/encoder/slicetype.cpp, source/encoder/slicetype.h: TEncTop: allocate a singleton lookahead instance [9a5b30cb1224] * source/x265opts.h: x265: no camelcase CLI options [e866ff4da277] * source/x265opts.h: x265: fix help for bFrameBias [2f1c5bb1d471] * source/x265.cpp: x265: show boolean flag defaults even if they have a short-option [f94fa416ac32] * source/x265opts.h: x265: re-order boolean flags for more logical groupings [c7cfe440ace3] * source/x265opts.h: x265: remove obsolete default documentation [76775075d70d] 2013-08-13 ggopu * source/x265.cpp: x265 cli: Added default values to the CLI help text [d374ab339bb1] 2013-08-13 Steve Borho * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: TEncTop: remove hungarian gc prefix from frame statistics members [7caea03eee1a] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: remove unnecessary scope level [03782d7def51] * source/Lib/TLibEncoder/TEncTop.h: TEncTOP: forward decl Lookahead and ThreadPool [d65cc8602bec] * source/encoder/encoder.cpp: encoder: prevent warnings for open-gop config [f3e7ad1ce870] * source/encoder/slicetype.cpp: slicetype: only calculate lowres intra costs once per input picture [9eb065201f31] * source/encoder/slicetype.cpp: slicetype: rename tmp to predictions [c9b3cd336732] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/common/lookahead.h: lookahead: re-initialize lowres state for each new picture [2751158af327] * source/encoder/slicetype.cpp: slicetype: fix prediction and sa8d arguments [78096e525541] * source/encoder/motion.h: motion: expose COST_MAX [cce777ac5df4] 2013-08-13 ggopu * source/encoder/motion.h, source/encoder/slicetype.cpp: slicetype: satd cost analysis bug fixed [682a9fba1363] 2013-08-13 Steve Borho * source/common/common.cpp, source/encoder/encoder.cpp: encoder: repair open-gop behavior it was broken when we replaced uint getKeyframeInterval() with signed int param.keyframeInterval [560f4c14f09a] * source/encoder/slicetype.cpp: slicetype: add comment to make uncrustify happy [69cd47d7f82d] * source/common/lookahead.h: lookahead: remove unused macro [b87942b6386e] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/common/common.cpp, source/encoder/encoder.cpp, source/x265.h, source/x265opts.h: x265: add lookahead parameters to x265_param_t [30c4a908cf65] 2013-08-12 Steve Borho * source/common/lookahead.h: lookahead: reorder and document LookaheadFrame [b9c7aa48d921] * source/encoder/slicetype.cpp: slicetype: rename X264_LOOKAHEAD_QP [c8fff4b1bec8] * source/encoder/slicetype.cpp: slicetype: use hex search in lookahead [8d7ffa0d7433] 2013-08-12 ggopu * source/encoder/slicetype.cpp: slicetype : Uncrustify [9f604820f7ef] 2013-08-12 Steve Borho * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: cleanup [415f3a0ae098] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: move adaptive search range determination a bit later [2ac81e7d676c] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: use REF_PIC_LIST enums directly [58b2989ec91e] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: move access unit allocation closer to bitstream generation This further isolates the slice initialization code [7057a8e3603d] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: wrap long line [4294560b0494] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: use m_cfg to reference scaling list type [4d5f7e8888c1] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: rename iRef to ref [14f9aa8dbe2e] * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/encoder/encoder.cpp: TEncGOP: TMVP has been hard-coded enabled for some time [2181954a2d68] * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/encoder/encoder.cpp: TEncGOP: drop file parsing of scaling lists, simplify slice initialization [7afeef6f2a9a] 2013-08-11 ggopu * source/encoder/slicetype.cpp: slicetype: added x265_median_mv [8438cad92049] 2013-08-12 Steve Borho * source/CMakeLists.txt: cmake: add Windows-only option to make binary compatible with Windows XP [e6ad89277005] 2013-08-11 Steve Borho * source/input/yuv.cpp: yuv: delay signed int cast until after division by picture size This should fix reported negative frame count problems [368c080859bd] * source/Lib/TLibEncoder/TEncTop.cpp: TEncTop: GOP encoders are no longer allocated as an array As reported by JMK [14a47a6c1ec1] 2013-08-11 Aarthi * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: uncrustify, code cleanup , continue porting x264 rate control to x265. [4085c992877a] 2013-08-11 Steve Borho * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp: TEncGOP: move slice reference flag from TEncSlice to TEncGOP Move it together with the rest of the code that determines slice and NAL type [7b25809b3fe4] * source/test/pixelharness.cpp: pixelharness: revert memcmp counts to full block size I had changed a number of these to only compare the actual block size processed by the primitive, but this was wrongly checking the first n x m pixels instead of the n x m pixels in the upper left corner of the output buffer (the stride of the buffers was always 64). So it was comparing some of the wrong pixels, and not all of the proper ones. Comparing all 64x64 pixels is harmless, and actually verifies the primitive isn't writing beyond the correct outputs. [607eedcf3212] 2013-08-09 Steve Borho * source/encoder/encoder.cpp: encoder: nit [88e0c10bf47b] * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/encoder/encoder.cpp: encoder: drop unused loop filter offsets from fixed GOP struct [b496ddb751ac] * source/encoder/frameencoder.cpp: frameencoder: fix member initialization order for GCC [83def5041252] * source/encoder/slicetype.cpp: slicetype: fix GCC warnings and EOLN damage and one bug [69d4bdb68535] 2013-08-09 sumalatha * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: Uncrustify ratecontrol.cpp and ratecontrol.h [5f10bcb999ce] 2013-08-09 praveentiwari * source/common/dct.cpp, source/common/vec/ipfilter8.inc, source/test/mbdstharness.cpp, source/test/mbdstharness.h: Added name to worked files [8a7256f288de] * source/common/vec/sse.inc: sse.inc: Added name to contributed file [93520e0c6df3] * source/common/vec/dct.inc: dct.inc: Added name to contributed file [d8777ff60029] 2013-08-09 Steve Borho * source/common/lookahead.h, source/encoder/slicetype.cpp: slicetype: fill in more lookahead detail [63e629a504d1] 2013-08-08 Steve Borho * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncTop.cpp: mark places where m_gopList is used aka, mark where the demolition charges are set [14e5d42ea283] 2013-08-08 Min Chen * source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/PPA/ppaCPUEvents.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: framepp: thread of loopfilter [facd861224d6] 2013-08-08 Steve Borho * source/common/vec/pixel.inc: pixel: allow intel compiler to generate AVX2 intrinsics [95e6b13e7122] * source/common/vec/pixel.inc: pixel: disable AVX2 instrinsic SAD primitives for VC11 They are failing unit tests, and causing odd encoder crashes that appear to be related to aligned loads. We need ASM versions of these functions. [235519423524] * source/test/ipfilterharness.cpp: ipfilter: and some more tabs [ee7f9c2593fd] * source/test/ipfilterharness.cpp: ipfilter: nuke some tabs [d2f925d4fdb3] * source/Lib/TLibCommon/TComCABACTables.h: TComCABACTables: fix ICL warning about order of variable modifiers [820b7497f118] * source/test/ipfilterharness.cpp: ipfilter: malloc output buffers for testbench - prevents ICL stack overflow [9130a070955e] * source/common/vec/sse.inc: sse: variable renames to match pixelcmp style [eb4da8a89357] 2013-08-08 praveentiwari * source/common/vec/sse.inc: sse_pp64: +1x over last commit [e272439497e7] * source/common/vec/sse.inc: sse_pp48: +1x over last commit [5c0700683875] * source/common/vec/sse.inc: sse_pp32: Better performance result [14c2bcce6de1] * source/common/vec/sse.inc: sse_pp24: Better performance result [f03aca71c486] * source/common/vec/sse.inc: sse_pp16: Better performance result [e91911135862] * source/common/vec/sse.inc: sse_pp12: Replced costly psrli + pmovzx and psrli + add [307ade9f9aab] * source/common/vec/sse.inc: sse_pp8: Replaced 'vpbroadcastd' with cheaper 'pxor' instruction [11aed2197707] 2013-08-08 sumalatha * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h: add (incomplete) ratecontrol.cpp and ratecontrol.h [9974f57f56a1] 2013-08-08 praveentiwari * source/common/vec/ipfilter8.inc: filterVertical_s_p: VC9 fix [5881b6f1e81a] 2013-08-08 Steve Borho * source/encoder/CMakeLists.txt: cmake: add slicetype.cpp to the encoder build [b4fcf168c5d0] * source/Lib/TLibCommon/TComPic.h: TComPic: nit [dce4535983f4] 2013-08-08 ggopu * source/common/lookahead.h, source/encoder/slicetype.cpp: slicetype: modified lookahead structure and added slicetype_cu_cost() [1d6f838b4f64] * source/encoder/slicetype.cpp: Uncrustify slicetype.cpp [2bfbb7608340] 2013-08-08 Steve Borho * build/icl/build-all.bat, build/icl/make-makefile.bat, source/common/vec/CMakeLists.txt: cmake: add batch files for Intel C++ 2013 on Windows [57cef8258abe] * source/CMakeLists.txt: cmake: Intel's ICL mimics MSVC compiler commandline, treat as equiv [d4a7ea88c34d] 2013-08-07 Min Chen * source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncTop.cpp: fix bug when '--no-wpp --no-lft' [33aa6210de6d] * source/common/common.cpp, source/x265opts.h: rename option from 'lpf' to 'lft' [084497e2ef56] 2013-08-07 praveentiwari * source/common/vec/sse.inc: sse_pp64: +1.5x for all versions [710007b7f4ba] * source/common/vec/sse.inc: sse_pp48: Improved performance result for all versions [797416b5b84b] * source/common/vec/sse.inc: sse_pp24: Improved performance result for all the versions [d6403549def5] * source/common/vec/sse.inc: sse_pp32: Improved performance for all versions above 1x [480322faaa72] * source/common/vec/sse.inc: sse.inc: Uncrustified [4cd7311e31b5] 2013-08-07 Steve Borho * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGop: simplify call of setMvdL1ZeroFlag() [e6d0a359648c] * source/common/pixel.cpp: pixel: white-space cleanups in frame_init_lowres_core [38f11ae10731] * source/test/pixelharness.cpp: pixelharness: fix more test dimensions [80fde3dd585d] 2013-08-06 Steve Borho * source/Lib/TLibEncoder/TEncTop.cpp: TEncTop: simplify pic list destruction [e8fed4725b02] * source/Lib/TLibEncoder/TEncTop.cpp: TEncTop: correct an old comment [3afa31de4310] 2013-08-06 Deepthi Devaki * source/common/vec/ipfilter8.inc: ipfilter8.inc: Uncrustified [3f879cd9e058] * source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc: ipfilter8.inc: vectorized vertical weighted filter [56d7ae74bd6e] * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: ipfilterharness: unit test for vertical weighted filter [053083121fe0] 2013-08-06 Steve Borho * source/common/vec/pixel.inc, source/common/vec/sse.inc: sse: sse_pp requires SSE4.1 [9418d73daa48] * source/Lib/TLibCommon/TComPic.cpp: TComPic: fix the malloc logic [cd89e891c3b9] * source/Lib/TLibCommon/TComPic.cpp: TComPic: fix white-space style [80f154c0305f] 2013-08-06 praveentiwari * source/common/vec/sse.inc: sse_pp16: more than +1x performance improvement for all versions. [c90132bb66fb] * source/common/vec/sse.inc: sse_pp12 all versions, improved performance with intrinsic code [d0a378326291] * source/common/vec/sse.inc: +1x for all versions of sse_pp8 [8854c6df7d10] 2013-08-06 Min Chen * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: framepp: move frame col flag to Pic [2d032b79a988] 2013-08-06 Steve Borho * source/Lib/TLibCommon/TComPic.cpp: TComPic: initialize m_bframes and lowres struct to all zeros [f48617fc87d3] * source/test/pixelharness.cpp: pixelharness: futher magic value cleanups, use STRIDE as appropriate [c9149cee2317] * source/Lib/TLibCommon/TComLoopFilter.cpp: TComLoopFilter: fix variable shadowing The HM was using Edge as a parameter and iEdge as a loop variable [977bb357f2a0] * source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h: TEncSBac: iOffset -> offset [91743e8e2ecc] * source/Lib/TLibCommon/TComPattern.cpp: TComPattern: piSrc -> sec [0d5ec9084022] * source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h: TComLoopFilter: strip hungarian prefixes from members and autos [d42fdd481a32] 2013-08-06 Min Chen * source/Lib/TLibCommon/TComLoopFilter.cpp: framepp: merge V/H filter into one loop [4c49a45a5ce9] * source/Lib/TLibCommon/TComLoopFilter.cpp: framepp: loopfilter simplify and remove redundant getDeblockingFilterDisable() [aaf5ba14d7d4] 2013-08-05 Steve Borho * source/test/pixelharness.cpp: pixelharness: stride of 64, incr of 32, remove magical values This should fix AVX2 test failures and make the code more maintainable [922ef1b99c9a] * source/test/pixelharness.cpp: pixelharness: remove redundant defines [9c2792126e9d] * source/Lib/TLibEncoder/TEncCfg.h: white-space cleanups in TEncCfg.h [03880135c31b] * source/encoder/motion.cpp, source/encoder/motion.h: motion: remove dead subsample member [18eefbb58790] * source/Lib/TLibCommon/SEI.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/SEIwrite.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/encoder/encoder.cpp: TEncGOP: remove SOPDescriptionSEI, the HM's implementation required fixed GOP [697ed158f1e2] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: remove unused multi-slice logic [4b91d6759a09] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: isolate colDir logic within B-frame expression [43b753eef43d] 2013-08-05 ggopu * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibEncoder/TEncTop.cpp: lookahead: lookahead output cost allocations and initialization [81c3ad052397] 2013-08-05 Steve Borho * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp: remove redundant m_deblockingFilterControlPresent [ee84b4b64587] * source/Lib/TLibEncoder/TEncCfg.h, source/encoder/encoder.cpp: remove redundant m_bLoopFilterDisable [8db8e2fe6ba3] 2013-08-05 Min Chen * source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/common/common.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/x265.h, source/x265opts.h: framepp: Loopfilter cleanup and control by --lpf [d1f2b9cad11d] 2013-08-05 Deepthi Devaki * source/common/vec/ipfilter8.inc: Optimizations to horizontal weighted filter [bdea613d4402] * source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc: vectorized horizontal weighted filter [894e47d258a7] * source/test/ipfilterharness.cpp: ipfilterharness: modifications to weighted filter testbench [87dbfdda0769] 2013-08-05 praveentiwari * source/common/vec/ipfilter8.inc: filterHorizontal_p_s: saving instructions with control execution [48c6641e19de] * source/common/vec/ipfilter8.inc: filterHorizontal_p_p: sum decleared as local register [77ee29b50554] * source/common/vec/ipfilter8.inc: filterHorizontal_p_p: saving instruction with control execution [0c2a6a18293e] 2013-08-05 Steve Borho * source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc: ipfilter: ipfilter_pp uses SSE4.1 instructions [a1133f538222] 2013-08-04 Aarthi * source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp: remove duplicate vars, get() methods [37cbf6432e63] 2013-08-02 Steve Borho * source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc: ipfilter: remove vector versions of more optimized functions [074c05f87c53] * source/common/vec/CMakeLists.txt, source/common/vec/blockcopy- sse42.cpp, source/common/vec/dct-sse42.cpp, source/common/vec/intra- sse42.cpp, source/common/vec/ipfilter-sse42.cpp, source/common/vec /pixel-sse42.cpp, source/common/vec/sse42.cpp, source/common/vec /vec-primitives.cpp: remove SSE42 vector primitive files - they were nearly the same as SSE41 There wasn't enough differentiation (only abs() changed with SSE42) to warrant all the extra build time. [b391765c9c96] * source/common/vec/pixel.inc, source/common/vec/pixel8.inc, source/x265.h: x265: switch cpu levels from enum to defines [3db96ea97abb] * source/common/vec/pixel.inc: pixel: move sse.inc include closer to other primitive includes [8afe0e089317] * source/common/primitives.h, source/common/vec/blockcopy.inc, source/common/vec/dct.inc, source/common/vec/intrapred.inc, source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc: vec: use enums instead of magical integer values for SIMD build macros [6764c2750c35] * source/common/primitives.h: primitives: white-space fix [190063ccc281] * source/x265.h: x265: add enums for CPU SIMD architecture levels [adad7346e6f7] * source/x265.h: x265: fix C++ism in public header and some white-space issues [37e2c97d2478] * source/encoder/frameencoder.cpp: frameencoder: do not check row priority if WPP is disabled [d0b3ab46f903] * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp: TEncCfg: nuke most set*() methods [1b9935ff8dcf] 2013-08-02 praveentiwari * source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc: filterVertical_p_p: intrinsic for vector replacement [0a9afd5eed38] * source/common/vec/ipfilter8.inc: filterVertical_s_p: constrution replaced with shuffle [d2cbfda470bb] * source/common/vec/ipfilter8.inc: filterVertical_s_p: fix for VC9 test bench fail [62696c47e875] 2013-08-02 Steve Borho * source/encoder/encoder.cpp: encoder: fix member variable shadowing [2416019326d9] 2013-08-02 ggopu * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibEncoder/TEncTop.cpp, source/common/CMakeLists.txt, source/common/lookahead.h: Lookahead data structures introduced [de3e6c30815c] 2013-08-02 aarthi * source/encoder/encoder.cpp: replaced all the set*() methods with the member variables in encoder.cpp [83865be72a9d] 2013-08-02 Shazeb N Khan * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: TestBench for filter-Weighted [30c7ae31afd5] 2013-08-01 Steve Borho * source/common/wavefront.cpp, source/common/wavefront.h, source/encoder/frameencoder.cpp: wavefront: add a check for higher priority rows ready to be processed [322bea3559e7] * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/encoder/encoder.cpp: replace TEncCfg.getIntraPeriod with param.keyframeInterval [86cc97cbcb3e] * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp: replace TEncCfg.getSourceHeight with param.sourceHeight [67cc495aaa55] * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp: replace TEncCfg.getSourceWidth with param.sourceWidth [3f971cea03e8] * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp: replace TEncCfg.getFrameRate with param.frameRate [9e872c494da3] * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp: replace TEncCfg.getLogLevel with param.logLevel [1f83472c5312] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: replace TEncCfg.getEnableWaveFront() with param.bEnableWavefront [584dac26a4f2] * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncTop.h, source/encoder/encoder.cpp: give TEncCfg a copy of the input params [184702b704a5] * source/encoder/encoder.cpp: encoder: note some missing logic in level enforcement [0e6828678464] * source/common/common.cpp: common: update warning message about searchMethod values [29e00b2bff05] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/motion.cpp: add full search to optimized ME, always use our function for uni- search [187647eff86d] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/x265.h, source/x265opts.h: remove HM's unidirectional motion search except full search [712d50ffcfe4] * source/encoder/encoder.cpp: biprediction uses HM's full search routine unconditionally The search method for uni-directional search does not depend on bipred search configuration. [bdef1663b85a] 2013-08-01 Shazeb N Khan * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSlice.cpp: TEncSearch, TEncSlice, TComPrediction: Uncrustified [59d9b3f08727] 2013-08-01 Steve Borho * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.h, source/Lib/TLibEncoder/TEncSearch.cpp: Using the weighted frames in prediction [c77176c0a699] 2013-08-01 Shazeb N Khan * source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/encoder/encoder.cpp: Integration of weighted frames in the encoder [2113842f58ea] * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibEncoder/TEncSearch.cpp: Used cached MotionReference pointers in Prediction [62150133b753] 2013-08-01 Steve Borho * source/Lib/TLibCommon/TComPicYuv.cpp, source/common/reference.cpp, source/common/reference.h: reference: add methods for setting and comparing weights [dba06d54c67e] * source/common/reference.h, source/encoder/motion.cpp, source/encoder/motion.h: reference: split reference plane data from interpolation logic The motion search code only needs the ReferencePlanes data. Now that it is separated, lookahead can use the reference plane structure without all the MotionReference overhead. [7b3fa7f5cfa5] * source/Lib/TLibCommon/CommonDef.h, source/encoder/compress.cpp: Move LAMBDA_PARTITION_SELECT defnition from CommonDef to compress.cpp [f39175ab6093] * source/common/vec/ipfilter8.inc: ipfilter: remove unused maxVal variable (for 8bpp it is unnecessary) [689de127f659] * source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc: ipfilter_sp uses SSE4 instructions [1ee78b4c3ba0] * source/common/common.cpp: common: enable WPP by default, disable by --no-wpp or --threads 1 [b1b84e8b7b70] 2013-08-01 praveentiwari * source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc: Close to +2x performance improvement for filterVertical_s_p [6a66dfc449bc] 2013-08-01 sumalatha * source/Lib/TLibCommon/CommonDef.h: adjusted LAMBDA_PARTITION_SELECT value to 0.9 - optimal for using in Early-Exit NO-RDO [053abe99ac91] * source/encoder/compress.cpp: made logic changes to EARLY_EXIT_NO_RDO mode - optimized for perf Gain [f03c950448c0] * source/encoder/compress.cpp: uncrustify : compress.cpp [e108bfd4d6f5] 2013-07-31 Steve Borho * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: remove unused variable [8eebc88f86e0] * source/Lib/TLibCommon/TComPicYuv.cpp: TComPicYuv: release m_refList as a singly linked list [b59563cc34bb] * source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibEncoder/TEncTop.cpp: TComPicYuv: rename setBorderExtension() to clearExtendedFlag() [0be525cd8583] * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibEncoder/TEncSlice.cpp: TComPicYuv: rename extendPicBorder to generateMotionReference() The function now can be said to generate a motion reference for a reconstructed frame [0d8544362337] * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h: TComPicYuv: inline the motion reference search [f1d4fe6c85fa] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: use cached motion references from slice header [7a80be8edcfa] 2013-07-31 Shazeb N Khan * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/common/reference.cpp, source/common/reference.h: Cached the motion reference list in the Slice [cd150fe1d042] 2013-07-31 Steve Borho * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/common/reference.h: MotionReference objects with distinct weights handled as linked list [575c8ba71475] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: further simplifications [66eab44e4c56] * source/Lib/TLibCommon/SEI.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/SEIwrite.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/encoder/encoder.cpp: remove unreachable TemporalLevel0Index SEI message [5843dfb610e4] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: further simplifications and cleanups [a20d80859567] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: remove redundant slice->setNextSlice() (very next line reverses it) [faf8586102b5] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: remove redundant if() checks and pointer dereferences [0602b9fb4f62] * source/Lib/TLibCommon/SEI.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/SEIwrite.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/encoder/encoder.cpp: remove unreachable scalable nesting SEI message [84e6d71e70e1] 2013-07-30 Steve Borho * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp: remove unused temporal layer logic [74060e8f4860] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: reorder some logic for more clarity [17a48c3c393a] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: remove unused m_batchSize, m_startPOC Remnants of GOP parallelism [1396e8d60605] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: move init-type code into init() function [1610291e59a0] * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncRateCtrl.cpp, source/Lib/TLibEncoder/TEncRateCtrl.h, source/Lib/TLibEncoder/TEncSlice.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/encoder/compress.cpp, source/encoder/encoder.cpp: remove HM rate control code that has been long broken by WPP [deb6891ead01] * source/CMakeLists.txt, source/common/vec/CMakeLists.txt: cmake: cleanup tabs [058ee5276203] * source/CMakeLists.txt, source/common/vec/CMakeLists.txt: cmake: gcc 4.7 support for avx2 vector headers is a little touchy [7d0616453134] * source/common/reference.cpp, source/common/reference.h: MotionReference class with weighted frames [0b55e4728a3d] 2013-07-30 Deepthi Devaki * source/common/ipfilter.cpp, source/common/primitives.h: Modified weighted IP Filter primitive to include Full Pel [575b46e6d413] 2013-07-29 Steve Borho * source/Lib/TLibEncoder/TEncTop.cpp: TEncTop: re-order destruction so thread pool outlives job providers [057b9a97c920] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: TEncTop: move frame list, recon list, and access units out of TEncGOP This is in preparation for making a new slicetype / lookahead structure and breaking TEncGOP into a half dozen pieces. [ec1852ccacee] * source/common/common.cpp: common: enable AMP by default [2f3df1553a49] * source/common/common.cpp: common: enable SAO by default [9fd468696d9a] * source/common/common.cpp, source/encoder/encoder.cpp, source/x265.h, source/x265opts.h: make decoder refresh type a configurable param [CHANGES OUTPUTS] Now that internal GOP parallelism is gone, we can allow the different modes to be selected at runtime. [4d923d9b501a] * source/Lib/TLibEncoder/TEncSlice.cpp: TEncSlice: recover HM's original lambda calculations [CHANGES OUTPUTS (back)] Now that internal GOP parallelism is no longer supported, this logic is no longer a determinism bug waiting to happen. But we still want to replace all this "magical math" with simple QP->lambda tables, in the long term. [4992e5165984] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: nit [62db6594a54e] * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/common/common.cpp, source/encoder/encoder.cpp, source/x265.h, source/x265opts.h: remove GOP parallelism, simplify TEncTop and TEncGOP [fabc0722f393] * source/CMakeLists.txt: cmake: add x265.h to CLI visual studio project for convenience most people will open the x265 project looking for x265.h [3cadbb2d0150] 2013-07-27 Steve Borho * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/encoder/encoder.cpp, source/x265.cpp, source/x265.h: x265: add x265_encoder_headers() public API This brings us more in sync with x264, and makes GOP parallelism almost trivial to implement above the level of the encoder (so we can remove the internal one) [2bda33439bf9] 2013-07-29 Steve Borho * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: remove unused variable [3e055671010e] 2013-07-29 praveentiwari * source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc: ipfilter: +3x for filterHorizontal_p_s functions ipfilter_ps now requires at least SSSE3 [5feb9f813a64] * source/common/vec/ipfilter8.inc: filterHorizontal_p_p vector portion replaced with intrinsic code [74d8c41266d5] * source/common/vec/ipfilter8.inc: Uncrustified ipfilter8.inc file [9fb0dd3a7460] 2013-07-29 Steve Borho * source/common/x86/asm-primitives.cpp: asm: fix 16bpp test bench [364f48a1e183] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: cleanups [8f7dc5f4a05c] 2013-07-27 Steve Borho * source/encoder/compress.cpp: compress: inter2Nx2NCost was set but not used in default builds [08061e08d3bb] * source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncSbac.cpp: fix compile with ENC_DEC_TRACE enabled in TComRom.h [5ad0b644d15f] * source/common/vec/ipfilter8.inc: ipfilter: fix variable shadowing reported by GCC [2d13884687e8] 2013-07-26 Steve Borho * Merge with stable [30c257a1fa77] * build/regression/email-csv.py: regression: improve email-csv.py [36c6c198f885] * source/encoder/compress.cpp: compress: code cleanups, no functional changes [ca9d2057a56c] 2013-07-26 Aarthi * source/encoder/compress.cpp: changes to early Exit No RDO - roughly +14% with EARLY_EXIT_NO_RDO=1 [5ef875c10c88] 2013-07-26 Steve Borho * source/CMakeLists.txt: cmake: remove unused NO_RDO_EARLY_EXIT build option [2b4f9d12f141] * source/encoder/compress.cpp: move EARLY_EXIT_NO_RDO to top of compress.cpp [6e4a1748e98a] * source/common/vec/ipfilter8.inc: ipfilter: use unaligned load for coefficients The chroma coeff table can't be loaded on 16byte alignment [73d93cdcf978] * source/common/vec/ipfilter8.inc: ipfilter: fix eoln damage from cut-paste [70ff5b57e0e2] * source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc: ipfilter now requires at least SSSE3 [06e9fb6913aa] 2013-07-26 praveentiwari * source/common/vec/ipfilter8.inc: Approx +5x for ipfilterH_pp<8> and ipfilterH_pp<4> [dee0115561d9] 2013-07-26 Steve Borho * source/common/x86/pixel.h: asm: white-space nits [76931d20b082] * Merge with stable [e23b5e5f7347] * source/common/x86/README.txt, source/common/x86/const-a.asm, source/common/x86/cpu-a.asm, source/common/x86/mc-a2.asm, source/common/x86/pixel-a.asm, source/common/x86/sad-a.asm, source/common/x86/x86inc.asm, source/common/x86/x86util.asm: asm: refresh all asm to a recent x264 revision [d0542565dc1d] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel.h: asm: use macro decl of downscale prims [fc069ab1ecd6] * source/common/x86/asm-primitives.cpp: asm: remove pragma warning disable, connect some 16bpp routines [b1bbb760f007] * source/test/pixelharness.cpp: pixelharness: fix alignment of downscale input arguments [4117d2f613ac] 2013-07-26 ggopu * source/common/pixel.cpp, source/common/primitives.h, source/common/x86/CMakeLists.txt, source/common/x86/asm- primitives.cpp, source/common/x86/mc-a2.asm, source/common/x86/pixel.h, source/test/pixelharness.cpp, source/test/pixelharness.h: Lookahead: asm primitve for downscale [71234ae45d95] 2013-07-26 Steve Borho * source/common/common.cpp, source/x265.h: api: rename x265_bit_depth to x265_max_bit_depth for clarity For 16bpp builds, we will eventually want to allow 12bit pixels, but it should also be capable of encoding 10 and 8 bit streams as well. Use 8 even for 16bpp builds for now, since we know higher bit depths are broken. [d44588a406ce] * source/PPA/ppa.cpp, source/common/threading.h: use lower case consistently - fixes cross-compiles [aa392516ae56] * source/test/testbench.cpp: testbench: use x265_malloc / x265_free to avoid duplicate logic [6b18efa79241] * source/common/common.cpp: common: fix mingw64 malloc [29fd8ece16d7] * open a permanent named branch "stable" The stable branch is for bug-fixes and documentation improvements The default branch is where all new development takes place Each time bugs are fixed on stable, the stable branch is merged into default. Default is only merged back into stable just prior to a new release tag. [1fd88edc7b11] * source/Lib/TLibEncoder/TEncSearch.cpp: intra: re-enable 64x64 downscale path [f2f70fa9b4f3] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp: intrapred: fix bug on --cpuid less than 4 [bd8ef1eb5a6c] * source/encoder/encoder.cpp: encoder: ensure the setLFCrossTileBoundaryFlag() method is called once Even though we do not use tiles, this could have affected the logic. For basic encodes, we are now valgrind clean. [904c5cac454d] * source/encoder/encoder.cpp: encoder: fix bug reported by valgrind; config vars referenced before assignment [13729094ca7e] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: fix crash in computeSSD when frame stride is not aligned enough [e53c6f48ba9f] * source/test/pixelharness.cpp: testbench: fix leak in pixelharness [4968a6bfd760] 2013-07-25 Steve Borho * source/common/vec/CMakeLists.txt, source/common/vec/vec- primitives.cpp: cmake: clarify GCC versions which supported AVX, XOP, and AVX2 intrinsics [1dfbbb7d2476] * source/common/vec/pixel8.inc: pixel: remove unused formal parameter names [ddaaf7b2bd70] * source/VectorClass/vectori256.h: vector: fix variable shadow warnings reported by GCC 4.8.1 The second shadow was almost certainly a bug [d6da69ef1e14] * source/CMakeLists.txt: cmake: on Mac OS X, it is not necessary to link with rt [2f5480619e98] * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComYuv.cpp, source/common/TShortYUV.cpp, source/common/common.cpp, source/common/ipfilter.cpp, source/common/reference.cpp, source/test/mbdstharness.cpp, source/test/pixelharness.cpp, source/test/testbench.cpp: common: introduce X265_MALLOC/X265_FREE to replace xMalloc/xFree Uses _aligned_malloc() on Windows and posix_memalign() on everything else. Old MingGW32 requires a name mapping hack [0e9399d65002] * source/common/x86/asm-primitives.cpp: asm: more white-space nits [a32a25e928e6] * source/common/x86/asm-primitives.cpp: asm: white-space only [5f20aa2d81bf] * source/common/x86/asm-primitives.cpp: asm: CPUID 3 is SSSE3, 4 is SSE4. CPUID 1 == C only [5c2f9bb8f965] * source/Lib/COPYING.HM: license: add a copy of HM's license to source/Lib [6f06736eb325] * source/x265.cpp: x265: exit cleanly when missing input YUV parameters [1fd3c11d5219] * source/x265.cpp: vld: report leaks to file as well, useful for regression suite [d0153575b4b4] * source/x265.cpp: x265: clear progress report line at exit only if progress enabled [fc9a6776f9d0] * build/regression/01build-and-smoke-test.bat: regression: leave build remnants in place, delete cmake cache between runs [44c880a8932b] * build/regression/01build-and-smoke-test.bat, build/regression/02perftest.bat: regression: use --no-progress when running encoder, to clean up logs [b8b9ff6596ee] * build/regression/01build-and-smoke-test.bat: regression: use single-threaded msys make to avoid console color issues [62e3828fe4d9] * doc/LookaheadPlan.txt: doc: publish a plan for porting x264 slice decision and adding frame parallelism [67d705db7085] 2013-07-25 Min Chen * source/encoder/compress.cpp: intrapred: sync buffer overflow patch to mode --no-rdo [67da2187eb8b] 2013-07-24 Steve Borho * source/common/vec/dct.inc, source/common/vec/intrapred.inc: dct,intra: protect include of smmintrin.h from SIMD arch < SSE4.1 [25b5e4a4cc1e] * source/common/vec/CMakeLists.txt: cmake: use appropriate -mARCH for each intrinsic file set for GCC [8f746d62e6e1] * source/x265.cpp: x265: check YUV parameters before trying to open YUV file [580ded735dc2] * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h: TComPicYuv: cache strides in a member variable [d3ae586fca87] * source/Lib/TLibCommon/TComPicYuv.cpp: TComPicYuv: remove obsolete malloc includes [6da8f47eb6e1] * source/Lib/TLibCommon/TComPicYuv.cpp: TComPicYuv: varname cleanup [cffe02b2feda] * source/Lib/TLibCommon/TComYuv.cpp, source/common/TShortYUV.cpp: TComYuv: variable name cleanups [5487a1e80f4e] 2013-07-24 Deepthi * source/Lib/TLibCommon/TComYuv.cpp: Unreferenced variable removed. [fd4954d7c2ac] 2013-07-24 ggopu * source/Lib/TLibCommon/TComYuv.cpp: TComYuv: Added primitive functions for Addclip Luma and chroma [47edc0c679e0] * source/common/TShortYUV.cpp: TshortYUV: Added Primitive Functions for BlockCopy and AddClip for both luma and chroma [113fcd8b89a6] 2013-07-24 Deepthi * source/encoder/compress.cpp: Wrapping up early exit code development in a macro. [ad24a3cc9e6d] * Merge [fa3b07fcf212] * source/encoder/compress.cpp: Variable renaming in no-rdo mode: removing ambiguities [e61e07e405f1] 2013-07-24 Steve Borho * source/PPA/ppa.h: ppa: fix "potential uninitialized variable" warning from GCC gcc is being somewhat obtuse here, but I'll humor it [138898b6c3e8] * build/regression/02perftest.bat: regression: improve log message in perftest [a210f3b7704c] * build/regression/01build-and-smoke-test.bat, build/regression /config-example.txt, build/regression/run.bat: regression: add MSYS builds to regression suite [9c25b085049c] 2013-07-23 Steve Borho * build/regression/02perftest.bat: regression: properly use configured perfframes for performance tests [a0e145b76ee5] 2013-07-23 maheshpittala * build/regression/01build-and-smoke-test.bat, build/regression/02perftest.bat, build/regression/commandlines- example.txt, build/regression/config-example.txt, build/regression /email-csv.py, build/regression/run.bat, source/test/testbench.cpp: Add regression scripts [db664de68d3a] 2013-07-23 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: temporarily disable 64x64 intra fast path Running in debug it is reporting stack corruption around the above[] array [dabc5df15515] 2013-07-23 Deepthi * Merge [9f5a5ad402b6] * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp: Function signature of xcomputeCostInter changed [00115ae64f1a] * source/encoder/compress.cpp: Computing NxN satd costs for the previous depth [a952c558dfec] * source/encoder/compress.cpp: Rearranging code [68303445d7f6] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: Renaming Recon to Pred: we'll be saving satd costs and predicted frames for NxN vs 2nx2n decision [28198b1f7e8b] 2013-07-22 Min Chen * source/common/pixel.cpp: intrapred: fix mistake between C and Instrinsic [a5dd4011b8bb] * source/Lib/TLibEncoder/TEncSearch.cpp: intrapred: fix bug in HIGH_BIT_DEPTH=1 [460189b98f61] 2013-07-23 Deepthi * source/Lib/TLibEncoder/TEncCu.cpp: Adding a missing memory initialisation [e6622364d73d] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: Adding new recon structures in no-rdo mode - interNxN [643c56139902] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: Adding new structures in no-rdo mode - interNxN [386daa4ac9a9] 2013-07-22 Steve Borho * doc/UnitTestUsage.txt: remove obsolete unit test doc [2bbe9227d44c] 2013-07-22 Deepthi * doc/Doxyfile, doc/mainpage.h: Removing Doxygen related documentation from the repo [0c4eebd03a00] * doc/gop-structure-example.pdf: Removing GOP structure example - the POC/decode order is a familiar concept carried over from H.264 [6d0c465b4ba8] 2013-07-21 Min Chen * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/vec/pixel.inc, source/common/vec/pixel8.inc, source/encoder/compress.cpp: intrapred: Improvement Inra 64x64 [CHANGES OUTPUTS] [18447bd07244] 2013-07-19 Steve Borho * .hgtags: Added tag 0.3 for changeset 3767fbfa970f [158239bec6c1] 2013-07-19 ggopu * source/common/pixel.cpp, source/common/primitives.h, source/common/vec/blockcopy.inc, source/test/pixelharness.cpp, source/test/pixelharness.h: Primitive: Performance Primitives for Pixel add Clip - TcomYuv and TshortYuv # HG changeset patch # User ggopu # Date 1374210970 -19800 # Node ID 6a864fc57a58e6988969faf3b5b919dd3defa0c1 # Parent a4c00c3f1897d9af8239bacf5f56621297e9785b Primitive: Performance Primitives for Pixel add Clip - TcomYuv and TshortYuv [3767fbfa970f] [0.3] 2013-07-18 Steve Borho * source/common/threadpool.cpp: gcc: fix threadpool warnings [db7ed939be08] 2013-07-19 Deepthi * source/Lib/TLibCommon/TComDataCU.h: Cleanup: Removing codedQp member variable. [bcc2539665c8] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp: Cleanup: Removing TotalBins access methods [b56d92419898] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp, source/encoder/frameencoder.cpp: Cleanup: Removing TotalBits access methods [374594f69e59] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp, source/encoder/frameencoder.cpp: Cleanup: Removing Distortion access methods. [f60f409fe25f] * source/Lib/TLibCommon/TComDataCU.h: Removed getTotalCost() method [1c772b90b6ca] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp, source/encoder/frameencoder.cpp: Cleanup: Replace getTotalCost() with member access [93164613a8dc] * source/Lib/TLibCommon/TComDataCU.h: Making CU cost and misc variables public [b476367a146d] 2013-07-19 sumalatha * source/encoder/compress.cpp: Changed the LOG, the pred mode was selected wrongly in few cases. Fixed [0c3e3a46fb7e] 2013-07-18 Steve Borho * source/common/threadpool.cpp: threadpool: repair EOLN [a4c00c3f1897] * source/common/threadpool.cpp: threadpool: nit [7565dd4c7d54] * source/common/threadpool.cpp: threadpool: reduce priority of worker threads slightly This gives higher priority to GOP (and later frame) threads which, if they are not blocked should be given CPU cores over worker threads. [9ac15ef1fa44] * source/common/threadpool.cpp: threadpool: cleanup [1af121504330] * source/common/vec/CMakeLists.txt: cmake: fix icpc AVX2 builds [1ba93da79ac4] * source/common/vec/pixel8.inc: pixel: remove the names of unreferenced parameters (GCC now complains of these) [a1810069717f] * source/common/vec/CMakeLists.txt, source/common/vec/vec- primitives.cpp: vec: GCC and icpc both have issues with XOP intrinsics Probably because both rely on GCC headers [6e10601c8f2a] * source/common/primitives.cpp: primitives: only print XOP FMA3 FMA4 if CPU level is at least AVX If the user asked for --cpuid 6, they should not see XOP, FMA3, or FMA4 because those will not be used. [ca27274a19ab] * source/encoder/motion.cpp, source/encoder/motion.h: motion: increase alignement of fenc buffer to 32bytes for AVX2 [d371aff1b1fc] * source/common/vec/vec-primitives.cpp: vec: only use XOP primitives when AVX CPU level is requested [064808dc2286] * source/common/vec/CMakeLists.txt, source/common/vec/blockcopy- xop.cpp, source/common/vec/dct-xop.cpp, source/common/vec/intra- xop.cpp, source/common/vec/ipfilter-xop.cpp, source/common/vec /pixel-xop.cpp, source/common/vec/vec-primitives.cpp, source/common/vec/xop.cpp: vec: add XOP build files, for late AMD CPUs [8808d7d79279] * source/common/vec/CMakeLists.txt, source/common/vec/blockcopy- avx.cpp, source/common/vec/blockcopy-avx2.cpp, source/common/vec /blockcopy-sse3.cpp, source/common/vec/blockcopy-sse41.cpp, source/common/vec/blockcopy-sse42.cpp, source/common/vec/blockcopy- ssse3.cpp, source/common/vec/blockcopy.inc, source/common/vec/vecprimitives.inc: vec: break blockcopy intrinsics into their own files [c27fbf50e931] * source/common/vec/CMakeLists.txt, source/common/vec/dct-sse2.cpp, source/common/vec/intra-sse2.cpp, source/common/vec/ipfilter- sse2.cpp, source/common/vec/pixel-sse2.cpp, source/common/vec/sse2.cpp, source/common/vec/vec-primitives.cpp: vec: drop SSE2 files, we don't care that much about CPUs that old This is mainly for improving compile times, since I will add XOP files shortly [be0fc8418935] * x265: fix EOLN damage [e4b9418724ba] * source/x265.cpp: x265: use puts for writing CLI args (makes GCC happy) [ab4cb9c33e6f] * source/Lib/TLibEncoder/TEncSlice.cpp: TEncSlice: cleanups [2fd9dc2844af] * source/Lib/TLibEncoder/TEncSlice.cpp: TEncSlice: tweak lambda magic value [CHANGES OUTPUTS] This recovers BasketBallDrive encode PSNR/Bitrate/FPS back to close what it was when the encoder used the non-deterministic lambda function [4e1a8cf10b3b] * source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: pass the correct lamda to bitcost calculator [CHANGES OUTPUTS] This fixes a bug introduced in 15f993eceb4b, right after 0.1. The different naming conventions had tripped me up. [6847162fbcb1] 2013-07-18 sumalatha * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp: modifications to log file(LOG_CU_COST) to print the best mode, cost chosen at each level. [6849a1f910d0] 2013-07-18 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: remove unused variable [8878236b696d] 2013-07-18 Min Chen * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/intrapred.cpp, source/common/primitives.h, source/common/vec/intrapred.inc, source/encoder/compress.cpp, source/test/intrapredharness.cpp: intrapred: improvement intra_pred_planar [c65a482b2879] 2013-07-18 Deepthi * Merge [dacf6c061e81] * source/CMakeLists.txt: NO_RDO_EARLY_EXIT: experimental macro to play with early exit of analysis [3eca40de1a35] 2013-07-18 Steve Borho * source/Lib/TLibCommon/TypeDef.h: TypeDef: declare g_bitDepth extern if used for X265_DEPTH [f813f110d69a] 2013-07-18 Deepthi * source/encoder/compress.cpp: Merge [fa872fec6372] * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp: Backout changeset: c45fe1b2bd90 Reasons discussed. Performance improvement at the expense of quality/bitrate by avoiding the non-zero residual mode. [7f52bb181cf8] 2013-07-18 Steve Borho * source/Lib/TLibEncoder/TEncTop.cpp, source/x265.h: csv: fix global PSNR calculation [031c4c889edc] * source/x265.cpp: csv: add missing fps and line feed [de92dfd387a2] * source/encoder/compress.cpp: compress: fix debug build [ed69790ac6d4] * source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/encoder/encoder.cpp, source/x265.cpp, source/x265.h, source/x265opts.h: x265: add --csv logfile command line [5bb6d0e451c2] * source/encoder/encoder.cpp, source/encoder/encoder.h: encoder: nit [47f97d1adb8a] 2013-07-17 Steve Borho * source/common/common.cpp, source/common/common.h, source/encoder/encoder.cpp: common: enforce global variables not changing within a single process [1d77c9eab71f] * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/TShortYUV.cpp, source/common/TShortYUV.h: TShortYuv: cleanup [b806d6e8f299] * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/common/TShortYUV.cpp, source/common/TShortYUV.h: TComYuv: cleanup [34bbe4ec628f] * source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/WeightPredAnalysis.cpp: remove other various internal users of bitdepth variables [69b55b6be18c] * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: TComRdCost: remove bitdepth from distParam [f313ce8116b8] * source/Lib/TLibCommon/TComPicYuvMD5.cpp: TComPicYuv: remove bitdepth arguments [474327bdbefc] * source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h: TComPattern: remove bitdepth argument from fillReferenceSamples [2848c686e55f] * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibEncoder/TEncEntropy.cpp: TComRom: remove hungarian prefix, fix comment typo [c227aa627d52] * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/dct.cpp, source/common/intrapred.cpp, source/common/ipfilter.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/reference.cpp, source/common/vec/dct.inc, source/common/vec/intrapred.inc, source/common/vec/ipfilter16.inc, source/common/vec/ipfilter8.inc, source/common/vec/pixel8.inc, source/test/intrapredharness.cpp, source/test/ipfilterharness.cpp, source/test/mbdstharness.cpp, source/test/pixelharness.cpp: primitives: remove bitdepth arguments from all primitives and other functions [0f5a9a141244] * source/common/primitives.h: primitives: enable EMMS for random compilers, remove unused define [1a0fbfe3066d] * source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuvMD5.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/WeightPredAnalysis.cpp, source/common/common.cpp, source/common/reference.cpp: Make 8bpp bit depth a compile define (X265_DEPTH=8), g_bitDepthY -> g_bitDepth [648cf3243a4d] * source/Lib/TLibCommon/TypeDef.h: TypeDef: white-space nits [e5bd6f54af40] * source/Lib/TLibCommon/TypeDef.h: Remove hacks for VC6, we support nothing before VC9 [1c3713fe241e] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSearch.cpp: TComTrQuant: eText argument is no longer needed for invRecurTransformNxN [ceec75c37e20] * source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuvMD5.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/WeightPredAnalysis.cpp, source/common/common.cpp, source/test/mbdstharness.cpp: Remove separate bitdepth configurable for chroma Our x265_param_t has never allowed chroma depth to be different from luma depth, so this is just a simplification of the code. This will allow further optimizations to shortly follow. [0a3d2667aab8] * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/TShortYUV.cpp, source/common/reference.cpp, source/encoder/compress.cpp: change 16bpp Pel to UShort, equivalent to x264's uint16_t This removes a metric ton of ugly casts and makes the code a lot more readable, and it should keep the 16bpp build from being accidentally broken when Pels are passed to functions as pixels. [57404da2493d] * source/common/TShortYUV.cpp: blockcopy: further 16bpp fixes [7fb13585cfa3] * source/test/pixelharness.cpp: pixelharness: one change was missed from last commit [d3594896e12e] * source/common/TShortYUV.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/vec/blockcopy.inc, source/test/pixelharness.cpp: blockcopy: fix 16bpp build, pixelsubsp -> pixelsub_sp [dd8d73aeb1de] * source/encoder/compress.cpp: compress: uncrustify [f10a163531a4] 2013-07-15 sumalatha * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp: Changes in merge mode in no-rdo path for better psnr improvement and time performance [c45fe1b2bd90] 2013-07-17 Steve Borho * source/Lib/TLibCommon/TComPrediction.cpp, source/common/intrapred.cpp, source/common/primitives.h, source/common/vec/intrapred.inc, source/test/intrapredharness.cpp: Backed out changeset: aee4a23a8f01 (does not compile) [4ffaf245b427] 2013-07-17 Min Chen * source/Lib/TLibCommon/TComPrediction.cpp, source/common/intrapred.cpp, source/common/primitives.h, source/common/vec/intrapred.inc, source/test/intrapredharness.cpp: intrapred: improvement intra_pred_planar [aee4a23a8f01] * source/test/intrapredharness.cpp: cleanup: remove unused debug code [dd6ca15e90ac] 2013-07-17 Deepthi Devaki * source/common/ipfilter.cpp, source/common/primitives.h: C primitive for weighted ipfilter [2e067e3443c8] 2013-07-17 Deepthi * Merge [0cb8c7c9c7b2] * source/Lib/TLibCommon/TComPicYuvMD5.cpp: HIGH_BIT_ENABLE build error fixed. Any better idea to get rid of the c4333 warnings welcome. [800ea1ebadef] 2013-07-17 ggopu * source/common/TShortYUV.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/vec/blockcopy.inc, source/test/pixelharness.cpp, source/test/pixelharness.h: TShortYUV : Implemented perfomance Primitives pixelsub_sp [054d8c409569] 2013-07-17 Steve Borho * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibEncoder/TEncSlice.cpp: TComSlice: relocate subpel generation to after weightp determination [0becdecde6ee] 2013-07-16 Steve Borho * source/Lib/TLibCommon/TComSlice.cpp: TComSlice: fix variable shadowing problem that was causing B frame bugs This HM routine was using refRPC and pcRefRPC in the same function with entirely different meanings, and it bit me hard when I refactored this function with search+replace. [a3ca6eceb27a] * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp: TEncGOP: cleanup, make TEncCfg WPP var a Bool [28ce2df5cb4d] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: header cleanup [50b6e306dcbe] * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/common/reference.cpp: TComPicYuv: cleanup [c3fa187d5460] * source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComWeightPrediction.h: Replace includes with class forward decls [6ebabe789fc7] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h: TComPic: cleanup [84c275972fee] * source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h: TComPicSym: cleanup [6afb8bad8568] * source/Lib/TLibCommon/TComSlice.cpp: TComSlice:: fix end-of-list handling in xGetRefPic [4a72479a9bc6] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: fix full search regression [07b381e97f7d] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: repair debug build after removing formal arugments by removing asserts [49adf99e9138] * source/Lib/TLibEncoder/TEncCu.cpp: TEncCu: fixup after refactoring I deleted the 0 argument instead of the NULL argument. MSVC didn't care but GCC flagged this as a warning. NULL can't be passed as an integer argument. [10abee4a15c5] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: TEncCu: remove unused xTuCollectARLStats [67c339ec83dd] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: remove buffers no longer used after removing AQ [0fbbde73203f] * source/common/dct.cpp, source/common/primitives.h, source/common/vec/dct.inc, source/test/mbdstharness.cpp, source/test/mbdstharness.h: remove unreachable quantaq primitive [5b61ed2e33e4] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncPic.cpp, source/Lib/TLibEncoder/TEncPic.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp: Remove broken adaptive QP, fix unused parameter and variable warnings All of TEncPic now goes away [979b9953d696] * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp: TEncCfg: hungarian cleanup [fc4718bd4565] * source/Lib/TLibEncoder/TEncCfg.h: TEncCfg: remove unused istringstream operator [ae96f205c7b6] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp: TEncSearch: remove unused formal parameters (quite a bit of unwinding here) [2389117c0085] * source/Lib/TLibEncoder/TEncBinCoderCABACCounter.cpp, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCavlc.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/WeightPredAnalysis.cpp, source/Lib/TLibEncoder/WeightPredAnalysis.h, source/encoder/CMakeLists.txt: Stop ignoring many compiler warnings in TLibEncoder Enable warnings about unused parameters, clean up the warnings reported. In a few cases I removed parameters that were obviously obsolete. Enable warnings about unused variables, clean up the warnings. [c65db4ee3972] * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibEncoder/TEncSearch.cpp: TComPrediction: remove unused "bi" parameters to prediction functions [e047cdd02421] * source/Lib/TLibCommon/TComWeightPrediction.cpp: TComWeightPrediction: fix bug found by enabling warnings [cf568953fbe7] * source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicYuvMD5.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/CMakeLists.txt, source/encoder/compress.cpp: Stop ignoring many compiler warnings in TLibCommon Enable warnings about unused parameters, clean up the warnings reported. In a few cases I removed parameters that were obviously obsolete. Enable warnings about unused variables, clean up the warnings. This actually found a recently introduced bug. [4a86baaac709] 2013-07-16 Min Chen * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/intrapred.cpp, source/common/primitives.h, source/common/vec/intrapred.inc, source/encoder/compress.cpp, source/test/intrapredharness.cpp: intrapred: improvement intra_pred_dc [cf614acd8099] 2013-07-16 Deepthi * Merge [8f632c25d1ee] * source/encoder/compress.cpp: Merge [0eb8a3db4b3f] * source/encoder/compress.cpp: SSE cost calculation in inter-no-rdo. Raises quality and lowers bitrate (slightly). Will be changed into a CLI configurable if perf effect is significant. [29c1f5b64795] 2013-07-16 Steve Borho * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/ContextModel.cpp, source/Lib/TLibCommon/TComRom.h: more cleanups for CommonDef.h * remove circular defininition of g_bitDepthY and g_bitDepthC * move Clip templates to TComRom.h * remove some dead defines [6ee321714568] * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComCABACTables.h, source/Lib/TLibCommon/TComLoopFilter.h, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/common/TShortYUV.cpp, source/common/TShortYUV.h, source/common/dct.cpp, source/common/pixel.cpp, source/common/reference.cpp: TComSampleAdaptiveOffset: cleanup and global SR, major header cleanups move all #defines from TypeDef.h to CommonDef.h and move all feature-specific structs from TypeDef.h to their more specific header TypeDef.h should just define types (duh!) and CommonDef.h should just have defines. [778f0786eff8] * source/Lib/TLibCommon/TComWeightPrediction.cpp: TComWeightPrediction: hungarian cleanup [60812792ee78] * source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.h, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/common/TShortYUV.h: TComWeightPrediction: cleanup and global SR iPartUnitIdx -> partUnitIdx [0ad503ad1110] 2013-07-16 Deepthi Devaki * source/common/vec/pixel8.inc, source/test/pixelharness.cpp: pixel8.inc, pixelharness : Uncrustified. [4774cbad2bfb] * source/common/vec/pixel.inc, source/common/vec/pixel8.inc, source/test/pixelharness.cpp: Vectorized WeightUni [f7d8f489f694] 2013-07-16 Steve Borho * source/common/vec/pixel-avx.cpp, source/common/vec/pixel-avx2.cpp, source/common/vec/pixel-sse2.cpp, source/common/vec/pixel-sse3.cpp, source/common/vec/pixel-sse41.cpp, source/common/vec/pixel- sse42.cpp, source/common/vec/pixel-ssse3.cpp, source/common/vec/pixel.inc: pixel: move includes of pixel8.inc or pixel16.inc inside pixel.inc This makes the pixel-ARCH.cpp files much simpler, and makes it easier to add headers for the pixel functions. [44b4fb45e005] 2013-07-15 Steve Borho * source/x265opts.h: x265: document --cpuid 1 behavior [c9bb72e8cb8e] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h: TComDataCU: cleanup classmethods [48fb229ef210] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibEncoder/TEncCu.cpp: TComDataCU: remove static ARL buffers, these were not thread safe This is further proof that the ARL buffers are essentially unused the way we are using the encoder (with AQ disabled). It is very tempting to remove them globally. [a75833091e14] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPicSym.cpp: TComDataCU: cleanup, remove "is a decoder" variable [75e5f85ae8e1] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/encoder/compress.cpp: TEncSlice: less eye-bleed, more global SR [846887941425] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h: TComSlice: cpp cleanup, remove unreferenced class static [cd5750e16bd7] * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/Lib/TLibEncoder/WeightPredAnalysis.cpp, source/Lib/TLibEncoder/WeightPredAnalysis.h: TComSlice: cleanup + global SR [26f767779d57] 2013-07-15 ggopu * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h: TEncSlice: CleanUp and Removd Hungarian Notation [ae234c4c22e1] 2013-07-15 praveentiwari * source/Lib/TLibCommon/TComRdCost.cpp: Cleaup the remaing functions in TComRdCost.cpp file [b47059899650] 2013-07-15 ggopu * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncEntropy.cpp, source/encoder/frameencoder.cpp: TEncCU and TEncEntrophy: Clean Up [cfb5b30ddadb] * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibEncoder/TEncCavlc.cpp: Cleanup and removed Hungarian notation [add9f7dc8c83] 2013-07-12 Steve Borho * source/x265.cpp, source/x265opts.h: x265: add --no-progress CLI option to disable reports when capturing output [9e689682ffb1] * source/common/vec/blockcopy.inc: blockcopy: AVX2 compress and extend ended up being a perf loss [9afb0e925451] * source/common/vec/blockcopy.inc: blockcopy: add AVX2 fast paths [17a78803a971] * source/common/vec/blockcopy.inc: blockcopy: ensure strides obey alignment requirements This should fix crashes reported by Shanthan and Brian from Telestream [64e98159b25e] * source/common/vec/pixel.inc, source/common/vec/pixel8.inc: pixel: add AVX2 sad_x4 for 32 and 64 wide blocks [c51d6f92205e] * source/common/vec/pixel.inc, source/common/vec/pixel8.inc: pixel: add AVX2 sad_x3 for 32 and 64 wide blocks [037d8072cf60] * source/common/vec/pixel8.inc: pixel8: CurN -> frefN [17bec876e8ed] * source/common/vec/CMakeLists.txt, source/common/vec/vec- primitives.cpp: cmake: allow icpc to build AVX2 intrinsics [bee415cae643] * source/VectorClass/vectori256.h, source/common/vec/pixel.inc, source/common/vec/pixel8.inc: pixel: add AVX2 sad primitives for 32 and 64 wide blocks [87eadb9849bc] * .hgtags: Added tag 0.2 for changeset b3471d9009f5 [391d4aeb3acc] * source/cmake/version.cmake: cmake: properly handle tagged release archives [b3471d9009f5] [0.2] * source/common/mv.h: mv: remove unused toFPel() method [cabc9474ccfc] * source/common/wavefront.cpp, source/common/wavefront.h, source/encoder/frameencoder.cpp, source/test/testpool.cpp: wavefront: coding-style fixes, improve comments [09cc9680e85d] * source/common/wavefront.h: wavefront: cleanup method comments [1a2e10dbb8a3] * build/README.txt, source/cmake/version.cmake: cmake: do not cache x265 version from ENV var, update status message [60d1a6e70946] * source/PPA/ppa.cpp, source/PPA/ppa.h, source/PPA/ppaApi.h: ppa: change license to x265 GPL+commercial license [b99630f44717] * source/CMakeLists.txt: cmake: add a cmake option to statically link CRT on Windows release builds [c9625ddb711d] * source/VectorClass/vectorclass.h, source/VectorClass/vectorf128.h, source/VectorClass/vectorf256.h, source/VectorClass/vectorf256e.h: remove vector class floating point, simplify includes [4f9a3bda6185] * source/VectorClass/special/complexvec.h, source/VectorClass/special/decimal.h, source/VectorClass/special/quaternion.h, source/VectorClass/special/vector3d.h, source/VectorClass/special/vectormath.h: remove vector class special floating point headers [91271bbcda30] * source/CMakeLists.txt, source/tools/CMakeLists.txt, source/tools/dr_psnr/CMakeLists.txt, source/tools/dr_psnr/PsnrCalculator.cpp, source/tools/dr_psnr/PsnrCalculator.h, source/tools/dr_psnr/SSIMCalculator.cpp, source/tools/dr_psnr/SSIMCalculator.h, source/tools/dr_psnr/dr_psnr.cpp: remove dr_psnr, it's a mess and no-one is working on it [0839ec783eaf] * source/tools/TestForChecking_BadCommit.bat, source/tools/performanceProfiler/Profiler.bat, source/tools/performanceProfiler/Readme.txt, source/tools/performanceProfiler/config.txt, source/tools/performanceProfiler/performanceProfiler.bat: remove obsolete perf batch files [41ec50a27f4f] * build/README.txt: build: update README.txt [00400cf33211] * build/BuildEncoderApplications.bat, build/ConfigureBuild.bash, build/ConfigureBuild.bat, build/CreateRegressionPackage.bat, build/CreateRegressionPackage.sh, build/RunEncoderApplications.bat, build/config.txt: remove obsolete regression tests and batch build scripts [4207769d7bd6] 2013-07-12 Min Chen * source/common/vec/intrapred.inc: intrapred: cleanup pDst [18f282e09b36] 2013-07-12 praveentiwari * source/Lib/TLibCommon/TComRdCost.cpp: TComRdCost::xGetSSE32 cleanup [dd2dfd0e1acf] * source/Lib/TLibCommon/TComRdCost.cpp: xGetSSE32Help cleanup [08a9378c2d71] * source/Lib/TLibCommon/TComRdCost.cpp: TComRdCost::xGetSSE16N cleanup [99196b0684e6] * source/Lib/TLibCommon/TComRdCost.cpp: xGetSSE16NHelp cleanup [dfc5c4114f63] * source/Lib/TLibCommon/TComRdCost.cpp: TComRdCost::xGetSSE16 cleanup [11d28b173c04] * source/Lib/TLibCommon/TComRdCost.cpp: xGetSSE16Help cleanup [75305fa33a5f] * source/Lib/TLibCommon/TComRdCost.cpp: TComRdCost::xGetSSE8 cleanup [03bbb4c9ae99] * source/Lib/TLibCommon/TComRdCost.cpp: xGetSSE8Help cleanup [f0038e6006e1] * source/Lib/TLibCommon/TComRdCost.cpp: TComRdCost::xGetSSE4 cleanup [3f8bffc3f0ba] * source/Lib/TLibCommon/TComRdCost.cpp: xGetSSE4Help cleanup [fd8c0d5c4983] * source/Lib/TLibCommon/TComRdCost.cpp: TComRdCost::xGetSSE cleanup [18f845fde53f] * source/Lib/TLibCommon/TComRdCost.cpp: xGetSSEHelp cleanup [ea7669697410] * source/Lib/TLibCommon/TComRdCost.cpp: TComRdCost::xGetSAD48 cleanup [169e5b28f63f] * source/Lib/TLibCommon/TComRdCost.cpp: TComRdCost::xGetSAD64 cleanup [5ed30c9ea3c5] * source/Lib/TLibCommon/TComRdCost.cpp: TComRdCost::xGetSAD24 cleanup [1dc0453c1670] * source/Lib/TLibCommon/TComRdCost.cpp: TComRdCost::xGetSAD32 cleanup [0bfaaf368618] * source/Lib/TLibCommon/TComRdCost.cpp: TComRdCost::xGetSAD16N cleanup [904837a3a1de] * source/Lib/TLibCommon/TComRdCost.cpp: TComRdCost::xGetSAD12 cleanup [f8933cd25eca] * source/Lib/TLibCommon/TComRdCost.cpp: Clean up the white-space by lining up [eb92dec76124] * source/Lib/TLibCommon/TComRdCost.cpp: TComRdCost::xGetSAD16 cleanup [ae6d26dee61f] * source/Lib/TLibCommon/TComRdCost.cpp: TComRdCost::xGetSAD8 cleanup [d9e9186e2e6f] * source/Lib/TLibCommon/TComRdCost.cpp: TComRdCost::xGetSAD4 cleanup [151ff0670a0a] 2013-07-12 Steve Borho * source/common/x86/asm-primitives.cpp: asm: disable sad_x3 for AVX2, does not pass tests [077dc358e9fa] 2013-07-12 praveentiwari * source/Lib/TLibCommon/TComRdCost.cpp: TComRdCost::xGetSAD cleanup [f3b49b4bc244] * source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp: Fix for Debug version build [6fc940f59c01] * source/Lib/TLibCommon/TComRdCost.cpp: TComRdCost::setDistParam overloaded version clenup [7a1c0fc82cb0] * source/Lib/TLibCommon/TComRdCost.cpp: TComRdCost::setLambda cleanup [6c97e265b662] * source/Lib/TLibCommon/TComRdCost.cpp: TComRdCost::setDistParam cleanup [191eca565ac9] * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibEncoder/TEncSearch.cpp: bApplyWeight member variable replaced with applyWeight [22a03cf91021] 2013-07-12 Steve Borho * source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: Fix Build Errors for HIGH_BIT_DEPTH enable [8758e968520c] 2013-07-12 praveentiwari * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibEncoder/TEncSearch.cpp: iSubShift member variable replaced with subShift for all referances [deffbdd77bb4] * source/Lib/TLibEncoder/TEncSearch.cpp: Uncrustified TEncSearch.cpp file [8847796da616] 2013-07-11 Steve Borho * source/x265.cpp: x265: prune dead short_options and fix no-arg flags [1858833d3ef1] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: remove unnecessary pointer argument refs [a1b29fa01efb] * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp: compress: hungarian cleanups, white-space fixes [b15db4f286f6] * source/common/common.h: common: fixup commit for previous (msvc didn't write the file) [d36cc90f9848] * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibEncoder/TEncTop.cpp, source/common/common.cpp, source/encoder/encoder.cpp, source/x265.cpp: x265: call x265_set_globals() when the encoder is created [3d61f1b09eb6] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCavlc.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/encoder/compress.cpp, source/encoder/frameencoder.h: TEncCu: more de-hungarian, global SR, and AMVPInfo cleanups [d75d51592719] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/common/TShortYUV.h, source/encoder/compress.cpp, source/encoder/frameencoder.cpp: TEncCu: more de-hungarian and global SR and more cleanups [d5ab0435a15b] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp: TEncCu: de-hungarian buffer member variables [870fe66f4533] * source/Lib/TLibEncoder/TEncCu.h: TEncCu: white-space and comment cleanups [0a126dd487b2] * source/Lib/TLibCommon/TComPattern.cpp: TComPattern: finishing touches [f2ff5cb195fc] * source/Lib/TLibCommon/TComPattern.h: TComPattern: white-space cleanup of header [98e1d31e7029] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h: TComPattern: de-hungarian, and global SR [c75bdba9683f] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncPic.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/WeightPredAnalysis.cpp, source/Lib/TLibEncoder/WeightPredAnalysis.h, source/common/pixel.cpp: TComPattern: cleanup + global SR neighbouring => neighboring, iStride -> stride, iComp -> comp [5d5c89968b66] * source/common/common.cpp: Backed out changeset: 064e6bfa93f0 (too much PSNR loss to be default) [61d15d0b453d] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComSlice.h: TComMotionInfo: simplify TComCUMvField [24d0170026dc] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h: TComMotionInfo: simplify TComMvField [73fec016b9b9] * source/common/common.cpp, source/encoder/encoder.cpp, source/x265.h, source/x265opts.h: x265: hide busted adaptive QP functionality This might get ripped out entirely, will wait until after the GPL release [be8598d81e19] * source/common/common.cpp: x265: roughly alphabetize tool option reporting [771d4d232d7e] * source/common/common.cpp, source/encoder/encoder.cpp, source/x265.h, source/x265opts.h: x265: hide --sao-max-offsets argument [93d5e906c6ef] * source/common/common.cpp: x265: enable --fast-cbf by default [CHANGES OUTPUTS] This appears to be a really good trade-off when RDO is enabled [064e6bfa93f0] * source/common/common.cpp: x265: tweak option logging [41d1a452c033] * source/common/common.cpp, source/encoder/encoder.cpp, source/x265.h, source/x265opts.h: x265: hide --tmvp parameter, it does not appear useful --tmvp 0 and 2 appear to both be worse than the default In the interest of simplifying our API for the near-term, I'm removing the param [98fb5cbf6f57] * source/common/common.cpp, source/encoder/encoder.cpp, source/x265.h, source/x265opts.h: x265: hide --merge-level parameter, it does not appear useful --merge-level 3 decreases bitrate very slightly --merge-level 4 increases bitrate In the interest of simplifying our API for the near-term, I'm removing the param [c1fd77c0a995] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h: TComTrQuant: nits and global SR [3cfa626d1ec4] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: TComTrQuant: remove hungarian from QpParam [959bd4f14b23] * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h: TComPrediction: remove a couple more invalid pointer refs, fix a comment [a930ca2615c1] * source/Lib/TLibEncoder/TEncSearch.cpp: fix variable shadow warnings reported by GCC [2f36960fb069] * source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/WeightPredAnalysis.cpp: refactor: iDir->dir, iList->list [17f0a360918f] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/WeightPredAnalysis.cpp: TComPrediction: remove ptr arg references, plus some global search/replace [b14b992b3f0c] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp: TComPrediction: cleanup hungarian, plus some global search/replace [37d226b549d7] * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/dct.cpp, source/common/intrapred.cpp, source/common/ipfilter.cpp, source/common/vec/dct.inc, source/common/vec/ipfilter.inc, source/common/vec/ipfilter16.inc, source/common/vec/ipfilter8.inc, source/test/ipfilterharness.cpp: refactor: move subpel interpolation filters to TComRom, remove dups [8b7079adef37] * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TComRdCost: adopt x264 style names, move last mv cost remnant to TEncSearch [9ffb3769afdb] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/encoder/compress.cpp: TEncCU, TEncSAO: global search/replace for common hungarian names [3edafbb958a7] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: cleanup set method names [251a3fb404f0] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: further cleanups [0fe565be0395] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp: TEncSearch: remove more hungarian from member vars, other cleanups [1992995f62f3] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: cleanup init, remove unused s_dFilter, m_puiDFilter [1aa4e291c6dc] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: remove hunariang prefixes from member vars, remove unused min/max [42754524511a] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: remove hungarian prefixes from temp buffers [5098bd2dfa09] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: remove unused singleton temp buffers [879890f4aa94] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: qtTempAccessLayer -> qtlayer [ab54c5d80683] * source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: remove redundant white-space [bb1b55c79d3d] 2013-07-11 Deepthi Devaki * source/common/pixel.cpp, source/common/primitives.h: WeightedPredicton: Code cleanup, variable renaming - no logic change. [b09304da8423] * source/Lib/TLibCommon/TComWeightPrediction.cpp: Weighted prediction primitives integrated to encoder. [a9cf11753b9d] * source/common/pixel.cpp, source/common/primitives.h, source/test/pixelharness.cpp, source/test/pixelharness.h: C primitives and testbench support for weighted prediction unidirectional. [a8fba5231ff3] 2013-07-11 praveentiwari * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp: iStrideCur member variable replaced with strideCur for all referances [cdc2757a09f0] * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp: iStrideOrg member variable renamed to strideOrg for all referances [24670d4aea5e] 2013-07-11 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup xEncodeResidualQT [c1e2e7ee80f8] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: further cleanup of xEstimateResidualQT [e8c50a292890] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: further cleanup of xEstimateResidualQT [dfdd07b57714] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: more cleanups [2d6cbbfeae8b] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: partial cleanup of xEstimateResidualQT [54b7e44a945f] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup encodeResAndCalcRdInterCU [740e4002bc8a] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup xPatternSearchFracDIF [5cfdcda40cd9] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup xPatternSearchFast [5170b6383156] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup xPatternSearch [ad8f26c19b65] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup xMotionEstimation [2158663a6e10] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup xGetTemplateCost and xEstimateMvPredAMVP [17699ac30ca9] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup predInterSearch [75d4bc043fa1] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup xMergeEstimation [322076f45e2a] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup IPCMSearch [a566e9fdb97a] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup xEncPCM [1a15e5414b07] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup estIntraPredChromaQT [6e8092345092] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup estIntraPredQT [725885f26120] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup preestChromaPredMode [a81b1600a1ae] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup xSetIntraResultChromaQT [a3bf887469c8] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup xRecurIntraChromaCodingQT [d8c562aab747] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup xLoadIntraResultChromaQT, use block copy primitives [87516ea1b92e] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup xStoreIntraResultChromaQT [204d2839f830] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup xLoadIntraResultQT, correct stride and size for chroma [7367545ec76a] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup xStoreIntraResultQT [65409511940b] 2013-07-10 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup xSetIntraResultQT [b549964b4636] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup xRecurIntraCodingQT, use block copy primitives [5542e517b305] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup xIntraCodingChromaBlk [e383fa1d83b7] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup xIntraCodingLumaBlk [155ee7e2e1a8] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: cleanup xEncCoeffQT, remove unused bRealCoeff [f5e166b6a6f2] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup xGetIntraBitsQT [c21dd51ed3ca] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup xEncIntraHeader [3031fd60571a] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup xEncCoeffQT [ff557176bba7] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanup xEncSubdivCbfQT [d4433b481d08] * source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: remove meaningless consts and comments [2245a4a8b34d] * source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: followup renames [c1a9e7bb9749] * source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: cleanup the header [d09e321b4d06] * source/common/primitives.h, source/common/vec/ipfilter16.inc, source/common/vec/ipfilter8.inc: primitives: cleanup funcdefs [d6ad445e4eeb] * source/encoder/compress.cpp: compress: remove trailing white-space [cd6cdea03bbe] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h, source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.h, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCavlc.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncPic.cpp, source/Lib/TLibEncoder/TEncPic.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/Lib/TLibEncoder/WeightPredAnalysis.cpp, source/Lib/TLibEncoder/WeightPredAnalysis.h, source/encoder/compress.cpp: more mass search-replaces and various other cleanups [f04c1ab7b493] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h, source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCavlc.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/WeightPredAnalysis.cpp, source/encoder/compress.cpp, source/encoder/frameencoder.cpp: global search-replaces for common variables, remove prefixes pcCu -> cu, uiTrMode -> trMode, pcYuvPred -> predYuv, eRefPicList -> picList, iRefList -> refList, iRefIdxTemp -> refIdxTmp [4349ad516f23] * source/Lib/TLibEncoder/TEncCu.cpp: TEncCu: fix memory leak [48e99b31ca1e] 2013-07-10 praveentiwari * source/Lib/TLibCommon/TComTrQuant.cpp: Cleanup xGetCodedLevel function [ccb2f92de6a4] * source/Lib/TLibCommon/TComTrQuant.cpp: Clenup xGetICRateCost function [6239f27298a1] * source/Lib/TLibCommon/TComTrQuant.cpp: Cleanup xGetICRate function [26e5e760a27a] * source/Lib/TLibCommon/TComTrQuant.cpp: Cleanup setErrScaleCoeff function [3b98d991c3e2] 2013-07-10 Steve Borho * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/encoder/encoder.cpp: TEncSearch: remove m_bUseHADME, clean more hungarian [7cffa89fad19] 2013-07-10 ggopu * source/Lib/TLibEncoder/TEncSearch.cpp: TEncodeSearch : Cleanup Removed un used codes, white space and Removed Hungarian Notation [435170a8901e] 2013-07-10 Deepthi * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp: Removed duplicate copy of Merge RD cost estimation. [422cbbbb1493] * source/encoder/compress.cpp: Code reuse of Merge: part 2 [6c320ed872a4] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: Code reuse of Merge cost estimation for rdo/no-rdo: part 1 [e2ded94ab75d] * source/Lib/TLibEncoder/TEncCfg.h: Removing fdm from TEncCfg [d291ed7c19b5] * source/common/common.cpp, source/encoder/encoder.cpp, source/x265.h, source/x265opts.h: Removing bEnableFastMergeDecision from CLI Options. [2b4e59ecd75b] * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp: Fast Decision for Merge always set - this CLI option does not give any higher efficiency. [8aff90a1c454] * source/encoder/compress.cpp: Enabling merge modes with non-zero residual in no-rdo mode. [ff2b06916f87] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: Recon for merge modes - store in TEnCU structure [6c654e521fa4] 2013-07-10 Steve Borho * source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncAnalyze.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCavlc.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/common/ipfilter.cpp, source/common/pixel.cpp, source/common/reference.cpp, source/common/threadpool.cpp, source/common/vec/dct.inc, source/common/vec/intrapred.inc, source/common/vec/ipfilter16.inc, source/common/vec/ipfilter8.inc, source/common/vec/pixel.inc, source/common/vec/pixel16.inc, source/common/vec/pixel8.inc, source/common/wavefront.cpp, source/common/wavefront.h, source/encoder/compress.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/motion.cpp, source/encoder/motion.h, source/test/intrapredharness.cpp, source/test/ipfilterharness.cpp, source/test/pixelharness.h, source/test/testbench.cpp, source/x265.cpp, source/x265.h: uncrustify [ae3cf6062c1a] 2013-07-09 Steve Borho * source/test/mbdstharness.cpp: mbdstharness: workaround for linux test failures [2bad78a65d37] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp: TEncCU: use loops to create/destroy objects, rename m_IntraInInterCU [e126e6386acc] * source/Lib/TLibCommon/TComTrQuant.cpp: TComTrQuant: fix shadowed variables for GCC [df76c016468d] * source/common/common.cpp: common: fix a potential 8bpp usage bug [f6552d7189dd] * source/Lib/TLibEncoder/TEncCu.cpp, source/common/common.cpp: TComRom: only allow zscan tables to be initialized once [917b56038be3] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/common/TShortYUV.h, source/common/butterfly.h, source/common/common.cpp, source/common/dct.cpp, source/common/intrapred.cpp, source/common/vec/intrapred.inc, source/encoder/compress.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp: TComRom: remove hungarian notation, remove unused butterfly.h [2f68b284ba53] * source/Lib/TLibCommon/TComRom.h: TComRom: simplify white-space [daa1bf21a3ce] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: de-hungarian the member vars and auto-vars [95ae28081f11] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSearch.cpp: TComTrQuant: remove hungarian notations from member variables [6af026c91d32] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/encoder/frameencoder.cpp: TComTrQuant: remove m_bEnc member variable [a9e3cf2ee919] * source/Lib/TLibCommon/TComTrQuant.cpp: TComTrQuant: CU -> cu [079bbdf4d687] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: remove hungarian prefixes from auto-vars [d366eeefac0f] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSbac.cpp: TComTrQuant: hungarian removal, white-space cleanup, remove useless comments [a096d4fdefe5] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibEncoder/TEncSearch.cpp: TComTrQuant: simplify function arguments * do not pass arlCCoef as a pointer reference * return acSum rather than pass as integer reference [d6c1bf1a4801] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/common/dct.cpp, source/common/vec/dct.inc: TComTrQuant: remove deprecated DCT functions [733534550553] * source/Lib/TLibCommon/TComTrQuant.cpp: TComTrQuant: lowercase cu, other cleanups [10a797823849] 2013-07-09 praveentiwari * source/Lib/TLibCommon/TComTrQuant.cpp: Cleanup xRateDistOptQuant function [6cef4fc5a850] * source/Lib/TLibCommon/TComTrQuant.cpp: Cleanup xITransformSkip function [0124ebb836bb] * source/Lib/TLibCommon/TComTrQuant.cpp: Cleanup xTransformSkip function [593ccf9b637b] * source/Lib/TLibCommon/TComTrQuant.cpp: Cleanup xIT function [23b7b876ad58] * source/Lib/TLibCommon/TComTrQuant.cpp: Cleanup invRecurTransformNxN function [3e2ea30421a1] * source/Lib/TLibCommon/TComTrQuant.cpp: Cleanup invtransformNxN function [ce4c31d4fcad] * source/Lib/TLibCommon/TComTrQuant.cpp: More cleanup with transformNxN [6151c3d14f14] * source/Lib/TLibCommon/TComTrQuant.cpp: cleanup transformNxN function [dc146c2b451a] * source/Lib/TLibCommon/TComTrQuant.cpp: cleanup init function [741604b8a4b5] * source/Lib/TLibCommon/TComTrQuant.cpp: cleanup xDeQuant function [0847be750c4e] 2013-07-09 Steve Borho * source/Lib/TLibCommon/TComTrQuant.cpp: TComTrQuant: lowercase cu [bd0ece7e95a1] 2013-07-09 praveentiwari * source/Lib/TLibCommon/TComTrQuant.cpp: cleanup xQuant function [c1bdb5c6f841] 2013-07-10 Deepthi * Merge [707b458d0e5e] 2013-07-09 Deepthi * source/encoder/compress.cpp: Exit early if merge modes detected [df22ad807c9f] * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp: Updating merge cost calculation to enable early skips. [0cd3c9c94bb0] 2013-07-09 Steve Borho * source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc, source/test/testbench.cpp: misc fixes [aa8ddcc78c4a] * source/common/vec/intrapred.inc: intrapred: further cleanups * rename methods to match primitive funcdef * remove unoptimized all-angs methods, use C ref [5a81d522e9e3] * source/common/vec/ipfilter8.inc: ipfilter: white-space fixup [2e6f01521c90] * source/common/vec/ipfilter8.inc: ipfilter: remove buggy SSE2 version of filterHorizontalMultiplaneExtend [c1df7dba97be] * source/common/vec/ipfilter16.inc, source/common/vec/ipfilter8.inc, source/test/ipfilterharness.cpp: ipfilter: follow up cleaning, one 16bpp compile fix [0602a41d8ced] 2013-07-09 ggopu * source/common/vec/ipfilter.inc, source/common/vec/ipfilter16.inc, source/common/vec/ipfilter8.inc: ipfilter*.inc : Cleanup function names and variables [1d24abd75465] * source/common/common.cpp, source/common/ipfilter.cpp: ipfilter: Cleanups function names and Variables [05b43fadedd8] 2013-07-09 praveentiwari * source/Lib/TLibCommon/TComTrQuant.cpp: cleanup signBitHidingHDQ function [ea86a1524985] * source/Lib/TLibCommon/TComTrQuant.cpp: Cleanup storeSliceQpNext function [7b33153ce08c] 2013-07-09 Deepthi * source/encoder/compress.cpp: Cleanup: remove commented code [fe3a1d78f9d9] * source/encoder/compress.cpp: Merge modes now use RDO cost to compare against inter/intra. Quality up, bitrate down. [4efd9d9d4b60] * source/encoder/compress.cpp: Remove unused if-checks [9605252d9dd8] 2013-07-09 Steve Borho * source/test/ipfilterharness.cpp, source/test/mbdstharness.cpp: testbench: more test result format tweaking [a5c300785b8f] 2013-07-08 Steve Borho * source/test/intrapredharness.cpp: intrapred: tweak test result reporting [a103a8a37fb8] * source/Lib/TLibCommon/TComInterpolationFilter.cpp, source/Lib/TLibCommon/TComInterpolationFilter.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.h, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/ipfilter.cpp, source/common/primitives.h: TComInterpolationFilter: remove dead code and dead primitive [eee0360420e2] * source/Lib/TLibCommon/TComInterpolationFilter.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/ipfilter.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/vec/blockcopy.inc, source/common/vec/ipfilter.inc, source/encoder/motion.cpp, source/test/ipfilterharness.cpp, source/test/pixelharness.cpp: primitives: normalize primitive function names [3f91e1121a00] * source/common/primitives.h: primitives: white-space alignment for primitive structure, re-order for clarity [6d15ceb19861] * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/vec/pixel.inc, source/common/x86/asm-primitives.cpp, source/encoder/compress.cpp, source/encoder/motion.h, source/test/ipfilterharness.cpp, source/test/ipfilterharness.h, source/test/pixelharness.cpp, source/test/pixelharness.h: primitives: unify primitive funcdef type names [ed9b76835696] * source/x265.cpp: x265: cleanups [420bb0f5b279] * source/test/pixelharness.cpp, source/test/pixelharness.h: pixel: cleanup test harness methods [992721365f6f] * source/input/input.cpp, source/input/input.h, source/output/output.cpp, source/output/output.h, source/x265.cpp: i/o: lower case open methods [b6d72f3e0096] * source/common/reference.cpp: reference: add a comment [b36838e5b7cf] * source/CMakeLists.txt: cmake: move version.cmake include to just before the CLI link this should avoid rebuilds in cmake generated Makefiles when the version number changes (which happens at every commit) [87d2b6578384] * source/common/common.cpp, source/common/common.h: common: cleanups, remove unused dumpBuffer routine [11194a1a5917] * source/common/CMakeLists.txt: cmake: force i686 arch for wavefront.cpp for GCC (to generate intrinsics) [c3b5d95f11c3] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/common/reference.cpp, source/common/threading.cpp, source/common/threading.h, source/common/threadpool.cpp, source/encoder/frameencoder.cpp, source/test/testpool.cpp: threading: lower case method names [7bdf867f5565] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/common/reference.cpp, source/common/threadpool.cpp, source/common/threadpool.h, source/common/wavefront.cpp, source/encoder/encoder.cpp, source/encoder/frameencoder.cpp, source/test/testpool.cpp: threadpool: lower case method names [2724414e4c97] * source/test/testpool.cpp: testpool: update to new interfaces [1e0de23fd8cf] * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: rename irow to row [ca4ef78851dc] * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: frameencoder: rename m_nrows to m_numRows [0cd64834fc44] * source/Lib/TLibEncoder/TEncSlice.cpp, source/common/reference.cpp, source/common/reference.h, source/common/threadpool.cpp, source/common/threadpool.h, source/common/wavefront.cpp, source/common/wavefront.h, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h: wavefront: lower case some method names [460e36b39510] * source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/common/CMakeLists.txt, source/common/threadpool.cpp, source/common/threadpool.h, source/common/wavefront.cpp, source/common/wavefront.h, source/encoder/CMakeLists.txt, source/encoder/frameencoder.cpp, source/encoder/frameencoder.h, source/encoder/wavefront.cpp, source/encoder/wavefront.h: threadpool: split QueueFrame into own files, rename wavefront to frameencoder This commit also removes the un-exposed x265_init_threading() function which would have leaked the thread pool if anyone had used it. [ef1a5aeed45c] * source/common/reference.cpp, source/common/threadpool.cpp, source/common/threadpool.h: threadpool: cleanup [1f126e6d3188] * source/common/reference.cpp: reference: general cleanup [8e9e65404251] * source/common/primitives.cpp: primitives: general cleanup [25dd71fec257] * source/common/primitives.h: primitives: more argument cleanups [ac679985a223] * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/intrapred.cpp, source/common/primitives.h, source/common/vec/intrapred.inc, source/encoder/compress.cpp, source/test/intrapredharness.cpp, source/test/intrapredharness.h: primitives: rename intra primitive function pointers [f0ed0e012c69] * source/common/primitives.h, source/test/intrapredharness.cpp, source/test/intrapredharness.h: primitives: rename intra funcdefs, cleanup hungarian from primitives.h [676b0ce0b073] * source/common/primitives.h: primitives: update comment for PartitionFromSizes [45237ca3f80e] * source/test/mbdstharness.cpp, source/test/mbdstharness.h: cleanup dct testbench names [c9bf846287de] * source/test/mbdstharness.cpp: one more fixup [e05d5cb444ed] * source/test/mbdstharness.cpp: testbench fixup [7ff03b771df4] * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/dct.cpp, source/common/primitives.h, source/common/vec/dct.inc, source/test/mbdstharness.cpp: primitives: rename deQuant to dequant [7f9581358d71] * source/common/dct.cpp: dct: tweak C reference function names [64a60d981754] 2013-07-08 praveentiwari * source/common/vec/dct.inc: xIDCT32 renamed [c6c2f393542b] * source/common/vec/dct.inc: xIDCT16 renamed [6f3e60bfc015] * source/common/vec/dct.inc: xIDCT8 renamed [41b0fd84e529] * source/common/vec/dct.inc: xIDCT4 renamed to idct4 [9f1b4c87102e] * source/common/vec/dct.inc: xIDST4 renamed to idst4 [96f0f843ce32] * source/common/vec/dct.inc: xDCT32 renamed and code cleanup [6b41676cb38e] * source/common/vec/dct.inc: xDCT8 renamed and cleanup [9e014c33e51f] * source/common/vec/dct.inc: xDCT16 renamed and code cleanup [b339a499aed7] * source/common/vec/dct.inc: xDCT4 vector function renamed and code cleanup [60a0b40415c0] * source/common/vec/dct.inc: xDST4 renamed and code cleanup [b433892d93bc] * source/common/vec/dct.inc: xDeQuant renamed and code cleanup [977e4de578f8] * source/common/dct.cpp: xDeQuant renamed to dequant and code cleanup [f4a8ee3589fc] * source/common/dct.cpp: xIDCT32_C renamed to idct32_c and code cleanup [ad9fa655dd85] * source/common/dct.cpp: xIDCT16_C renamed to idct16_c and code cleanup [6c88b49c9df6] * source/common/dct.cpp: xIDCT8_C renamed to idct8_c and code cleanup [628340f39377] * source/common/dct.cpp: xIDCT4_C renamed to idct4_c and code cleanup [96ba4ac11c58] * source/common/dct.cpp: xIDST4_C renamed to idst4_c and code cleanup [baf12bcf3edb] * source/common/dct.cpp: xDCT32_C renamed to dct32_c and code cleanup [f7b83d5d0517] * source/common/dct.cpp: xDCT16_C renamed to dct16_c and code cleanup [7b0ef137a4f3] 2013-07-08 Steve Borho * source/common/vec/intrapred.inc: intrapred: fixup variable renaming [fcca2928bf47] * source/common/intrapred.cpp: intrapred: remove hungarian prefix for file static [ec2b823011be] * source/common/pixel.cpp: pixel: cleanup C references [3fa99086d2f5] * source/common/vec/pixel16.inc: pixel: use x264 style argument names [a9d1cbda189f] * source/common/vec/pixel8.inc: pixel: use x264 style argument names [e0224143803e] * source/common/intrapred.cpp: intrapred: finish variable cleanups [1f4cd3821191] * source/common/vec/pixel.inc: pixel: remove caps in function arguments, macro white-space cleanups [066d75ab8433] * source/common/vec/pixel.inc, source/common/vec/utils.h: pixel: cleanup includes [dd217d262bbf] * source/common/vec/pixel.inc: pixel: simplify SET_FUNC_PRIMITIVE_TABLE macro and relocate [44ca2af6c6b9] 2013-07-08 ggopu * source/common/intrapred.cpp, source/common/vec/intrapred.inc: IntraPred: Removed Unused Codes and Cleanup the Function names and Hungarian Notations [56eeac8279f3] * source/common/vec/pixel.inc, source/common/vec/pixel16.inc, source/common/vec/pixel8.inc, source/common/vec/sse.inc: Vector Primitives : Removed hungarian notation [0ba9d8a0ec82] 2013-07-08 Steve Borho * source/common/vec/intrapred.inc: intra: fix HIGH_BIT_DEPTH builds [7242d6166f87] 2013-07-08 praveentiwari * source/common/dct.cpp: xDCT8_C renamed to dct8_c and code cleanup [dc13d07919db] * source/common/dct.cpp: xDCT4_C renamed to dct4_c and code cleanup [6030b16d3025] * source/common/dct.cpp: xDST4_C renamed to dst4_c and clenup [0cf5a2be157b] 2013-07-08 Steve Borho * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncTop.cpp: TEncTop: use mini-GOP sized frame batches with --gops 1 [CHANGES OUTPUTS] This changes the cadence slightly, so outputs will change. This also greatly reduces the memory requirements when GOP parallelism is not in use. [30346629dbc4] 2013-07-05 praveentiwari * source/common/dct.cpp: Cleanup some left hungarian notation left in first commit for xDeQuant [7ee04e912bdd] * source/common/dct.cpp: xDeQuant code cleanup [e46a76843569] * source/common/dct.cpp: xIDCT32_C code cleanup [92c0f50f7ec9] * source/common/dct.cpp: xIDCT16_C code cleanup [712eb60831c0] * source/common/dct.cpp: xIDCT8_C code cleanup [f431146891cc] * source/common/dct.cpp: xIDCT4_C code cleanup [65517cac4316] 2013-07-05 Deepthi * source/common/common.cpp: Rect option is enabled by default [6b12d890e0e9] 2013-07-05 Min Chen * source/common/vec/intrapred.inc: intrapred: code cleanup [f84fb8dcdf32] 2013-07-05 Deepthi Devaki * source/common/vec/ipfilter16.inc: Used memory align macro in ipfilter16.inc for compatibility with other compilers. [8543860c3817] 2013-07-05 praveentiwari * source/common/dct.cpp: xIDST4_C code cleanup [df4bd7c4a4a1] * source/common/dct.cpp: xDCT32_C code cleanup [30022ece780f] * source/common/dct.cpp: xDCT16_C code cleanup [eee88868ac98] * source/common/dct.cpp: xDCT8_C code cleanup [52e9946621cd] * source/common/dct.cpp: xDCT4_C code cleanup [8c0bdd83e6dc] * source/common/dct.cpp: xDST4_C code cleanup [1f0f735545bf] * source/common/vec/dct.inc: partialButterfy32 code cleanup [71ed2bcad90a] * source/common/vec/dct.inc: partialButterfly16 code cleanup [a3a0bb7eced1] * source/common/vec/dct.inc: partialButterfly8 code clenup [1955cac08ed8] 2013-07-05 ggopu * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/TShortYUV.cpp, source/common/TShortYUV.h: TShortYUV : Removed Get*() Method and Moved Member variables private to Public [5149904749c6] 2013-07-05 praveentiwari * source/common/vec/dct.inc: xIDCT32 code cleanup [02973bed3d3c] * source/common/vec/dct.inc: xIDCT16 code cleanup [46d7c537f220] 2013-07-05 Deepthi * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/TShortYUV.cpp, source/common/TShortYUV.h: Backout changeset: TShortYUV [e5eded426f38] 2013-07-05 sumalatha * source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp: intra and merge in no-rdo latest patch [d492600f757a] 2013-07-04 Deepthi Devaki * source/common/vec/ipfilter16.inc: Fix for vc10 crash in ipfilter16.inc [bf00c76a537d] 2013-07-02 ggopu * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/TShortYUV.cpp, source/common/TShortYUV.h: TShortYUV : Removed all the get() method and moved private data member into Public [5c307e0cd2f5] 2013-07-03 praveentiwari * source/common/vec/dct.inc: xIDCT4 intrinsic code cleanup [133b907bb8ee] * source/common/vec/dct.inc: xIDCT8 intrinsic code cleanup [dfa4be3b6bab] * source/common/vec/dct.inc: xIDST4 intrinsic code cleanup [e55954ec3be8] * source/common/vec/dct.inc: xIDST4 vector code cleanup [bf7dcf1b6cb1] * source/common/vec/dct.inc: xDCT32 intrinsic code cleanup [48aa9d0d5d74] 2013-07-03 Deepthi Devaki * source/common/vec/ipfilter16.inc: Fix for crash in vc9 for IP filter [15ad7154c62f] 2013-07-03 praveentiwari * source/common/vec/dct.inc: xDCT32 vector code cleanup [0ab33d7ffaea] * source/common/vec/dct.inc: xDCT16 intrinsic code cleanup [1a70ee3a0be9] 2013-07-02 praveentiwari * source/common/vec/dct.inc: xDCT16 vector code cleanup [31801697cf9b] 2013-07-05 Deepthi * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/vec/intrapred.inc: # From 2b989d9a7e9ecf86a592f33c39555cd63dbebd5a Mon Sep 17 00:00:00 2001 # From: Min Chen # Date: Tue, 2 Jul 2013 16:54:35 +0800 # Subject: [PATCH 3/3] intrapred: IntraAngle33 32x32 intrapred: IntraAngle33 32x32 --- source/Lib/TLibEncoder/TEncSearch.cpp | 2 +- source/common/vec/intrapred.inc | 2628 ++++++++++++++++++++++++++++++++- 2 files changed, 2628 insertions(+), 2 deletions(-) [f1101476cf1c] 2013-07-03 Deepthi * source/common/vec/pixel.inc: Fix for HIGH_BIT_DEPTH enable [209cce8f38be] * source/common/vec/pixel.inc, source/common/vec/utils.h: Assert error in pixel.inc resolved [e59400fe1240] 2013-07-02 praveentiwari * source/common/vec/dct.inc: xDCT8 intrinsic code cleaup [57b142b20d91] 2013-07-02 Deepthi * source/common/threadpool.cpp: # From d515ac32f810fe6e6a986862771c85564193ee51 Mon Sep 17 00:00:00 2001 # From: Min Chen # Date: Mon, 1 Jul 2013 17:45:07 +0800 # Subject: [PATCH 2/3] Disable #pragma in INTEL Compiler Disable #pragma in INTEL Compiler --- source/common/threadpool.cpp | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) [4ecacec3c8fa] * source/common/vec/pixel.inc: # From 8fa0f843e7fcf96f934856e5f0541501f077909a Mon Sep 17 00:00:00 2001 # From: Min Chen # Date: Tue, 2 Jul 2013 15:57:32 +0800 # Subject: [PATCH 1/3] intrapred: transpose_32x32 intrapred: transpose_32x32 --- source/common/vec/pixel.inc | 12 +++++++++++- 1 files changed, 11 insertions(+), 1 deletions(-) [396712bd0111] 2013-07-02 praveentiwari * source/common/vec/dct.inc: xDCT8 vector code cleanup [4b738b357911] * source/common/vec/dct.inc: Removed hungarian notation from xDCT4 intrinsic code [01b2f4e5cbdd] * source/common/vec/dct.inc: Removed hungarian notation from xDST4 intrinsic code [c7acbdbd0986] * source/common/vec/dct.inc: xDST4 code cleanup [97a2b34abe05] 2013-07-01 praveentiwari * source/common/vec/dct.inc: Removed hungarian notation and code cleanup for xDeQuant vector code [31e8e201a7ab] 2013-07-01 Deepthi Devaki * source/common/ipfilter.cpp: code cleanup and variable renaming in ipfilter.cpp [1857d23adace] 2013-07-01 praveentiwari * source/test/mbdstharness.cpp: Removed hungarian notation and code cleanup for check_xdequant_primitive test code [936c56e589ec] * source/test/mbdstharness.cpp: Removed hungarian notation and code cleanup for check_quantaq_primitive test code [65f14e9260f6] * source/test/mbdstharness.cpp: Removed hungarian notation and cleanup for check_quant_primitive test code [d47ea60f050f] 2013-07-01 Deepthi Devaki * source/common/vec/ipfilter8.inc: Removed cliping from vertical filter implementation; observed to be redundant [f72fac178387] 2013-06-30 Steve Borho * source/cmake/version.cmake: cmake: remove cache property for X265_VERSION This was causing cmake to only check the version when the cmake cache was entirely cleared (usually just once). After this change cmake will update X265_VERSION every time it generates the CLI project. [30c0e5591120] 2013-06-29 Steve Borho * source/Lib/TLibEncoder/TEncSlice.cpp: TEncSlice: ensure lambda per QP does not change [CHANGES OUTPUTS] This fixes non-determinism when GOP parallelism is enabled. I think we should just use x264's lambda tables and get rid of all of this logic, but it's too big of a change to make right before I leave for vacation. My 1.55 hack attempts to get our compression per-QP close to where it was before the change. [c3953142041c] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/encoder/wavefront.cpp, source/encoder/wavefront.h: TEncSearch: configure bitcost estimators at same time as TComRdCost This ensures the lambdas used for RD cost are always in sync with the bit costs [15f993eceb4b] 2013-06-29 Min Chen * source/common/vec/intrapred.inc: intrapred: Enable primitive with Intel Compiler --- source/common/vec/intrapred.inc | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) [b0d55cc8161e] 2013-06-28 Steve Borho * .hgtags: Added tag 0.1 for changeset 99fab2ef92be [e13a79c5ea45] * source/common/vec/ipfilter.inc: VC9 crashes running filterHorizontalMultiplaneExtend in release The test outright fails in debug, but doesn't crash [99fab2ef92be] [0.1] * source/encoder/encoder.cpp: encoder: ensure primitives (and ROM) are initialized before x265_check_params This might be an issue for API users [c34b079119ab] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/encoder/wavefront.cpp, source/encoder/wavefront.h: rename EncodeFrame to FrameEncoder [47f4f559739b] * source/common/common.cpp, source/common/common.h, source/encoder/encoder.cpp: common: use g_aucConvertToBit for getMaxCuDepth [47e80c91afaf] * source/Lib/TLibEncoder/TEncTop.cpp, source/common/primitives.cpp, source/encoder/encoder.cpp: TEncTop: move ROM management out of TEncTop Eventually we will want to allow more than one TEncTop in a process [1b4c93071203] * source/Lib/TLibCommon/TComRom.cpp: TComRom: make initROM and destroyROM safe for cycled calls [aa4402b22049] * source/Lib/TLibCommon/TComPrediction.cpp: TComPrediction: use aligned allocs for temporary interpolation buffers Hoping this resolves the problems found with 32bit heap corruption. [3b923c5e34ee] * source/common/common.cpp: vc9 requires unambigous casts for log() arguments [c31d63feaf21] * source/common/common.cpp: gcc requires math.h for log() [82b80c7a3ebc] * source/common/vec/ipfilter.inc: ipfilter: disable vector version of filterHmulti [12036d016834] * source/common/reference.cpp: reference: remove obsolete code [972659be1ea9] * source/common/vec/ipfilter8.inc, source/test/ipfilterharness.cpp: ipfilter: white-space nits, no code chage [fc3e18cdca42] 2013-06-28 Deepthi Devaki * source/common/vec/ipfilter8.inc: Modification on Horizontal filter [010b7590003a] * source/common/ipfilter.cpp, source/common/primitives.h, source/common/reference.cpp, source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc, source/test/ipfilterharness.cpp: Merged buffer extension with Horizontal filter; integrated with encoder [f9cf63bae785] 2013-06-28 Steve Borho * source/encoder/encoder.cpp: encoder: Always use IDR decoder refresh type [e025b15b8856] 2013-06-28 praveentiwari * source/test/mbdstharness.cpp, source/test/mbdstharness.h: Test code for quantaq and quant functions. [c5b3ab055087] * source/common/vec/dct.inc: Vector code for quantaq and quant functions. [96e5fa2a60cd] * source/common/dct.cpp: Replaced uint64_t with int in quantaq_C and quant_C functions, tested with BasketballDrive. [4257f9931e27] 2013-06-28 Steve Borho * source/common/common.cpp, source/common/common.h, source/encoder/encoder.cpp, source/x265.h, source/x265opts.h: Removed tuQTMaxLog2Size and tuQTMinLog2Size parametr from CLI option [6f0059abaf51] * source/common/common.cpp, source/x265.h, source/x265opts.h: Removed maxCUDepth parameter from CLI option [e052ebcb13d5] * source/Lib/TLibEncoder/TEncTop.cpp: TEncTop: improve comment about determining where the second I frame will be [c79ed90edca5] * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp, source/x265.cpp, source/x265.h, source/x265opts.h: x265: add --bframes/-b parameter to select B GOP structure [d9cf2ba5e957] * source/encoder/encoder.cpp: encoder: round keyframeInterval after establishing GOP structure This prevents 30Hz video from accidentally triggering our -i32 B frame hack [83d6f513ba93] * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h: TComSlice: free motion reference when picture is no longer referenced This is a stop-gap fix to the enourmous memory requirements of GOP level parallelism. It would be better to re-use these structures instead of allocing them every time. [10a9bc997966] 2013-06-27 Steve Borho * source/Lib/TLibCommon/TComSlice.cpp: TComSlice: nits [57a074870b71] * source/Lib/TLibCommon/TComPicYuv.h: TComPicYuv: remove obsolete member function definition [f1ffad55ce94] * source/common/reference.cpp, source/encoder/wavefront.cpp: thread: add serial code-paths for job provider if thread pool is not available [fe6020943bd0] 2013-06-27 Min Chen * source/Lib/TLibEncoder/TEncSearch.cpp: intrapred: Active code IntraAngle33 16x16 --- source/Lib/TLibEncoder/TEncSearch.cpp | 14 ++------------ 1 files changed, 2 insertions(+), 12 deletions(-) [aa95488eaa2d] * source/common/vec/pixel.inc: pixel: fix bug in Transpose 16x16 --- source/common/vec/pixel.inc | 76 +++++++++++++++++++++--------------------- 1 files changed, 38 insertions(+), 38 deletions(-) [265e7e0333c4] 2013-06-27 sumalatha * source/encoder/compress.cpp: Fixed the Hash error with -no-rdo ON [3b93256a844b] 2013-06-26 Steve Borho * source/Lib/TLibEncoder/TEncTop.cpp: TEncTop: don't flush two GOP coders in one call [5b42d1c900b4] * source/common/threadpool.cpp: threadpool: tweak for thread deletion loop [9fab0eb1538a] * source/common/threadpool.cpp: threadpool: more explicit shutdown code [d12f113a1e42] * source/Lib/TLibEncoder/TEncCu.cpp: TEncCu: fix a small memory leak [82d95660132f] * source/Lib/TLibEncoder/TEncCu.cpp: TEncCU: white-space cleanup [7bacf11b7f2e] * source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: TEncTop: allow GOP coder execution to overlap execution Finally.. GOP parallelism. [80d6e85cdd03] * source/Lib/TLibEncoder/TEncTop.cpp: TEncTop: do not flush if no pics are queued, prevents deadlock [d064340c3227] * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCavlc.cpp: cleanup: move SCALING_LIST_OUTPUT_RESULT to TEncCavlc [f89b453bc412] * source/Lib/TLibCommon/TypeDef.h: cleanup: remove unused REMOVE_SAO_LCU_ENC_CONSTRAINTS_3 [90a69b42da1f] * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TypeDef.h: cleanup: move DISABLING_CLIP_FOR_BIPREDME to TComYuv, add comment [8685e99751bc] * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCavlc.cpp: cleanup: move PRINT_RPS_INFO to TEncCavlc [2adc62db4d55] * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncGOP.cpp: cleanup: move VERBOSE_RATE define to TEncGOP [518c70801520] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: add a worker thread to process keyframe intervals [93ca3f5bafec] * source/common/TShortYUV.cpp, source/common/TShortYUV.h: TShortYUV: remove or correct comment lines [7f49c1a3ffcc] * source/common/CMakeLists.txt, source/encoder/CMakeLists.txt: cmake: move HM headers into their own source group in VC [cfa1897d63eb] * source/encoder/CMakeLists.txt: cmake: remove deleted compress.h from encoder project [c7c32a64931f] * source/encoder/compress.cpp: compress: remove warning disable pragmas, fix warnings [8055fd9930c2] * source/encoder/compress.h: compress: remove unused header [a1831863c966] * source/encoder/compress.cpp: compress: uncrustify [6492774bd3e5] * source/encoder/compress.cpp: compress: remove dead variables [b5bbcf9da827] * source/common/primitives.h, source/test/mbdstharness.cpp, source/test/mbdstharness.h: primitives: fix symbol collision [b3539e001ea4] 2013-06-26 Min Chen * source/common/vec/intrapred.inc: inrapred: generate all of 33 IntraAngle 16x16 modes once (vc9-win32 only) --- source/common/vec/intrapred.inc | 4151 ++++++++++++++++++++++++++++++++++++++- 1 files changed, 4148 insertions(+), 3 deletions(-) [3977edfa3ee1] * source/common/vec/intrapred.inc: cleanup: Remove unused debug code --- source/common/vec/intrapred.inc | 3 --- 1 files changed, 0 insertions(+), 3 deletions(-) [60955ad48ef9] 2013-06-27 Mandar Gurav * source/common/vec/intrapred.inc: primitves: 8 bit : PredIntraAng8x8 function table implementation [dc1663eaf7f7] 2013-06-26 praveentiwari * source/Lib/TLibCommon/TComTrQuant.cpp: TrComQuant: replaced original code with primitive calls [3e60dfba74c9] * source/common/dct.cpp: Separated the logic block of code from xQuant function as two functions for optimization [60a4710e5fc3] * source/common/primitives.h: primitives: Added function pointer types for quant [e22c26d712a1] 2013-06-26 sumalatha * source/encoder/compress.cpp: commit : added log for printing costs for each partSize [c23b800f04e5] 2013-06-26 praveentiwari * source/common/primitives.h: White-space fixes in primitives.h [e48f23e628df] * source/common/dct.cpp: Uncrustyfied dct.cpp file [cfebb7774024] 2013-06-25 Deepthi Devaki * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TypeDef.h: Enabled clipping for Bframes in ME as a fix for 8bpp-16bpp mismatch. [9f6a0fb1947a] 2013-06-26 praveentiwari * source/Lib/TLibCommon/TComTrQuant.cpp: White-space fixes in TComTrQuant.cpp file [12322d9f0b18] 2013-06-26 Mandar Gurav * source/common/vec/intrapred.inc: primitves: 8 bit : PredIntraAng4x4 function table implementation [f7c7c5e792dc] 2013-06-25 Steve Borho * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: fix signed/unsigned comparison [ecc9ce8993c2] * source/Lib/TLibEncoder/TEncTop.cpp: TEncTOP: small perf tweak for --gops 1 [f5605a0579d4] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncTop.cpp: TEncGOP: move access unit buffering to TEncGOP [0ff90feebcbe] * source/Lib/TLibEncoder/TEncTop.h: TEncTop: prune unused headers, this stuff has all been moved downstream [83fc7f016b60] * source/common/CMakeLists.txt, source/common/IntraPred.cpp, source/common/intrapred.cpp: cmake: lower-case the intrapred.cpp filename [f8f794c5e611] * source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/mv.h: mv: remove getHor() and getVer() compatibility methods [9607556126e3] * source/Lib/TLibCommon/TComDataCU.cpp, source/common/mv.h: mv: remove set() compatibility method [a0d858f0462e] * source/Lib/TLibEncoder/TEncPic.cpp: TEncPic: use MAX_DOUBLE from CommonDefs.h [3310b6859a26] * source/Lib/TLibCommon/TComDataCU.cpp, source/common/mv.h: mv: remove setHor(), SetVer() compatibility methods [1807e4e93e87] * source/common/CMakeLists.txt, source/common/mv.h, source/encoder/CMakeLists.txt, source/encoder/mv.h: mv: move mv.h from encoder/ to common/ [309e04c35ea4] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibCommon/TComMv.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TComRdCostWeightPrediction.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: common: replace TComMV with x265::MV everywhere [8753803f57e1] * source/Lib/TLibEncoder/TEncTop.cpp: TEncTOP: simplify logic [d570ee7646f0] * source/Lib/TLibEncoder/TEncTop.cpp: TEncTOP: remove incorrect comment [589dbbf841d1] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncPic.cpp, source/Lib/TLibEncoder/TEncPic.h, source/Lib/TLibEncoder/TEncPreanalyzer.cpp, source/Lib/TLibEncoder/TEncPreanalyzer.h: TEncPic: make TEncPreanalyzer::xPreanalyze a method of TEncPic [06de0a8f273d] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: TEncGOP: move all picture prep work from TEncTop to TEncGOP [74cfd68d431f] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: do not use accessors for member variables [60c1cc2e014a] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: remove m_cpbRemovalDelay, which was never read [9601ff4148b8] * source/encoder/encoder.cpp: encoder: set progressive flag, since we only support progressive sources [a041ffd6c0ad] * source/encoder/encoder.cpp: encoder: allow CRA mode when gopNumThreads is 1, add some comments [31f7ebda9f97] * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp: TEncTOP: allow -i32 --gops 2, but detect and avoid end-of-stream crashes [180e91b6bbf4] * source/Lib/TLibCommon/TypeDef.h: Backed out changeset: fdb2ffe6b29b [05b082d276f4] * source/Lib/TLibCommon/TypeDef.h: TypeDef: remove unused DISABLING_CLIP_FOR_BIPREDME [fdb2ffe6b29b] * source/encoder/encoder.cpp: encoder: repair open-gop again [0cd6fd8d8c39] * source/encoder/encoder.cpp: encoder: fix keyframe interval before InitializeGOP() [0f06e7b6d298] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: fix the first I frame (temporary fix) [744e04edb379] * source/encoder/encoder.cpp: encoder: remove redundant assignments [3df972c1a6f8] * source/encoder/encoder.cpp: encoder: enforce keyframe as multiple of GOPSize [57919ce774e1] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: TEncTOP: remove unused m_vRVM_RP vector [5da286a92f5a] 2013-06-25 praveentiwari * source/test/mbdstharness.cpp: Fixed size issue in xDeQuant test code [fe4b745a0332] * source/test/mbdstharness.cpp: uncrustified mbdstharness.cpp file [542f3ef09ca1] 2013-06-25 sumalatha * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp: Included merge mode for FMD = ON. Changed the xComputeCostMerge2Nx2N() to calculate the SATD cost and decide the mode based on that. [89d3a8de1f47] 2013-06-25 Min Chen * source/common/vec/intrapred.inc: intrapred: Enable primitive since VC9 haven't this bug --- source/common/vec/intrapred.inc | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) [e335b5a9ddca] 2013-06-25 Steve Borho * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp: TEncGOP: temporary workarounds for --keyint 32; will finish tomorrow [f3c41ba3423b] * source/Lib/TLibEncoder/TEncTop.cpp: TEncGOP: ugly hack for our ugly --keyint 32 hack This allows the encoder to survive up till the last mini-GOP, still debugging [1fb8e850e893] * source/encoder/encoder.cpp: encoder: switch to IDR decoder refresh mode, more GOP parallelism friendly [70a215f4e0fa] 2013-06-24 Steve Borho * source/Lib/TLibEncoder/TEncTop.cpp: TEncTOP: remove special cases for first keyframe interval [ba72bbb6ec31] * source/encoder/encoder.cpp: encoder: disable GOP parallelism if open GOP configured [7dadd3f6b861] * source/encoder/encoder.cpp: encoder: add a comment for default keyframe interval [b5e283a6703e] * source/common/common.cpp, source/encoder/encoder.cpp, source/x265.cpp: encoder: change default keyframe interval from fixed value (16) to 1 second [7a2555036e8d] * source/common/common.cpp, source/encoder/encoder.cpp: encoder: consolidate logic which validates feature combinations [cfc53bb18e32] * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: TEncTOP: nuke xCalculateRVM() and RVM_VCEGAM10_M [7d8bb458e541] * source/common/x86/README.txt: asm: add a couple more notes to the README [76f7fc3b8804] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: TEncTop: round-robin cycle through GOP encoders [4cd8f659cee2] * source/common/IntraPred.cpp, source/common/dct.cpp, source/common/ipfilter.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/vec/blockcopy.inc, source/common/vec/dct.inc, source/common/vec/ipfilter16.inc, source/common/vec/ipfilter8.inc, source/common/vec/pixel.inc, source/common/vec/pixel16.inc, source/common/vec/pixel8.inc, source/common/x86/asm-primitives.cpp: primitve: remove CDECL globally [5bc43fd3c39b] * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/common/common.cpp, source/encoder/encoder.cpp, source/x265.h, source/x265opts.h: x265: introduce gop thread count parameter, currently mostly ignored [1ccb2a5664e2] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncTop.cpp: TEncGOP: encode frames in keyframe interval batches This makes progress reports even more infrequent [f559317ff736] * source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: TEncTOP: 50% less hungarian, remove or correct wrong comments [1e7f5c80ee9f] 2013-06-24 Deepthi Devaki * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.h, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibEncoder/TEncSearch.cpp: Added support for bipred, but 8bpp, 16bpp mismatch [4d95584be40d] 2013-06-21 Deepthi Devaki * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h: TComPrediction: fixes for biprediction Restructured xPredInterBi. Added xPredInterluma/chromablk/Uni functions with TShortYuv argument for bipred [254a52d53a2f] 2013-06-24 Steve Borho * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: nits [a240b7530a29] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: stub in a processKeyframeInterval() method This is the next step to GOP parallelism. 1) Process an entire keyframe interval of frames at one go; ensure the picture lists can deal with this. 2) Add multiple TEncGOP encoders and round-robin them to encode GOPs. 3) Finally add threading so they work in unison. [38efcc5dcbf5] * source/common/vec/intrapred.inc: intra: work around VC10 and VC11 Win32 compiler bugs [a1de9e7f8ee7] * source/common/ipfilter.cpp, source/common/vec/intrapred.inc, source/common/vec/pixel.inc: gcc: fix warnings reported by GCC [0e83bb44b8e0] 2013-06-23 Steve Borho * source/common/common.cpp, source/encoder/encoder.cpp, source/x265.cpp, source/x265.h, source/x265opts.h: x265: remove ui/i hungarian prefixes from x265_param_t, standardize bool flags [7f6b0ae32985] 2013-06-24 Deepthi * source/encoder/compress.cpp: Merge [d45053ca8e2b] * source/Lib/TLibEncoder/TEncSearch.cpp: Merge [a609e11dc6a5] 2013-06-22 Deepthi * source/encoder/compress.cpp: Adding in entropy measurements to nordo after encode residual. [628313e72a1d] * source/encoder/compress.cpp: Removing merge modes for now; need more debugging [9e95d8d524a9] * source/Lib/TLibEncoder/TEncSearch.cpp: Removing an erroneous cost calculation [4239f6bf06d7] 2013-06-23 Steve Borho * source/Lib/TLibEncoder/TEncGOP.cpp, source/encoder/encoder.cpp: encoder: fix open-gop behavior [30b142f02135] * source/common/common.cpp: common: fixups for keyframe interval [cdb337e59eb0] 2013-06-22 Steve Borho * source/Lib/TLibEncoder/TEncCu.cpp: TEncCU: remove more dead code [e76879d77757] * source/Lib/TLibEncoder/TEncCu.cpp: TEncCU: nits [1aec16cc83ee] * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp: TEncCU: remove dead code paths [9df420362f0b] 2013-06-23 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: fix 16bpp build [8e8edbaa351b] * source/common/vec/pixel.inc: pixel: fix typo in build define [f20bccea941b] 2013-06-22 Steve Borho * source/common/vec/pixel.inc, source/common/vec/pixel8.inc, source/test/pixelharness.cpp: pixel: simplify and optimize residual and recon primitives [0b1625fd6625] * source/VectorClass/vectori128.h: vector: nit [67b7bf7ec06c] 2013-06-22 Min Chen * source/common/vec/ipfilter8.inc: interp: [review] PACKUSWB included clip --- source/common/vec/ipfilter8.inc | 6 ------ 1 files changed, 0 insertions(+), 6 deletions(-) [f1a23b5dfaec] 2013-06-22 Steve Borho * source/common/vec/ipfilter-avx.cpp, source/common/vec/ipfilter- avx2.cpp, source/common/vec/ipfilter-sse2.cpp, source/common/vec /ipfilter-sse3.cpp, source/common/vec/ipfilter-sse41.cpp, source/common/vec/ipfilter-sse42.cpp, source/common/vec/ipfilter- ssse3.cpp, source/common/vec/ipfilter.inc: ipfilter: move logic from cpp files to ipfilter.inc [a58b34f95d5a] 2013-06-22 Min Chen * source/common/vec/pixel.inc: pixel: intrinsic Tranpose 16x16 --- source/common/vec/pixel.inc | 83 ++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 82 insertions(+), 1 deletions(-) [0d005f8ba719] * source/common/vec/pixel.inc: pixel: intrinsic Tranpose 8x8 --- source/common/vec/pixel.inc | 45 +++++++++++++++++++++++++++++++++++++++++- 1 files changed, 43 insertions(+), 2 deletions(-) [1d7ab6944679] 2013-06-22 Steve Borho * source/common/primitives.h, source/test/pixelharness.cpp: primitives: rename NUM_BLOCKS to NUM_SQUARE_BLOCKS, use for intra and transpose [1ac63a9e6dea] 2013-06-22 Min Chen * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/vec/pixel.inc: pixel: intrinsic Tranpose 4x4 --- source/Lib/TLibEncoder/TEncSearch.cpp | 9 +------ source/common/pixel.cpp | 19 +++++++++++++++ source/common/primitives.h | 2 + source/common/vec/pixel.inc | 41 +++++++++++++++++++++++++++++++++ 4 files changed, 63 insertions(+), 8 deletions(-) [9e07e835929a] 2013-06-22 Steve Borho * source/common/vec/intrapred.inc: intrapred: wrap pragma warning with #if _MSC_VER [f262575efbe4] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: fix cost adjustments following HM ME [ae98c873c26e] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: simplify full search [23c6b755811e] * source/Lib/TLibEncoder/TEncSearch.cpp: ppa: move motion search event to a higher level [0fede11b81e5] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: catch --keyint -1 sanely [fd14b3dd6986] * source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: nit [a4cbe5f4cda3] * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/common.cpp, source/x265.h, source/x265opts.h: x265: expose HM's full search as a CLI option --me 5 [9be42d1878ee] * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: remove more cruft [1035b13af978] * source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: TComRdCost: remove unused uiComp [0e60557dfa5a] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: remove setDistParamComp [e31e6df77aba] 2013-06-21 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: cleanups [895b3f846a08] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: move predictor fetching earlier in inter pred This allows us to merge xTZSearch into xPatternSearchFast [5b79dc7d982d] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: hoist our optimized ME up a function layer Avoid a lot of useless overhead, simplify how ME is called [e29623267bbe] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: simplify xSetSearchRange [cd45b4dd8e73] * source/encoder/motion.cpp, source/encoder/mv.h: MV: do not allow implicit creation from int [2fbda9cade34] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: nits [609f5607d1a5] * source/common/common.cpp: common: do not allow weighted prediction with optimized ME This prevents having to check for this deep within the encoder [a66478706e61] 2013-06-21 Min Chen * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/vec/intrapred.inc, source/test/intrapredharness.cpp: [x265] [PATCH] inrapred: generate all of 33 IntraAngle-8x8 modes once --- source/Lib/TLibEncoder/TEncSearch.cpp | 2 +- source/common/vec/intrapred.inc | 1017 ++++++++++++++++++++++++++++++++- source/test/intrapredharness.cpp | 3 +- 3 files changed, 1019 insertions(+), 3 deletions(-) [851fe263dabf] 2013-06-21 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: remove last Double uses from TEncSearch [de1044dfbaf1] * source/Lib/TLibCommon/TComRdCost.h: TComRdCost: remove unused getLambda() method [3fe92111bc85] 2013-06-20 Min Chen * source/common/IntraPred.cpp, source/common/vec/intrapred.inc, source/test/intrapredharness.cpp: intrapred: 1.fix C model when size more than 8, 2.fix buffer overflow in testbench --- source/common/IntraPred.cpp | 40 ++++++++++++++++++------------------- source/common/vec/intrapred.inc | 9 ++----- source/test/intrapredharness.cpp | 9 +++---- 3 files changed, 26 insertions(+), 32 deletions(-) [14cc0e972566] 2013-06-21 Deepthi Devaki * source/common/ipfilter.cpp, source/common/primitives.h: Filtervertical-short-short and pel-short to support bipred [cfea4bf27fa8] 2013-06-21 Deepthi * source/encoder/compress.cpp: Cleanup: compress.cpp [0abefa6bc340] * source/encoder/compress.cpp: Removing incorrect null checks [90965b5b4da8] * source/encoder/compress.cpp: Branch decision taken only if CU does not contain boundary. Always true otherwise. [bec0647b8d3f] * Merge [20caf72adaac] * source/encoder/compress.cpp: Replacing SATD computations with blkcpy and then satd [6c2368a2a98a] 2013-06-21 Steve Borho * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: nits [3a080c7ba1d0] * source/common/CMakeLists.txt, source/encoder/CMakeLists.txt: cmake: separate HM headers from the cpp files for convenience [fa1a70530abd] * source/common/pixel.cpp: pixel: refix 16bpp builds [ab01a775ab83] * source/x265.cpp: x265: fix bitrate progress reports [bced30963f15] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: use member SPS and PPS structs, stop refetching slice [ae82def2da71] 2013-06-20 Steve Borho * source/common/x86/asm-primitives.cpp: asm: do not override new SSE2 ASM functions with slower templated XOP calls [79231017d0da] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: nits [575f21816974] * source/CMakeLists.txt: cmake: assign value to X86_64 when defined [5de7df75a0fe] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: move a couple of methods [fc339086c88d] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: nits [5de89ceadeeb] * source/encoder/bitcost.cpp, source/encoder/bitcost.h: bitcost: use more accurate fractional bit cost accounting from x264 [07015bbe306b] * source/encoder/motion.cpp, source/encoder/motion.h: motion: drop SUBSAMPLE_SAD [CHANGES OUTPUTS] The complexity outweighed the benefits [d5e5d3812eaa] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: fix comment [cadd2ff53d3c] * source/encoder/bitcost.cpp: bitcost: fix clamp of bitcost to 16bits The typecast to uint16_t was just wrong [6557f5e10c86] * source/common/reference.cpp: reference: cleanup worker function [2c5d35632fea] * source/common/vec/ipfilter-avx.cpp, source/common/vec/ipfilter- avx2.cpp, source/common/vec/ipfilter-sse2.cpp, source/common/vec /ipfilter-sse3.cpp, source/common/vec/ipfilter-sse41.cpp, source/common/vec/ipfilter-sse42.cpp, source/common/vec/ipfilter- ssse3.cpp, source/common/vec/ipfilter8.inc: ipfilter: use memcpy to extend top/bottom rows [f27f99b01e66] * source/common/vec/ipfilter8.inc: ipfilter: fix indention (all white-space changes) [9ab99c57b42a] * source/common/vec/ipfilter8.inc: ipfilter: fix spacing [e6ef40975e4a] * source/common/pixel.cpp: pixel: fix sa8d_16x16 C primitive [1cec6b092506] 2013-06-20 Deepthi Devaki * source/common/ipfilter.cpp, source/common/primitives.h, source/common/reference.cpp, source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc, source/test/ipfilterharness.cpp: Vertical filter with Border extend [fea6feb1152d] 2013-06-20 Min Chen * source/test/intrapredharness.cpp: intrapred: adjust debug info format --- source/test/intrapredharness.cpp | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) [367a3f300210] * source/test/testbench.cpp: testbench: fix logic on option --cpuid [4054533a85e9] 2013-06-20 Steve Borho * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: ensure pic list contains at least two TComPic [cadcbb46ffd9] 2013-06-20 Min Chen * source/common/vec/dct.inc: dct: disable optimize version dct in 16bpp, all of intermediate value must be 32-bits --- source/common/vec/dct.inc | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) [7135a13cf3a5] * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/IntraPred.cpp, source/common/primitives.h, source/common/vec/intrapred.inc, source/test/intrapredharness.cpp, source/test/intrapredharness.h: intrapred: implement IntraAngle mode to all size --- source/Lib/TLibEncoder/TEncSearch.cpp | 5 ++- source/common/IntraPred.cpp | 22 ++++++++++------- source/common/primitives.h | 2 +- source/common/vec/intrapred.inc | 39 +++++++++++++++++------------- source/test/intrapredharness.cpp | 41 +++++++++++++++++++------------- source/test/intrapredharness.h | 2 +- 6 files changed, 64 insertions(+), 47 deletions(-) [12ef1f072327] 2013-06-20 Mandar Gurav * source/common/pixel.cpp, source/test/testbench.cpp: primitives: some macro implementation to improve readabilty of code. [f97119251704] 2013-06-20 Steve Borho * source/common/x86/asm-primitives.cpp, source/common/x86/pixel.h: asm: use more generic 64bit build define [6df10ad11f4a] * source/common/x86/asm-primitives.cpp: asm: prune trailing white-space [094b99a737b6] 2013-06-20 Mandar Gurav * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: primitives: asm: satd: fix for 32 bit issue [18b0bc26f3a0] 2013-06-20 Deepthi * Merge [17ddca539510] * source/common/common.cpp: Print rdo if enabled, no-rdo if disabled [8454a96806ff] 2013-06-20 Steve Borho * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: simplify POC search [e926b2d50cee] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: remove unused variable [bbf02b319ed7] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: TEncGOP: move all picture management to TEncGOP [276ab8776f48] * source/x265.cpp: x265: do not ask for recon pictures if no output file was requested [48d22ee16225] * source/encoder/encoder.cpp: encoder: consider output NALs even if iNumEncoded is zero [636674cc5f50] 2013-06-19 Steve Borho * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: TEncGOP: move frame list from TEncTOP to TEncGOP [abfa8a5a1ebc] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/encoder/wavefront.cpp, source/encoder/wavefront.h: TEncGOP: move SPS, PPS to TEncGOP These structures are modified by compressGOP and thus cannot be encoder singletons. The init functions are kept in TEncTOP since they are tightly coupled with TEncCfg and TEncTOP [43a210488e02] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncTop.h: make a pile of get*() methods const [79d8bdd3612f] * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: TEncGOP: move getReferencePictureSetIdxForSOP and selectReferencePictureSet [998ee354be96] 2013-06-19 Min Chen * source/common/vec/intrapred.inc: intrapred: correct HIGH_BIT_DEPTH fault --- source/common/vec/intrapred.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) [bfde7f16c723] 2013-06-19 Steve Borho * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/encoder/encoder.cpp, source/encoder/encoder.h: TEncGOP: directly return references to encoder's recon frames, do not copy This is all prep-work for GOP threading, but it doesn't hurt to remove a frame copy from the main loop. Now if the user wants no recon frames there is no overhead associated in maintaining them. [519b62011b23] * source/encoder/encoder.cpp, source/encoder/encoder.h, source/x265.cpp, source/x265.h: x265: change public API slightly to allow batch reconstructed frame delivery [45b31cb09114] * source/Lib/TLibCommon/TComSlice.cpp: TComSlice: nits [63afd266e232] * source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: TEncTop: return TComPic from xGetNewPicBuffer, don't use reference args [770b306f1163] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: Backed out changeset: 8af5a9eb198c This backs out the lambda change from Double to UInt64, but leaves the typo and other white-space fixes in place. This change ended up being a net performance loser. The double->UInt64 conversions in the middle of the tight loop were slower than the savings from using integer math. We need an effective way to perform the cost scaling using integer math in order to use integers throughout this function. [eba9a84e9054] * source/Lib/TLibCommon/TComTrQuant.cpp: TComTrQuant: reduce number of double<->int conversions [092152f58712] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: TComTrQuant: switch lambda from Double to UInt64 [CHANGES OUTPUTS] [8af5a9eb198c] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/motion.h: motion: add bufSA8D() method, so sa8d and satd are both available [76449efed663] 2013-06-19 sumalatha * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp: Included the merge mode for selecting the mode for xCompressInterCU [94d7d31fc312] 2013-06-20 ShinYee Chung * source/common/vec/intrapred.inc: intrapred: Fix unused variables. error: statement has no effect [-Werror=unused-value] [bb78ee5841f2] 2013-06-19 Steve Borho * source/common/common.cpp: common: move RDO settings together [8039746d5cb0] * source/common/common.cpp: common: output logs to stderr consistently [d2a568b0c078] 2013-06-20 ShinYee Chung * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: Fix compile error due to char array subscript. Sample compile errors in Linux64/GCC4.8.1: $HEVC/source/Lib/TLibEncoder/TEncSearch.cpp:2134:75: error: array subscript has type ‘char’ [-Werror=char-subscripts] x265::pixelcmp sa8d = x265::primitives.sa8d[g_aucConvertToBit[uiWidth]]; ^ $HEVC/source/Lib/TLibEncoder/TEncSearch.cpp: In member function ‘Void TEncSearch::estIntraPredQT(TComDataCU*, TComYuv*, TComYuv*, TShortYUV*, TComYuv*, UInt&, Bool)’: $HEVC/source/Lib/TLibEncoder/TEncSearch.cpp:2206:79: error: array subscript has type ‘char’ [-Werror=char-subscripts] x265::pixelcmp sa8d = x265::primitives.sa8d[g_aucConvertToBit[uiWidth]]; ^ [dd5dd47e17f4] * source/common/IntraPred.cpp: intrapred: Fix unused global variable. Compile error in Linux64/GCC4.8.1: $HEVC/source/common/IntraPred.cpp:252:15: error: ‘{anonymous}::g_aucIntraFilterType’ defined but not used [-Werror =unused-variable] unsigned char g_aucIntraFilterType[][35] = { ^ [ac3e7ab6cdc0] 2013-06-19 ShinYee Chung * source/Lib/TLibCommon/TComPrediction.cpp: TComPrediction: Fix reordered initialization list. Sample compile errors in Linux64/GCC4.8.1: $HEVC/source/Lib/TLibCommon/TComPrediction.h: In constructor ‘TComPrediction::TComPrediction()’: $HEVC/source/Lib/TLibCommon/TComPrediction.h:80:12: error: ‘TComPrediction::m_iLumaRecStride’ will be initialized after [-Werror=reorder] Int m_iLumaRecStride; ///< stride of #m_pLumaRecBuffer array ^ $HEVC/source/Lib/TLibCommon/TComPrediction.h:79:12: error: ‘Pel* TComPrediction::m_pLumaRecBuffer’ [-Werror=reorder] Pel* m_pLumaRecBuffer; ///< array for downsampled reconstructed luma sample ^ $HEVC/source/Lib/TLibCommon/TComPrediction.cpp:60:1: error: when initialized here [-Werror=reorder] TComPrediction::TComPrediction() ^ In file included from $HEVC/source/Lib/TLibCommon/TComPrediction.cpp:39:0: $HEVC/source/Lib/TLibCommon/TComPrediction.h:79:12: error: ‘TComPrediction::m_pLumaRecBuffer’ will be initialized after [-Werror=reorder] Pel* m_pLumaRecBuffer; ///< array for downsampled reconstructed luma sample ^ $HEVC/source/Lib/TLibCommon/TComPrediction.h:62:15: error: ‘Pel* TComPrediction::m_piPredBuf’ [-Werror=reorder] Pel* m_piPredBuf; ^ $HEVC/source/Lib/TLibCommon/TComPrediction.cpp:60:1: error: when initialized here [-Werror=reorder] TComPrediction::TComPrediction() ^ [f8d043a4f6b4] * source/common/IntraPred.cpp, source/common/vec/intrapred.inc: intrapred: Fix unused variables. Sample compile errors in Linux64/GCC 4.8.1: $HEVC/source/common/vec/intrapred.inc:4677:13: error: statement has no effect [-Werror=unused-value] (pLeft1); ^ $HEVC/source/common/vec/intrapred.inc:4678:14: error: statement has no effect [-Werror=unused-value] (pAbove1); ^ [e373dbe02018] 2013-06-19 Min Chen * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/vec/intrapred.inc: inrapred: generate all of 33 IntraAngle-4x4 modes once [1353e6681c7d] 2013-06-19 Mandar Gurav * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: primitives: asm: update: implementation of satd(sse2) [762b53ecba5a] 2013-06-18 Mandar Gurav * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: primitives: asm: implementation of satd_16x12(sse2) [594020d9d19b] 2013-06-19 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp, source/common/vec/intrapred.inc, source/encoder/motion.cpp: 16bpp fixes [67342f25244e] 2013-06-18 Steve Borho * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: TComTrQuant: remove wrong comments, cleanup funcdefs, move inlines to header [6ecc4a1ca26c] 2013-06-19 Deepthi * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: Cleanuo: Removing swapCU [ab93e542c0a4] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h: Cleanup: Removing copyCU [c46b9a8ead56] * source/CMakeLists.txt: Removing FMD from cmake options. [332b3145d9be] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp: Replacing all FMD macros with cfg file option [77b91dd88829] * source/encoder/encoder.cpp: Set cfg flag to enableRDO CL option. [e0528e455855] * source/Lib/TLibEncoder/TEncCfg.h: Adding rdo to cfg structure [49737829b64f] * source/common/common.cpp, source/x265.h, source/x265opts.h: Add rdo/no-rdo to command line interface [00a331ad69a4] 2013-06-18 Steve Borho * source/Lib/TLibCommon/TComRdCost.h: TComRdCost: move getCost closer to calcRdSADCost, to show how they are related [c79263efd38d] * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h: TComRdCost: remove unused calcHAD() method [401167498626] * source/Lib/TLibCommon/TComRdCost.cpp: TComRdCost: fix a typo in a comment [ee06dc714841] * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h: TComRdCost: remove unused overload of setDistParam [08310bc6f97d] * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h: TComRdCost: remove unused overload of setDistParam [1ba3c30c42c2] * source/encoder/motion.cpp, source/encoder/motion.h: motion: move bufSATD back into motion.h and declare both inline [f1d34f7a9d9b] * source/common/pixel.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/encoder/motion.cpp, source/encoder/motion.h, source/test/pixelharness.cpp: pixel: add sa8d_inter primitives to match TComRdCost::calcHAD() Now we can pick between sa8d and satd at runtime via a pointer selection [b4f99ece0aeb] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: use motion.bufSAD instead of m_pcRdCost DistParam [d1604fa4e39e] * source/encoder/motion.cpp, source/encoder/motion.h: motion: make bufSATD function exactly like TComRdCost::calcHAD() [dec21e1c6ee9] * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/x86/asm-primitives.cpp, source/test/pixelharness.cpp: primitives: collect sa8d primitives into blocksize array [a21a11f9e1b6] * source/common/primitives.h: primitives: fix two wrong comments [4915f80d3cdb] * source/encoder/motion.h: motion: add bufSATD method [760aa86a54ba] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: remove extra indent level; nit [b0d5c4f14d3b] * source/common/primitives.cpp: primitives: add rationale for disabling EMMS when ASM is disabled [21b34444026c] * source/common/vec/pixel.inc: pixel: cleanup Setup_Vec_PixelPrimitives, remove comments that add no meaning [f1437f97e146] * source/common/pixel.cpp: pixel: round up to nearest half before shift, fixes --cpuid 1 encodes [4118bc3a68aa] * source/encoder/bitcost.cpp: bitcost: use x265_emms() before calculating a row of MV costs, to be safe [5c1de9ce010c] * source/common/x86/asm-primitives.cpp: asm-primitives: fix eoln [c56ef1521a07] * source/common/primitives.h, source/common/x86/asm-primitives.cpp: Backed out changeset: d9f7525c4adf [c6370b56b1d9] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: delay x265_emms() to RDO stage of intra analysis [f0b745956762] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: use m_pcRdCost->calcRdSADCost() to avoid doubles in intra analysis [458cdba67699] 2013-06-18 chenm003 * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/IntraPred.cpp, source/common/primitives.h, source/common/vec/intrapred.inc, source/test/intrapredharness.cpp, source/test/intrapredharness.h: intrapred: framework for generate 33 Angle modes once --- source/Lib/TLibCommon/TComPrediction.cpp | 5 +- source/Lib/TLibCommon/TComPrediction.h | 1 + source/Lib/TLibEncoder/TEncSearch.cpp | 65 +- source/common/IntraPred.cpp | 569 +- source/common/primitives.h | 2 + source/common/vec/intrapred.inc | 9409 +++++++++++++++--------------- source/test/intrapredharness.cpp | 72 + source/test/intrapredharness.h | 4 + 8 files changed, 5179 insertions(+), 4948 deletions(-) [e582599ae931] * source/common/primitives.h, source/test/intrapredharness.cpp, source/test/intrapredharness.h: intrapred: fix build error after simplify bLeft and bAbove --- source/common/primitives.h | 8 ++++---- source/test/intrapredharness.cpp | 26 +++++++++----------------- source/test/intrapredharness.h | 4 ++-- 3 files changed, 15 insertions(+), 23 deletions(-) [5fbfc07c8898] * source/Lib/TLibEncoder/TEncSearch.cpp: intrapred: Split DC and Planar from Loop --- source/Lib/TLibEncoder/TEncSearch.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) [20e256246d19] * source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/IntraPred.cpp, source/common/primitives.h, source/common/vec/intrapred.inc: cleanup: remove bLeft and bAbove since HEVC have a reference sample pad, they are always True --- source/Lib/TLibCommon/TComPattern.cpp | 14 ++-- source/Lib/TLibCommon/TComPattern.h | 10 +-- source/Lib/TLibCommon/TComPrediction.cpp | 33 +++++---- source/Lib/TLibCommon/TComPrediction.h | 4 +- source/Lib/TLibEncoder/TEncSearch.cpp | 29 +++----- source/common/IntraPred.cpp | 43 +++--------- source/common/primitives.h | 4 +- source/common/vec/intrapred.inc | 115 +++++++++++++++---------------- 8 files changed, 101 insertions(+), 151 deletions(-) [b639e5fff55e] 2013-06-18 chenm003 * source/Lib/TLibEncoder/TEncSearch.cpp: intrapred: Split loop into Loop_Prediction and Loop_Decide --- source/Lib/TLibEncoder/TEncSearch.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) [758ac3d8616c] 2013-06-18 chenm003 * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp: cleanup: unused code m_bUseNIF --- source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp | 36 +------------------ source/Lib/TLibCommon/TComSampleAdaptiveOffset.h | 1 - .../Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp | 41 +--------------------- 3 files changed, 2 insertions(+), 76 deletions(-) [56d07fe3a257] 2013-06-18 Steve Borho * source/common/reference.cpp: Merge [469e285c62c3] 2013-06-18 Deepthi Devaki * source/common/reference.cpp, source/common/reference.h: Merge [0e1117a1e892] * source/common/vec/ipfilter8.inc: Intrinsic implementation for SSE4 and higher for vertical filter [ef85cd7f938d] 2013-06-17 Steve Borho * source/common/reference.cpp, source/common/reference.h: reference: use new multiplane primitives (changes outputs, likely buggy) [97dbc3346524] 2013-06-18 Deepthi Devaki * Merge [de3b92c772ad] * source/common/vec/ipfilter8.inc: Partial intrinsic for vertical filter [844308961a0b] 2013-06-18 https://mandarmcw * source/common/reference.cpp: Fixed Build Errors(Type cast) for 16 bit [41855cf217d0] 2013-06-18 mahesh pittala * Merged multicoreware/xhevc into default [beab4f74a085] * Merged multicoreware/xhevc into default [f4734dec9dc8] 2013-06-17 mahesh pittala * Merged multicoreware/xhevc into default [2cd09f020148] * Merged multicoreware/xhevc into default [819fd14f888e] * source/Lib/TLibEncoder/TEncAnalyze.cpp: Merged multicoreware/xhevc into default [e712594eda8f] 2013-06-15 mahesh pittala * Merged multicoreware/xhevc into default [dc66b43ad68e] * Merged multicoreware/xhevc into default [31558ea714e2] 2013-06-14 mahesh pittala * Merged multicoreware/xhevc into default [491779f0da6e] 2013-06-18 Steve Borho * source/common/reference.cpp: reference: extend Y=0 planes in worker function [7e76d1574234] * source/common/reference.cpp, source/common/reference.h: reference: use new APIs [948587f9c9fa] 2013-06-17 Steve Borho * source/Lib/TLibCommon/TComSlice.cpp: TComSlice: fix debug builds (asserts) [b252b6a34869] * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp: TEncCfg: remove deblocking filter metric code [97c117eee937] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: remove uiNumSlices [fcaae4248d5d] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp: TComSlice: remove m_sliceIdx and access methods [04505d780210] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: remove unused SEI var, nit cleanups [739c30209346] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: SEIPresent variables can now be local variables [5d9dc98c01a7] * source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: remove obsolete PROCESSING_STATE enum [e817dece7a51] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: inline xResetNonNestedSEIPresentFlags() and xResetNestedSEIPresentFlags() [0a034b2714ba] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: inline xCreateLeadingSEIMessages [42c156937eef] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: m_iGopSize did not need to be a member variable [ac6bf2ad37dd] * source/encoder/encoder.cpp: encoder: declare large integer constant to be unsigned to prevent warnings [b42f5f907a8a] * source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: remove unnecessary includes of and [bc3fe350f76a] * source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: remove uneecessary include of [b34fc8a28026] * source/Lib/TLibEncoder/TEncPic.h: TEncPic: nits [5cec340da54e] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibEncoder/TEncPic.cpp, source/Lib/TLibEncoder/TEncPic.h, source/Lib/TLibEncoder/TEncTop.cpp: TComPic: remove unused m_numReorderPics [dcb9836738d0] * source/Lib/TLibCommon/TComPic.h: TComPic: move pointers to start of class definition [d9e2d694bd64] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h: TComPic: remove unused m_SEIs This may get added again later with a more C friendly interface [d75b868d9d33] * source/Lib/TLibCommon/TComSlice.h: TComSlice: white-space cleanups [bc1ca09c3569] * source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComBitStream.h: TComBitstream: remove decoder class TComInputBitstream [5ccdcfc7f906] * source/Lib/TLibCommon/TComPic.h: TComPic: remove obsolete include [272fd2b3626f] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h: TComSlice: fix misspelled member variable [70efa70c09c6] 2013-06-16 ShinYee Chung * source/encoder/encoder.cpp: encoder: Fix compile warnings due to unhandled enumeration values in a switch statement. $HEVC/source/encoder/encoder.cpp: In member function ‘void x265::Encoder::determineLevelAndProfile(x265_param_t*)’: $HEVC/source/encoder/encoder.cpp:119:12: error: enumeration value ‘NONE’ not handled in switch [-Werror=switch] switch (m_level) ^ $HEVC/source/encoder/encoder.cpp:119:12: error: enumeration value ‘LEVEL1’ not handled in switch [-Werror=switch] $HEVC/source/encoder/encoder.cpp:119:12: error: enumeration value ‘LEVEL2’ not handled in switch [-Werror=switch] $HEVC/source/encoder/encoder.cpp:119:12: error: enumeration value ‘LEVEL2_1’ not handled in switch [-Werror=switch] $HEVC/source/encoder/encoder.cpp:119:12: error: enumeration value ‘LEVEL3’ not handled in switch [-Werror=switch] $HEVC/source/encoder/encoder.cpp:119:12: error: enumeration value ‘LEVEL3_1’ not handled in switch [-Werror=switch] cc1plus: all warnings being treated as errors [bf8657373cc0] 2013-06-17 ShinYee Chung * source/Lib/TLibEncoder/TEncGOP.cpp: gop: Fix compile warning due to shadow variables. error: shadowed declaration is here [-Werror=shadow] [1afdab036cdf] 2013-06-17 Steve Borho * source/Lib/TLibCommon/TComSlice.h: TComSlice: remove unreferenced checkColRefIdx [462ae5b5c92b] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/WeightPredAnalysis.cpp, source/encoder/compress.cpp: TComDataCU: remove TComSlice array of pointers; only one slice [4a443108dea9] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp: TComPic: remove m_uiCurrSliceIdx (there can be only one) [f61d6a311ac7] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h: TComPic: give the orig and recon pointers real names [4da66382061e] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h: TComPic: rename m_apcPicSym to m_pcPicSym, there is no array [254cfb7b02c2] * source/Lib/TLibCommon/TComPic.cpp: TComPic: further simplify boundary detection [8bc870e559e5] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h: TComPic, TComDataCU: remove m_pSliceSUMap [5c7a900e9a7a] * source/Lib/TLibCommon/TComPic.cpp: TComPic: pre-allocate vSliceCUDataLink [82e9374afa55] * source/Lib/TLibCommon/TComPic.h: TComPic: nits [de4b9e89db28] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h: TComPic: m_vSliceCUDataLink did not need to be a member variable [ab9d5f1754f1] * source/test/mbdstharness.cpp: mbdstharness: fix compile with DEBUG [d54f561a75ee] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h: TComPic: m_sliceGranularityForNDBFilter did not need to be a member variable [03754edfb91b] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp: TComPic: nits [e07e08349d30] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp: TComPic: remove temp YUV image for tile/slice boundary filtering [5d800bd145a9] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h: TComPic: remove more multi-slice cruft [381a0aeddd3c] * source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h: TEncSlice: do not pass TComPic as pointer reference to encodeSlice [896ca3355963] * source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h: TEncSlice: TComPic argument to compressSlice is not a reference [4cc39023e365] * source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h: TEncSlice: nits [15e62b2ff599] * source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h: TEncSlice: remove unused m_pcPicYuvPred and m_pcPicYuvResi [d89a075a2779] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibEncoder/TEncSlice.cpp: TComPic: remove unused m_pcPicYuvPred [c31d7d16e14c] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibEncoder/TEncSlice.cpp: TComPic: remove unused m_pcPicYuvResi I believe we use TShortYUV internally for this now [e7aa7efbee13] * source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicYuv.h: TComPic: nits [b5cc706cb214] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncTop.cpp: TComPic: remove unused m_bReconstructed member [3b359b196585] * source/Lib/TLibEncoder/TEncTop.cpp: TEncTop: remove extra assignment of m_iMaxRefPicNum, cleanup [f67a6d5916f2] * source/common/ipfilter.cpp, source/common/primitives.h: Merge [8dba6d9462cb] 2013-06-17 Deepthi Devaki * Merge [068622ee452c] * source/common/ipfilter.cpp, source/common/primitives.h, source/common/vec/ipfilter8.inc, source/test/ipfilterharness.cpp: Restructured Horizontal/Vertical filters, added support for width!=16n in horizontal filter [f2f58de47a26] * source/Lib/TLibEncoder/TEncAnalyze.cpp: Merge [6de69685341f] * source/common/vec/intrapred.inc: Used unsafe compress to improve performance [b852bbd6605b] * source/common/vec/ipfilter8.inc: Used saturated compress to eliminate min() [9da8624cf3c5] 2013-06-17 Steve Borho * source/Lib/TLibCommon/TComPrediction.cpp: TComPrediction: white-space nits [22edfeb729e5] * source/Lib/TLibCommon/TComPrediction.cpp: TComPrediction: fix eoln [7051e6809ffb] * source/Lib/TLibCommon/TComInterpolationFilter.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/ipfilter.cpp, source/common/reference.cpp: remove redundant copy of subpel filter coefficients [975d36cb92df] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComWeightPrediction.h: HM fixes: remove various unused member variables [89454200f223] * source/x265.cpp: x265: improve x265 -V output some more [1ba7a1176cef] * source/x265.cpp: x265: fix and improve output of x265 -V [1c9c6c9c4acc] * source/common/vec/dct.inc: dct: uncrustify [9d71425aa983] 2013-06-17 Min Chen * source/Lib/TLibCommon/TComTrQuant.cpp: inline xIT() into invtransformNxN() --- source/Lib/TLibCommon/TComTrQuant.cpp | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) [87f57ab18e2a] * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/dct.cpp, source/common/primitives.h, source/common/vec/dct.inc, source/test/mbdstharness.cpp, source/test/mbdstharness.h: [review] reduce memory copy in xIT() --- source/Lib/TLibCommon/TComTrQuant.cpp | 6 +- source/common/dct.cpp | 73 ++++- source/common/primitives.h | 2 +- source/common/vec/dct.inc | 639 +++++++++++++++++++++------------ source/test/mbdstharness.cpp | 11 +- source/test/mbdstharness.h | 1 + 6 files changed, 485 insertions(+), 247 deletions(-) [7511cd738ad6] * source/common/vec/dct.inc: cleanup: remove unused IDCT table --- source/common/vec/dct.inc | 208 --------------------------------------------- 1 files changed, 0 insertions(+), 208 deletions(-) [8d40f4be3699] * source/test/mbdstharness.cpp: cleanup: new IDCT don't need backup buffer --- source/test/mbdstharness.cpp | 15 ++------------- 1 files changed, 2 insertions(+), 13 deletions(-) [779041295105] * source/common/vec/dct.inc: new IDCT32x32 from project Chinese University version of x265 --- source/common/vec/dct.inc | 2069 ++++++++++++++++----------------------------- 1 files changed, 732 insertions(+), 1337 deletions(-) [ac6b5681eb77] * source/common/vec/dct.inc: new IDCT16x16 from project Chinese University version of x265 --- source/common/vec/dct.inc | 9290 ++++++++++++++++++++++----------------------- 1 files changed, 4571 insertions(+), 4719 deletions(-) [993296aeec04] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: inline xT() into transformNxN() --- source/Lib/TLibCommon/TComTrQuant.cpp | 27 +++++++-------------------- source/Lib/TLibCommon/TComTrQuant.h | 3 --- 2 files changed, 7 insertions(+), 23 deletions(-) [1252d3c3c90f] * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/dct.cpp, source/common/primitives.h, source/common/vec/dct.inc, source/test/mbdstharness.cpp, source/test/mbdstharness.h: [review] reduce memory copy in xT() --- source/Lib/TLibCommon/TComTrQuant.cpp | 11 +- source/common/dct.cpp | 175 +++++++++++++++++------- source/common/primitives.h | 11 ++- source/common/vec/dct.inc | 240 +++++++++++++-------------------- source/test/mbdstharness.cpp | 60 ++++++++- source/test/mbdstharness.h | 2 + 6 files changed, 294 insertions(+), 205 deletions(-) [af7d0d29ef16] 2013-06-17 Deepthi * source/encoder/compress.cpp: Early Detection skip mode removed from FMD [f167939ebd90] * source/Lib/TLibEncoder/TEncAnalyze.cpp, source/encoder/compress.cpp: Merge [81d2deb0c7c1] 2013-06-15 Deepthi * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: Removing irrelevant FMD optimizations [78ae2eec3b01] * source/encoder/compress.cpp: Adding comments [abaabb22011f] 2013-06-16 Steve Borho * .hgtags: Move tag LASTKNOWNGOOD [58f364792384] * source/test/intrapredharness.cpp, source/test/intrapredharness.h, source/test/mbdstharness.cpp, source/test/mbdstharness.h: testbench: only perform 0xCDCDCDCDCDCD memsets for debug, runs much faster It should only be necessary to do this when you are not sure the C primitive is correct. Once the C primitive is correct, it should never be required to initialize the output buffers in order to find mismatch bugs. [9a6800e84295] * source/test/mbdstharness.cpp: mbdstharness: remove unused BufferflyConf_names [1a8a3ddd9475] * source/encoder/compress.cpp: compress: fix eoln [94b5e1de4d90] * source/common/vec/dct.inc: dct: remove VC9 x64 warning, the affected routines are all gone [07b13562ea8d] * source/common/vec/dct.inc: dct: remove unused primitives, reorder for clarity [ce0f1e1ed310] * source/common/dct.cpp, source/common/primitives.h, source/common/vec/dct.inc, source/test/mbdstharness.cpp, source/test/mbdstharness.h: remove partial butterfly and inversedst primitives [63a832540bab] 2013-06-16 Min Chen * source/Lib/TLibCommon/TComTrQuant.cpp: [review] merge buffer convert into DCT* module --- source/Lib/TLibCommon/TComTrQuant.cpp | 8 +------- 1 files changed, 1 insertions(+), 7 deletions(-) [7f6068ab7706] * source/common/vec/dct.inc: support nSrcStride on DCT* --- source/common/vec/dct.inc | 417 ++++++++++++++++++++++++--------------------- 1 files changed, 221 insertions(+), 196 deletions(-) [f3a8a85bdb0d] * source/Lib/TLibCommon/TComTrQuant.cpp: Merge xTrMxN into TComTrQuant::xT --- source/Lib/TLibCommon/TComTrQuant.cpp | 21 +++++---------------- 1 files changed, 5 insertions(+), 16 deletions(-) [53838676f709] * source/Lib/TLibCommon/TComTrQuant.cpp: optimize xTrMxN by function pointer array --- source/Lib/TLibCommon/TComTrQuant.cpp | 30 ++---------------------------- 1 files changed, 2 insertions(+), 28 deletions(-) [f6c012a6b57f] * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/dct.cpp, source/common/vec/dct.inc: [review] code for DST4x4 --- source/Lib/TLibCommon/TComTrQuant.cpp | 7 +-- source/common/dct.cpp | 20 ++++++++ source/common/vec/dct.inc | 87 +++++++++++++++++++++++++++++++++ 3 files changed, 110 insertions(+), 4 deletions(-) [bc1b9ace38e9] * source/Lib/TLibEncoder/TEncTop.cpp: miss for sqrt() --- source/Lib/TLibEncoder/TEncTop.cpp | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) [f7ab8faa77f9] * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/dct.cpp, source/common/vec/dct.inc, source/test/mbdstharness.cpp: Optimize DCT32x32 --- source/Lib/TLibCommon/TComTrQuant.cpp | 3 +- source/common/dct.cpp | 11 + source/common/vec/dct.inc | 669 +++++++++++++++++++++++++++++++++ source/test/mbdstharness.cpp | 2 +- 4 files changed, 682 insertions(+), 3 deletions(-) [4e73d671ade5] * source/common/vec/dct.inc: simplify table name --- source/common/vec/dct.inc | 384 ++++++++++++++++++++++---------------------- 1 files changed, 192 insertions(+), 192 deletions(-) [92d5ad1eb45f] * source/common/vec/dct.inc: [review] share some table with DCT8x8 --- source/common/vec/dct.inc | 230 +++++++++++++++++++++----------------------- 1 files changed, 110 insertions(+), 120 deletions(-) [9551c827dd8c] 2013-06-15 Steve Borho * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: remove m_storedStartCUAddrForEncodingSlice std::vector [aa925c788d24] * source/Lib/TLibEncoder/TEncAnalyze.cpp, source/Lib/TLibEncoder/TEncAnalyze.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: TEncGOP: Move statistics structures to TEncTop, protect with a lock [3545ade1fb3b] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: use array delete for array new pointers [8508e8293b74] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: simplifications [035a7dee0480] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: single tile simplifications [065ee8264b98] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: more single-slice simplifications [b05e694e6a22] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: remove undefined SAO_RDO [1a2fb8fe36b8] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: remove dead code [d024c9bddf19] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: clean-up some multi-slice constructs [18ad786c53c0] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncTop.cpp: TEncTOP: move RC-GOP operations within compressGOP() [fa70c5f59650] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: use iPOCLast==0 instead of m_bSeqFirst [c08b29d11335] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: cleanup initialization [8d9c2a12262f] * source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: cleanups, make internal methods protected [1821fba47aa4] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: remove member pointer to encoder singleton picture list The picture list is provided to compressGOP() method [b5ce58a2af61] * source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: remove unused getListPic() method [67b8bea4073d] * source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h: TEncSlice: remove member pointer to global picture list [f90b3bfd87c4] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/Lib/TLibEncoder/TEncTop.h: TEncSlice: remove GOP encoder member variable Get rid of another assumption about singleton objects [8e7b990788c9] 2013-06-12 Min Chen * source/common/primitives.h, source/common/vec/pixel.inc: primitives: add a 16bit copy with left shift primitive [ca516890cd40] 2013-06-15 Steve Borho * source/test/pixelharness.cpp: pixelharness: fixup indexing of block primitives [9b7a1362f367] 2013-06-15 Deepthi * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp: Merge; FAST_MODE_DECISION fully functional with inter. [9a99578e2815] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp: Merge [f4f5b666aecd] * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp: Null rpcBestCU. Memory leaks resolved. [353206dee54b] * source/encoder/compress.cpp: More prep to null BestCU [966336c97827] * source/encoder/compress.cpp: Prepare to Null split level BestCU [e143b9a344e7] * source/encoder/compress.cpp: Prepare to null rpcBestCU [c61499ef1432] * source/encoder/compress.cpp: More cleanup [f68b8005dae1] * source/Lib/TLibCommon/TComDataCU.cpp, source/encoder/compress.cpp: Cleanup; fix split bugs [57174096d40b] * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp: Rolling back; inter mode works, split has bugs [caba150c54c0] 2013-06-14 Steve Borho * source/encoder/encoder.cpp: x265: better handling of level thresholds [4d8007536eb4] * source/encoder/encoder.cpp, source/encoder/encoder.h: x265: detect and set the profile and level [07a1ffa03c3a] * source/Lib/TLibEncoder/TEncSearch.cpp: gcc: integer array subscripts [c11ecb15eaa0] 2013-06-14 Min Chen * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/dct.cpp, source/common/vec/dct.inc, source/test/mbdstharness.cpp: Optimize DCT16x16 --- source/Lib/TLibCommon/TComTrQuant.cpp | 3 +- source/common/dct.cpp | 11 + source/common/vec/dct.inc | 482 +++++++++++++++++++++++++++++++++ source/test/mbdstharness.cpp | 2 +- 4 files changed, 495 insertions(+), 3 deletions(-) [261b26b87c0b] * source/common/vec/dct.inc: cleanup MAKE_ODD outside xDCT8 --- source/common/vec/dct.inc | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) [914852d611c8] 2013-06-14 Steve Borho * source/x265opts.h: x265: nit in CLI help [43fd53ad27fe] * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/primitives.h: pixel: use width bit size to index residual and recon primitives [34e5e66bd386] * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/vec/pixel.inc, source/test/pixelharness.cpp, source/test/pixelharness.h: pixel: rename residual/reconstruction primitves [83756d7ec230] * source/Lib/TLibEncoder/TEncSearch.cpp: Merged in deepthidevaki/xhevc_deepthid (pull request #199) Added vector Filter Horizontal Multiplane, and support in testbench. [d2a8a011a13e] 2013-06-14 Deepthi Devaki * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/vec/pixel.inc, source/common/vec/pixel8.inc, source/test/pixelharness.cpp: GetResidual + calcRecon changed to use function pointers [575b19e5a035] * source/common/primitives.h, source/test/ipfilterharness.cpp: Merge [8fc2fe71a2d7] * source/common/ipfilter.cpp, source/common/primitives.h, source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc, source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: Added vector Filter Horizontal Multiplane, and support in testbench. [15956ceaf16a] 2013-06-14 Steve Borho * Merged in maheshpittala/xhevc_mahesh (pull request #198) Fixed Build errors(Type cast) in 16 bit [73b00711e83d] 2013-06-14 https://mandarmcw * source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/reference.cpp: Fixed Build errors(Type cast) in 16 bit [b80bdba3d499] 2013-06-14 mahesh pittala * Merged multicoreware/xhevc into default [2318037a8305] * Merged multicoreware/xhevc into default [ed51338a5928] * Merged multicoreware/xhevc into default [a4e3b5280eb4] 2013-06-12 mahesh pittala * Merged multicoreware/xhevc into default [392194eba6a1] 2013-06-13 mahesh pittala * source/tools/HM decoder/TAppDecoder.exe: Merged multicoreware/xhevc into default [41fd32e1ee06] 2013-06-12 mahesh pittala * Merged multicoreware/xhevc into default [9eb8f9941713] * Merged multicoreware/xhevc into default [0eb8933de745] * Merged multicoreware/xhevc into default [803e22af8582] 2013-06-11 mahesh pittala * Merged multicoreware/xhevc into default [8c842a8cfe96] * source/common/macroblock.cpp, source/common/vec/macroblock.inc: Merged multicoreware/xhevc into default [266046e7522d] 2013-06-10 mahesh pittala * Merged multicoreware/xhevc into default [9cd8563afb0d] * Merged multicoreware/xhevc into default [007a8b519e53] * Merged multicoreware/xhevc into default [b5f5d466d800] 2013-06-07 mahesh pittala * Merged multicoreware/xhevc into default [91c5bb78d52b] 2013-06-05 mahesh pittala * Merged multicoreware/xhevc into default [9c8618adaf4c] * Merged multicoreware/xhevc into default [fe2691e5afff] * Merged multicoreware/xhevc into default [e4c6fb2823f1] 2013-06-04 mahesh pittala * Merged multicoreware/xhevc into default [cd1437d72a75] 2013-06-03 mahesh pittala * Merged multicoreware/xhevc into default [7f7bd035a835] * Merged multicoreware/xhevc into default [c7b8e56f6079] 2013-06-14 Deepthi * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp: Merge [852e5f6730a5] * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp: Adding comments; cosmetic changes, removing unnecessary local vars [93938fd46918] * source/encoder/compress.cpp: Entropy related code removed [5c3e24604043] * source/encoder/compress.cpp: Removing extraneous checks [07de3c5c0ad9] * source/encoder/compress.cpp: Copy sub-best-recon to current best recon [acf302317da7] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp: BestCU is a reference pointer, while TempCU is just that; a temporary local pointer. [9f22712fc800] * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp: To avoid memory leaks, pass in an empty pointer. rpcBestCU returns with the Best chosen CU. [7f4f0e71895f] 2013-06-13 Deepthi * source/encoder/compress.cpp: Claridying assert checks [8316225c0886] * source/encoder/compress.cpp: Removing use of rpcTempCU for initializations [c8f4bd10ea38] 2013-06-14 Steve Borho * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncGOP.cpp: HM bug fix: Improve the temporary fix for issue #1071 (Nonconforming RPS in CRA pictures) - generate proper CRA RPS at encoding stage rather than slice segment header writing [ec4e63c7c8be] * source/Lib/TLibEncoder/TEncGOP.cpp: HM fixes: cleanups [3a5d6e4754ce] * source/Lib/TLibEncoder/TEncCu.cpp: HM fix: "Cleanup" [a174e0b3f6b7] * source/Lib/TLibCommon/TComTrQuant.cpp: HM fixes: "Clean up" [1707a3030f7c] * source/Lib/TLibCommon/TComPicYuv.h: TComPicYuv: fix 16bpp build [30941b044925] * source/Lib/TLibCommon/TComSlice.cpp: HM cleanups: "Add assert() statements / clean up" [57ea893a55f9] 2013-06-13 Steve Borho * source/Lib/TLibEncoder/TEncGOP.cpp: HM bug fix: "Fix for #1072" [381af1803935] * source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCavlc.cpp: HM bug fix: "Fix for #1078" [15c51314f7ac] * source/Lib/TLibEncoder/TEncCavlc.cpp: HM bug fix: "Fix for #1079" [e8b1953c65b4] * source/test/ipfilterharness.cpp: ipfilterharness: add offsets for src buffer pointer [fee9cd2c3fc8] * source/test/ipfilterharness.cpp: ipfilterharness: use alignedMalloc for short_buff [857a4fa1a8e9] * source/common/common.cpp, source/encoder/motion.cpp: motion: prevent over-large merange from causing inf loops [64acb994bc4e] * source/encoder/motion.cpp, source/encoder/motion.h: motion: move distance for-loop within StarPatternSearch (less call overhead) [323a6667d127] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: TEncTop: move EncoderFrame instances from TEncTop to TEncGOP Each TEncGOP will have at least one frame encoder, for parallelism [f961dee0df08] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: make m_iNumPicCoded a function local variable [408239eb7e61] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: gcc: replace MAXUINT64 with MAX_INT64 from CommonDefs.h [5960f5864c43] * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h: TComRdCost: move setCbDistortionWeight() to cpp file, cleanup [38e5bb0dbca5] * source/encoder/motion.cpp, source/encoder/motion.h: motion: rename bufsad to fullsad [33138ffa79a7] * source/encoder/motion.cpp, source/encoder/motion.h: motion: move init_scales() to constructor, remove from setSourcePU [5b2b4a7090bb] * source/common/primitives.h: Merged in deepthidevaki/xhevc_deepthid (pull request #196) Modifications to vertical filter multiplane [95b415adeffa] 2013-06-13 Deepthi Devaki * source/tools/HM decoder/TAppDecoder.exe: Merge [65768d985016] * source/common/vec/ipfilter8.inc, source/test/ipfilterharness.cpp: Modifications to vertical filter multiplane [2c0ecc7b043d] 2013-06-13 Deepthi Devaki Akkoorath * source/tools/HM decoder/TAppDecoder.exe: Merged multicoreware/xhevc into default [c8b90c296a0b] 2013-06-12 Deepthi Devaki * source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc: Added Vertical filter for multiplane (Vectorized assuming width is multiple of 4) [bd33365c378c] * source/VectorClass/vectori128.h, source/common/ipfilter.cpp, source/common/primitives.h, source/test/ipfilterharness.cpp, source/test/ipfilterharness.h: Testbench for Vertical IPFilter for multiplane [a9af2d31ba00] 2013-06-13 Steve Borho * Merged in mandarmcw/xhevc_mandar_mahesh (pull request #197) primitives: sse2, ssse3, avx: Assembly calls for SSE_PP(SSD) for 8,16,24,32,48,64 [9123ea04e339] 2013-06-13 Mandar Gurav * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: primitives: sse2: Assembly calls for SSE_PP(SSD) for 8, 16, 24, 32, 48, 64 [3ab1f65ad43a] * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: primitives: ssse3: Assembly calls for SSE_PP(SSD) for 8, 16, 24, 32, 48, 64 [a268ac5113cd] * source/common/x86/asm-primitives.cpp: primitives: Assembly calls for SSE_PP(SSD) for 24,48,64 [59228bcdfe9c] 2013-06-13 Mandar Gurav * Merged multicoreware/xhevc into default [33ba85c5f2a1] 2013-06-13 Mandar Gurav * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h: primitives: Assembly calls for SSE_PP(SSD) for 32,16,8 [68c6b9d2d8d1] 2013-06-13 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: small improvements [6a170f9465ab] * source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibEncoder/TEncSearch.cpp: TComRdCost: remove unused m_mvPredictor (HM ME is using our bit-cost methods) [e8d675ec84de] * source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibEncoder/TEncSearch.cpp: TComRdCost: use UInt to scale chroma costs instead of Double [cf348485a9a5] 2013-06-13 sumalatha * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp: removed double from computing Cost [b6f7ac1f105a] 2013-06-13 Min Chen * source/test/testbench.cpp: revert debug code commit by '[review] faster DCT4x4' --- source/test/testbench.cpp | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) [c69480d6a22b] * source/common/vec/dct.inc: [review] fatser DCT8x8 --- source/common/vec/dct.inc | 461 ++++++++++++++++++++------------------------- 1 files changed, 200 insertions(+), 261 deletions(-) [9c4501c71e10] * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/vec/pixel.inc: [review] merge row process into convert16to32_shl --- source/Lib/TLibCommon/TComTrQuant.cpp | 22 +--------------------- source/common/pixel.cpp | 9 ++++++--- source/common/primitives.h | 2 +- source/common/vec/pixel.inc | 27 +++++++++++++++------------ 4 files changed, 23 insertions(+), 37 deletions(-) [44402f63268d] 2013-06-13 Steve Borho * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: nits [a20041407e93] 2013-06-13 Deepthi * source/encoder/compress.cpp: Fixing Best CU bugs [4ccd02f3c17a] * source/tools/HM decoder/TAppDecoder.exe: Merge [9f348f94c788] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp: First cut version of RDO-less mode decision: Only inter and rect modes. [7df0cd69bbf9] * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp: Adding pred copy to ComputeCostInter [ac115aa34201] * Merge [84a113488c8e] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp: Preparation for moving to RDO-less analysis. [ad0f4840b8c2] 2013-06-12 Deepthi * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: Prediction structures for each mode: inter, intra, rect and merge [12e076b777b3] * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCu.cpp: Cleanup macro RDO_WITHOUT_DQP_BITS: always set. [064461252a7d] * source/Lib/TLibEncoder/TEncSearch.cpp: Merge [d9f8493ad297] * source/encoder/compress.cpp: Inter mode only works in compress.cpp [2a4ada95c8da] 2013-06-11 Deepthi * source/encoder/compress.cpp: Removing RDO without DQP [0457e3d429f3] * source/encoder/compress.cpp: Merge and Intra modes removed from Inter slices for now. [806c020e696e] * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/macroblock.cpp, source/common/vec/macroblock.inc: Merge [af84de459345] 2013-06-10 sumalatha * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: Added a function to estimate the header bits [6a8bff3ae903] 2013-06-12 Steve Borho * source/encoder/motion.cpp: motion: simplify setSourcePU [9a053413d61c] * source/Lib/TLibEncoder/TEncGOP.cpp: nits [a5c8f414b509] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h: TEncSlice: remove unused iNumPicRcvd argument to initEncSlice [fde34b9f8b05] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h: TEncSlice: pass EncoderFrame to TEncSlice methods, do not get from TEncCfg [6e3589df7134] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h: TEncSlice: refactor initEncSlice to return TComSlice, not pass as reference Make it more obvious pcSlice is the functions output [eadec0d58647] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: remove redundant setCurrSliceIdx() call [18418d680e43] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: inline xGetBuffer for clarity [4f2cab2656e5] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: inline xInitGOP, which ignored most of its arguments [5cd02a1e0833] * source/Lib/TLibCommon/TComSlice.h: nits [b3a522a85ca1] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: remove two more unused variables [e94675550fa9] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h: nits [7a22a718c027] * source/Lib/TLibEncoder/TEncGOP.cpp: nits [1b36f456d018] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: cleanup refactor, no behavior change [26f03b2606f8] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: remove unused m_bFirst variable [28bbf3b63723] * .hgtags: tweak tags, make older LASTKNOWNGOOD tag visible [6b8fabd722e7] * source/tools/HM decoder/TAppDecoder.exe: Remove compiled TAppDecoder.exe It's not working on some platforms, and in general we don't want compiled binaries in the tree. Users should build their own, or we should have it available for download from Bitbucket or Egnyte. [6facda17b5dc] 2013-06-12 Min Chen * source/common/vec/dct.inc: IDCT4x4 is SSE2 --- source/common/vec/dct.inc | 22 ---------------------- 1 files changed, 0 insertions(+), 22 deletions(-) [37e60377bb38] * source/common/vec/dct.inc, source/test/testbench.cpp: [review] faster DCT4x4 --- source/common/vec/dct.inc | 137 ++++++++++++++++++++++----------------------- source/test/testbench.cpp | 2 +- 2 files changed, 68 insertions(+), 71 deletions(-) [fad6f1100104] 2013-06-12 Steve Borho * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: remove unused xFindDistortionFrame() method [64989e7f7b96] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: fix chroma stride used in frame PSNR [87599a2e5ea9] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: fix chroma stride used in frame PSNR [94b3cd0b3d6d] * source/Lib/TLibCommon/TComPicYuvMD5.cpp: Fix chroma stride used in hash functions (Min Chen) [fda858eb8b20] 2013-06-11 Steve Borho * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: add a note for future optimizations [a5e26e8a86c8] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: minor cleanups [c8e15bb22d3c] * source/CMakeLists.txt: cmake: downgrade requirement to cmake-2.6; it works fine [5cc718257bc0] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: nit [1ffcfbfa6a67] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: use SSE primitives to calculate frame PSNR [e93c215a81df] * source/Lib/TLibCommon/TComPicYuv.cpp: TComPicYUV: enforce 16byte alignment of chroma planes [580383b435fb] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: TEncGOP: remove a handful of of member variables, declare on stack This is a safety measure to prevent race hazards. Now we know the scope where these variables must be consistent. [e2948255ad27] * source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/encoder/wavefront.cpp: TEncSlice: prune unused cost variables and methods [295fbda07f03] * source/encoder/wavefront.cpp: wavefront: slight refactor [b3e9a7469e43] * source/common/CMakeLists.txt: gcc: fix win32 mingw compile [fb8920b0bba0] * source/encoder/wavefront.cpp: wavefront: drop PPA events for compress and encodeCU Now I know that encodeCU takes very little time compared to compressCU [4e8a0221fb01] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/encoder/wavefront.cpp, source/encoder/wavefront.h: refactor: move singleton objects from TEncTop to EncodeFrame This will allow multiple frames to be encoded at the same time, barring other data dependencies [6a77792e00e0] * source/common/vec/pixel8.inc: pixel: pass sad as reference [c14b5fb37187] * source/common/vec/pixel8.inc: pixel: perform sad_8 in batches of 16 rows [f74b07aa34f4] * source/common/pixel.cpp, source/common/vec/pixel.inc, source/common/vec/pixel8.inc: pixel: white-space cleanups, remove Intra from getResidual name [b69c96b0e90c] 2013-06-11 Min Chen * source/CMakeLists.txt: Stack align for GCC --- source/CMakeLists.txt | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) [a3bf4f55f789] 2013-06-11 Steve Borho * source/common/vec/pixel8.inc: Merged in deepthidevaki/xhevc_deepthid (pull request #191) Optimized residual and reconstruction in xIntraCoding[Luma/Chroma]Blk [318e10a6a50d] 2013-06-11 Deepthi Devaki * source/common/primitives.h: fix for bad commit [8e690d36e169] * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/macroblock.cpp, source/common/primitives.h, source/common/vec/macroblock.inc, source/common/vec/pixel8.inc: Merge [16f559d6b0d9] * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/vec/pixel.inc, source/common/vec/pixel8.inc, source/test/pixelharness.cpp, source/test/pixelharness.h: Optimized residual and reconstruction in xIntraCoding[Luma/Chroma]Blk [df8efcb6d5ab] 2013-06-11 Deepthi Devaki Akkoorath * source/common/macroblock.cpp, source/common/vec/macroblock.inc: Merged multicoreware/xhevc into default [f66842baa091] 2013-06-10 Deepthi Devaki Akkoorath * Merged multicoreware/xhevc into default [f449fe3822e5] 2013-06-11 ggopu * source/common/vec/pixel8.inc: primitives:- implementation of loop unrolling for sad - 8,32,48,64. Others are not showing performance benefit. [f09d5d9cf0c3] 2013-06-10 Steve Borho * source/encoder/motion.h: motion: use intptr_t for blockOffset [bc498b762ad8] * source/encoder/motion.cpp, source/encoder/motion.h: motion: remove sadStride member variable [8f13381a9a50] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/motion.cpp, source/encoder/motion.h: motion: make motion reference and search limits function arguments This makes the motion search re-entrant, for a given source PU block [7a630939cd66] * source/encoder/motion.cpp, source/encoder/motion.h: motion: inline qpelSatd [2ea29b826a89] * source/encoder/motion.cpp, source/encoder/motion.h: motion: inline qpelSad function [13019ff2dfd3] * source/encoder/motion.cpp, source/encoder/motion.h: motion: inline the fpelSad() helper function [e5b9711d3615] * source/common/vec/CMakeLists.txt, source/common/vec/pixel8.inc: gcc: unused parameter workarounds [b8896916d0cf] * source/common/vec/pixel8.inc: pixel: override ALWAYSINLINE for the unroll template functions [07408db373ed] * source/common/vec/pixel8.inc, source/test/mbdstharness.cpp: fix GCC compile errors [51d401251cd2] * source/common/CMakeLists.txt, source/common/dct.cpp, source/common/macroblock.cpp, source/common/primitives.cpp, source/common/vec/CMakeLists.txt, source/common/vec/dct-avx.cpp, source/common/vec/dct-avx2.cpp, source/common/vec/dct-sse2.cpp, source/common/vec/dct-sse3.cpp, source/common/vec/dct-sse41.cpp, source/common/vec/dct-sse42.cpp, source/common/vec/dct-ssse3.cpp, source/common/vec/dct.inc, source/common/vec/macroblock.inc, source/common/vec/vecprimitives.inc: rename macroblock to dct, split vector primitives into their own C++ files [ed6cb766af9e] * source/common/vec/pixel8.inc: pixel: fix EOLN damage [045c16364748] * source/common/vec/pixel8.inc: pixel: simplify exit logic [2fa825921a79] * source/common/vec/pixel8.inc: pixel: remove pointer offset multiplication [b7a5ceb6d6c9] * source/common/vec/pixel8.inc: pixel: simplify template early-outs [ddb5937d4ce2] * Merged in ggopu/gopu_xhevc (pull request #189) primitives:- loop unrolling using template metaprogramming. [597cc1154c19] 2013-06-10 Mandar Gurav * source/common/vec/pixel8.inc: primitives:- loop unrolling using template metaprogramming. [187b5e63d0c2] 2013-06-10 Steve Borho * .hgtags: Moved tag LASTKNOWNGOOD to changeset 3ec4837e6f6c (from changeset d60578bec82e) [72b1768e42cd] * source/common/macroblock.cpp, source/common/vec/macroblock.inc, source/encoder/CMakeLists.txt: fix GCC compile errors [3ec4837e6f6c] * source/Lib/TLibEncoder/TEncCu.cpp: TEncCu: add more missing x265_emms() calls; win32 is broken without them [016bad7ac3e4] * .hgtags: Moved tag LASTKNOWNGOOD to changeset d60578bec82e (from changeset 681eabf8a086) [0667ab7fc8ed] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/motion.cpp, source/encoder/motion.h: Merge [d60578bec82e] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: move QP set much earlier, avoids race hazards [5fbac3c94918] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/motion.cpp, source/encoder/motion.h: motion: do not use subsampling for bufSAD(), call EMMS where necessary [5d8f24205a1c] 2013-06-11 Deepthi * Merge [d693fcba0feb] * source/Lib/TLibEncoder/TEncCu.cpp: Verified that satd cost of orig and final prediction correspond to those returned from ME. [3ca77cf0a0da] * source/Lib/TLibEncoder/TEncSearch.cpp: Capturing Cost for Mode Decision from Motion Estimation. Here, TotalCost (which will be used in Mode Decision) is satd + lambda*MVDbits. This cost needs to be improved by adding lambda*header(or signalling) bits. [7a4e397d0703] 2013-06-10 Steve Borho * source/Lib/TLibEncoder/TEncAnalyze.h, source/Lib/TLibEncoder/TEncGOP.cpp: x265: use stderr and log level consistently for logging output [6ed146e7e6a2] 2013-06-10 Min Chen * source/common/vec/macroblock.inc: [review] more optimize for IDCT32x32 --- source/common/vec/macroblock.inc | 114 +++++++++++--------------------------- 1 files changed, 33 insertions(+), 81 deletions(-) [251c74042c22] * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/macroblock.cpp, source/common/primitives.h, source/common/vec/macroblock.inc, source/test/mbdstharness.cpp: [PATCH 10/11] [review] merge memcpy with stride into IDCT From c4ab38c711e073f8e244bac87171b1e762992eed Mon Sep 17 00:00:00 2001 --- source/Lib/TLibCommon/TComTrQuant.cpp | 16 ++---- source/common/macroblock.cpp | 66 ++++++++++++++------ source/common/primitives.h | 3 +- source/common/vec/macroblock.inc | 106 ++++++++++++++++++-------------- source/test/mbdstharness.cpp | 14 ++-- 5 files changed, 120 insertions(+), 85 deletions(-) [b0bb8b7d2ec1] * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/primitives.h, source/test/mbdstharness.cpp: [review] replace function xITrMxN by function pointer --- source/Lib/TLibCommon/TComTrQuant.cpp | 42 ++++----------------------------- source/common/primitives.h | 10 ++++---- source/test/mbdstharness.cpp | 8 +++--- 3 files changed, 14 insertions(+), 46 deletions(-) [a53a6888afea] * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/macroblock.cpp, source/common/primitives.h, source/common/vec/macroblock.inc, source/test/mbdstharness.cpp: [review] code for IDCT32x32 --- source/Lib/TLibCommon/TComTrQuant.cpp | 8 +- source/common/macroblock.cpp | 11 + source/common/primitives.h | 1 + source/common/vec/macroblock.inc | 1533 +++++++++++++++++++++++++++++++++ source/test/mbdstharness.cpp | 1 + 5 files changed, 1547 insertions(+), 7 deletions(-) [313549dc567d] * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/macroblock.cpp, source/common/primitives.h, source/common/vec/macroblock.inc, source/test/mbdstharness.cpp: [review] code for IDCT16x16 --- source/Lib/TLibCommon/TComTrQuant.cpp | 3 +- source/common/macroblock.cpp | 11 + source/common/primitives.h | 1 + source/common/vec/macroblock.inc | 1449 +++++++++++++++++++++++---------- source/test/mbdstharness.cpp | 19 +- 5 files changed, 1042 insertions(+), 441 deletions(-) [6ffb16e28ec2] * source/test/mbdstharness.cpp, source/test/mbdstharness.h: fix bug in testbench --- source/test/mbdstharness.cpp | 47 +++++++++++++++++++++++++---------------- source/test/mbdstharness.h | 4 +- 2 files changed, 31 insertions(+), 20 deletions(-) [b5414396d60d] * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/macroblock.cpp, source/common/primitives.h, source/common/vec/macroblock.inc, source/test/mbdstharness.cpp: [review] code for IDCT8x8 --- source/Lib/TLibCommon/TComTrQuant.cpp | 3 +- source/common/macroblock.cpp | 11 ++ source/common/primitives.h | 1 + source/common/vec/macroblock.inc | 252 +++++++++++++++++++++++++++++++++ source/test/mbdstharness.cpp | 1 + 5 files changed, 266 insertions(+), 2 deletions(-) [fa33207d7309] * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/macroblock.cpp, source/common/primitives.h, source/common/vec/macroblock.inc, source/test/mbdstharness.cpp: [review] code for IDCT4x4 --- source/Lib/TLibCommon/TComTrQuant.cpp | 6 +- source/common/macroblock.cpp | 11 ++++ source/common/primitives.h | 1 + source/common/vec/macroblock.inc | 103 +++++++++++++++++++++++++++++++++ source/test/mbdstharness.cpp | 1 + 5 files changed, 120 insertions(+), 2 deletions(-) [6900a1238ea5] * source/test/mbdstharness.cpp, source/test/mbdstharness.h: more general testbench --- source/test/mbdstharness.cpp | 52 ++++++----------------------------------- source/test/mbdstharness.h | 3 +- 2 files changed, 9 insertions(+), 46 deletions(-) [fbdad5a9a376] * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/macroblock.cpp, source/common/primitives.h, source/common/vec/macroblock.inc, source/test/mbdstharness.cpp: [review] code for IDST4x4 --- source/Lib/TLibCommon/TComTrQuant.cpp | 3 +- source/common/macroblock.cpp | 11 +++ source/common/primitives.h | 1 + source/common/vec/macroblock.inc | 115 +++++++++++++++++++++++++++++++++ source/test/mbdstharness.cpp | 10 +++ 5 files changed, 138 insertions(+), 2 deletions(-) [ee73706fab63] * source/test/mbdstharness.cpp: ident --- source/test/mbdstharness.cpp | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) [1616a4a66f8a] 2013-06-10 Steve Borho * source/encoder/compress.cpp: compress: fix eoln and VC9 compile [89957326ec3e] * source/encoder/motion.cpp: motion: improve cost comment [c342a23c05a6] * Merged in deepthidevaki/xhevc_deepthid (pull request #188) 32x32 intraAng with intrinsics - Reduced build time in MSVC [1d4db3d80b2d] 2013-06-10 Deepthi Devaki * source/common/vec/intrapred.inc: Merge [7525ac0b99d9] * source/test/intrapredharness.cpp: Include 32x32 IntraAng in testbench [4c815940f610] * source/common/vec/intrapred.inc: removing unwanted comments [ec956b124b97] * source/common/vec/intrapred.inc: 32x32 intraAng with intrinsics - Reduced build time in MSVC [079d9456f248] 2013-06-10 Deepthi * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp: More cleanup [ff59c5d68841] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp: Removing extraneous arguments to predInterSearch [9999fc1a7939] * source/Lib/TLibEncoder/TEncCu.cpp: Replacing xcompressCU with xCompressInterCU [cf88ab9b2ad2] * source/encoder/compress.cpp: Finetuning xComputeCostInter [cd37abe9c70b] * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/common/primitives.h, source/common/vec/macroblock.inc, source/common/vec/vecprimitives.inc: backout e200a6011f23: causes crash. [00190abfbdbf] * Merge [621c6f8f64e0] * source/encoder/motion.cpp: Comment for clarification of the term "cost" used in ME. In general, we can try to use the following terms in a consistent manner. 1. Distortion: This is the actual distortion produced in the image due to any of the lossy components in video compression (block matching, quant, filtering etc etc). In prediction, we can define this as the satd/sad between orig and predicted image. 2. Bits: no. of bits used in representing that particular mode. 3. Cost or TotalCost = Distortion + lambda*bits. Appending cost to either satd/bits is to be generally avoided. [69ea081b98a6] * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp: Define xComputeCostInter. Early skip detection always ON. If skip detected, exit early. [e4f2d46c69fe] * source/Lib/TLibCommon/TComDataCU.cpp: Implementation of copyCU member function. [3ba1b81f83df] * source/Lib/TLibCommon/TComDataCU.h: Adding more access functions; declaring a copyCU member function to copy Search results. [3173379b20a0] 2013-06-09 Deepthi * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: 4 temporary structs for 2nx2nInter, InterRect, IntrainInter, and Merge [32ea45399897] * source/encoder/compress.cpp: Recursive calls to xcompressInterCU [c307d3211445] * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp: Adding xcompressInterCU; removing irrelevant if-checks [96c054b8187b] * Merge [9bc61fc21444] * source/encoder/CMakeLists.txt, source/encoder/compress.cpp, source/encoder/compress.h: Adding compress.cpp and compress.h for the new mode decision algorithm. [6b5cb6739108] 2013-06-10 Steve Borho * source/encoder/slicetype.cpp: slicetype: remove functions we will not need anytime soon [01a345bdfccc] 2013-06-09 Steve Borho * doc/LookaheadGuide.txt, source/encoder/slicetype.cpp: Borrow slicetype.c from x264 as slicetype.cpp This file was taken from x264 source tree circa Dec 4, 2012 with x264 bug fixes applied from Dec 11th and Jan 8th 2013. But without taking any of the slice threading changes because we will eventually use the x265 thread pool and wavefront scheduling. [1fd9e6a154dc] * source/Lib/TLibEncoder/TEncTop.h: TEncTop: reorder members together, prepare for reorg [8725f199bac5] * source/common/vec/vecprimitives.inc: vec: add comments on where external functions are found [5df470615208] * source/common/vec/macroblock.inc, source/common/vec/vecprimitives.inc: vec: move includes into vecprimitives.inc macroblock.inc is included inside an anonymous namespace, and cannot include headers itself. [b80c25641411] 2013-06-09 Min Chen * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/macroblock.cpp, source/common/vec/macroblock.inc, source/test/mbdstharness.cpp, source/test/mbdstharness.h: [review] code for DCT4x4 --- source/Lib/TLibCommon/TComTrQuant.cpp | 6 ++- source/common/macroblock.cpp | 11 ++++ source/common/vec/macroblock.inc | 82 +++++++++++++++++++++++++++++++++ source/test/testbench.cpp | 2 +- source/test/mbdstharness.cpp | 30 ++++++++++++ source/test/mbdstharness.h | 1 + 6 files changed, 129 insertions(+), 3 deletions(-) [2622ba58e755] * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/macroblock.cpp, source/common/primitives.h, source/common/vec/macroblock.inc, source/test/mbdstharness.cpp, source/test/mbdstharness.h: [review] code for DCT8x8 --- source/Lib/TLibCommon/TComTrQuant.cpp | 3 +- source/common/macroblock.cpp | 11 ++ source/common/primitives.h | 12 ++ source/common/vec/macroblock.inc | 275 +++++++++++++++++++++++++++++++++ source/test/mbdstharness.cpp | 50 ++++++ source/test/mbdstharness.h | 1 + 6 files changed, 350 insertions(+), 2 deletions(-) [d2175819e669] * source/Lib/TLibCommon/TComTrQuant.cpp: replace by const --- source/Lib/TLibCommon/TComTrQuant.cpp | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-) [2ea982400b90] * source/Lib/TLibEncoder/TEncSbac.cpp: little optimize in TEncSbac::codeLastSignificantXY --- source/Lib/TLibEncoder/TEncSbac.cpp | 10 ++-------- 1 files changed, 2 insertions(+), 8 deletions(-) [145223d77222] * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/common/primitives.h, source/common/vec/macroblock.inc, source/common/vec/vecprimitives.inc: optimize TEncSbac::codeCoeffNxN by new function scanNonZeroCoeffs --- source/Lib/TLibCommon/TComRom.cpp | 23 +++++ source/Lib/TLibCommon/TComRom.h | 2 + source/Lib/TLibCommon/TypeDef.h | 1 + source/Lib/TLibEncoder/TEncEntropy.cpp | 12 --- source/Lib/TLibEncoder/TEncEntropy.h | 1 - source/Lib/TLibEncoder/TEncSbac.cpp | 59 ++++--------- source/common/primitives.h | 2 + source/common/vec/macroblock.inc | 146 ++++++++++++++++++++++++++++++++ source/common/vec/vecprimitives.inc | 2 + 9 files changed, 194 insertions(+), 54 deletions(-) [e200a6011f23] 2013-06-08 Steve Borho * source/common/primitives.h, source/common/x86/asm-primitives.cpp: primitives: disable EMMS usage on x64 compiles [d9f7525c4adf] 2013-06-08 Min Chen * source/Lib/TLibEncoder/TEncSearch.cpp: reduce EMMS when there NO Double operator --- source/Lib/TLibEncoder/TEncSearch.cpp | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) [f61a08dec7b7] 2013-06-08 Steve Borho * source/x265.cpp: x265: report elapsed time in final logging output [264f4853796c] 2013-06-08 Min Chen * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm: asm: use assembly SSD routines, where applicable --- source/common/x86/asm-primitives.cpp | 5 +++++ source/common/x86/pixel-a.asm | 6 ++++++ 2 files changed, 11 insertions(+), 0 deletions(-) [c67c9f5fd4b5] 2013-06-07 Steve Borho * source/test/pixelharness.cpp: pixelharness: repair the pixel correctness tests [7710c496c0bb] * source/common/x86/asm-primitives.cpp: Backed out changeset: e040de3904a6 (appears to break some PCs) [cb5a4206160e] * source/encoder/wavefront.cpp, source/encoder/wavefront.h: wavefront: move CU processing into a CTURow method [2d7570e3eab0] * source/test/testbench.cpp: testbench: add support for --test NAME argument ex: TestBench --test pix Only tests pixel primitives [c5f0c45e6198] * source/test/intrapredharness.h, source/test/ipfilterharness.h, source/test/mbdstharness.h, source/test/pixelharness.h, source/test/testbench.cpp, source/test/testharness.h: testbench: add test bench names [c6fe42bb96f1] * source/test/testbench.cpp: testbench: stop testing C prims against themselves. show SIMD names [a88d84ce9391] * source/common/primitives.cpp: primitives: remove unused variable [078d513b8ce7] * source/common/x86/asm-primitives.cpp: asm: use assembly SSD routines, where applicable [e040de3904a6] * source/common/x86/CMakeLists.txt: cmake: add pixel.h to solution, for easy access from MSVC [88b81e0565f0] * source/common/primitives.h: primitives: note that SSE primitives make no alignment assumptions [de9847f38e29] * source/x265.cpp: x265: move CPU detection and primitive initialization after file init [1047b745f04f] * source/common/common.cpp, source/x265.cpp: x265: report input file data all one one line. Do not repeat input filename [42fac954412a] * source/input/input.h, source/input/y4m.h, source/input/yuv.h: input: add getName() method [27549dbae44b] * source/Lib/TLibEncoder/TEncAnalyze.h: x265: report global bitrate [8a1ebb2da93c] * source/Lib/TLibEncoder/TEncAnalyze.h: x265: indicate bitrate in frame logging same as other places [4bc3d0f8cf5f] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSlice.cpp: Remove SAO_CHROMA_LAMBDA define, assume enabled [49160bd03b96] * source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSlice.cpp: Remove RDOQ_CHROMA_LAMBDA define, assume enabled [915c857b3074] * source/Lib/TLibEncoder/TEncSearch.cpp: nit [5a4710c63060] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: replace another copy loop with a primitive [8e5ed1f84fe9] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: inline primitive arguments, remove unused var [850ab8ac45fa] * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h: TComRdCost: remove all three getDistPart() [0f089c76a5c9] * source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: restore xTZSearchHelp() to its former simplicity [9bdce4f90c1a] * Merged in ggopu/gopu_xhevc (pull request #187) TEncodeSearch: Removed getDistPart() replaced with sse Primitives [20d3411fb757] 2013-06-07 ggopu * source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/vec/sse.inc: TEncodeSearch: Removed getDistPart() replaced with sse Primitives [ca1959805ada] 2013-06-07 Steve Borho * source/common/vec/intrapred.inc: Merged in deepthidevaki/xhevc_deepthid (pull request #185) Added IntraAngular modes for chroma [573411ef9172] 2013-06-07 Deepthi Devaki * source/common/vec/intrapred.inc: Added bFilter in call for 16x16 for chroma [ac2aa44b996b] * source/common/vec/intrapred.inc: Merge [22c9294eb683] * source/Lib/TLibCommon/TComPrediction.cpp, source/common/vec/intrapred.inc, source/test/intrapredharness.cpp: IntraAngular adapted for Chroma application [18843443dc21] 2013-06-07 Min Chen * source/common/vec/intrapred.inc: intrapred: fix bug on VC9-x64, the pextrw instruction very easy make bug in VS2008 --- source/common/vec/intrapred.inc | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) [105c01ee73d9] 2013-06-07 nandaku2 * source/Lib/TLibEncoder/TEncCu.cpp: Merged in sumalatha/xhevc_sumalatha (pull request #186) missed in previous checkin [772be4365f2d] 2013-06-07 sumalatha * source/Lib/TLibEncoder/TEncSearch.cpp, source/x265.cpp: missed in previous checkin for CU_STAT_LOGFILE [0e9f956c7cd5] 2013-06-07 Sumalatha Polureddy * source/x265.cpp: Merged multicoreware/xhevc/default into default (e5a96e958371) [1b1235269f98] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/x265.cpp: Merged multicoreware/xhevc/default into default (f4815a9f6747) [e5a96e958371] 2013-06-06 Sumalatha Polureddy * Merged multicoreware/xhevc/default into default (4f45fd8e9ea8) [f4815a9f6747] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/x265.cpp, source/x265.h: Merged multicoreware/xhevc/default into default (6dc2e5b6c1d4) [4f45fd8e9ea8] 2013-06-05 sumalatha * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/x265.cpp, source/x265.h: Backed out changeset: 683fbbf6818d [6dc2e5b6c1d4] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/x265.cpp, source/x265.h: added logging to collect statistics related to mode decision [683fbbf6818d] 2013-06-07 Deepthi * Merge [f1fd893cab78] * source/Lib/TLibEncoder/TEncCu.cpp: Introducing satd based Intra in Inter: quality slowly climbing up (0.4 dB less), bitrate equal to RDO-based. [e654eb6fdb2c] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: CheckRDCostIntrainInter: so we can simplify Intra in Inter without affecting I-slice decisions. [8eca9075cfe0] 2013-06-07 Steve Borho * source/x265.cpp: x265: remove obsolete printf argument [4ff9a3f7639f] 2013-06-06 Steve Borho * source/Lib/TLibEncoder/TEncAnalyze.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/x265.cpp: x265: adapt statistic logging to look more like x264 [2df6841df3ab] * source/x265.cpp: x265: report final FPS and bitrate as x264 does [465450a1ffa7] * source/PPA/ppaCPUEvents.h, source/common/reference.cpp, source/common/reference.h: reference: up to 16 threads used for subpel interpolation [ef3d597154d9] * source/common/reference.cpp, source/common/reference.h: reference: up to 9 threads used for subpel interpolation [fa007c214c1f] * source/common/reference.cpp: reference: fix eoln [83a646b6f94e] * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComSlice.cpp, source/common/reference.cpp, source/common/reference.h: reference: use thread pool to interpolate references, up to 4 threads [299bcbf0b763] * source/common/threadpool.cpp, source/common/threadpool.h: threadpool: add accessor to static var that doesn't increase ref count [6cf0b85a4e38] * source/common/reference.h: reference: use intptr_t for pointer offset m_offsetToLuma [32bcc907c80f] * source/common/reference.cpp, source/common/reference.h: reference: remove redundant variables [75abe6a7275e] * source/common/reference.cpp: reference: simplify and correct some math [5a5edf293002] * source/common/reference.cpp, source/common/reference.h: reference: split out compute per horizontal qpel offset [bfb389d9b26a] * source/common/vec/intrapred.inc: intrapred: allow non-MSVC compilers to build intra 32x32 [95769be84f67] * source/common/reference.cpp, source/common/reference.h: reference: move temp vars to be class members Normally this wouldn't be helpful but since this routine is about to be threaded, this helps work efficiency [4707e4389160] * source/Lib/TLibEncoder/TEncSlice.cpp, source/PPA/ppaCPUEvents.h: PPA: add event for TEncSlice_encodeSlice [f0fe1b23b93a] * source/Lib/TLibEncoder/TEncCu.cpp, source/PPA/ppaCPUEvents.h, source/common/reference.cpp, source/encoder/wavefront.cpp: PPA: tweak events to more easily analyse threading GenerateReferencePlanes has improved from 60ms to 56ms in the last 6 commits (measuring on HD video). Each plane costs 3.7ms [ecbbfa05934d] * source/common/reference.cpp: reference: directly use full-pel plane from TComPicYuv - do not copy [b2aa11f00641] * source/common/reference.cpp: reference: reduce redunant calculations [4311f9eda5c6] * source/common/reference.cpp: reference: reduce redunant calculations [418ef065cd76] * source/common/reference.cpp: reference: reduce redunant calculations [efcf8e88705c] * source/common/reference.cpp: reference: reduce redunant calculations [51ffeea76d4b] * source/common/reference.cpp: reference: unroll plane extensions [411cb75acef5] * source/common/reference.cpp, source/common/reference.h: reference: combine functions [831ab4d28f46] 2013-06-07 Deepthi * Merge [7ea20ea451eb] * source/Lib/TLibEncoder/TEncCu.cpp: Replacing Merge distortion with satd costs. However, this badly thrashes quality - I suspect this is due to lower distortion values from satd for the merge-zero residual mode. We need to finetune the merge distortion model. [0d0adf325e0d] 2013-06-06 Steve Borho * source/common/vec/intra-avx.cpp, source/common/vec/intra-sse42.cpp: re-enable forceinline for intra AVX and SSE42 [9567c46f3511] * Merged in deepthidevaki/xhevc_deepthid (pull request #184) intrinsics in IntraAng [1c7ce772c0b7] 2013-06-06 Deepthi Devaki * source/common/vec/intrapred.inc: Expanded some of the Macros in 32x32 IntraAng with intention to improve compile time. [18f485d4e06f] * source/common/vec/intrapred.inc: Intrinsics added in 32x32 Macros. [105bb52b4414] * source/common/vec/intrapred.inc: More intrinsics in 16x16 [eaab40490386] * source/common/vec/intrapred.inc: Intrinsics in MACRO for 16x16 [dea89dcfa4c8] 2013-06-06 Deepthi * source/Lib/TLibEncoder/TEncSearch.cpp: Using bits estimate from RDO instead of ME estimate. Using the bits estimate from RDO gives 0.5dB loss and 10% bitrate increase. Using bits estimate from ME gives 30% bitrate increase and 0.7dB loss. ToDo: replace RDO bits estimate with a carefully calculated estimate. [6657cc220ef5] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: Cleanup: remove CalcRDCostInter/Intra [ae86f626666c] 2013-06-06 sumalatha * source/Lib/TLibEncoder/TEncSearch.cpp: incremental changes - commit to add logs for rdo, satd cost. [d021c4d5e43f] 2013-06-06 Deepthi * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: CU_STAT patch from Aarthi/Sumalatha [14aa8db979f8] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: Merge [aa89281d6517] * source/Lib/TLibEncoder/TEncCu.cpp: Merge [b77d5500205d] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSearch.cpp: Modeling SATD distortion [5158e6a3466e] 2013-06-05 Steve Borho * source/common/vec/intrapred.inc: intrapred: move another file static init into setup func [3ec88cd25ae6] * source/common/reference.cpp: reference: nit [9f64d9a6a9f8] * source/common/reference.cpp: reference: use a single temp buffer [287576ca5ad2] * source/common/reference.cpp: reference: remove unused assignment [650800e42016] * source/common/reference.cpp: reference: reorder plane generations [9c8caf38d14f] * source/Lib/TLibCommon/TComPicYuv.h, source/common/reference.cpp, source/common/reference.h, source/encoder/motion.cpp, source/encoder/motion.h: reference: use m_ prefix for member variables [15ea880c0ffd] * source/encoder/motion.cpp, source/encoder/motion.h: motion: drop chroma fenc plane pointers, unused [b13ccd8af6ea] * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/CMakeLists.txt, source/common/reference.cpp, source/common/reference.h, source/encoder/motion.h: reference: move reference plane generation into new common/ files [2b62bd9493e0] 2013-06-06 ShinYee Chung * source/test/pixelharness.cpp: pixelharness: Fix missing header for SHRT_MAX. [ec399d4f91f0] * source/common/pixel.cpp, source/common/vec/pixel.inc: vec: Fix macro paste problem due to invalid tokens. error: pasting "." and "sad" does not give a valid preprocessing token error: pasting "sse" and "<" does not give a valid preprocessing token [f0bee4bc5ab8] 2013-06-05 Steve Borho * source/common/vec/macroblock.inc: macroblock: prevent VC9 x64 from building SSE4 intrinsic butterfly primitives Specifically the butterfly32 crashes and butterfly8 fails unit tests [cc3701060a60] * source/common/common.h: common: disable logging by default [fb8d4ef3eed1] * source/x265.cpp: remove redundant fclose() [1192519fe4cc] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/common/common.h, source/x265.cpp: rename LOGGING to CU_STAT_LOGFILE [436ebbab3ba2] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/common/common.h, source/x265.h: move LOGGING define to common.h [f2ea9f497340] * source/Lib/TLibCommon/TComRdCost.cpp: TComRdCost: use its own helper function consistently [4b036d5114f8] * source/Lib/TLibCommon/TComRdCost.h: TComRdCost: reorder methods, no change [b076f3dd0351] * source/Lib/TLibCommon/TComRdCost.h: TComRdCost: remove two unused member variables They were moved to DistParam and never removed from here [c5008c610656] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h: TComDataCU: remove unused slow bit counting methods These weren't being used at all; not sure if they were used in dead code paths we've pruned or if all of its users were moved to TComRdCost [971fe0131bd5] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: remove old commented code, can no longer be used [cda2e64d596c] * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h: TComRdCost: remove getCost(x, y), getBits(x, y), and xGetComponentBits() [0e4510344de3] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: replace TComRdCost::getCost(x,y) with BitCost::mvcost [CHANGE] Changes outputs of --me 4 (HM orig) slightly. Does not affect other ME modes, which were already using mvcost() [1058053226f4] * source/common/vec/pixel.inc, source/common/vec/sse.inc, source/test/pixelharness.cpp: Backed out changeset: ce41a92cec25 [0720ed17000a] * source/common/vec/intrapred.inc: intrapred: remove const from file static vars The compiler was ignoring my const_cast<> and discarding the assignments. My guess is that it had inlined the constants (known to be zero) into the routines [6c44353bb63f] * source/common/vec/intrapred.inc: intra: disable 32x32 temporarily, to save MSVC build times Once the key macros have been made pure-intrinsic, it should be safe to build these again with MSVC. [1ae62e55635c] * source/encoder/wavefront.cpp, source/encoder/wavefront.h: wavefront: uncrustify [cec743da6f0e] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSlice.cpp: TEncCu, TEncSlice: uncrustify [dcad39643221] * source/common/vec/intrapred.inc: intrapred: move static variable initialization to init time Allow CPU detection to avoid initializing static vars that might use illegal instructions. [b7fa5ee0ff52] 2013-06-05 ggopu * source/common/vec/pixel.inc, source/common/vec/sse.inc, source/test/pixelharness.cpp: primitives: implementation of sse_ss, sse_sp, sse_pp : Comment out crashing part [ce41a92cec25] * source/test/pixelharness.cpp, source/test/pixelharness.h: primitives: implementation of sse_ss, sse_sp, sse_pp : Quick fix [fa56753ac713] * source/common/pixel.cpp, source/common/primitives.h, source/common/vec/CMakeLists.txt, source/common/vec/pixel.inc, source/common/vec/pixel16.inc, source/common/vec/pixel8.inc, source/common/vec/sse.inc, source/test/pixelharness.cpp: primitives: implementation of sse_ss, sse_sp, sse_pp [7e9174316989] 2013-06-05 Deepthi * Merge [2cf7f7189f52] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/x265.cpp, source/x265.h: Logging statistics showing CU mode types and partition sizes - patch from Aarthi/Sumalatha. [5679059e8c2d] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: Do not repeat encRes for merge mode [ed6c51f1274e] 2013-06-05 Steve Borho * .hgtags: Added tag LASTKNOWNGOOD for changeset 681eabf8a086 [ce241499c41d] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: nits, no change [30fc780867a3] 2013-06-04 Steve Borho * source/encoder/wavefront.cpp: wavefront: re-order initializations to make GCC happy [86059d10c1da] * source/Lib/TLibEncoder/TEncCavlc.h: TEncCavlc: remove unused formal parameter names, avoid GCC warnings [189c561de3cd] * source/encoder/wavefront.cpp: wavefront: remove clumsy logic where codeRow could be different for goOnSBac [2b27bd6e3c0e] * source/encoder/encoder.cpp: encoder: mark WPP disabled if thread pool has only one thread Either the user requested --threads 1, or auto-detect only found 1 CPU core [051e5dab1985] * source/Lib/TLibEncoder/TEncSlice.cpp: nit [fd22c2f571ce] * source/Lib/TLibEncoder/TEncSlice.cpp: TEncSlice: remove include of omp.h [f3a40c7d2ec5] * source/Lib/TLibEncoder/TEncSlice.cpp, source/encoder/wavefront.cpp, source/encoder/wavefront.h: wavefront: further cleanups [70edba386b16] * source/encoder/wavefront.cpp: wavefront: remove unnecessary re-alloc of buffer Sbac coders [f559d0f9c927] * source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/Lib/TLibEncoder/TEncTop.h: TEncTop: completely remove singleton TComRdCost, force use of EncodeFrame [6134af9537f2] * source/x265.cpp: x265: remove old comment [9cbadcbf9af5] * source/encoder/wavefront.cpp: wavefront: move flush and deletions to destroy method [2c6debbdea1d] * source/encoder/wavefront.cpp: wavefront: eliminate redundant assignments [8a6c3172ad9e] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/encoder/wavefront.cpp: TEncCu: CU should use row local m_cRdCost so lambda is allowed to diverge [cb1c0f4fe4d2] * source/Lib/TLibEncoder/TEncSlice.cpp, source/encoder/wavefront.h: distribute lambda and chroma weights to thread m_cRdCost (fixes non- determinism) it seems --me 4 and --wpp is still non-deterministic, just not nearly as much. [8ad5d8bc925c] 2013-06-03 Steve Borho * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/encoder/encoder.cpp, source/encoder/wavefront.cpp, source/encoder/wavefront.h: wavefront: reorg per-thread/row data into a structure [5103e97b516e] 2013-06-04 Steve Borho * source/Lib/TLibCommon/TypeDef.h: Remove unused SEQUENCE_LEVEL_LOSSLESS [31b2998e87e2] * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h: TComRdCost: remove unused calcRdCost64 [734d93ef8fd8] * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h: TComRdCost: remove unused calcRdCost [d46bc99052f6] * source/common/vec/CMakeLists.txt: cmake: cleanup vec file, no real changes [2b0a5cfe46f2] 2013-06-05 ShinYee Chung * source/Lib/TLibEncoder/TEncSearch.cpp: search: Fix compile warnings. [31e1d53e0aad] 2013-06-04 Steve Borho * source/common/vec/intra-avx.cpp, source/common/vec/intra-sse42.cpp: disable forceinline, compiles are taking multiple hours [9f27fcbe7660] * source/common/pixel.cpp: pixel: add C primitives for int/short conversion functions [5935a4c31de9] * source/common/vec/intrapred.inc, source/common/vec/vecprimitives.inc: vec: more #include pruning to avoid unnecessary rebuilds [637f3b3a1f8a] * source/common/vec/intrapred.inc, source/common/vec/vecprimitives.inc: move g_aucConvertToBit[] to intrapred.inc [9df6d9454529] * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h: TComRdCost: remove eDFunc argument from getDistPart() methods Soon getDistPart() can be replaced entirely with SSE primitives. [3f286f363159] * source/Lib/TLibCommon/TComRdCost.h: TComRdCost: remove unused macro and method [90f2d655fc4f] * source/Lib/TLibEncoder/TEncCu.cpp: TEncCu: fix eoln [cbcce0610e27] 2013-06-04 Deepthi * source/Lib/TLibEncoder/TEncSearch.cpp: Merge [bdec57941cef] * source/Lib/TLibEncoder/TEncSearch.cpp: Bug fix in memcpy [34cafdcafffe] 2013-06-04 Steve Borho * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/vec/pixel.inc, source/common/vec/pixel16.inc, source/common/vec/pixel8.inc: Merged in ggopu/gopu_xhevc (pull request #182) primitives: SSE 8 & 16 bit implementation - done for all and Replaced getSADPart with Primitives.sad function [537e783eab5b] 2013-06-04 Mandar Gurav * source/Lib/TLibEncoder/TEncSearch.cpp: Replaced getDistPart() with SadBuf() and remved CALCRDCOST_SAD call from TencodeSearch [0d22b87a3bd4] * source/Lib/TLibEncoder/TEncCu.cpp: Replaced getSADPart with Primitives.sad function [23778eeabe2f] * source/common/vec/pixel16.inc, source/common/vec/pixel8.inc: primitives: SSE 16 bit - done for all [d8065a5600fb] * source/common/vec/pixel.inc, source/common/vec/pixel8.inc: primitives: SSE 8 bit implementation - done for all [4c3b34bfd0a3] 2013-06-04 Deepthi * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/vec/intra- avx.cpp, source/common/vec/intra-sse42.cpp, source/common/vec /ipfilter-avx.cpp, source/common/vec/ipfilter-avx2.cpp, source/common/vec/ipfilter-sse2.cpp, source/common/vec/ipfilter- sse3.cpp, source/common/vec/ipfilter-sse41.cpp, source/common/vec /ipfilter-sse42.cpp, source/common/vec/ipfilter-ssse3.cpp, source/common/vec/pixel-avx.cpp, source/common/vec/pixel-avx2.cpp, source/common/vec/pixel-sse2.cpp, source/common/vec/pixel-sse3.cpp, source/common/vec/pixel-sse41.cpp, source/common/vec/pixel- sse42.cpp, source/common/vec/pixel-ssse3.cpp, source/common/vec/utils.h: Merge [da81281bbfb6] * source/Lib/TLibEncoder/TEncSearch.cpp: Replacing with memcpy. [c6948a0ed131] 2013-06-04 Deepthi Devaki * source/common/vec/intrapred.inc: Completed & Uncrustified Intra Angular 32x32 [f42c0dd3b2c3] * source/common/vec/intra-avx.cpp, source/common/vec/intra-sse42.cpp, source/test/intrapredharness.cpp: Fix for a previous wrong commit, that disabled forceinline [be5a9b49fdcb] * source/Lib/TLibCommon/AccessUnit.h, source/Lib/TLibCommon/ContextModel.cpp, source/Lib/TLibCommon/ContextModel3DBuffer.h, source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/AnnexBwrite.h, source/Lib/TLibEncoder/NALwrite.h, source/Lib/TLibEncoder/SEIwrite.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/PPA/ppa.h, source/VectorClass/vectori128.h, source/common/TShortYUV.cpp, source/common/TShortYUV.h, source/common/common.cpp, source/common/common.h, source/common/ipfilter.cpp, source/common/md5.cpp, source/common/md5.h, source/common/pixel.cpp, source/common/primitives.cpp, source/common/primitives.h, source/common/threadpool.cpp, source/common/vec/CMakeLists.txt, source/common/vec/blockcopy.inc, source/common/vec/intra-avx.cpp, source/common/vec/intra-avx2.cpp, source/common/vec/intra-sse2.cpp, source/common/vec/intra-sse3.cpp, source/common/vec/intra-sse41.cpp, source/common/vec/intra-sse42.cpp, source/common/vec/intra- ssse3.cpp, source/common/vec/intrapred.inc, source/common/vec /ipfilter-avx.cpp, source/common/vec/ipfilter-avx2.cpp, source/common/vec/ipfilter-sse2.cpp, source/common/vec/ipfilter- sse3.cpp, source/common/vec/ipfilter-sse41.cpp, source/common/vec /ipfilter-sse42.cpp, source/common/vec/ipfilter-ssse3.cpp, source/common/vec/ipfilter.inc, source/common/vec/pixel-avx.cpp, source/common/vec/pixel-avx2.cpp, source/common/vec/pixel-sse2.cpp, source/common/vec/pixel-sse3.cpp, source/common/vec/pixel-sse41.cpp, source/common/vec/pixel-sse42.cpp, source/common/vec/pixel- ssse3.cpp, source/common/vec/pixel.inc, source/common/vec/pixel16.inc, source/common/vec/pixel8.inc, source/common/vec/utils.h, source/common/vec/vec-primitives.cpp, source/common/vec/vecprimitives.inc, source/encoder/bitcost.cpp, source/encoder/bitcost.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/motion.cpp, source/input/y4m.cpp, source/input/yuv.cpp, source/output/output.cpp, source/output/output.h, source/output/y4m.cpp, source/output/yuv.cpp, source/output/yuv.h, source/test/intrapredharness.cpp, source/test/ipfilterharness.cpp, source/test/pixelharness.cpp, source/test/testbench.cpp, source/test/testharness.h, source/tools/dr_psnr/PsnrCalculator.h, source/tools/dr_psnr/SSIMCalculator.h, source/x265.cpp, source/x265.h, source/x265opts.h: Backed out changeset: 471c6f016b40 [d790920f4c32] * source/Lib/TLibCommon/AccessUnit.h, source/Lib/TLibCommon/ContextModel.cpp, source/Lib/TLibCommon/ContextModel3DBuffer.h, source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/AnnexBwrite.h, source/Lib/TLibEncoder/NALwrite.h, source/Lib/TLibEncoder/SEIwrite.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/PPA/ppa.h, source/VectorClass/vectori128.h, source/common/TShortYUV.cpp, source/common/TShortYUV.h, source/common/common.cpp, source/common/common.h, source/common/ipfilter.cpp, source/common/md5.cpp, source/common/md5.h, source/common/pixel.cpp, source/common/primitives.cpp, source/common/primitives.h, source/common/threadpool.cpp, source/common/vec/CMakeLists.txt, source/common/vec/blockcopy.inc, source/common/vec/intra-avx.cpp, source/common/vec/intra-avx2.cpp, source/common/vec/intra-sse2.cpp, source/common/vec/intra-sse3.cpp, source/common/vec/intra-sse41.cpp, source/common/vec/intra-sse42.cpp, source/common/vec/intra- ssse3.cpp, source/common/vec/intrapred.inc, source/common/vec /ipfilter-avx.cpp, source/common/vec/ipfilter-avx2.cpp, source/common/vec/ipfilter-sse2.cpp, source/common/vec/ipfilter- sse3.cpp, source/common/vec/ipfilter-sse41.cpp, source/common/vec /ipfilter-sse42.cpp, source/common/vec/ipfilter-ssse3.cpp, source/common/vec/ipfilter.inc, source/common/vec/pixel-avx.cpp, source/common/vec/pixel-avx2.cpp, source/common/vec/pixel-sse2.cpp, source/common/vec/pixel-sse3.cpp, source/common/vec/pixel-sse41.cpp, source/common/vec/pixel-sse42.cpp, source/common/vec/pixel- ssse3.cpp, source/common/vec/pixel.inc, source/common/vec/pixel16.inc, source/common/vec/pixel8.inc, source/common/vec/utils.h, source/common/vec/vec-primitives.cpp, source/common/vec/vecprimitives.inc, source/encoder/bitcost.cpp, source/encoder/bitcost.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/motion.cpp, source/input/y4m.cpp, source/input/yuv.cpp, source/output/output.cpp, source/output/output.h, source/output/y4m.cpp, source/output/yuv.cpp, source/output/yuv.h, source/test/intrapredharness.cpp, source/test/ipfilterharness.cpp, source/test/pixelharness.cpp, source/test/testbench.cpp, source/test/testharness.h, source/tools/dr_psnr/PsnrCalculator.h, source/tools/dr_psnr/SSIMCalculator.h, source/x265.cpp, source/x265.h, source/x265opts.h: Backed out merge changeset: 899d27ae3960 Backed out merge revision to its first parent (ffc3e2a59068) [471c6f016b40] * source/common/vec/intra-avx.cpp, source/common/vec/intra-sse42.cpp, source/common/vec/intrapred.inc, source/test/intrapredharness.cpp: Merge [899d27ae3960] * source/common/vec/intrapred.inc: Partial vector implementation of IntrPredAng 32x32. [ffc3e2a59068] 2013-06-03 Steve Borho * source/Lib/TLibCommon/AccessUnit.h, source/Lib/TLibCommon/ContextModel.cpp, source/Lib/TLibCommon/ContextModel3DBuffer.h, source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibEncoder/AnnexBwrite.h, source/Lib/TLibEncoder/NALwrite.h, source/Lib/TLibEncoder/SEIwrite.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncTop.h, source/PPA/ppa.h, source/common/TShortYUV.cpp, source/common/TShortYUV.h, source/common/common.cpp, source/common/common.h, source/common/ipfilter.cpp, source/common/md5.cpp, source/common/md5.h, source/common/pixel.cpp, source/common/primitives.cpp, source/common/primitives.h, source/common/threadpool.cpp, source/common/vec/blockcopy.inc, source/common/vec/intra-avx.cpp, source/common/vec/intra-sse42.cpp, source/common/vec/intrapred.inc, source/common/vec/ipfilter-avx.cpp, source/common/vec/ipfilter-avx2.cpp, source/common/vec/ipfilter- sse2.cpp, source/common/vec/ipfilter-sse3.cpp, source/common/vec /ipfilter-sse41.cpp, source/common/vec/ipfilter-sse42.cpp, source/common/vec/ipfilter-ssse3.cpp, source/common/vec/ipfilter.inc, source/common/vec/pixel-avx.cpp, source/common/vec/pixel-avx2.cpp, source/common/vec/pixel-sse2.cpp, source/common/vec/pixel-sse3.cpp, source/common/vec/pixel-sse41.cpp, source/common/vec/pixel-sse42.cpp, source/common/vec/pixel- ssse3.cpp, source/common/vec/pixel.inc, source/common/vec/pixel16.inc, source/common/vec/pixel8.inc, source/common/vec/utils.h, source/encoder/bitcost.cpp, source/encoder/bitcost.h, source/encoder/encoder.cpp, source/encoder/encoder.h, source/encoder/motion.cpp, source/input/y4m.cpp, source/input/yuv.cpp, source/output/output.cpp, source/output/output.h, source/output/y4m.cpp, source/output/yuv.cpp, source/output/yuv.h, source/test/intrapredharness.cpp, source/test/ipfilterharness.cpp, source/test/pixelharness.cpp, source/test/testbench.cpp, source/test/testharness.h, source/tools/dr_psnr/PsnrCalculator.h, source/tools/dr_psnr/SSIMCalculator.h, source/x265.cpp, source/x265.h, source/x265opts.h: uncrustify: catch up with several weeks of drift [b68cb1eaef6d] * source/Lib/TLibEncoder/TEncSearch.cpp: Merge [a35eae69f1a8] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncSlice.h: white-space nits [b2327bb6131d] * source/Lib/TLibEncoder/TEncCu.h: TEncCu: nits [f56bc8f415de] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncTop.cpp: TEncSearch: reduce argument count for TEncSearch::Init() (it can read) [c163638bc616] * source/Lib/TLibEncoder/TEncCfg.h: TEncCfg: add accessors for all ME data [227956601381] * source/Lib/TLibEncoder/TEncTop.h: TEncTop: white-space nits [3a35f88c6dc4] * source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: TEncTop: remove xInitPPSforTiles [ab72ab85c51d] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: remove xTZ8PointSquareSearch [8ff79cf0335e] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSlice: more white-space nits [ade13761b5d4] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: fixup commit [d4e1b147c8aa] * source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TypeDef.h: Move DFunc enum from TypeDef.h to TComRdCost.h [42efb06e0617] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: add a note for future optimization [5bfad71d2e69] * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: Remove HHI_RQT_INTRA_SPEEDUP, HHI_RQT_INTRA_SPEEDUP_MOD. Assume current values [9a12626cc6cc] * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncSearch.cpp: Remove FAST_UDI_USE_MPM, always enabled [7893e9388d61] * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncTop.cpp: Remove WRITE_BACK define, always enabled [e2674be0bcce] * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncTop.cpp: Remove AUTO_INTER_RPS define, always enabled [d74b6ff8128a] * source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: TEncTop: remove redundant m_uiNumSubstreams [dce2e6e926e4] * source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: TEncTop: prep cleanup, remove unused m_cRDGoOnSbacCoder [75d7c30ceb8b] 2013-06-04 Deepthi * source/Lib/TLibEncoder/TEncSearch.cpp: xAddSymbolBitsInter: part replacement of entropy estimate [7e4e05cc36e1] * source/Lib/TLibEncoder/TEncSearch.cpp: Replacing zeroResidual mode bit estimate [1a1185fbe376] 2013-06-03 Deepthi * source/Lib/TLibEncoder/TEncSearch.cpp: Replacing entropy estimate for Skip. [7ad86922e1a9] 2013-06-03 Steve Borho * source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSlice.cpp: TEncSlice: more white-space nits [4b42318dec1c] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: white-space nits [29258a2b78e8] 2013-06-03 Min Chen * source/common/vec/intrapred.inc: [review] more performance implement on predIntraPlanar4_sse4 --- source/common/vec/intrapred.inc | 48 ++++++++++++++++++++------------------ 1 files changed, 25 insertions(+), 23 deletions(-) [65305cf315ae] * source/common/vec/intrapred.inc: [review] instrinsic predIntraPlanar64_sse4 --- source/common/vec/intrapred.inc | 126 +++++++++++++++++++++++++++++++++++++-- 1 files changed, 121 insertions(+), 5 deletions(-) [f5aef2183b11] * source/common/vec/intrapred.inc, source/test/intrapredharness.cpp: [review] instrinsic predIntraPlanar32_sse4 --- source/common/vec/intrapred.inc | 82 ++++++++++++++++++++++++++++++++++++++ source/test/intrapredharness.cpp | 6 +- 2 files changed, 85 insertions(+), 3 deletions(-) [b1be1b00a939] * source/common/vec/intrapred.inc: [review] instrinsic predIntraPlanar16_sse4 --- source/common/vec/intrapred.inc | 97 ++++++++++++--------------------------- 1 files changed, 30 insertions(+), 67 deletions(-) [58046661809b] * source/common/vec/intrapred.inc: [review] instrinsic predIntraPlanar16_sse4, performance --- source/common/vec/intrapred.inc | 112 ++++++++++++++++++++++++++++++++++++++- 1 files changed, 110 insertions(+), 2 deletions(-) [3265a3e7a60f] * source/common/vec/intrapred.inc: [review] instrinsic predIntraPlanar8_sse4 --- source/common/vec/intrapred.inc | 79 ++++++++++++++++++++++++++++++++++++++- 1 files changed, 77 insertions(+), 2 deletions(-) [5c6fca239875] 2013-06-03 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: TencSearch: fix bit counting [f96db0f0e705] * source/common/vec/pixel8.inc: pixel: use real ints in vector code [a22994d345a4] * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibEncoder/TEncSearch.cpp: backout changes to TComRdCost, this file cannot use primitives. [fd2d0932ed34] * Merged in ggopu/gopu_xhevc (pull request #180) * m_pcRdCost->getBits() replaced with BitCost.mvcost [609ae722f590] 2013-06-03 ggopu * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp, source/common/primitives.h, source/common/vec/pixel.inc, source/common/vec/pixel8.inc, source/test/pixelharness.cpp: * m_pcRdCost->getBits() replaced with BitCost.mvcost * Fixed other code blocks calling non-primitive SAD functions (crashes at sad8 - for load_a whereas works with just load) * Primitives for SSE functions [dedd1f39ae61] 2013-06-03 Steve Borho * Merged in deepthidevaki/xhevc_deepthid (pull request #179) Enabled Intra Angular 16x16 in testbench [ae67119947c0] 2013-06-03 Deepthi Devaki Akkoorath * Merged multicoreware/xhevc into default [b6298df4010a] 2013-06-03 Deepthi Devaki * source/test/intrapredharness.cpp: Enabled Intra Angular 16x16 in testbench [8e85d566d172] 2013-06-03 Deepthi * Merge [e521c7751844] * source/Lib/TLibEncoder/TEncSearch.cpp: FMD - Bug fix [06dc1c8c186f] * source/Lib/TLibEncoder/TEncCu.cpp: Making RDO optional [ad3f6e8fd032] 2013-06-03 Steve Borho * source/common/vec/CMakeLists.txt: cmake: add missing ipfilter-avx.cpp [681eabf8a086] * source/common/vec/CMakeLists.txt: cmake: add new foo-avx.cpp files to -mavx properties list [ce989de34742] * source/common/vec/intrapred.inc: intrapred: add include for smmintrin.h [755d91c1e921] * source/common/vec/vec-primitives.cpp: vec: allow VC9 and VC10 to use SSE4 primitives [ffe0f4fb6980] * source/VectorClass/vectori128.h, source/common/vec/intra-avx.cpp, source/common/vec/intra-sse42.cpp: vec: enable __forceinline for higher arches of intra primitives [b4ed502f10e5] * source/common/vec/CMakeLists.txt, source/common/vec/ipfilter- avx.cpp, source/common/vec/ipfilter-avx2.cpp, source/common/vec /ipfilter-sse2.cpp, source/common/vec/ipfilter-sse3.cpp, source/common/vec/ipfilter-sse41.cpp, source/common/vec/ipfilter- sse42.cpp, source/common/vec/ipfilter-ssse3.cpp, source/common/vec/ipfilter.inc, source/common/vec/vecprimitives.inc: vec: split ipfilter primitives into their own C++ files [ecaeb658c41f] * source/common/vec/CMakeLists.txt, source/common/vec/intra-avx.cpp, source/common/vec/intra-avx2.cpp, source/common/vec/intra-sse2.cpp, source/common/vec/intra-sse3.cpp, source/common/vec/intra-sse41.cpp, source/common/vec/intra-sse42.cpp, source/common/vec/intra- ssse3.cpp, source/common/vec/intrapred.inc, source/common/vec/vecprimitives.inc: vec: split intra primitives into their own C++ files [8a3b623143e7] * source/common/vec/CMakeLists.txt, source/common/vec/pixel-avx.cpp, source/common/vec/pixel-avx2.cpp, source/common/vec/pixel-sse2.cpp, source/common/vec/pixel-sse3.cpp, source/common/vec/pixel-sse41.cpp, source/common/vec/pixel-sse42.cpp, source/common/vec/pixel- ssse3.cpp, source/common/vec/pixel.inc, source/common/vec/pixel16.inc, source/common/vec/utils.h, source/common/vec/vecprimitives.inc: vec: split pixel primitives into their own C++ files [d7b8280f744a] 2013-06-03 ShinYee Chung * source/x265.cpp: cmd: Fix segfault when an unrecognized option is given on the command line. [d4363da9df37] 2013-06-02 Min Chen * source/common/vec/intrapred.inc: [review] instrinsic predIntraPlanar4_sse4 --- source/common/vec/intrapred.inc | 59 +++++++++++++++++++++++++++++++++++++++ 1 files changed, 59 insertions(+), 0 deletions(-) [598fa5788632] * source/common/vec/intrapred.inc: intrapred: optimize by func_ptr in predIntraPlanar --- source/common/vec/intrapred.inc | 59 ++++++++++++++++++-------------------- 1 files changed, 28 insertions(+), 31 deletions(-) [9737e9d6ba9e] * source/common/vec/CMakeLists.txt: Enable SSE4 on VC9 --- source/common/vec/CMakeLists.txt | 10 +++------- 1 files changed, 3 insertions(+), 7 deletions(-) [ddfcdb3e6815] * source/common/vec/intrapred.inc: intrapred: simple predIntraPlanar4 by macro --- source/common/vec/intrapred.inc | 49 ++++++++++++--------------------------- 1 files changed, 15 insertions(+), 34 deletions(-) [43dc6a7f95cc] * source/common/vec/intrapred.inc: miss some authors --- source/common/vec/intrapred.inc | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) [f17187830a01] 2013-06-01 Steve Borho * source/x265.cpp: x265: use output frame counts for progress reports This actually makes them less accurate in the short term because of the GOP cadence of the encode function. but it is more correct from a code logic point of view. [0abd8ed72c32] * source/encoder/encoder.cpp: encoder: pull recon images from queue even when not requested When the app wasn't requesting recon images, they were queueing indefinitely in m_cListRecQueue (not quite as bad as it seems, it only queues pointers and the buffers are recycled). And it's was always returning 0 for iNumEncoded, which was bad. [e93dce2aaf48] * source/encoder/motion.cpp, source/encoder/motion.h: motion: rename StarSearch to StarPatternSearch, make inline [c7d3dbce14c8] * source/encoder/motion.cpp: motion: fixup comments, remove tabs, simplify some macros [016c61125c55] * source/Lib/TLibCommon/TComRom.h: TComRom: remove unused extern [ca6ac5ea20bd] * source/encoder/motion.h: motion: use sadStride in helper functions [c70e2aff8caa] 2013-06-01 Mandar Gurav * source/encoder/motion.cpp: motion: use sad_x4 in star Search for dist = 1. [20a701e4a753] * source/common/common.h: motion: ME cycle count- Print lld [4413954b9a14] * source/encoder/motion.cpp, source/encoder/motion.h: motion: TwoPoint search manually inlined. Now, exe_time_SUBSAMPLE_1 < exe_time_SUBSAMPLE_0. [8d0a2281093e] * source/common/common.h: motion: Print Total Cycle count also. Avg. Cycle count doesn't give exact idea of performance - since num_calls_SUBSAMPLE_0 != num_calls_SUBSAMPLE_1. [5e5988fad642] * source/encoder/motion.cpp, source/encoder/motion.h: motion: Replace "stride << subsample" with "sadStride". [2a19d8945ddd] * source/Lib/TLibCommon/TComRom.h: Merge conflict: Copy files directly from xhevc main repo. part 4 [e902484772b1] * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibEncoder/TEncAnalyze.h: Merge conflict: Copy files directly from xhevc main repo. part 3 [65463235027f] 2013-05-31 Mandar Gurav * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg, cfg/per- sequence/BQMall.cfg, cfg/per-sequence/BQSquare.cfg, cfg/per- sequence/BQTerrace.cfg, cfg/per-sequence/BasketballDrill.cfg, cfg /per-sequence/BasketballDrillText.cfg, cfg/per- sequence/BasketballDrive.cfg, cfg/per-sequence/BasketballPass.cfg, cfg/per-sequence/BlowingBubbles.cfg, cfg/per-sequence/Cactus.cfg, cfg/per-sequence/ChinaSpeed.cfg, cfg/per-sequence/FourPeople.cfg, cfg/per-sequence/Johnny.cfg, cfg/per-sequence/Kimono.cfg, cfg/per- sequence/KristenAndSara.cfg, cfg/per- sequence/NebutaFestival_10bit.cfg, cfg/per-sequence/ParkScene.cfg, cfg/per-sequence/PartyScene.cfg, cfg/per- sequence/PeopleOnStreet.cfg, cfg/per-sequence/RaceHorses.cfg, cfg /per-sequence/RaceHorsesC.cfg, cfg/per-sequence/SlideEditing.cfg, cfg/per-sequence/SlideShow.cfg, cfg/per- sequence/SteamLocomotiveTrain_10bit.cfg, cfg/per- sequence/Traffic.cfg, cfg/per-sequence/Vidyo1.cfg, cfg/per- sequence/Vidyo3.cfg, cfg/per-sequence/Vidyo4.cfg, source/Lib/CMakeLists.txt, source/Lib/TAppCommon/program_options_lite.cpp, source/Lib/TAppCommon/program_options_lite.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibEncoder/TEncAnalyze.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/TestForChecking_BadCommit.bat, source/encoder/IntraPred.cpp, source/encoder/TShortYUV.cpp, source/encoder/TShortYUV.h, source/encoder/butterfly.h, source/encoder/common.cpp, source/encoder/common.h, source/encoder/ipfilter.cpp, source/encoder/macroblock.cpp, source/encoder/md5.cpp, source/encoder/md5.h, source/encoder/motion.cpp, source/encoder/motion.h, source/encoder/pixel.cpp, source/encoder/primitives.cpp, source/encoder/primitives.h, source/encoder/threading.cpp, source/encoder/threading.h, source/encoder/threadpool.cpp, source/encoder/threadpool.h, source/encoder/vec/CMakeLists.txt, source/encoder/vec/avx.cpp, source/encoder/vec/avx2.cpp, source/encoder/vec/blockcopy.inc, source/encoder/vec/intrapred.inc, source/encoder/vec/ipfilter.inc, source/encoder/vec/ipfilter16.inc, source/encoder/vec/ipfilter8.inc, source/encoder/vec/macroblock.inc, source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc, source/encoder/vec/pixel8.inc, source/encoder/vec/sse2.cpp, source/encoder/vec/sse3.cpp, source/encoder/vec/sse41.cpp, source/encoder/vec/sse42.cpp, source/encoder/vec/ssse3.cpp, source/encoder/vec/vec-primitives.cpp, source/encoder/vec/vecprimitives.inc, source/encoder/x86/CMakeLists.txt, source/encoder/x86/asm- primitives.cpp, source/encoder/x86/const-a.asm, source/encoder/x86/cpu-a.asm, source/encoder/x86/pixel-32.asm, source/encoder/x86/pixel-a.asm, source/encoder/x86/pixel.h, source/encoder/x86/sad-a.asm, source/encoder/x86/x86inc.asm, source/encoder/x86/x86util.asm, source/x265cfg.cpp, source/x265cfg.h, source/x265enc.cpp, source/x265enc.h, source/x265main.cpp: Merged multicoreware/xhevc into default [2871d75ffb73] 2013-06-01 Mandar Gurav * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: Merge conflict: Copy files directly from xhevc main repo. part 2 [c446638cb8c0] 2013-06-01 ggopu * source/encoder/motion.cpp, source/encoder/motion.h: Merge conflict: Copy files directly from xhevc main repo. [6272284d8ce0] 2013-05-23 Mandar Gurav * source/encoder/motion.cpp: Merged multicoreware/xhevc into default [53497b61c0ac] 2013-05-24 ggopu * build/nmake/make-solutions.bat, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibEncoder/TEncAnalyze.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/motion.cpp: Merge [b224e58a7f8b] 2013-05-23 ggopu * source/Lib/TLibEncoder/TEncSearch.cpp: Backed out changeset: 06fa58c2176d [effd80b01d39] 2013-05-31 Steve Borho * source/encoder/encoder.cpp: encoder: do not allow GOP size to be less than 1 [984eb5329bef] * source/Lib/TLibCommon/TComTrQuant.cpp: TrComQuant: remove unused variable, fix GCC warnings [2125b36b8ae6] 2013-05-30 Steve Borho * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg, cfg/per- sequence/BQMall.cfg, cfg/per-sequence/BQSquare.cfg, cfg/per- sequence/BQTerrace.cfg, cfg/per-sequence/BasketballDrill.cfg, cfg /per-sequence/BasketballDrillText.cfg, cfg/per- sequence/BasketballDrive.cfg, cfg/per-sequence/BasketballPass.cfg, cfg/per-sequence/BlowingBubbles.cfg, cfg/per-sequence/Cactus.cfg, cfg/per-sequence/ChinaSpeed.cfg, cfg/per-sequence/FourPeople.cfg, cfg/per-sequence/Johnny.cfg, cfg/per-sequence/Kimono.cfg, cfg/per- sequence/KristenAndSara.cfg, cfg/per- sequence/NebutaFestival_10bit.cfg, cfg/per-sequence/ParkScene.cfg, cfg/per-sequence/PartyScene.cfg, cfg/per- sequence/PeopleOnStreet.cfg, cfg/per-sequence/RaceHorses.cfg, cfg /per-sequence/RaceHorsesC.cfg, cfg/per-sequence/SlideEditing.cfg, cfg/per-sequence/SlideShow.cfg, cfg/per- sequence/SteamLocomotiveTrain_10bit.cfg, cfg/per- sequence/Traffic.cfg, cfg/per-sequence/Vidyo1.cfg, cfg/per- sequence/Vidyo3.cfg, cfg/per-sequence/Vidyo4.cfg, source/CMakeLists.txt, source/Lib/TAppCommon/program_options_lite.cpp, source/Lib/TAppCommon/program_options_lite.h, source/x265cfg.cpp, source/x265cfg.h, source/x265enc.cpp, source/x265enc.h, source/x265main.cpp: x265-cli: remove old CLI program and config files old command line: x265-cli -i Vidyo4.yuv -c cfg/encoder_I_15P.cfg -c cfg/per-sequence/Vidyo4.cfg -b out.hevc new command line: x265 Vidyo4.y4m out.hevc old command line: x265-cli -i Vidyo4.yuv -c cfg/encoder_all_I.cfg -c cfg/per-sequence/Vidyo4.cfg -b out.hevc new command line: x265 Vidyo4.y4m out.hevc --sao -i 1 [cda100c6417f] 2013-05-31 Steve Borho * source/encoder/encoder.cpp: encoder: add "-i 32" hack to select "encoder_randomaccess_main" config from hm Also requires enabling --rect --amp --sao to match the output of that config file. [3136a4b62f03] 2013-05-30 Steve Borho * source/encoder/encoder.cpp: encoder: be explicit about slice type [4414841e3211] * source/x265.cpp: x265: fix warnings hidden by old x265-cli project [192da7e89c14] 2013-05-31 Steve Borho * source/common/vec/CMakeLists.txt: cmake: fix another set_source_files problem [8d6efac63424] * source/common/vec/CMakeLists.txt: cmake: avoid warnings from x64 MSVC compilers x64 implies at least SSE4, and gets tetchy when you say /arch:SSE2 Previously, the set_source_files_properties line was busted by a bad cut-paste [633b668d6c47] 2013-05-31 Min Chen * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/primitives.h, source/common/vec/pixel.inc: optimize by convert32to16_shr --- source/Lib/TLibCommon/TComTrQuant.cpp | 5 +---- source/common/primitives.h | 2 ++ source/common/vec/pixel.inc | 24 ++++++++++++++++++++++-- 3 files changed, 25 insertions(+), 6 deletions(-) [f70b88137438] * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/primitives.h, source/common/vec/pixel.inc: optimize by convert16to32_shl --- source/Lib/TLibCommon/TComTrQuant.cpp | 17 ++++++++++++++--- source/common/primitives.h | 2 ++ source/common/vec/pixel.inc | 18 ++++++++++++++++++ 3 files changed, 34 insertions(+), 3 deletions(-) [525a8ad9e244] * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/primitives.h, source/common/vec/pixel.inc: optimize by convert32to16 --- source/Lib/TLibCommon/TComTrQuant.cpp | 5 +---- source/common/primitives.h | 2 ++ source/common/vec/pixel.inc | 19 +++++++++++++++++++ 3 files changed, 22 insertions(+), 4 deletions(-) [49856ba4303c] * source/Lib/TLibCommon/TComTrQuant.cpp: TComTrQuant::xT: replace for_loop by memcpy() --- source/Lib/TLibCommon/TComTrQuant.cpp | 15 ++++----------- 1 files changed, 4 insertions(+), 11 deletions(-) [060e49a8383d] * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/primitives.h, source/common/vec/pixel.inc: optimize by convert16to32 --- source/Lib/TLibCommon/TComTrQuant.cpp | 9 +++++---- source/common/primitives.h | 3 +++ source/common/vec/pixel.inc | 20 ++++++++++++++++++++ 3 files changed, 28 insertions(+), 4 deletions(-) [ec636f543969] * source/encoder/wavefront.cpp: thread: bits matches to HM when single thread --- source/encoder/wavefront.cpp | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-) [fa49682780e3] * source/common/vec/macroblock.inc: fix bug on VC9-x86 --- source/common/vec/macroblock.inc | 87 +++++++++++++++++++++++++------------ 1 files changed, 59 insertions(+), 28 deletions(-) [61dc8cf0acdd] 2013-05-31 Deepthi Devaki * source/Lib/TLibEncoder/TEncSearch.cpp: Fix for 8bpp & 16bpp output mismatch [ce4d663b31d7] 2013-05-31 ShinYee Chung * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: Disable set but not used variables (-Werror=unused-but- set-variable). [4c7879f51a14] * source/common/common.cpp: Common: Fix compile error -Werror=write-strings. [e73b996e121d] 2013-05-30 Steve Borho * source/common/vec/ipfilter8.inc: ipfilter: work around unaligned data copies generated by VC9 (from Min Chen) [05e0b5742adb] 2013-05-31 ShinYee Chung * source/x265.cpp: x265: Fix compile issue due to -Wwrite-strings and undeclared va_start() and va_end(). [4dfbf564c772] 2013-05-30 Steve Borho * source/test/mbdstharness.cpp: dequant: fix a test bench typo [c7b53fb8146d] * source/x265.cpp, source/x265opts.h: x265: make input/output bit depths function local to parse method, fix eoln [e7d3e278ba1c] * source/x265cfg.cpp: x265cfg: set default log level for x265-cli to "debug" [1dab28c7dbda] * source/x265.cpp: x265: add a CTRL+C handler [a8b7be978131] * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/encoder/encoder.cpp, source/x265enc.cpp: TEncGOP: show per-frame statistics at log level X265_LOG_DEBUG [be3ba8d41623] * source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/common/common.cpp, source/common/common.h, source/common/primitives.cpp, source/common/primitives.h, source/encoder/encoder.cpp, source/test/testbench.cpp, source/x265.cpp, source/x265.h, source/x265cfg.cpp, source/x265cfg.h, source/x265enc.cpp, source/x265opts.h: x265: use x265_log when initializing primitives and thread pool * removes thread pool pointer from CLI apps, encoders initialize it now * thread pool size validation moved to x265_check_params() [55c353b046a1] * source/common/common.cpp, source/x265.cpp, source/x265.h, source/x265opts.h: x265: introduce x265_param_t.logLevel, and x265_log() [cb9129046937] * source/x265.h: x265: fixup comment for iWaveFrontSynchro [7bb9d9960526] * source/x265.cpp, source/x265.h, source/x265opts.h: x265: introduce the concept of log levels [e7e934f1aed9] * source/x265.h: x265: prune unused bits of public header [d6c0d17e7c87] * source/Lib/TLibEncoder/TEncGOP.cpp, source/x265.cpp: x265: add x264 style progress reporting, kbps numbers differ from HM [8d9f188a7219] * source/common/threadpool.cpp, source/common/threadpool.h, source/x265.cpp: threadpool: report thread pool size, fix bug with CPU count auto- detect [dddd03cf7b26] * source/CMakeLists.txt: cmake: remove short-lived openmp compile flags [0a300add8bc5] 2013-05-30 ShinYee Chung * source/x265.cpp, source/x265cfg.cpp: Config: Force the threadpool to be single threaded when wavefront is disabled. [6b1b567da72c] * source/Lib/TLibEncoder/TEncSlice.cpp, source/encoder/CMakeLists.txt: WPP: Use the threadpool based wavefront parallel processing module. [00c1977b8709] * source/encoder/wavefront.cpp, source/encoder/wavefront.h: WPP: Module for wavefront parallelization using threadpool. [fe2556ffffff] * source/Lib/TLibEncoder/TEncTop.h: TLibEncoder: Add threadpool accessor to TEncTop. [2730479ce267] 2013-05-30 Steve Borho * source/encoder/motion.cpp: motion: fix a bug introduced in last commit [c853140e23c9] * source/encoder/motion.cpp: motion: two more SAD calls that were missed [b9e8e9d51890] * source/encoder/motion.cpp: motion: fix a missed raw call to a sad() primitive [08dd67222b97] * source/encoder/motion.cpp, source/encoder/motion.h: motion: minor cleanups, no behavior changes [6f32a8ba24b0] * source/encoder/motion.cpp: motion: else clause of primitive setup must always be compiled in This fixes some of the broken-ness when SUBSAMPLE_SAD is enabled [4d77283b0129] * source/encoder/motion.cpp, source/encoder/motion.h: motion: remove unused blockWidth and blockHeight [d7ec2b5e1519] * Merged in ggopu/gopu_xhevc (pull request #176) Motion: implemented subsampling SAD when the block height is greater than 12 [d67eed484a46] 2013-05-30 ggopu * source/encoder/motion.cpp, source/encoder/motion.h: Motion: implemented subsampling SAD when the block height is greater than 12 [7d87f713971f] 2013-05-30 Gopu G * Merged multicoreware/xhevc into default [29850cefbec9] 2013-05-29 Gopu G * source/encoder/motion.cpp: Merged multicoreware/xhevc into default [824c2ddca305] 2013-05-30 ggopu * source/encoder/motion.cpp: Conflict [edc303ed7859] 2013-05-29 ggopu * source/encoder/motion.cpp: Motion: raster search refinement - sad_x4 Implementation [d8ac001a7730] 2013-05-30 Steve Borho * source/common/primitives.cpp, source/common/primitives.h, source/common/x86/README.txt, source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm, source/common/x86/pixel.h, source/common/x86/x86inc.asm: asm: rebrand x264 assembly functions with x265_ to avoid static link collisions x265 compiles the routines with a different FENC_STRIDE, so they cannot have the same names as the x264 routines else x264 may break when linked together with x265 in the same application. [3b4597a6a66b] 2013-05-30 Deepthi * Merge [d0242a8f6c60] 2013-05-30 praveen Tiwari * Merged multicoreware/xhevc into default [2a5bfbaa64c1] 2013-05-30 praveentiwari * source/test/mbdstharness.cpp: Modified unit test [369944997be0] 2013-05-30 praveen Tiwari * Merged multicoreware/xhevc into default [f4a49e8bc939] 2013-05-30 praveentiwari * source/test/mbdstharness.cpp: More comprehensive unit test code for xDeQuant. [e7f272bfe95a] 2013-05-30 praveen Tiwari * Merged multicoreware/xhevc into default [4fe41d6eced6] 2013-05-29 praveentiwari * source/common/vec/macroblock.inc: Vector code for xDeQuant function [71119aff0eb0] 2013-05-29 praveen Tiwari * Merged multicoreware/xhevc into default [c94a23b37846] 2013-05-29 praveentiwari * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/macroblock.cpp: Shorten the variable names [32326bb746ae] 2013-05-29 praveen Tiwari * Merged multicoreware/xhevc into default [92fa5bc97c93] * Merged multicoreware/xhevc into default [d0a255af3f3b] 2013-05-29 praveentiwari * source/common/macroblock.cpp: C primitive for xDeQuant function [40b64d61b0ac] * source/test/mbdstharness.cpp, source/test/mbdstharness.h: Test code for xDeQuant [0f58120670fe] * source/common/primitives.h: Added function pointer typedef for xDeQuant in primitives.h file [f82cb9a78b0a] * source/Lib/TLibCommon/TComTrQuant.cpp: Added a switch and modified argument list for xDeQuant to break dependecy from other member variable and functions [28de65cc3e50] 2013-05-30 Deepthi * Merge [8c8f8d931100] * source/Lib/TLibEncoder/TEncSearch.cpp: RDO: new version for fast mode decision [e7ca54f292cb] 2013-05-30 Steve Borho * source/common/common.cpp: common: prevent a known-broken configuration (wpp+aqselect) [4c56f1b1c190] * source/x265opts.h: x265opts: disable --depth when compiled for 8bpp, make --wpp a boolean flag [f02a5ddfe1d4] * source/common/common.cpp: common: give log indication when FAST_MODE_DECISION has been compiled in [51cea626fc5c] * source/common/common.cpp: common: show rect and amp options when enabled [2b1b890ae098] * source/common/common.cpp: common: group transform skip options together [93cd37a94aa6] * source/CMakeLists.txt: cmake: give FAST_MODE_DECISION an accurate help message [57ac25324d49] 2013-05-30 Deepthi * cfg/encoder_I_15P.cfg, source/CMakeLists.txt, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/common.cpp: Merge [af2246ceeb2c] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: First cut version of using SAD costs. [4d681d6d86fe] * cfg/encoder_I_15P.cfg, source/common/common.cpp: Disabling rect and AMP search (for now) [06f36a6d94fc] 2013-05-29 Deepthi * source/CMakeLists.txt, source/Lib/TLibEncoder/TEncSearch.cpp: ME satd costs and bits captured. FAST_MODE_DECISION introduced. [27ac6d4a40fd] 2013-05-30 Steve Borho * source/common/common.cpp, source/common/common.h: common: add x265_mdate() and fix rdoq option names [7e10b0e4554f] 2013-05-29 Steve Borho * source/x265opts.h: x265: add "no-" options for boolean parameters, cleanup sao and hash options [6769ff6d6154] * source/x265.cpp: x265: add basic command line help [a48721370b31] * source/x265.cpp: x265: improve reporting of invalid or extra vars, allow "x265 input output" [fafeb6fb8d0c] * source/encoder/motion.cpp, source/encoder/motion.h: motion: introduce infrastructure for sub-sampled SAD When performing a motion search for a block taller than 12 pixels (16 or more) we want to use sub-sampled SAD, meaning we only measure every other row of the block. Normally one would do this by halving the number of rows and doubling the stride, and doubling the output SAD result but we have two caveats: 1 - our sad_x3 and sad_x4 primitives have hard-coded fenc strides (FENC_STRIDE) and thus we cannot subsample the fenc block by doubling stride. Instead we have to actually subsample the block and store it in a buffer with FENC_STRIDE, which I've done in this commit. Now fencSad will always point to a buffer with FENC_STRIDE, and if this->subsample == 1, the buffer is subsampled. 2 - since the SAD costs never leave this function, we do not have to shift up our sad results by one bit to account for the subsampling. The subpel refine step will remeasure with non-subsampled SATD and thus we don't care what the best SAD cost actually was (only that it was the best). The only place where we need to account for subsampling is in the SAD_THRESH macro. It must shift the sad cost up by this->subsample bits. Steps remaining (all to be done within #if SUBSAMPLE_SAD 1 - Replace fenc with fencSad for all sad(), sad_x3(), sad_x4() calls 2 - shift the luma stride by this->subsample for sad(), sad_x3() and sad_x4() 3 - shift up SAD cost by this->subsample for SAD_THREAD checks 4 - make sure all the changes from 1..3 have no effect on SATD calls 5 - test, we should see a small quality loss and an ME perf gain when enabled [3ea322fcdd7a] * source/CMakeLists.txt: gcc: add openmp flags for gcc and icl [7f14e6ca1bff] * source/Lib/TLibEncoder/TEncSlice.cpp: TEncSlice: disable allocation and usage of events if numThreads == 1 [300663bf0015] 2013-05-23 Min Chen * source/Lib/TLibEncoder/TEncSlice.cpp: thread: improvement performance based on replace iFinish by Event --- source/Lib/TLibEncoder/TEncSlice.cpp | 41 ++++++++++++++++++++++++++------- 1 files changed, 32 insertions(+), 9 deletions(-) [1f68ebfe1ae7] * source/CMakeLists.txt, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSlice.cpp: thread: the first worked version, turn on in WPP mode only [b67a18ce5c31] * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: thread: modify m_pcTrQuant to every thread, [BROKEN UseAdaptQpSelect] --- source/Lib/TLibCommon/TComSlice.h | 5 ----- source/Lib/TLibEncoder/TEncCu.cpp | 3 ++- source/Lib/TLibEncoder/TEncCu.h | 1 + source/Lib/TLibEncoder/TEncGOP.cpp | 23 +++++++++++++++-------- source/Lib/TLibEncoder/TEncSearch.cpp | 3 +-- source/Lib/TLibEncoder/TEncSearch.h | 2 +- source/Lib/TLibEncoder/TEncSlice.cpp | 22 +++++++++++++++++++--- source/Lib/TLibEncoder/TEncSlice.h | 2 +- source/Lib/TLibEncoder/TEncTop.cpp | 26 +++++++++++++------------- source/Lib/TLibEncoder/TEncTop.h | 4 ++-- 10 files changed, 55 insertions(+), 36 deletions(-) [d4a0ce886fae] 2013-05-29 Steve Borho * build/linux/batch.py: update batch.py to use x265.exe [45a9d983b45a] * source/x265.cpp: x265: destroy cliopt before checking for leaks (x265.exe now leak free) [492957758353] * source/encoder/encoder.cpp: encoder: destroy YUV buffers before deleting them [9131daa60c98] * source/encoder/encoder.cpp: encoder: properly release reconstructed image buffers at close [61d3fb60cb9e] * source/x265.cpp: x265: cleanup library statics before exit, prevent leak reports [908544e772b4] * source/encoder/encoder.h: encoder: preallocate room in NAL containers [932360bdc969] * source/encoder/encoder.cpp, source/encoder/encoder.h: encoder: write output packets directly into std::string buffer [80db68a1ea35] * source/encoder/motion.cpp: motion: check motion candidates even for star search [60b59cac3bc2] * source/encoder/motion.cpp: motion: use sad_x4 for raster search [f0cbf34f0845] 2013-05-29 Min Chen * source/encoder/encoder.cpp, source/x265.h, source/x265opts.h: x265: new option hash --- source/encoder/encoder.cpp | 2 +- source/x265.h | 3 +++ source/x265opts.h | 1 + 3 files changed, 5 insertions(+), 1 deletions(-) [d5e04469c1fc] * source/encoder/encoder.cpp, source/encoder/encoder.h: x265: fix bug in nal write --- source/encoder/encoder.cpp | 6 +++++- source/encoder/encoder.h | 1 + 2 files changed, 6 insertions(+), 1 deletions(-) [ae9452e370e7] 2013-05-29 Steve Borho * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/PPA/ppaCPUEvents.h: ppa: tweak PPA events to extract more useful detail about threading [3f33cdd7ff98] * source/x265.cpp: x265: fix integer argument parsing [c40e7dbe7f07] * source/Lib/TLibEncoder/TEncCu.cpp, source/PPA/ppaCPUEvents.h: TEncCu: add separate PPA event for xCalcRDCostIntra [ee68c82fc7c7] * source/Lib/TLibEncoder/TEncCu.cpp, source/PPA/ppa.h, source/PPA/ppaCPUEvents.h: TEncCU: allow PPA to show recursive depth to xCompressCU [f625550f4de7] * source/encoder/CMakeLists.txt: cmake: fix display of TLibEncoder headers [3e9e9412262b] * source/common/common.cpp, source/x265.cpp: common: improve the logging of configuration [cfde846ed6e4] 2013-05-28 Steve Borho * source/x265.cpp: x265: report total elapsed time [5b755da5e73a] 2013-05-29 Deepthi * Merge [d16847d13c67] * source/CMakeLists.txt, source/Lib/TLibEncoder/TEncCu.cpp: Early Partition Decision macro removed - the xCompressCU version has been commented out with a warning. [7bad155a07be] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: Cleanup - early exit [82f090c9a0f2] 2013-05-28 Deepthi * Merge [d876d9c5eecc] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: Early exit reloaded. [fcdedf954fbf] 2013-05-27 Deepthi * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: Adding CalcRDCostIntra [6de8c04a070d] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: Separating out analysis structure from mode decision [3a4b62a318bb] 2013-05-28 Steve Borho * source/encoder/motion.cpp: motion: hoist two-point early out out of function [f3c78bfe071d] * source/encoder/motion.cpp: motion: convert two-point search into a table lookup [3d4df6126d11] * source/common/common.h, source/encoder/encoder.cpp: Merge [60570eb6bff8] * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibEncoder/TEncAnalyze.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/common.h, source/encoder/encoder.cpp: common: cleanup cycle counter, disable by default [70ee52ecfdb5] * source/common/common.h, source/encoder/motion.cpp: motion: rename some macros, enable sad_x4 [fb67b234b11e] * source/encoder/encoder.cpp: encoder: use osstream.write() instead of << which appears to be zero terminated [ebb0c3ff732c] 2013-05-28 ggopu * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibEncoder/TEncAnalyze.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/common/common.h: Implemented the Cycle Count Calculation for Motion Estimation [2a0b3e881909] * source/common/common.h, source/encoder/motion.cpp: sad_x4 Implementation for Star Search [e0a1a4ed9ccc] 2013-05-27 Steve Borho * source/common/CMakeLists.txt, source/encoder/CMakeLists.txt: cmake: minor cleanups [4fd217fbf622] 2013-05-27 Min Chen * source/VectorClass/vectori128.h, source/common/CMakeLists.txt, source/encoder/CMakeLists.txt: Fix build problem --- source/VectorClass/vectori128.h | 2 +- source/common/CMakeLists.txt | 3 ++- source/encoder/CMakeLists.txt | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) [3ba1fae68c60] 2013-05-27 Steve Borho * source/x265.h: x265: fix eoln mangling [835abb6c24f9] 2013-05-27 praveentiwari * source/common/vec/macroblock.inc: .60x more performance gain for partailButterfly4 intrinsic version [3cd8e6c169f6] 2013-05-26 Deepthi * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: Adding CalcRDCostInter [a61257252105] 2013-05-25 Steve Borho * source/encoder/encoder.cpp, source/x265.cpp: x265: encoder_all_I.cfg output now matches x265 -i1 --sao 1 SAO was never disabled in the I frame config, so must be enabled to get the exact same bitstream [a581b097ad6e] * source/encoder/encoder.cpp: x265: I15P config now matches bit for bit with x265-cli [7bab890121d4] * source/Lib/TLibEncoder/TEncGOP.cpp, source/encoder/encoder.cpp, source/encoder/encoder.h: x265: resolve some bitstream differences between CLI apps [dee26a40d02a] * source/TestForChecking_BadCommit.bat, source/tools/TestForChecking_BadCommit.bat: move regression batch file into tools folder [8b15863c0013] * source/x265.cpp: nits [e32ccdc056a1] * source/encoder/encoder.cpp, source/x265.cpp: encoder: correct NAL counts and a few other issues Byte count difference between the two CLI programs is now 2 [2fe823ae463f] * source/encoder/encoder.cpp, source/encoder/encoder.h, source/x265.cpp: encoder: plausible NAL write routines [8fa3800a48e2] * source/x265.cpp: x265: enable NAL write functions [025d311ac08e] * source/Lib/TLibCommon/CommonDef.h, source/common/common.h, source/x265.cpp, source/x265main.cpp: x265: move NVM macros to common.h [e22bfa6b8f85] * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/TComSlice.h, source/x265.cpp, source/x265.h: x265: move NalUnitType from CommonDef.h to public x265.h [a2f0181eda8b] * source/CMakeLists.txt, source/input/yuv.cpp: x265: more warnings cleanups [79cab5bc3d95] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: add missing semi-colons after PPA macros [c5796290ba6e] * source/input/yuv.cpp: x265: more compiler warnings fixes [3478dcabae7b] * source/test/CMakeLists.txt: cmake: test benches only need common.lib [813159de8a6a] * source/input/y4m.cpp, source/input/y4m.h, source/x265.cpp: x265: fix compiler warnings that were accidentally hidden [068c2a7d55a1] * source/CMakeLists.txt, source/Lib/CMakeLists.txt, source/common/CMakeLists.txt, source/encoder/CMakeLists.txt, source/test/CMakeLists.txt: cmake: merge TLibCommon into common.lib, TLibEncoder into encoder.lib This fixes link issues with GCC, and clarifies the project relationships [46c9252f7dcb] * source/x265.cpp, source/x265opts.h: x265opt: add help strings to CLI help output [1dab9cd7ccf7] * source/x265opts.h: x265opt: more tuning of command line options [750c8127e6bc] * source/CMakeLists.txt: cmake: provide version number to x265.cpp [8693e88f6e7b] * source/common/primitives.cpp, source/encoder/encoder.cpp: move x265_cleanup into the encoder/ folder, fixes link references [678151ff4837] * source/Lib/CMakeLists.txt, source/encoder/CMakeLists.txt: cmake: split HM into TLibEncoder and TLibCommon [617b70bc5028] * source/CMakeLists.txt, source/common/CMakeLists.txt, source/common/IntraPred.cpp, source/common/TShortYUV.cpp, source/common/TShortYUV.h, source/common/butterfly.h, source/common/common.cpp, source/common/common.h, source/common/ipfilter.cpp, source/common/macroblock.cpp, source/common/md5.cpp, source/common/md5.h, source/common/pixel.cpp, source/common/primitives.cpp, source/common/primitives.h, source/common/threading.cpp, source/common/threading.h, source/common/threadpool.cpp, source/common/threadpool.h, source/common/vec/CMakeLists.txt, source/common/vec/avx.cpp, source/common/vec/avx2.cpp, source/common/vec/blockcopy.inc, source/common/vec/intrapred.inc, source/common/vec/ipfilter.inc, source/common/vec/ipfilter16.inc, source/common/vec/ipfilter8.inc, source/common/vec/macroblock.inc, source/common/vec/pixel.inc, source/common/vec/pixel16.inc, source/common/vec/pixel8.inc, source/common/vec/sse2.cpp, source/common/vec/sse3.cpp, source/common/vec/sse41.cpp, source/common/vec/sse42.cpp, source/common/vec/ssse3.cpp, source/common/vec/vec-primitives.cpp, source/common/vec/vecprimitives.inc, source/common/x86/CMakeLists.txt, source/common/x86/asm- primitives.cpp, source/common/x86/const-a.asm, source/common/x86/cpu-a.asm, source/common/x86/pixel-32.asm, source/common/x86/pixel-a.asm, source/common/x86/pixel.h, source/common/x86/sad-a.asm, source/common/x86/x86inc.asm, source/common/x86/x86util.asm, source/encoder/CMakeLists.txt, source/encoder/IntraPred.cpp, source/encoder/TShortYUV.cpp, source/encoder/TShortYUV.h, source/encoder/butterfly.h, source/encoder/common.cpp, source/encoder/common.h, source/encoder/ipfilter.cpp, source/encoder/macroblock.cpp, source/encoder/md5.cpp, source/encoder/md5.h, source/encoder/pixel.cpp, source/encoder/primitives.cpp, source/encoder/primitives.h, source/encoder/threading.cpp, source/encoder/threading.h, source/encoder/threadpool.cpp, source/encoder/threadpool.h, source/encoder/vec/CMakeLists.txt, source/encoder/vec/avx.cpp, source/encoder/vec/avx2.cpp, source/encoder/vec/blockcopy.inc, source/encoder/vec/intrapred.inc, source/encoder/vec/ipfilter.inc, source/encoder/vec/ipfilter16.inc, source/encoder/vec/ipfilter8.inc, source/encoder/vec/macroblock.inc, source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc, source/encoder/vec/pixel8.inc, source/encoder/vec/sse2.cpp, source/encoder/vec/sse3.cpp, source/encoder/vec/sse41.cpp, source/encoder/vec/sse42.cpp, source/encoder/vec/ssse3.cpp, source/encoder/vec/vec-primitives.cpp, source/encoder/vec/vecprimitives.inc, source/encoder/x86/CMakeLists.txt, source/encoder/x86/asm- primitives.cpp, source/encoder/x86/const-a.asm, source/encoder/x86/cpu-a.asm, source/encoder/x86/pixel-32.asm, source/encoder/x86/pixel-a.asm, source/encoder/x86/pixel.h, source/encoder/x86/sad-a.asm, source/encoder/x86/x86inc.asm, source/encoder/x86/x86util.asm, source/test/CMakeLists.txt: directory re-org, move primitives and infrastructure into common/ folder This encoder/common split is also how x264 has its code arranged. common - performance primitives, threading, low level features encoder - analysis, mode decision, cabac, high level features General rules: 1. Things we're replacing from TLibCommon/ go in common/ 2. Things we're replacing from TLibEncoder/ go in encoder/ [96baad4e5160] 2013-05-25 Deepthi * source/Lib/TLibEncoder/TEncCu.cpp: More if - I_slice checks removed [bcbed778915b] * source/Lib/TLibEncoder/TEncCu.cpp: Removing redundant if-I_slice checks [7dfef87f686f] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: A separate path for Intra Slice Analysis [9372c4dd1876] * source/Lib/TLibEncoder/TEncCu.cpp: POinters for each NxN partition [07982959ab7d] * source/Lib/TLibEncoder/TEncCu.cpp: This code snippet is baffling - no NxN partitions allowed at any level for inter-CUs. [5077b41e4dcc] * source/Lib/TLibEncoder/TEncCu.cpp: More PCM cleanup [4c23d8da41c3] * source/Lib/TLibEncoder/TEncCu.cpp: Removing PCM and AMP from EARLY_PARTITION. [996d036256a5] * source/Lib/TLibEncoder/TEncCu.cpp: Done experimenting - lets clean up and start afresh. [b831e30a39f1] * source/Lib/TLibEncoder/TEncCu.cpp: Merge [1275b8710950] * source/Lib/TLibEncoder/TEncCu.cpp: Bug fix for no EARLY_DECISION path. The difference between #ifndef and #if !! [fe1e15dc6eb1] 2013-05-24 Deepthi * source/Lib/TLibEncoder/TEncCu.cpp: Eliminating repetitive cost checks for 4 NxN partitions [472585bb237a] 2013-05-24 Steve Borho * source/encoder/encoder.cpp: encoder: correct the flush argument to TEncTop::encoder() [ea418dc405d4] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: use less horizontal space to print per-frame PSNR [f377a112c835] * source/encoder/encoder.cpp: encoder: reorder some lines, should have no effect [2729b04a27f3] * source/Lib/TLibEncoder/TEncGOP.cpp, source/PPA/ppaCPUEvents.h: ppa: add wrapping event for loop filters [3639ac6c84ed] * source/x265.cpp: x265: combine two log lines, remove bitstream filename (not relevant) [73c2c3b6bdd2] * source/encoder/common.cpp: common: change more defaults to match I15P [3462f6dfee4d] * source/encoder/encoder.cpp, source/encoder/encoder.h: encoder: pull in really ugly GOP intialization/validation code from TAppEncoder This all goes away once we have a proper lookahead [35f67ed1b8ce] * source/encoder/common.cpp: common: fixup default params [5e9aca57a444] * source/Lib/TLibEncoder/TEncTop.cpp: nits, no code change [a893a5ee88ab] * source/x265.cpp: x265: fix input file arg indexing [f01c09fd1370] 2013-05-25 ShinYee Chung * source/encoder/vec/intrapred.inc: intra: Fix compile warning for HIGH_BIT_DEPTH (-Werror=shadow). [480bc3934409] * source/encoder/vec/intrapred.inc: intra: Fix compile warning for HIGH_BIT_DEPTH (-Werror=unused-but- set-variable). [d5459b8da333] * source/encoder/vec/intrapred.inc: intra: Fix vector conversion errors. source/encoder/vec/intrapred.inc:570:66: error: conversion from ‘Vec128b’ to non-scalar type ‘Vec8s’ requested Vec8s v_topRow = load_partial(const_int(8), &pSrc[-srcStride]); // topRow ... [e63381924908] * source/x265.cpp: x265: Fix compile error due to undeclared strncmp function. [8b6c9566d28d] 2013-05-24 ShinYee Chung * source/encoder/motion.h: motion: Fix compile warning due to -Wparentheses. [ea85c7f907b9] 2013-05-23 ShinYee Chung * source/encoder/vec/intrapred.inc: intrapred: Fix compile warnings/errors due to -Wmaybe-uninitialized. [7984ca4e57fd] 2013-05-24 Steve Borho * source/x265.cpp: x265: more debugging [81f824e31a0d] * source/x265.cpp, source/x265opts.h: x265: more work on CLI options [3b6c4efdc154] * source/CMakeLists.txt, source/x265.cpp, source/x265opts.h: x265: add getopt() to new CLI app, tune short flags to match x264 [c140af14db48] * source/Lib/TLibEncoder/TEncCu.cpp: re-apply bug fix, there must have been a bad merge somewhere [d14951b6324a] * Merged in deepthidevaki/xhevc_deepthid (pull request #170) IntraPredAng 16x16 with all modes [813e9c90cbf6] 2013-05-24 Deepthi Devaki * source/encoder/vec/intrapred.inc: Merge [73316a3addc5] * source/encoder/vec/intrapred.inc: IntraPredAng 16x16 with all modes [9d91f3584db2] * source/VectorClass/vectori128.h: ForceInline few more functions in vectorclass [05870dbb3efb] * build/nmake/make-solutions.bat: Merge [2a6f287ceebe] * source/encoder/vec/intrapred.inc: IntraPredAng16x16 few modes, not getting called yet, shall be included on completion [4b10526cb3a0] 2013-05-24 nandaku2 * Merged in praveentiwari/xhevc_praveent (pull request #169) Added logic to avoid saturation in partialButterfly4 intrinsic version [e3ed785d727f] 2013-05-24 praveentiwari * source/encoder/vec/macroblock.inc: Added logic to avoid saturation in partialButterfly4 intrinsic version [81d852d7865b] * source/encoder/vec/macroblock.inc: Removed unused vectors from partialButterflyInverse32 code [afb8d92f66f4] * source/encoder/vec/macroblock.inc: Removed unused vectors from partialButterflyInverse16 [fabf29c2888a] * source/encoder/vec/macroblock.inc: Removed unused vectore from partialButterflyInvers8 code [1d2b3e54a4a4] * source/encoder/vec/macroblock.inc: optimized saturation mechanism in partialButterflyInvers16 vector version [19b0f38f6380] * source/encoder/vec/macroblock.inc: Removed unnecessary computation from partialButterflyInverse4 vector version [08b2688b6de9] * source/encoder/vec/macroblock.inc: changed saturation mechanism for partialButterflyInverse8 vector version [4d0cf1002390] 2013-05-24 Deepthi * Merge [f739e927e018] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: Storing NxN CU's at each depth [051ac8dfaff9] * source/Lib/TLibEncoder/TEncCu.cpp: Bug fix for m_NxNCU [84a82ca7c5a6] * source/Lib/TLibEncoder/TEncCu.cpp: More cleanup; Rmeoving CheckBestMode out of CheckInterCost [477d76b93842] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: Cleanup: Remove extra arguments from xCheckRDCostInter/Intra [4555cb1f1a2b] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: Adding data structures for NxN information [ef9f8f85c277] 2013-05-24 praveentiwari * source/encoder/vec/macroblock.inc: Changed packing mechanism for partialButterfly8 intrinsic version [a6f34ed51a4d] 2013-05-24 praveen Tiwari * Merged multicoreware/xhevc into default [f32272e3ca22] 2013-05-24 praveentiwari * source/encoder/vec/macroblock.inc: Removed unnecessary computation from partialButterflyInverse32 [c7ee802ee960] 2013-05-24 praveen Tiwari * Merged multicoreware/xhevc into default [b1d686c45089] * build/nmake/make-solutions.bat: Merged multicoreware/xhevc into default [fd0bbd1775d6] 2013-05-23 praveen Tiwari * Merged multicoreware/xhevc into default [526ab84ce55d] * Merged multicoreware/xhevc into default [f9fd6ba9f9bc] 2013-05-24 Deepthi Devaki * source/encoder/vec/intrapred.inc: Fixed build for HIGH_BIT_DEPTH enabled [ea8e87bacbcf] 2013-05-23 Steve Borho * source/encoder/motion.cpp: motion: fix star search's raster step tmv's loop range covers the entire search area. The search origin should not be added to it. [a3439ab05d47] * source/encoder/encoder.cpp, source/encoder/encoder.h: encoder: hard-code our simple P frame GOP structure It will be the default GOP structure, but "All I" can be selected simply by adding --keyint 1 option. Will add another option for all-B later. [04ce483efd92] * source/encoder/vec/CMakeLists.txt, source/encoder/vec/vec- primitives.cpp: cmake: prevent VC9 and VC10 from using SSE4, fixes aligned move crashes [8394398ddad3] * source/Lib/TLibCommon/TComPrediction.cpp: nit [dc7eea8b9b88] * source/encoder/vec/macroblock.inc: macroblock: do not use SSE4 intrinsics for lower instrset builds [7c65d9710ec4] * source/encoder/vec/ipfilter8.inc: ipfilter: use immediate load-partial, fixes VC9 x64 crashes [f66f0728d7e1] * source/encoder/vec/macroblock.inc: macroblock: do not use SSE4 intrinsics for lower instrset builds [3ea4514efde6] * source/Lib/TLibCommon/TComPrediction.cpp: TComPrediction: only allocate extY tmp buffer when necessary, use xMalloc [9894aed732d5] * build/nmake/make-solutions.bat: build: drop nmake script - was only a temp hack for ASM support [ce6d7bc7f18d] * source/Lib/TLibEncoder/TEncSearch.h: nit [cbf103758b5a] * source/x265.cpp: x265: inline the NAL write functions into CLIOptions [661d5db35d30] * source/x265.cpp: x265: include assert.h for VLD validation checks [9479fde37ee3] * source/encoder/motion.h: motion: manually enforce 16 byte alignment for fenc buffer [577747a625ff] 2013-05-23 Deepthi * source/encoder/vec/macroblock.inc: Merge [d749a9fe2c1c] * Merge [8686b9a4e74c] 2013-05-23 praveen Tiwari * Merged multicoreware/xhevc into default [d329a297cccd] 2013-05-23 praveentiwari * source/encoder/vec/macroblock.inc: Intrinsic code for partialButterflyInverse16 [824a8e9a6a6f] 2013-05-23 praveen Tiwari * Merged multicoreware/xhevc into default [6f04eef8255c] 2013-05-23 praveentiwari * source/encoder/vec/macroblock.inc: Intrinsic code for partialButterflyInverse8 [44529de64523] 2013-04-17 praveen Tiwari * source/encoder/vec/macroblock.inc: Merged multicoreware/xhevc into default [235de855d779] 2013-05-23 Deepthi Devaki * Merge [31c59ffe9c96] * source/encoder/vec/intrapred.inc: Improvement in Intra Angular 8x8 vector implementation [d6a113bf815b] 2013-05-23 Deepthi Devaki Akkoorath * Merged multicoreware/xhevc into default [bf29b1a40bca] 2013-05-23 Deepthi Devaki * source/VectorClass/vectori128.h: ForceInlined a few more functions in vectori128 [c7fe807725d5] * source/encoder/vec/intrapred.inc, source/test/intrapredharness.cpp: IntraPredAng 8x8 HIGH_BIT disabled - with special case implementation for 8 modes. [9ce6eb8b73ce] 2013-05-23 Deepthi * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: Defining lambda values for Check Best Mode [3f9b5f17bb56] 2013-05-23 Steve Borho * source/CMakeLists.txt, source/encoder/encoder.cpp, source/encoder/encoder.h, source/x265.cpp, source/x265.h: encoder: introduce new cli front-end, to eventually replace x265-cli cfg/*, x265main, x265cfg, and x265enc will all go away as soon as this works [92e3da6cc72d] 2013-05-23 Deepthi * Merge [18d3c0a322d2] * source/Lib/TLibCommon/TypeDef.h: Best value of lambda select set to 0.6 [96bb8955c43e] 2013-05-22 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: remove my comments from HM source, they were also wrong [06fa58c2176d] * source/encoder/motion.cpp: motion: better document search shapes [28fbc93455c6] * source/VectorClass/vectorclass.h, source/VectorClass/vectorf128.h, source/VectorClass/vectori128.h: vector: disable floating point vector classes, avoids GCC warnings, fix EOLN vecprimitives.inc:73:1: error: '__m128d selectd(const __m128d&, const __m128d&, const __m128d&)' conflicts with a previous declaration [eea2e5dbd441] * source/encoder/vec/intrapred.inc: intrapred: fix GCC warnings intrapred.inc:1340:45: error: conversion from 'Vec16c' to non-scalar type 'Vec16uc' intrapred.inc:1362:17: error: declaration of 'k' shadows a previous local [0d9eeff169b0] * source/encoder/vec/macroblock.inc: macroblock: fix GCC warnings again, perhaps line argument should be removed? macroblock.inc:562:9: error: statement has no effect [-Werror =unused-value] [d377908c3b23] * source/encoder/encoder.cpp, source/encoder/motion.cpp, source/encoder/motion.h, source/x265.h, source/x265cfg.cpp: motion: rename our adapted HM search to "STAR" [175b3e9e3fe8] * Merged in praveentiwari/xhevc_praveent (pull request #161) Intrinsic code for partialButterfly8 [c9c87ffc9b47] 2013-05-22 praveen Tiwari * Merged multicoreware/xhevc into default [0bb355ace86f] 2013-05-22 praveentiwari * source/encoder/vec/macroblock.inc: Intrinsic code for partialButterfly8 [bc4ff1668070] 2013-05-22 Steve Borho * Merged in deepthidevaki/xhevc_deepthid (pull request #160) IntraPredAngular 4x4 HIGH_BIT depth enabled [b322aca2f1da] 2013-05-22 Deepthi Devaki Akkoorath * Merged multicoreware/xhevc into default [ed34d6c8a225] 2013-05-22 Deepthi Devaki * source/Lib/TLibCommon/TComPrediction.cpp, source/encoder/IntraPred.cpp, source/encoder/primitives.h, source/encoder/vec/intrapred.inc, source/test/intrapredharness.cpp: IntraPredAngular 4x4 HIGH_BIT depth enabled [12eaf2159b3f] * source/encoder/vec/vecprimitives.inc: Fix back slash in #include [55094d80f04a] 2013-05-22 Deepthi Devaki Akkoorath * Merged multicoreware/xhevc into default [bd911514525a] 2013-05-21 Deepthi Devaki * Merge [8aa73d922542] * source/encoder/IntraPred.cpp, source/encoder/vec/intrapred.inc, source/encoder/vec/vecprimitives.inc, source/test/intrapredharness.cpp: xPredIntraAng 4x4 HIGH_BIT disabled [db8e242c4ad0] * source/VectorClass/vectori128.h, source/test/intrapredharness.cpp: Force inline functions in vectori128.h [5551a0eb5fbe] 2013-05-22 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/motion.cpp, source/encoder/motion.h: motion: use square pattern for subpel refinement [0d8765c5e054] * source/encoder/motion.cpp: motion: allow fpel star refinement if two point search finds new point [9b50900a78d4] 2013-05-22 ggopu * source/Lib/TLibEncoder/TEncSearch.cpp: Temporary fix to crash [0dbbe48f078d] 2013-05-22 Steve Borho * source/encoder/motion.cpp: motion: use COPY2_IF_LT in subpel refine, simplifies logic No behavior change [a1b974810f40] * source/encoder/motion.cpp: motion: if first subpel iteration found no improvement, skip later iters Should have no coding effect, but should help perf slightly. [32ee09f3e9b8] 2013-05-21 Steve Borho * source/encoder/motion.cpp: motion: only adjust subpel search center once per iteration Basing the offsets from BMV was allowing the search to wander away on less fruitful paths. Best to wait for all results to come in before moving the search center point. [c0134d7e756d] 2013-05-22 ShinYee Chung * source/encoder/encoder.h: Encoder: Fix enum accesses. [2e7af97e815e] * source/encoder/motion.cpp: motion: Fix compile warning/error due to shadow variable in COST_MV macro. [d2ff2006533f] * source/Lib/TLibEncoder/TEncTop.cpp: TLibEncoder: Fix compile error due to undeclared INT_MAX. [53b7e60badcb] 2013-05-21 Steve Borho * source/encoder/common.cpp, source/encoder/encoder.cpp, source/x265.h, source/x265cfg.cpp, source/x265cfg.h, source/x265enc.cpp: api: further trim x265_param_t, remove PCM and rate control and other bits We will add these back later as we optimize and/or adapt these features [26d354b832d2] * source/encoder/common.cpp, source/encoder/encoder.cpp, source/x265cfg.cpp: encoder: plumb in a parse function [2ac0b485815b] * source/Lib/TLibEncoder/TEncCfg.h: TEncCfg: white-space nit [38a2194f7420] * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/encoder/encoder.cpp, source/x265enc.cpp: encoder: simply encode() function signature, auto-detect frames to be encoded [084aaa5e85cc] * source/Lib/TLibEncoder/TEncTop.cpp: TEncTop: simplify destroy method slightly [2af1b2f39aa0] 2013-05-21 Min Chen * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: cleanup: remove unused pointer from TEncCu From 28a48831f9571ff030574c4e28c75e4afc8105f3 Mon Sep 17 00:00:00 2001 --- source/Lib/TLibEncoder/TEncCu.cpp | 3 --- source/Lib/TLibEncoder/TEncCu.h | 3 --- 2 files changed, 0 insertions(+), 6 deletions(-) [c0f39e04c429] 2013-05-20 Min Chen * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: thread: [BITS CHANGED] split m_pcRDGoOnSbacCoder into own thread --- source/Lib/TLibEncoder/TEncCu.cpp | 3 ++- source/Lib/TLibEncoder/TEncCu.h | 2 +- source/Lib/TLibEncoder/TEncGOP.cpp | 4 ++-- source/Lib/TLibEncoder/TEncSearch.h | 2 +- source/Lib/TLibEncoder/TEncSlice.cpp | 7 ++++--- source/Lib/TLibEncoder/TEncSlice.h | 2 +- source/Lib/TLibEncoder/TEncTop.cpp | 6 +++--- source/Lib/TLibEncoder/TEncTop.h | 4 ++-- 8 files changed, 16 insertions(+), 14 deletions(-) [695f62044e15] 2013-05-21 Steve Borho * source/encoder/encoder.cpp, source/encoder/encoder.h: encoder: remove some includes only used by new main [e076db6b561e] * source/Lib/TLibEncoder/TEncTop.cpp: TEncTop: call destroy() on CU encoders before deleting them HM class destructors do not necessarily free memory. This fixes some large leaks. [c645bcc7795c] * source/Lib/TLibEncoder/TEncCfg.h, source/encoder/encoder.cpp, source/x265enc.cpp: cruft: remove setFrameSkip/getFrameSkip() from TencCfg The encoder should be unaware of file I/O properties. setFramesToBeEncoded() should also be removed, but the encoder needs the last frame number in order to handle edge cases at the end of the encode. [c19a3ca7761d] * source/encoder/encoder.h: encoder: remove obsolete cruft, assign default level and profile [efccf29f74ef] * source/encoder/encoder.cpp, source/encoder/encoder.h: encoder: improve defaults to match current behavior, simplify [0d7c1810b154] * source/x265cfg.cpp: more nits [3ec9dcc432cf] * source/encoder/vec/macroblock.inc: macroblock: tabs to spaces [398786d7e65a] * source/encoder/vec/macroblock.inc: Merged in praveentiwari/xhevc_praveent (pull request #159) Intrinsic code for partialButterflyInverse4 [4a43a67aab95] 2013-05-21 praveentiwari * source/encoder/vec/macroblock.inc: Intrinsic code for partialButterflyInverse4 [8a115d37a05a] * source/CMakeLists.txt, source/encoder/vec/macroblock.inc, source/test/filterharness.cpp, source/test/mbdstharness.cpp, source/test/testbench.cpp: Backed out changeset: 6a5d35fd39fb [ff8e92d7c095] * source/CMakeLists.txt, source/encoder/vec/macroblock.inc, source/test/filterharness.cpp, source/test/mbdstharness.cpp, source/test/testbench.cpp: Intrinsic code for partialButterflyInverse4 [6a5d35fd39fb] 2013-05-21 Steve Borho * source/encoder/motion.cpp: motion: do not check candidate MVs for HM style search No compelling reason for this, except to help debug differences [21098423e1aa] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: disable SAD subsampling while we debug ME It's not clear we ever want to turn this back on, at least before we've added subsampling to x265 ME [b05a30649d2e] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: give the real MVP to x265 ME, not just zero This is the bug that has been preventing UMH from working as designed DIA: 461.0320 31.4553 36.0712 36.1111 HEX: 457.8880 31.4728 36.0830 36.1282 UMH: 457.3520 31.4723 36.1079 36.1460 HM: 458.6560 31.4827 36.1382 36.1273 ORIG: 456.0960 31.5091 36.1377 36.1228 Our HM version still has a bug; need to find it [d011d9380876] * source/encoder/motion.cpp: motion: use MV 0 prediction as search start if cheaper than MVP [5957dfe39429] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: use actual enum for selecting x265 ME routine [94edee85036a] * source/encoder/motion.cpp: motion: remove hard-coded mode selection [d96750bcb143] * source/encoder/motion.cpp, source/encoder/motion.h: motion: fix bugs in my changes, add relevant comments for future work [88caee6ef7c3] * source/encoder/motion.cpp, source/encoder/motion.h, source/encoder/mv.h: motion: simplify HM search method code [b58f7f60ae7c] * source/encoder/common.cpp, source/x265.h: api: add original HM search as valid configurable option [4a4f55e067b9] * Merged in ggopu/ggopu_xhevc (pull request #158) Implemented the HM ME to Motion.cpp [3301bc78e1ce] 2013-05-21 ggopu * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/motion.cpp, source/encoder/motion.h, source/encoder/mv.h: Implemented the HM ME to Motion.cpp [e2e81e4f914c] * source/Lib/TLibEncoder/TEncSearch.cpp: Merge [f13d5c93b30e] * source/encoder/motion.cpp, source/encoder/motion.h, source/encoder/mv.h: Implemented HM ME to Motion.cpp [453365fdf903] 2013-05-21 Steve Borho * source/encoder/encoder.cpp: encoder: fix another shadowed variable warning [5ad7c41ac970] * source/encoder/CMakeLists.txt, source/encoder/encoder.cpp: encoder: fix GCC compiler warnings [b515463b42cd] * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/common.cpp, source/encoder/encoder.cpp, source/x265.h, source/x265cfg.cpp, source/x265enc.cpp: api: rename enableAMPRefine to useRectInter This configurable was mis-named. It has nothing to do with AMP, it is disabling the use of rectangular inter prediction modes (which has the side-effect of also disabling AMP since AMP is not checked if the rectangular mode of similar shape was not checked). This configurable should never have been in TComSlice since the flag is not signaled in the slice header like AMP activation is. [ab23a9399bcb] * source/encoder/vec/macroblock.inc: macroblock: fix GCC compiler warning macroblock.inc: In function 'void {anonymous}::partialButterfly4(short int*, short int*, int, int)': macroblock.inc:1326:12: error: parameter 'line' set but not used [-Werror=unused-but-set-parameter] [587dd16e4001] 2013-05-21 praveen Tiwari * Merged multicoreware/xhevc into default [5d2edf07bd81] 2013-05-21 praveentiwari * source/Lib/TLibCommon/TComTrQuant.cpp, source/encoder/vec/macroblock.inc: Fixed alignment issue for partialButterfly32 [8e42a9907241] 2013-05-21 praveen Tiwari * Merged multicoreware/xhevc into default [f89ac88ad652] 2013-05-21 praveentiwari * source/encoder/vec/macroblock.inc: Fixed encoder crash for partialButterfly32 [c175df4a600f] * source/encoder/vec/macroblock.inc: Code cleanup for partialButterfly4 [f110e2eac973] 2013-05-21 https://mandarmcw * source/TestForChecking_BadCommit.bat: Test script to find bad commit [55fd15776acf] 2013-05-21 Steve Borho * source/encoder/CMakeLists.txt, source/encoder/encoder.cpp, source/encoder/encoder.h: api: new encoder class and main function [b4b06a6e89cd] * source/encoder/common.cpp, source/x265cfg.cpp: api: use new methods to validate and print public params (CHANGES LOGGING) This changes the look of the output log, but should not change any output bits [6cb27c8e9011] * source/encoder/common.cpp, source/encoder/common.h: common: add new methods for validating and printing the public params [3f0ece48b1f7] * source/x265.h, source/x265cfg.cpp: api: make iMaxCuDQPDepth a uint32_t, like the other depth settings [e8acc21708cb] 2013-05-20 Steve Borho * source/x265cfg.cpp: fix HIGH_BIT_DEPTH=1 build [6d47f9979e5c] * source/Lib/TLibCommon/ContextModel3DBuffer.h, source/Lib/TLibCommon/TComPrediction.cpp: minor nit fixes, no behavior changes [17d10d96b071] * source/encoder/common.cpp, source/x265.h, source/x265cfg.cpp, source/x265enc.cpp: api: remove m_ prefix from x265_param_t data members [bb2c9bc68a9e] 2013-05-21 ShinYee Chung * source/encoder/vec/macroblock.inc: Vec: Fix compile warnings/errors due to unused typedef. [d062def382de] 2013-05-20 Steve Borho * source/x265cfg.cpp: cfg: simplify log header a bit [06f883384489] * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg, source/encoder/common.cpp, source/x265.h, source/x265cfg.cpp, source/x265enc.cpp: cfg: replace MaxCUWidth, MaxCUHeight with single MaxCUSize [fe13c968c8c1] * source/x265cfg.cpp: x265cfg: remove redundant ME name array, white-space cleanups [8f33ed829287] * source/x265cfg.cpp: x265cfg: move the default output filename to a better location [5bd50e2c6ad3] * source/encoder/bitcost.cpp, source/encoder/bitcost.h: bitcost: match BitCost::bitcost() to TComRdCost:getCost() [CHANGES OUTPUTS] The HM counts MVD bits in integer, while we were using log2n() and keeping floats. Our MV costs were smoother across the range of MV's but this is a false accuracy. Encoding cost is rounded to nearest bit. This change improves compression efficiency. [bcf310907041] * source/x265main.cpp: main: minor nit cleanups [596328140dfc] * source/encoder/vec/macroblock.inc, source/x265.h: fix GCC compile warnings [4d682b12d184] 2013-05-20 praveentiwari * source/encoder/vec/macroblock.inc: 32bit build issue fix for partialButterfly4 intrinsic function. Further optimisation. [e90a68b8cdd8] 2013-05-20 sumalatha * source/tools/performanceProfiler/Profiler.bat, source/tools/performanceProfiler/Readme.txt, source/tools/performanceProfiler/config.txt, source/tools/performanceProfiler/performanceProfiler.bat: modified the scripts files to take the application's(.exe) from the relative path to the curent directory [215c0e0beda0] 2013-05-20 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: use x265's optimized bitcost() method for xCheckBestMVP Minor performance improvement [36642a6ac4c6] 2013-05-20 Deepthi Devaki * source/Lib/TLibCommon/TComPrediction.cpp: Fix for compilation error in HIGH_BIT_DEPTH enabled [e1ce48613e7f] 2013-05-19 Steve Borho * source/encoder/common.cpp, source/x265.h, source/x265cfg.cpp, source/x265cfg.h: api: further work triming x265_param_t and implementing public API [42d2f5b65c7c] * source/x265cfg.cpp: x265cfg: white-space nits [0ba7cbf85049] * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/encoder/common.cpp, source/input/input.h, source/input/y4m.cpp, source/input/y4m.h, source/input/yuv.cpp, source/input/yuv.h, source/output/output.h, source/output/y4m.cpp, source/output/y4m.h, source/output/yuv.cpp, source/output/yuv.h, source/x265.h, source/x265cfg.h, source/x265enc.cpp: api: rename some public structures to follow x264 style, hide some params If I have no idea how a param is configured or used, I removed it from the public data structure. [c8f27268f3c1] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: fix comments in xTZ8PointDiamondSearch Removes one extraneaous if() level by chaining together if() else if() else [ff379e5854bf] * source/encoder/motion.cpp: Backout 1545:eaaa4edde516 (tested worse in regression suite) [2fbe276bd35f] * source/encoder/motion.cpp: motion: fix GCC shadow variable warning (tmv is used inside COST_MV) [27b17a18367d] * source/encoder/motion.cpp: motion: start fpel search at best predictor HM and x264 both do this, but has uncertain results. Will test in regression suite with more videos [eaaa4edde516] * source/encoder/motion.cpp: motion: use roundToFPel() when converting clipped MVP to fpel x264 does this, and it seems to help compression slightly. [63af725da724] * source/encoder/motion.cpp, source/encoder/mv.h: motion: only remeasure bmv at fpel if pmv had subpel fractions [d465b6f04260] * source/encoder/motion.cpp: motion: remove omv=bmv assignment that x264 UMH does not do [e343fdb42a15] * source/encoder/motion.cpp: motion: avoid rechecking bestpre [2b88c1e2bc08] * source/encoder/motion.cpp: motion: improve UMH comments, add a TODO for further analysis [fd94f23e7828] * source/encoder/motion.cpp: motion: do not check candidates equal to MVP, clarify prep code [253d81c1a1e5] * source/encoder/motion.cpp: motion: move warning disable to top of file [21ae49204eb1] * source/encoder/motion.cpp: motion: use x265.h enums for motion search methods [ae6e0fbfabab] * source/encoder/motion.cpp: motion: nits [96a835f01afa] * source/encoder/motion.cpp, source/encoder/mv.h: mv: explicit notZero() method [dce5c8184afc] 2013-05-19 Min Chen * source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: thread: modify m_pcCuEncoder to every thread --- source/Lib/TLibEncoder/TEncSlice.cpp | 22 +++++++++++----------- source/Lib/TLibEncoder/TEncSlice.h | 4 ++-- source/Lib/TLibEncoder/TEncTop.cpp | 8 +++++--- source/Lib/TLibEncoder/TEncTop.h | 4 ++-- 4 files changed, 20 insertions(+), 18 deletions(-) [8448f800200b] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: thread: modify m_pcPredSearch to every thread --- source/Lib/TLibEncoder/TEncCu.cpp | 2 +- source/Lib/TLibEncoder/TEncCu.h | 2 ++ source/Lib/TLibEncoder/TEncSearch.cpp | 6 ++---- source/Lib/TLibEncoder/TEncSearch.h | 2 -- source/Lib/TLibEncoder/TEncSlice.cpp | 10 ++++++++-- source/Lib/TLibEncoder/TEncSlice.h | 2 +- source/Lib/TLibEncoder/TEncTop.cpp | 8 +++++++- source/Lib/TLibEncoder/TEncTop.h | 7 +++++-- 8 files changed, 26 insertions(+), 13 deletions(-) [74d3dbbf08fc] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: thread: modify m_pcEntropyCoder and fix bug in HM when WPP --- source/Lib/TLibEncoder/TEncCu.cpp | 3 +- source/Lib/TLibEncoder/TEncCu.h | 1 + source/Lib/TLibEncoder/TEncGOP.cpp | 122 +++++++++++++++++----------------- source/Lib/TLibEncoder/TEncGOP.h | 2 +- source/Lib/TLibEncoder/TEncSearch.h | 2 + source/Lib/TLibEncoder/TEncSlice.cpp | 39 +++++++----- source/Lib/TLibEncoder/TEncSlice.h | 2 +- source/Lib/TLibEncoder/TEncTop.cpp | 6 ++- source/Lib/TLibEncoder/TEncTop.h | 5 +- 9 files changed, 98 insertions(+), 84 deletions(-) [079de58deffd] 2013-05-19 Steve Borho * source/encoder/motion.cpp: motion: do two subpel iterations for hpel and qpel This will find corner vectors, where previous simple DIA did not. This catches us up quite a bit: DIA: 467.8400 31.3870 36.0379 36.0973 HEX: 466.5200 31.3955 36.0604 36.1248 UMH: 463.1120 31.4415 36.1199 36.1584 HM: 456.4880 31.4984 36.1100 36.1101 [bbb7982882ba] 2013-05-18 Steve Borho * source/encoder/motion.cpp: motion: use ints for temp vars Using sub-word integers is usually a perf loss, and opens you up to wierd overflow bugs. [4db7ec5efb78] * source/encoder/motion.cpp: motion: minor cleanups, no effects [ebf5fd8f484d] * source/encoder/motion.cpp, source/encoder/mv.h: motion: convert hex4 to MV, use tmv for checkRange within hex grid loop x264 checks tmv there (mv being tested), not bmv (current best mv) [1bb2e323b6fb] 2013-05-18 Min Chen * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: thread: [NEED VERIFY] modify logic and remove unused code for m_pppcRDSbacCoder Conflicts: source/Lib/TLibEncoder/TEncTop.cpp --- source/Lib/TLibEncoder/TEncCu.cpp | 5 +++- source/Lib/TLibEncoder/TEncCu.h | 1 + source/Lib/TLibEncoder/TEncGOP.cpp | 3 +- source/Lib/TLibEncoder/TEncSearch.h | 1 + source/Lib/TLibEncoder/TEncSlice.cpp | 9 ++---- source/Lib/TLibEncoder/TEncSlice.h | 1 - source/Lib/TLibEncoder/TEncTop.cpp | 46 +++------------------------------ source/Lib/TLibEncoder/TEncTop.h | 6 +--- 8 files changed, 17 insertions(+), 55 deletions(-) [4817a9ff9832] 2013-05-18 Steve Borho * source/encoder/motion.cpp: motion: adapt "full MB size" check to HEVC CTU This had no measurable effect, but seemed more correct [d5f187bb6d44] * source/encoder/motion.cpp: motion: fix arguments to CROSS macro in UMH [b5947f8c979e] * source/encoder/motion.cpp: motion: remove SIMPLE_HEX, the outputs are now the same [0304c492eb5d] * source/encoder/x86/x86util.asm: asm: fix FENC_STRIDE to HEVC size [b333105c3ae1] * source/encoder/motion.cpp: motion: remove BITS_MVD again (was resurrected during a merge) [cb15920370ca] * source/encoder/motion.cpp: motion: enable SIMPLE_HEX by default, until the "fast" path is debugged [b243347757d4] 2013-05-18 Min Chen * source/Lib/TLibEncoder/TEncSlice.cpp: thread: avoid reference to m_pppcRDSbacCoder[0][CI_CURR_BEST] --- source/Lib/TLibEncoder/TEncSlice.cpp | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) [afb15c17b9c0] * source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h: thread: remove unused code for m_pcBufferBinCoderCABACs --- source/Lib/TLibEncoder/TEncSlice.cpp | 12 ++---------- source/Lib/TLibEncoder/TEncSlice.h | 1 - 2 files changed, 2 insertions(+), 11 deletions(-) [9a0a53b12609] * source/Lib/TLibEncoder/TEncSlice.cpp: thread: move pppcRDSbacCoder into loop --- source/Lib/TLibEncoder/TEncSlice.cpp | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) [9bf8a39b1801] * source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h: cleanup: remove unused code for pcBufferLowLatSbacCoders --- source/Lib/TLibEncoder/TEncSlice.cpp | 15 --------------- source/Lib/TLibEncoder/TEncSlice.h | 2 -- 2 files changed, 0 insertions(+), 17 deletions(-) [798cdd336099] * source/Lib/TLibEncoder/TEncCu.cpp: cleanup: remove unused code --- source/Lib/TLibEncoder/TEncCu.cpp | 17 ----------------- 1 files changed, 0 insertions(+), 17 deletions(-) [659df28d9850] 2013-05-18 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: remove m_fencbuf and SAD primitive use from HM ME This fixes BIDIR and weighted P prediction [76c5cc558878] * cfg/encoder_all_I.cfg: encoder_all_I: nit cleanups [103828d5f1b0] * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/motion.cpp, source/encoder/motion.h, source/x265.h, source/x265cfg.cpp, source/x265enc.cpp: replace FastSearch configurable with motion search method [b24d4f0d8a6e] * source/encoder/vec/macroblock.inc: macroblock: disable partialButterfly4, it is failing in the testbench [c407651a52a4] * source/encoder/motion.cpp: Merge [29b3933dcf27] * source/Lib/TLibCommon/TComDataCU.cpp: TComDataCU: fix GCC compile warnings [0ee4ca22aa1f] * source/encoder/motion.cpp: motion: fix GCC compile warnings [7260a1fdc7a7] * source/encoder/IntraPred.cpp: intrapred: fix include path again [701bc030c157] * source/encoder/IntraPred.cpp, source/encoder/primitives.h: IntraPred: do not use pointer reference 1 - this is a C++ only construct, and would make ASM opts very difficult 2 - the pointer value being passed was a temp rvalue, not modifiable [c4459134a244] 2013-05-18 Deepthi * source/encoder/vec/macroblock.inc: Disabling 4 and 32 butterfly intrinsic implementations [83b3c02ec36a] * source/Lib/TLibCommon/TComPrediction.cpp: Remove xPredIntraAngRefBuf from HM - they are now part of x265::primitives [4bb8150df674] * source/Lib/TLibEncoder/TEncSearch.cpp: Merge [393536c14d6f] 2013-05-17 Deepthi Devaki Akkoorath * Merged multicoreware/xhevc into default [33bb25b0bf5f] 2013-05-16 Deepthi Devaki * Merge [6f0ad2ce8510] * source/Lib/TLibCommon/TComPrediction.cpp, source/encoder/IntraPred.cpp, source/encoder/primitives.h, source/test/intrapredharness.cpp, source/test/intrapredharness.h: Unit test for Intra Angular primitives [bd9bc0bc3759] 2013-05-16 Deepthi Devaki Akkoorath * Merged multicoreware/xhevc into default [8e9356e3cf6e] 2013-05-16 Deepthi Devaki * Merge [b48ae2baa364] * source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibEncoder/TEncSearch.cpp: Redesigned intraprediction for angular modes to use buffered references [048211fdc5f0] 2013-05-18 Steve Borho * source/encoder/motion.cpp: motion: make UMH the default (this needs to be a param) [d8c379d73e86] * source/encoder/motion.cpp: motion: make "optimized" HEX the default now [bc7cae4f28e8] * source/encoder/motion.cpp: motion: remove unused BITS_MVD macro [cf973ab501ae] * source/encoder/motion.cpp: motion: measure MV cost in qpel in COST_MV [fbdfdd9f710d] 2013-05-17 Steve Borho * source/encoder/motion.cpp: motion: simplify COST_MV_X4 [5850f4fb7e1e] * source/encoder/motion.cpp: motion: add range check for subpel refine [e8c864e6301e] * source/encoder/motion.cpp: motion: cleanup hex and square offset arrays [1c8d80939de3] * source/encoder/motion.cpp: motion: add default case to switch statement [b46bc231b6a1] * source/encoder/motion.cpp: motion: make HEX the default for the moment [d15f3b52a98c] * source/encoder/mv.h: mv: add a helpful comment [346ce779ff9a] * source/encoder/motion.cpp: motion: fix obvious bug in COST_MV(). HEX mode now looks ok This is a quality/perf progression you would expect for DIA and HEX Kbps Y PSNR U PSNR V PSNR elapsed time DIA: 499.9280 31.1502 35.8939 35.9815 27sec HEX: 474.3600 31.3310 36.0312 36.1283 28sec HM: 456.4880 31.4984 36.1100 36.1101 30sec UMH is worse than HEX, better than DIA. Which means there are still bugs. UMH: 481.9600 31.2575 36.0621 36.0658 28sec The "optimized" HEX path is also broken (worse numbers than these) [3179771dfccc] * source/encoder/motion.cpp: motion: add descriptive #if 0 from x264 It is useful because it is a simpler version of hex that can be more easily debugged, and the later version should match the outputs [96d7eed717e0] * source/encoder/motion.cpp: motion: white-space nit, no code change [cf80adc4e35c] * source/encoder/motion.cpp: motion: remove redundant code [3ec960515133] * source/encoder/motion.cpp: motion: just a single stride var is necessary [6de0d4f2f5a9] * source/encoder/motion.cpp: motion: use bmv.checkRange() [04923c4dc22a] * source/encoder/motion.cpp: motion: take advantage of MV union [55427f2a6fbc] * source/encoder/motion.cpp: motion: include assert.h [7e83eb3c796e] * source/encoder/motion.cpp: motion: use MV copy constructor some more [08c0e5f843e7] * source/encoder/motion.cpp: motion: HEVC does not have 4x4 inter partitions [fd313e990e4b] * source/encoder/motion.cpp: motion: pmv needs to be a full-pel motion vector [d7cd89c7d662] * source/encoder/motion.cpp: motion: use MV copy constructor [494e1c059f10] * source/encoder/motion.cpp: motion: remove dup variable i_me_range [8e5588e6b2a7] * source/encoder/motion.cpp: motion: cleanup [e2727ec025ac] * source/encoder/motion.cpp: motion: remove unnecessary dup variables [01ee1bc52dea] * source/encoder/motion.cpp, source/encoder/motion.h: motion: save the partition enum for the current PU [ae2c9e4d80fe] * source/encoder/motion.cpp: motion: turn size_scale the right way around [962787f0f8a3] * source/encoder/motion.cpp: motion: remove cruft [fb19468bde57] * source/encoder/motion.cpp: motion: fix obvious bug in x265_predictor_difference [5290730cc3b2] * source/encoder/motion.cpp: cleanups, no behavior change [98b7107debdf] * source/encoder/common.cpp, source/encoder/common.h, source/encoder/motion.cpp: motion: move common macros to common.h [6e0a819ee02b] * source/encoder/motion.cpp, source/encoder/vec/macroblock.inc, source/x265cfg.cpp: fix GCC compilation warnings [807d04c7511c] * Merged in sumalatha/xhevc_sumalatha (pull request #148) fix for decoder crash in xcompresscu() [early_abort optimization] [28523f0f4149] 2013-05-17 sumalatha * source/Lib/TLibEncoder/TEncCu.cpp: fix for removing the decoder crash in xcompressCU() - early partition optimization [0122fe9ae44c] 2013-05-17 Sumalatha Polureddy * build/dr_psnr_script/TAppDecoder.exe, build/dr_psnr_script/psnr_script.bat, source/Lib/TLibEncoder/TEncCu.cpp: Merged multicoreware/xhevc into default [ee89354b0898] 2013-05-17 sumalatha * source/Lib/TLibEncoder/TEncCu.cpp: Backed out changeset: 78976eb7f3fa [0ad65cd9d7b4] * source/Lib/TLibEncoder/TEncCu.cpp: fix for decoder crash in xcompresscu() {early_abort optimization] [78976eb7f3fa] 2013-05-17 Steve Borho * source/encoder/vec/macroblock.inc: partialButterfly4 does not compile on 32bit x86 _mm_cvtsi64_si128 does not exist on 32bit systems [608559903526] 2013-05-17 praveen Tiwari * build/dr_psnr_script/TAppDecoder.exe, build/dr_psnr_script/psnr_script.bat: Merged multicoreware/xhevc into default [a501a1c26fd9] 2013-05-17 praveentiwari * source/encoder/vec/macroblock.inc: intrinsic code for partialButterfly32 [d14c341119ff] 2013-05-17 Deepthi * .hgignore, build/dr_psnr_script/TAppDecoder.exe, build/dr_psnr_script/psnr_script.bat, source/tools/HM decoder/TAppDecoder.exe: Relocating HM decoder to tools. Removing build/dr_psnr_script [71005e0c4e43] * Merge [c5c192a1e47f] 2013-05-17 Sumalatha Polureddy * Merged multicoreware/xhevc into default [8718c6433394] 2013-05-17 sumalatha * source/tools/performanceProfiler/Profiler.bat, source/tools/performanceProfiler/Readme.txt, source/tools/performanceProfiler/config.txt, source/tools/performanceProfiler/performanceProfiler.bat: Modified the testing scripts for running both yuv files and y4m files also [d37656a0c5ca] 2013-05-17 Deepthi * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCu.cpp: More refinement of early abort conditions [67bf72b8a743] * Merge [9e411b77d861] * source/Lib/TLibEncoder/TEncCu.cpp: refining early abort [404f0e8cd3e6] * source/Lib/TLibEncoder/TEncCu.cpp: fixing the decoder crash [539b0fbd82fe] * source/Lib/TLibEncoder/TEncCu.cpp: remove PCM for now [519dd09ead40] * source/Lib/TLibEncoder/TEncCu.cpp: Remove AMP for now from EARLY_ABORT mode decision [53ace900d5ba] 2013-05-17 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/motion.cpp: TEncSearch: pass neighbor MVs to motionEstimate (UMH seems to require them) [a0e0b589aa92] 2013-05-17 ggopu * source/encoder/motion.cpp: Motion Estimation : UMH implementation stage 1 [94746841ea03] 2013-05-16 Gopu G * Merged multicoreware/xhevc into default [526f1f214b82] * Merged multicoreware/xhevc into default [197dcdbb270f] 2013-05-14 Gopu G * source/test/timer.cpp: Merged multicoreware/xhevc into default [dde8e0582a9b] 2013-05-13 Gopu G * Merged multicoreware/xhevc into default [2b1a79979ce5] 2013-05-13 ggopu * source/encoder/motion.cpp: Motion Estimation : UMH implementation stage 1 [a599997fbd20] 2013-05-16 Steve Borho * source/x265main.cpp: vld: add assert for zero leaks (DEBUG only) [2c3c0dfb5f83] * source/x265main.cpp: x265main: explicit allocation and deallocation of TAppEncTop [97d5b00ab35a] * source/Lib/TLibCommon/TComPicYuv.cpp: TComPicYuv: TComPicYuv are re-used, check before allocating subpel buffers [c98229f4a65d] * source/x265cfg.cpp, source/x265cfg.h: x265cfg: release thread pool handle at exit [b0919ee9a22e] * source/x265main.cpp: x265main: ask VLD to output the leak log to the debugger output console This way the leak report survives after the run. [cadb1c11d2ef] * source/CMakeLists.txt, source/cmake/FindVLD.cmake, source/x265main.cpp: cmake: add detection and use of Visual Leak Detector [70519a482e47] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: disable printing of per-frame encode time, prune unused lists This just makes the frame logs non-deterministic. [90aa43526097] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: fix EOLN [297851df497a] * build/linux/batch.py: write batch outputs into a folder [603fef620960] * build/linux/batch.py: add MD5 hashes to batch run output log [095771f6dbaa] * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg, source/x265cfg.cpp: remove filenames from configuration files Hard-code the default filename for an output stream. Default to no recon output file if none is specified on the CLI. [b6b24bd0e966] 2013-05-16 Deepthi * source/Lib/TLibEncoder/TEncCu.cpp: Preserving the original xcompressCU implementation until the EARLY_PARTITION_DECISION mode has been fully debugged. [d246be5c803a] 2013-05-16 Steve Borho * source/tools/CMakeLists.txt: backout change to source/tools/CMakeLists.txt The performanceProfiler/ folder has no CMakeLists.txt within it. [6215d24d1f59] 2013-05-16 sumalatha * source/tools/CMakeLists.txt, source/tools/performanceProfiler/Profiler.bat, source/tools/performanceProfiler/Readme.txt, source/tools/performanceProfiler/config.txt, source/tools/performanceProfiler/performanceProfiler.bat: Added the scripts for validating the encoded bitstream(running HM decoder) and measuring the the performance like PSNR values, Timetaken for encoing and the bytes written in encoded bitstream. For running the scripts, use Readme.txt [56ba4fb6b574] 2013-05-16 Deepthi * Merge [2f469b1dc95c] * source/Lib/TLibEncoder/TEncCu.cpp: Cleanup [d258fac8d99d] * source/Lib/TLibEncoder/TEncCu.cpp: AMP after 2nxn, nx2n, if at all [091ddf1c5724] * source/Lib/TLibEncoder/TEncCu.cpp: 2nxn and nx2n comparisons only if nxn mode better than 2nx2n [e24d7b31af7d] * source/Lib/TLibEncoder/TEncCu.cpp: Cleanup; remove erroneous paths [0b8a18bc5914] * source/Lib/TLibEncoder/TEncCu.cpp: merge error [30df17dc5923] * source/Lib/TLibEncoder/TEncCu.cpp: Initial version of compare 2nx2n with sum of nxn costs [7b58edb59bae] * source/Lib/TLibEncoder/TEncCu.cpp: Getting rid of EARLY_PARITION_DECISION macro (temporarily) [079ddf89b5d5] * source/Lib/TLibEncoder/TEncCu.cpp: Init Sub CUs to prevent crash when early detection is OFF [db9215642791] * source/Lib/TLibEncoder/TEncCu.cpp: Scalar expansion for subCUs [034adf2f6077] 2013-05-15 Deepthi * source/Lib/TLibEncoder/TEncCu.cpp: Tab fixes [e1300ac7706a] 2013-05-16 Steve Borho * build/linux/batch.py: add a batch launch script for litespeed server [b30e0de1a6ee] 2013-05-15 Steve Borho * source/encoder/x86/asm-primitives.cpp: asm: fix a bug found by x86-64 linux and GDB [ecf99ffdc0c6] * source/encoder/vec/vecprimitives.inc: vec: GCC needs smmintrin.h for some intrinsics we use in partialButterfly4 [5f71cc4e88e4] * source/VectorClass/vectori128.h: vector: use correct build define for fromUint64 [34a4b0cbd857] * source/CMakeLists.txt: cmake: reverse yasm version logic, so all versions less than 1.2.0 rejected previous logic was allowing 1.1.0.X [5796f6b06a15] 2013-05-15 Min Chen * source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h: thread: [NEED VERIFY] modify logic about m_pcBufferSbacCoders, from [sliceID] to [wpp_line] --- source/Lib/TLibEncoder/TEncSlice.cpp | 21 +++++++++++---------- source/Lib/TLibEncoder/TEncSlice.h | 2 +- 2 files changed, 12 insertions(+), 11 deletions(-) [8328dc3293fb] * source/Lib/TLibEncoder/TEncSlice.cpp: thread: [NEED VERIFY] simplify logic about WPP SBAC context manage --- source/Lib/TLibEncoder/TEncSlice.cpp | 24 ++++++------------------ 1 files changed, 6 insertions(+), 18 deletions(-) [7e8190b7ce6b] 2013-05-15 Steve Borho * source/CMakeLists.txt, source/cmake/FindYasm.cmake, source/cmake/version.cmake: cmake: detect and enforce minimal YASM version x264 assembly code requires YASM 1.2.0 (for AVX2, etc) [38d4e63a1d87] 2013-05-15 Min Chen * source/Lib/TLibEncoder/TEncSlice.cpp: thread: remove reduce call to m_pcCfg->getWaveFrontsynchro() --- source/Lib/TLibEncoder/TEncSlice.cpp | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) [71af0137057f] * source/Lib/TLibEncoder/TEncSlice.cpp: thread: move define of uiCUAddr into loop --- source/Lib/TLibEncoder/TEncSlice.cpp | 4 +--- 1 files changed, 1 insertions(+), 3 deletions(-) [7b7e8aa6e785] * source/Lib/TLibEncoder/TEncSlice.cpp: thread: simplify uiSubStrm --- source/Lib/TLibEncoder/TEncSlice.cpp | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) [de144fc9cc62] 2013-05-15 Steve Borho * source/test/intrapredharness.cpp, source/test/testbench.cpp: testbench: GCC compilation fixes [2801d32f7a03] * source/cmake/version.cmake: cmake: avoid use of HG find_package [b04ee03ff736] * source/encoder/common.cpp: GCC compilation fix [1fb1106c2e4b] * source/encoder/vec/macroblock.inc: macroblock: enable partialButterfly4 for X86_64 builds only The primitive does not compile on x86 [21836779c4fd] 2013-05-15 Deepthi * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/test/timer.cpp, source/x265.h, source/x265cfg.cpp, source/x265enc.cpp: Merge [fe8ccdde67f6] * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/x265.h, source/x265cfg.cpp, source/x265enc.cpp: Early CU option removed. [e7ab5425ab23] * source/Lib/TLibEncoder/TEncCu.cpp: More useless skip control variables removed. [ba4bd338e345] * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibEncoder/TEncCu.cpp: Removing extraneous SKIP macros. A more relevant Skip threshold macro can be added later. [72079ab73e34] 2013-05-15 praveentiwari * source/encoder/macroblock.cpp: C primitive for partialButterfly4 [ae0b9dbfa305] 2013-05-14 Min Chen * source/VectorClass/vectori128.h: vector128i: fix bug report by Shazeb, it don't broad to high element --- source/VectorClass/vectori128.h | 13 +++++++++---- 1 files changed, 9 insertions(+), 4 deletions(-) [285509a3c2b1] * source/Lib/TLibEncoder/TEncGOP.cpp: cleanup: remove code for loop --- source/Lib/TLibEncoder/TEncGOP.cpp | 27 ++++----------------------- 1 files changed, 4 insertions(+), 23 deletions(-) [175911f4f3ab] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h: cleanup: remove code for boundingCUAddr --- source/Lib/TLibEncoder/TEncGOP.cpp | 3 +-- source/Lib/TLibEncoder/TEncSlice.cpp | 20 ++++++-------------- source/Lib/TLibEncoder/TEncSlice.h | 2 +- 3 files changed, 8 insertions(+), 17 deletions(-) [7bd6922d4d68] * source/Lib/TLibEncoder/TEncSlice.cpp: thread: simplify, uiTotalCUs always multiple of CUSize --- source/Lib/TLibEncoder/TEncSlice.cpp | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) [62a3a423b4a3] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/x265.h, source/x265cfg.cpp, source/x265enc.cpp: thread: simplify, iNumSubstreams always equal to maxCUHeight --- source/Lib/TLibCommon/TComSlice.cpp | 1 - source/Lib/TLibCommon/TComSlice.h | 6 ------ source/Lib/TLibEncoder/TEncCavlc.cpp | 2 +- source/Lib/TLibEncoder/TEncCfg.h | 5 ----- source/Lib/TLibEncoder/TEncGOP.cpp | 12 +++++++----- source/Lib/TLibEncoder/TEncSlice.cpp | 31 +++++++++++++++++++------------ source/Lib/TLibEncoder/TEncTop.cpp | 7 ------- source/x265.h | 1 - source/x265cfg.cpp | 5 +---- source/x265enc.cpp | 1 - 10 files changed, 28 insertions(+), 43 deletions(-) [05b33c3d0ca5] * source/Lib/TLibEncoder/TEncSlice.cpp: thread: don't calculate uiLin and uiCol from uiCUAddr, they are for_loop now --- source/Lib/TLibEncoder/TEncSlice.cpp | 3 --- 1 files changed, 0 insertions(+), 3 deletions(-) [620f08b2c1ae] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: cleanup: remove unused code for startCUAddrSliceSegment --- source/Lib/TLibEncoder/TEncGOP.cpp | 29 ++++------------------------- source/Lib/TLibEncoder/TEncGOP.h | 1 - 2 files changed, 4 insertions(+), 26 deletions(-) [f9011428cf05] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp: cleanup: remove unused code for nextSliceSegment --- source/Lib/TLibCommon/TComSlice.cpp | 2 -- source/Lib/TLibCommon/TComSlice.h | 5 ----- source/Lib/TLibEncoder/TEncGOP.cpp | 21 +-------------------- source/Lib/TLibEncoder/TEncSlice.cpp | 1 - 4 files changed, 1 insertions(+), 28 deletions(-) [1e6f773bc6d0] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp: cleanup: simplify since sliceSegmentCurEndCUAddr always equal to sliceCurEndCUAddr --- source/Lib/TLibCommon/TComSlice.cpp | 2 -- source/Lib/TLibCommon/TComSlice.h | 5 ----- source/Lib/TLibEncoder/TEncCavlc.cpp | 2 +- source/Lib/TLibEncoder/TEncCu.cpp | 16 ++++++++-------- source/Lib/TLibEncoder/TEncGOP.cpp | 12 ++++++------ source/Lib/TLibEncoder/TEncSlice.cpp | 20 ++------------------ 6 files changed, 17 insertions(+), 40 deletions(-) [311b199d9062] * source/Lib/TLibEncoder/TEncSlice.cpp: thread: ident, no code changes --- source/Lib/TLibEncoder/TEncSlice.cpp | 217 +++++++++++++++++----------------- 1 files changed, 108 insertions(+), 109 deletions(-) [e0e64a6d4690] * source/Lib/TLibEncoder/TEncSlice.cpp: thread: replace while_loop to row/col for_loop --- source/Lib/TLibEncoder/TEncSlice.cpp | 16 +++++++++++++--- 1 files changed, 13 insertions(+), 3 deletions(-) [ede2db9aabaf] * source/Lib/TLibEncoder/TEncSlice.cpp: cleanup: remove unused TilesCol, etc --- source/Lib/TLibEncoder/TEncSlice.cpp | 38 +++++++++------------------------- 1 files changed, 10 insertions(+), 28 deletions(-) [95f330abd287] * source/Lib/TLibEncoder/TEncSlice.cpp: cleanup: replace uiEncCUOrder to uiCUAddr since they always equal --- source/Lib/TLibEncoder/TEncSlice.cpp | 8 +++----- 1 files changed, 3 insertions(+), 5 deletions(-) [19fc43ebdd8f] * source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h: cleanup: StartCUAddr always zero --- source/Lib/TLibEncoder/TEncGOP.cpp | 3 +-- source/Lib/TLibEncoder/TEncSlice.cpp | 10 ++++------ source/Lib/TLibEncoder/TEncSlice.h | 2 +- 3 files changed, 6 insertions(+), 9 deletions(-) [aad01f6a7122] 2013-05-14 Steve Borho * source/test/intrapredharness.cpp, source/test/ipfilterharness.cpp, source/test/mbdstharness.cpp, source/test/pixelharness.cpp, source/test/testharness.h: testharness: simplify REPORT_SPEEDUP, use varargs to avoid bugs [ae526ecaa5d4] * source/test/CMakeLists.txt, source/test/intrapredharness.cpp, source/test/ipfilterharness.cpp, source/test/mbdstharness.cpp, source/test/pixelharness.cpp, source/test/testharness.h, source/test/timer.cpp: testbench: remove unused timer class [78a8595b98aa] * source/test/testbench.cpp: nits [21e04f3d8f9c] * source/encoder/vec/macroblock.inc: macroblock: disable partialButterfly4 for 32bit builds (_mm_cvtsi64_si128) The _mm_cvtsi64_si128 instrinsic is only supported in 64bit executables [91a94c5f2272] * source/encoder/vec/intrapred.inc: intrapred: use X86_64 instead of _WIN64 [1116d281a461] * source/CMakeLists.txt: cmake: add X86_64 define for 64bit builds [abee2d651a02] * Merged in shazebnawazkhan/xhevc_shazeb (pull request #141) Pred Intra Planar 16x16 vectorization [2d32d38d62dc] 2013-05-14 Deepthi Devaki * Merge [1b9b6880f410] * source/encoder/vec/intrapred.inc: uncrustified intrapred.inc [c23f7530165e] * source/encoder/vec/intrapred.inc, source/test/intrapredharness.cpp: Pred Intra Planar 16x16 vectorization [6ce476cd2d2e] 2013-05-14 Steve Borho * source/test/mbdstharness.cpp: mbdstharness: remove redundant enum [84e91a173197] * source/encoder/vec/macroblock.inc: macroblock: disable BUTTERFLY_4 until it as a C reference [b449fc77bbe6] * source/test/testbench.cpp: testbench: zero C primitive struct to better isolate missing C primitives [70c55c6ce1d1] 2013-05-14 praveentiwari * source/test/mbdstharness.h: Added extra buffer for intrinsic code test [c8edec8e1333] * source/encoder/vec/macroblock.inc: Intrinsic Code for partialButterfly4 [e5df64c80123] 2013-05-14 praveen Tiwari * Merged multicoreware/xhevc into default [f66250dd1d07] * Merged multicoreware/xhevc into default [426cf8c7b3d5] 2013-05-14 praveentiwari * source/test/mbdstharness.cpp: Test code for PartialButterfly4 intrisic code [7a499330e879] 2013-05-14 Deepthi * Merge [36cb4e19eebf] * source/Lib/TLibEncoder/TEncCu.cpp: Modify mode decision to include NxN cost as well [f7654615b959] 2013-05-14 Deepthi Devaki * Merge [2446e9744085] * source/encoder/vec/intrapred.inc: Predict intraplanar 8x8 - vector implementation [fab3b59f778a] * source/test/intrapredharness.cpp, source/test/intrapredharness.h: Predict IntraPlanar - unit test integration [018bdfa8fd47] 2013-05-14 https://mandarmcw * build/BuildEncoderApplications.bat, build/RunEncoderApplications.bat: Removed ENABLE_PRIMITIVES macro from Regression test [73c2de1b5707] * Merge [f65050f97357] * build/BuildEncoderApplications.bat, build/CreateRegressionPackage.bat, build/RunEncoderApplications.bat, build/config.txt: Modified RegressionTest script for 8bit and 16bit [3ca347cc6859] 2013-05-14 Deepthi * source/Lib/TLibEncoder/TEncCu.cpp: Removing abortflag control - performance and bitrate impact mostly positive [93f0085d2164] * source/Lib/TLibEncoder/TEncCu.cpp: Modifying the recursion abort condition [17c1d43da9dd] * source/Lib/TLibEncoder/TEncCu.cpp: Fix for compile error with early partition select ON. [3001e773bc64] 2013-05-13 Deepthi * source/CMakeLists.txt, source/Lib/TLibEncoder/TEncCu.cpp: Early exit for partition selection - macro defined. Will be disabled by default - bitcost too high. [0d8b88594b0b] 2013-05-13 sumalatha * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCu.cpp: renamed the macro QUALITYFACTOR to LAMBDA_PARTITION_SELECT [4bc94e0e7cc6] * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: Made optimizations on xcompressCU - to check the cost of each 2Nx2N block with the corresponding cost of the same CU with NxN partition. Aborts recursion if 2Nx2N mode is better. [6da859408e68] 2013-05-12 Steve Borho * source/Lib/TLibCommon/SEI.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/SEIwrite.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/x265.h, source/x265cfg.cpp, source/x265enc.cpp: remove frame packing SEI This packet only contained data passed in by the user. They can generate it themselves [4751ca1eb836] * source/Lib/TLibCommon/SEI.cpp, source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/SEIwrite.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/x265.h, source/x265cfg.cpp, source/x265enc.cpp: remove J0149_TONE_MAPPING_SEI If an app wants to generate this SEI, they can do so themselves. There's no point cluttering the encoder with metadata like this. [424003ca7043] * source/x265cfg.cpp: x265cfg: do not print chroma QP offsets if they are 0 [3c01f9d9dd2b] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncSlice.cpp: cleanup unused variable warnings found by GCC [e8dff9af77dd] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/encoder/motion.cpp, source/encoder/primitives.cpp, source/encoder/primitives.h, source/test/testharness.h, source/test/timer.cpp: primitives: fix EMMS calls from the HM libraries, make compiler safe Use inline when available, else use ASM version of EMMS [6e85e3e865d6] * source/x265cfg.cpp: x265cfg: white-space tweaks, no code changes [51d8de167925] * build/BuildEncoderApplications.bat, build/CreateRegressionPackage.sh, source/CMakeLists.txt, source/Lib/TLibCommon/TComInterpolationFilter.cpp, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/CMakeLists.txt, source/encoder/motion.cpp, source/encoder/primitives.cpp, source/test/CMakeLists.txt, source/test/testbench.cpp: cleanup: remove ENABLE_PRIMITIVES cmake build option, always enabled [5eecf2d019c8] * source/Lib/TLibEncoder/TEncSearch.cpp: cleanup: remove redundant brace levels, no logic changes [d0e3af235277] * source/Lib/TLibEncoder/TEncSearch.cpp: cleanup: remove unnecessary x264_cpu_emms() [69df9f38425b] * source/Lib/TLibEncoder/TEncCu.cpp: cleanup: remove extra levels of indent in TEncCU.cpp, no logic changes [77c5d4ff7ef6] * source/Lib/TLibEncoder/TEncCu.cpp: cleanup: remove iMinQP [0ded36ddaf39] * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/x265.h, source/x265cfg.cpp, source/x265enc.cpp: remove FEN configurable, assume always true [cbfcb9ccee64] * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/x265.h, source/x265cfg.cpp, source/x265enc.cpp: remove max delta QP configuration logic [08005afcd2a1] * source/Lib/TLibEncoder/TEncCu.cpp: TEncCu: prune per-CU multiple QP logic When we add/enable rate control, each CU will only be coded once with its determined QP. We won't be encoding the CU multiple times for RDO [83146bab2aa7] * source/Lib/TLibEncoder/TEncCu.cpp: TEncCU: rename rpcCU to pcCu since it is no longer a reference [25567c1a1191] 2013-05-11 Steve Borho * source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h: remove slice-level per-delta QP and lambda [1cb2a420f6b2] * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/x265.h, source/x265cfg.cpp, source/x265enc.cpp: remove slice-level multiple-QP rate distortion loop [a30ec6c0bbbd] * source/Lib/TLibEncoder/TEncSlice.cpp: tpyo fix [6088dbb69829] * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncTop.cpp: uncrustify: tidy white-space [383ac352dde6] * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg: remove no longer supported config options [107e039f90b1] * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/x265.h, source/x265cfg.cpp, source/x265enc.cpp: merge with slice/tile removal [d9ed2c77f27f] * source/x265cfg.cpp: don't print configurations that cannot change [55084a3b3d5e] 2013-05-11 Min Chen * source/Lib/TLibEncoder/TEncCu.cpp: cleanup: remove code for bSliceStart --- source/Lib/TLibEncoder/TEncCu.cpp | 9 +++------ 1 files changed, 3 insertions(+), 6 deletions(-) [555278f25dfd] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp: cleanup: remove code for sliceStartCU --- source/Lib/TLibCommon/TComDataCU.cpp | 169 +++------------------------------- source/Lib/TLibCommon/TComDataCU.h | 4 - source/Lib/TLibCommon/TComSlice.cpp | 4 - source/Lib/TLibCommon/TComSlice.h | 10 -- source/Lib/TLibEncoder/TEncCavlc.cpp | 18 +--- source/Lib/TLibEncoder/TEncCu.cpp | 35 ++------ source/Lib/TLibEncoder/TEncGOP.cpp | 24 +----- source/Lib/TLibEncoder/TEncSlice.cpp | 130 ++++----------------------- 8 files changed, 44 insertions(+), 350 deletions(-) [b4d10409be04] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncTop.cpp: cleanup: remove unused code since dependentSliceSegmentsEnabledFlag always false --- source/Lib/TLibCommon/TComSlice.cpp | 1 - source/Lib/TLibCommon/TComSlice.h | 5 - source/Lib/TLibEncoder/TEncCavlc.cpp | 6 +- source/Lib/TLibEncoder/TEncSlice.cpp | 156 +-------------------------------- source/Lib/TLibEncoder/TEncTop.cpp | 12 --- 5 files changed, 6 insertions(+), 174 deletions(-) [cc4d3b223d18] * source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h: cleanup: remove unused xCalculateNxtCUAddr --- source/Lib/TLibCommon/TComPicSym.cpp | 25 ------------------------- source/Lib/TLibCommon/TComPicSym.h | 1 - 2 files changed, 0 insertions(+), 26 deletions(-) [d00c47bdfe0a] * source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp: cleanup: remove class TComTile --- source/Lib/TLibCommon/TComPicSym.cpp | 41 +-------------------------------- source/Lib/TLibCommon/TComPicSym.h | 31 ------------------------- source/Lib/TLibEncoder/TEncGOP.cpp | 6 ----- source/Lib/TLibEncoder/TEncSlice.cpp | 17 ++++++------- 4 files changed, 10 insertions(+), 85 deletions(-) [1b10f4a0ab74] * source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibEncoder/TEncGOP.cpp: cleanup: cleanup code for getTileWidth and getTileHeight --- source/Lib/TLibCommon/TComPicSym.cpp | 12 +++++------- source/Lib/TLibCommon/TComPicSym.h | 10 ---------- source/Lib/TLibEncoder/TEncGOP.cpp | 7 ------- 3 files changed, 5 insertions(+), 24 deletions(-) [097f2b0c2d72] * source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp: cleanup: cleanup code for getPicSCUEncOrder and getPicSCUAddr --- source/Lib/TLibCommon/TComPicSym.cpp | 10 ---------- source/Lib/TLibCommon/TComPicSym.h | 2 -- source/Lib/TLibEncoder/TEncCu.cpp | 6 +++--- source/Lib/TLibEncoder/TEncGOP.cpp | 6 +++--- source/Lib/TLibEncoder/TEncSlice.cpp | 20 ++++++++++---------- 5 files changed, 16 insertions(+), 28 deletions(-) [96f911caef7c] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp: cleanup: cleanup more code for CUOrderMap --- source/Lib/TLibCommon/TComDataCU.cpp | 24 ++++++++++++------------ source/Lib/TLibCommon/TComPic.cpp | 4 ++-- source/Lib/TLibCommon/TComPicSym.cpp | 4 ++-- source/Lib/TLibCommon/TComPicSym.h | 4 ---- source/Lib/TLibEncoder/TEncCavlc.cpp | 2 +- source/Lib/TLibEncoder/TEncCu.cpp | 18 +++++++++--------- source/Lib/TLibEncoder/TEncGOP.cpp | 2 +- source/Lib/TLibEncoder/TEncSlice.cpp | 20 ++++++++++---------- 8 files changed, 37 insertions(+), 41 deletions(-) [7f054fc6613a] * source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibEncoder/TEncGOP.cpp: cleanup: cleanup code for CUOrderMap --- source/Lib/TLibCommon/TComPicSym.cpp | 17 ----------------- source/Lib/TLibCommon/TComPicSym.h | 10 ++-------- source/Lib/TLibEncoder/TEncGOP.cpp | 13 +------------ 3 files changed, 3 insertions(+), 37 deletions(-) [68d8a7b12206] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSlice.cpp: cleanup: cleanup code for tilesIDX --- source/Lib/TLibCommon/TComDataCU.cpp | 33 +++----- source/Lib/TLibCommon/TComDataCU.h | 3 +- source/Lib/TLibCommon/TComPic.cpp | 34 +------- source/Lib/TLibCommon/TComPic.h | 2 +- source/Lib/TLibCommon/TComPicSym.cpp | 83 +++----------------- source/Lib/TLibCommon/TComPicSym.h | 7 +- source/Lib/TLibEncoder/TEncGOP.cpp | 4 +- .../Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp | 12 ++-- source/Lib/TLibEncoder/TEncSlice.cpp | 66 +++------------- 9 files changed, 50 insertions(+), 194 deletions(-) [b39cd3c37dc4] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncGOP.cpp: cleanup: remove unused code for uniformSpacingFlag --- source/Lib/TLibCommon/TComSlice.cpp | 1 - source/Lib/TLibCommon/TComSlice.h | 5 ---- source/Lib/TLibEncoder/TEncGOP.cpp | 37 +--------------------------------- 3 files changed, 2 insertions(+), 41 deletions(-) [045677ed690d] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncTop.cpp: cleanup: remove unused code since tilesEnabledFlag always false --- source/Lib/TLibCommon/TComSlice.cpp | 1 - source/Lib/TLibCommon/TComSlice.h | 5 ----- source/Lib/TLibEncoder/TEncCavlc.cpp | 33 +++------------------------------ source/Lib/TLibEncoder/TEncTop.cpp | 1 - 4 files changed, 3 insertions(+), 37 deletions(-) [1766af826d7b] * source/Lib/TLibEncoder/TEncSlice.cpp: cleanup: remove unused code since uiTilesAcross always 1 --- source/Lib/TLibEncoder/TEncSlice.cpp | 30 ++++++++---------------------- 1 files changed, 8 insertions(+), 22 deletions(-) [52069da06f5e] * source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncTop.cpp, source/x265.h, source/x265cfg.cpp, source/x265enc.cpp: cleanup: remove code for option TilesFixedStructure --- source/Lib/TLibCommon/TComSlice.h | 6 ------ source/Lib/TLibEncoder/TEncCavlc.cpp | 2 +- source/Lib/TLibEncoder/TEncCfg.h | 5 ----- source/Lib/TLibEncoder/TEncTop.cpp | 1 - source/x265.h | 1 - source/x265cfg.cpp | 1 - source/x265enc.cpp | 1 - 7 files changed, 1 insertions(+), 16 deletions(-) [38354c90843d] * source/x265.h, source/x265cfg.cpp, source/x265enc.cpp: cleanup: remove code for option LFCrossTileBoundaryFlag --- source/x265.h | 1 - source/x265cfg.cpp | 1 - source/x265enc.cpp | 3 --- 3 files changed, 0 insertions(+), 5 deletions(-) [5a642068a6b0] * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncTop.cpp, source/x265.h, source/x265cfg.cpp, source/x265enc.cpp: cleanup: remove code for options UniformSpacingIdc --- source/Lib/TLibEncoder/TEncCfg.h | 5 ----- source/Lib/TLibEncoder/TEncTop.cpp | 1 - source/x265.h | 1 - source/x265cfg.cpp | 1 - source/x265enc.cpp | 1 - 5 files changed, 0 insertions(+), 9 deletions(-) [868bfad3eaca] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibEncoder/TEncGOP.cpp: cleanup: remove unused code in TComPic::createNonDBFilterInfo --- source/Lib/TLibCommon/TComPic.cpp | 10 +++------- source/Lib/TLibCommon/TComPic.h | 1 - source/Lib/TLibEncoder/TEncGOP.cpp | 2 +- 3 files changed, 4 insertions(+), 9 deletions(-) [96640251b7f3] * source/x265cfg.cpp: cleanup: remove unused code since tileFlag always false --- source/x265cfg.cpp | 30 ++---------------------------- 1 files changed, 2 insertions(+), 28 deletions(-) [7bbab452fbb1] * source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/x265.h, source/x265cfg.cpp, source/x265cfg.h, source/x265enc.cpp: cleanup: remove code for options NumTileColumnsMinus1 and NumTileRowsMinus1 --- source/Lib/TLibCommon/TComPicSym.cpp | 38 +++++------- source/Lib/TLibCommon/TComPicSym.h | 12 ---- source/Lib/TLibCommon/TComSlice.cpp | 14 ---- source/Lib/TLibCommon/TComSlice.h | 42 ------------- source/Lib/TLibEncoder/TEncCavlc.cpp | 20 +------ source/Lib/TLibEncoder/TEncCfg.h | 51 ---------------- source/Lib/TLibEncoder/TEncGOP.cpp | 44 ++++---------- source/Lib/TLibEncoder/TEncSlice.cpp | 20 +++--- source/Lib/TLibEncoder/TEncTop.cpp | 73 +---------------------- source/x265.h | 2 - source/x265cfg.cpp | 109 +--------------------------------- source/x265cfg.h | 5 -- source/x265enc.cpp | 12 ---- 13 files changed, 43 insertions(+), 399 deletions(-) [3cf723a2a3e7] * source/Lib/TLibCommon/TComDataCU.cpp: cleanup: onlyOneSliceInPic always true --- source/Lib/TLibCommon/TComDataCU.cpp | 188 ++-------------------------------- 1 files changed, 8 insertions(+), 180 deletions(-) [da29d2e40837] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/x265.h, source/x265cfg.cpp, source/x265enc.cpp: cleanup: remove code for LFCrossSliceBoundaryFlag --- source/Lib/TLibCommon/TComDataCU.cpp | 19 +++++++++---------- source/Lib/TLibCommon/TComDataCU.h | 1 - source/Lib/TLibCommon/TComLoopFilter.cpp | 18 +++++++++--------- source/Lib/TLibCommon/TComPic.cpp | 12 ------------ source/Lib/TLibCommon/TComPic.h | 1 - source/Lib/TLibCommon/TComSlice.cpp | 2 -- source/Lib/TLibCommon/TComSlice.h | 10 ---------- source/Lib/TLibEncoder/TEncCavlc.cpp | 6 +++--- source/Lib/TLibEncoder/TEncCfg.h | 6 ------ source/Lib/TLibEncoder/TEncGOP.cpp | 12 ++---------- source/Lib/TLibEncoder/TEncTop.cpp | 1 - source/x265.h | 1 - source/x265cfg.cpp | 1 - source/x265enc.cpp | 3 --- 14 files changed, 23 insertions(+), 70 deletions(-) [2faa4694539d] * source/Lib/TLibCommon/TypeDef.h: cleanup: remove enum SliceConstraint --- source/Lib/TLibCommon/TypeDef.h | 9 --------- 1 files changed, 0 insertions(+), 9 deletions(-) [d8836d4bff30] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/x265.h, source/x265cfg.cpp, source/x265enc.cpp: cleanup: remove code for option sliceSegmentMode and sliceSegmentModeArgument --- source/Lib/TLibCommon/TComSlice.cpp | 4 - source/Lib/TLibCommon/TComSlice.h | 9 --- source/Lib/TLibEncoder/TEncCfg.h | 11 --- source/Lib/TLibEncoder/TEncCu.cpp | 12 ---- source/Lib/TLibEncoder/TEncGOP.cpp | 2 +- source/Lib/TLibEncoder/TEncSlice.cpp | 118 +--------------------------------- source/Lib/TLibEncoder/TEncTop.cpp | 4 - source/x265.h | 4 - source/x265cfg.cpp | 17 +----- source/x265enc.cpp | 9 --- 10 files changed, 3 insertions(+), 187 deletions(-) [bd168f9a50b3] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/x265.h, source/x265cfg.cpp, source/x265enc.cpp: cleanup: remove code for option sliceMode and sliceModeArgument --- source/Lib/TLibCommon/TComSlice.cpp | 4 - source/Lib/TLibCommon/TComSlice.h | 10 --- source/Lib/TLibEncoder/TEncCfg.h | 12 ---- source/Lib/TLibEncoder/TEncCu.cpp | 11 +--- source/Lib/TLibEncoder/TEncGOP.cpp | 7 +- source/Lib/TLibEncoder/TEncSlice.cpp | 106 +-------------------------------- source/x265.h | 3 - source/x265cfg.cpp | 20 +------ source/x265enc.cpp | 17 ------ 9 files changed, 10 insertions(+), 180 deletions(-) [a4788d814f55] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h: threading: remove unused C++ pointer reference (variant name do not modify for keep compatible) --- source/Lib/TLibCommon/TComDataCU.cpp | 4 ++-- source/Lib/TLibCommon/TComPic.h | 2 +- source/Lib/TLibEncoder/TEncCu.cpp | 2 +- source/Lib/TLibEncoder/TEncCu.h | 2 +- source/Lib/TLibEncoder/TEncSlice.cpp | 8 ++++---- source/Lib/TLibEncoder/TEncSlice.h | 4 ++-- 6 files changed, 11 insertions(+), 11 deletions(-) [90b611273d0a] 2013-05-11 Steve Borho * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/x265.h, source/x265cfg.cpp, source/x265enc.cpp: Remove SBACRD configuration option [4fef14f41d6d] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: fix 16bpp compiler warnings [3dfbf98b245e] * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h: TComRdCost: remove dead 2x2 satd code paths HEVC does not support 2x2 partitions, even for chroma. See http://forum.doom9.org/showthread.php?t=167081 [293b1e04bea4] * source/Lib/TLibCommon/TComRdCost.cpp: TComRdCost: fix old HM bug in dead 2x2 logic [73ef64e5f6a4] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: use SATD primitives to measure chroma intra residual [574ec4bfc6b7] * source/encoder/x86/asm-primitives.cpp: asm: use XOP satd primitives when available; roughly 10x C versions [a387fff04cb9] * source/encoder/x86/asm-primitives.cpp: asm: use x264_pixel_satd_4x16_avx when available [6910ed19b5d6] * source/encoder/x86/asm-primitives.cpp: asm: use x264_pixel_satd_4x16_sse4 when available [26003f6ce226] * source/encoder/x86/asm-primitives.cpp: asm: use SSE2 satd functions for all partitions, where available Roughly 6x faster than C, 2x faster than MMX [2178cc1f7651] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/pixel.cpp, source/encoder/primitives.h, source/encoder/x86/asm-primitives.cpp, source/test/pixelharness.cpp: primitive: add sa8d_32x32 and sa8d_64x64, use for intra cost estimation [e2f65de5920e] * source/Lib/TLibEncoder/TEncCu.cpp: TEncCu: remove for-loops over QP, make them simple expressions No sane encoder would ever do that sort of redundant analysis. There is a lot of cleanup that needs to trickle up from here. iMinQP and isAddLowestQP can probably be removed, and all the slice and SPS fields for QP RD can be removed, all the way up to the config options that enabled it. [d799578d900d] 2013-05-10 Steve Borho * source/Lib/TLibEncoder/TEncSearch.h, source/encoder/motion.h: fix aligned pixel caches for x86 and x64 builds Tested on VC10, VC11, and MinGW x86 [b8cb76df149d] * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/CMakeLists.txt, source/encoder/InterpolationFilter.cpp, source/encoder/InterpolationFilter.h: remove unused InterpolationFilter.cpp, move filter args back into TComPrediction [29c61b186ec8] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: replace filterCopy() call with cpyblock primitive [928a426cc302] * source/encoder/motion.h: motion: lessen alignment restriction for pixel cache Prevents compiler warnings about required padding [bcc1dbbf732d] * source/encoder/primitives.cpp: primitives: report XOP and FMA detection as well as CPU SIMD level [031313a5bfcb] * source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: re-order member variables to avoid alignment causing padding Some VC versions will issue warnings if alignment decls require padding to be added (a performance warning) [8d904a7306ac] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/motion.cpp, source/encoder/motion.h: motion: rename MotionReference.plane to lumaPlane, remove unused channels [9b655ff38985] * Merged in sumalatha/xhevc_sumalatha (pull request #132) Changed the variable name according to naming convention of HM [0e45feaf8759] 2013-05-10 sumalatha * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: changed the variable name according to naming convention of HM Included the comment such that early abort can be disabled [9df494f9e780] * source/Lib/TLibEncoder/TEncCu.cpp: removed goto statement. [a0bce7915be9] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: Incorporated Steves changes in optimized xcompressCU() to abort recursion if cost of child CU is greater that the cost of parent CU. [97195ad9e3e2] 2013-05-10 Sumalatha Polureddy * Merged multicoreware/xhevc into default [a3286df9a8cb] 2013-05-09 sumalatha * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: optimized xcompressCU() to abort recursion if cost of child CU is greater that the cost of parent CU. [5432fa0411d9] 2013-05-10 https://mandarmcw * build/BuildEncoderApplications.bat: Implemented all posible configurations into Regression test(8bit_pre m(enable_test),8bit_HM(disable_test),16bit_prem(enable_test),16bit_H M(disable_test)) [b686ba6045ad] 2013-05-10 ShinYee Chung * source/encoder/vec/intrapred.inc: Intra: Fix compile errors due to vector conversions. [e4fa6f942fe7] * source/encoder/common.cpp: Common: Fix the type mismatch between printf format and argument. [915fc0395e29] * source/encoder/common.cpp: Common: Fix broken eol, tabs, spaces. [710015f394ee] 2013-05-10 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/bitcost.cpp, source/encoder/bitcost.h, source/encoder/motion.cpp, source/encoder/motion.h: motion: new bitcost method for BitCost and MotionEstimate classes [a553b5197f40] * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSlice.cpp: remove WEIGHTED_CHROMA_DISTORTION define [39d47f7eaa87] * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibEncoder/TEncSearch.cpp: Remove GPB_SIMPLE_UNI define [f8bc2b563e63] 2013-05-10 Min Chen * source/encoder/vec/intrapred.inc: intrapred: optimize predIntraPlanar4 with 16bpp --- source/encoder/vec/intrapred.inc | 87 +++++++++++++++++++++++++------------- 1 files changed, 58 insertions(+), 29 deletions(-) [0191c2e03e51] * source/Lib/TLibCommon/TComPrediction.cpp: TComPrediction: fix build warning at 16bpp --- source/Lib/TLibCommon/TComPrediction.cpp | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) [14bd77d46976] 2013-05-10 Steve Borho * source/encoder/vec/intrapred.inc, source/encoder/vec/vecprimitives.inc: vec: inc files should not have includes of their own [7505b485f286] 2013-05-10 Min Chen * source/Lib/TLibCommon/TComPrediction.cpp, source/encoder/IntraPred.cpp, source/encoder/primitives.h, source/encoder/vec/intrapred.inc, source/encoder/vec/vecprimitives.inc: intrapred: optimize predIntraPlanar4 with 8bpp --- source/Lib/TLibCommon/TComPrediction.cpp | 15 +++- source/encoder/IntraPred.cpp | 51 +++++++++ source/encoder/primitives.h | 2 + source/encoder/vec/intrapred.inc | 169 ++++++++++++++++++++++++++++++ source/encoder/vec/vecprimitives.inc | 1 + 5 files changed, 236 insertions(+), 2 deletions(-) [77f050ae9201] * source/VectorClass/vectori128.h: vector128: unsafe compress(map to packuswb) --- source/VectorClass/vectori128.h | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) [5b41635781a6] * source/VectorClass/vectori128.h: vector128: constant shift right and broadcast --- source/VectorClass/vectori128.h | 39 +++++++++++++++++++++++++++++++++++++++ 1 files changed, 39 insertions(+), 0 deletions(-) [5b4d2cff5b76] * source/VectorClass/vectori128.h: vector128: constant shift left --- source/VectorClass/vectori128.h | 31 +++++++++++++++++++++++++++++++ 1 files changed, 31 insertions(+), 0 deletions(-) [c1200d24153e] 2013-05-09 Steve Borho * source/encoder/motion.cpp, source/encoder/motion.h: motion: remove fref class member [07c65d9466fc] * source/encoder/motion.cpp, source/encoder/motion.h: motion: remove residual functions from class motion compensation can happen well outside of the analysis loop, so there is no benefit in trying to re-use our pixel cache [3399d80552f7] * source/test/ipfilterharness.cpp, source/test/testharness.h: testharness: adopt checkasm approach to measuring performance [46d2553e471e] * source/Lib/TLibCommon/TComRdCost.cpp, source/encoder/x86/asm- primitives.cpp, source/encoder/x86/const-a.asm, source/encoder/x86/cpu-a.asm, source/encoder/x86/pixel-a.asm, source/encoder/x86/pixel.h, source/encoder/x86/sad-a.asm, source/encoder/x86/x86inc.asm, source/encoder/x86/x86util.asm: asm: enable x264 sad, sad_x3, sad_x4, sa8d, and satd assembly routines This required removing sa8d and satd primitives from TComRdCost.cpp - they are only called from the new motion search now. x264 asm has been updated to tip [09b29a12d3b9] 2013-05-09 Mandar Gurav * cfg/per-sequence/FourPeople.cfg: Implemented Steve's comments - 2 [7b7444bd1693] * build/dr_psnr_script/psnr_script.bat, cfg/per- sequence/BasketballDrive.cfg, cfg/per-sequence/FourPeople.cfg: Implemented Steve's comments. [bade8b9e1b03] 2013-05-09 Mandar Gurav * Merged multicoreware/xhevc into default [b4aa1a7dbe9f] 2013-05-09 Mandar Gurav * build/dr_psnr_script/dr_psnr.exe, build/dr_psnr_script/psnr_script.bat: Use tools/dr_psnr binary built from the source directory. And use YUV file as input to dr_psnr instead of y4m. [8c75b377005e] 2013-05-09 Mandar Gurav * Merged multicoreware/xhevc into default [4e2423672016] 2013-05-08 Mandar Gurav * Merge [be402320a9b8] * build/dr_psnr_script/psnr_script.bat: Implemented suggestions from Steve. [d6affb95df1d] 2013-05-08 Mandar Gurav * Merged multicoreware/xhevc into default [e76f1de33e6b] 2013-05-08 Mandar Gurav * build/dr_psnr_script/BasketballDrive.cfg, build/dr_psnr_script/FourPeople.cfg, build/dr_psnr_script/encoder_I_15P.cfg, build/dr_psnr_script/encoder_all_I.cfg, build/dr_psnr_script/psnr_script.bat, cfg/per- sequence/BasketballDrive.cfg, cfg/per-sequence/FourPeople.cfg: Implemented suggestions from Deepthi N. [b6ee43e7007e] 2013-05-08 Mandar Gurav * Merged multicoreware/xhevc into default [321ae9002b1e] * Merged multicoreware/xhevc into default [fd85e05a4c0d] 2013-05-07 Mandar Gurav * build/dr_psnr_script/BasketballDrive.cfg, build/dr_psnr_script/FourPeople.cfg, build/dr_psnr_script/TAppDecoder.exe, build/dr_psnr_script/dr_psnr.exe, build/dr_psnr_script/encoder_I_15P.cfg, build/dr_psnr_script/encoder_all_I.cfg, build/dr_psnr_script/psnr_script.bat: Script for generating dr_psnr output. Output files are as follows * encoder_output.txt * decoder_output.txt * dr_psnr_output.txt [6e70935ca7db] 2013-05-09 Deepthi Devaki * Merge [acf7fe823eda] * source/Lib/TLibCommon/TComPicYuv.cpp: Change comment. [2a48b178a31c] * source/Lib/TLibCommon/TComPicYuv.cpp: Remove copy of Full Pel from filter. Instead copy it in extendPicBorder [9d818fd017d9] 2013-05-09 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: motion: remove redundant plane pointer assignments [6bd4cc4a96c1] * source/Lib/TLibEncoder/TEncSearch.cpp: disable new motion search until UMH mode is added The UMH search should have comparable quality to the HM search. The DIA search loses too much compression efficiency to use as a default [fb3a87cc0e10] * Merged in ggopu/ggopu_xhevc (pull request #129) motion: fix reference plane pointers and strides [8a5c2df2915c] 2013-05-09 ggopu * source/Lib/TLibEncoder/TEncSearch.cpp: Integrated new motion vector changes [2f781b3a5479] * source/Lib/TLibEncoder/TEncSearch.cpp: motion: fix reference plane pointers and strides [ac4916565956] 2013-05-09 Deepthi Devaki * source/Lib/TLibCommon/TComPicYuv.cpp: Fix output mismatch: change input width/height for filter [8c7533211b95] 2013-05-08 Steve Borho * source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/SEIwrite.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/x265cfg.cpp, source/x265enc.cpp: Remove REMOVE_SINGLE_SEI_EXTENSION_FLAGS, K0180_SCALABLE_NESTING_SEI macros [0a960f095a1e] * source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/SEIwrite.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/x265cfg.cpp, source/x265enc.cpp: Remove L0208_SOP_DESCRIPTION_SEI define (remove from HM) [7b3273e9b24a] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCavlc.h, source/x265cfg.cpp, source/x265enc.cpp: Remove SIGNAL_BITRATE_PICRATE_IN_VPS define (removed from tip of HM) [315a8cb35bc7] * source/compat/msvc/getopt.c, source/tools/dr_psnr/CMakeLists.txt, source/tools/dr_psnr/SSIMCalculator.cpp: dr_psnr: fix GCC build warnings [1504ac21e981] * source/CMakeLists.txt, source/tools/CMakeLists.txt, source/tools/dr_psnr/CMakeLists.txt, source/tools/dr_psnr/PsnrCalculator.cpp, source/tools/dr_psnr/PsnrCalculator.h, source/tools/dr_psnr/SSIMCalculator.cpp, source/tools/dr_psnr/SSIMCalculator.h, source/tools/dr_psnr/dr_psnr.cpp: tools: add a tools/ folder and start with dr_psnr [c211b4c4d1ba] * source/Lib/TLibCommon/AccessUnit.h, source/Lib/TLibCommon/ContextModel.h, source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComBitCounter.h, source/Lib/TLibCommon/TComBitStream.h, source/Lib/TLibCommon/TComList.h, source/Lib/TLibEncoder/AnnexBwrite.h, source/Lib/TLibEncoder/NALwrite.h, source/Lib/TLibEncoder/SEIwrite.h, source/Lib/TLibEncoder/SyntaxElementWriter.h, source/Lib/TLibEncoder/TEncAnalyze.h, source/Lib/TLibEncoder/TEncCavlc.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncSbac.h: cleanup compile guards, no code effects [eb687bb237ae] * source/Lib/TLibCommon/ContextTables.h: remove FIX827, FIX712 #defines [6cf68223c50f] * source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibEncoder/TEncSlice.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: random white-space cleanups, no code changes [22363860b159] 2013-05-08 nandaku2 * Merged in deepthidevaki/xhevc_deepthid (pull request #124) Modifications to subpel generation [4dd4c610646f] 2013-05-08 Deepthi Devaki * Merge [f928fa3e7405] * source/Lib/TLibCommon/TComPicYuv.cpp: Merge [656789cd00e1] * source/Lib/TLibCommon/TComPicYuv.cpp: Change filter temp variable to short* instead of TshortYuv [6c4e3ee894bf] * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPrediction.cpp: Uncrustified two files. [86c4e1e12613] * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPrediction.cpp: Use block copy primitives instead of filterCopy [47aa034b5545] * Merge [770006a69dfa] 2013-05-07 Deepthi Devaki * source/encoder/vec/ipfilter.inc, source/encoder/vec/ipfilter16.inc, source/encoder/vec/ipfilter8.inc, source/test/ipfilterharness.cpp: Backed out changeset: 1baaa3822b79 [6b4cabf50573] * source/encoder/vec/ipfilter.inc, source/encoder/vec/ipfilter16.inc, source/encoder/vec/ipfilter8.inc, source/test/ipfilterharness.cpp: Backed out changeset: da889c1d7641 [1baaa3822b79] 2013-05-08 Deepthi Devaki Akkoorath * Merged multicoreware/xhevc into default [4470f5f36d76] * source/Lib/TLibCommon/TComPicYuv.cpp: Merged multicoreware/xhevc into default [cd5e5e2498d8] 2013-05-07 Deepthi Devaki * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: Remove unwanted comments and code. [bb747fc0379d] 2013-05-08 Deepthi * Merge [bad457c087fd] * source/encoder/CMakeLists.txt, source/encoder/common.cpp, source/encoder/common.h: Debug Support for dumping buffers. Simply typecast all pointers to void*, and it will dump the required number of bytes into a buffer. [1aa6126cf203] 2013-05-08 Steve Borho * source/test/testharness.h: testbench: GCC build fixes [524b43126be7] * Merged in mandarmcw/xhevc_mandar_mahesh (pull request #121) Prints the avg. number of cycles taken for vec_primitive and C function calls. [e9572d3f84b7] 2013-05-07 Mandar Gurav * source/test/testharness.h: Prints the avg. number of cycles taken for vec_primitive and C function calls. [d339ef591ffd] 2013-05-08 nandaku2 * Merged in sumalatha/xhevc_sumalatha (pull request #122) fix for the output mismatch issue. Now when AMPREfine flag is not set, output matches [1595173e7694] 2013-05-08 sumalatha * source/Lib/TLibEncoder/TEncTop.cpp: fix for the output mismatch issue. Now when AMPREfine flag is not set, output matches [34dd7b92a7f7] 2013-05-07 Steve Borho * source/Lib/TLibCommon/TComPicYuv.cpp, source/PPA/ppaCPUEvents.h: ppa: add an event for TComPicYuv::extendPicBorder() [b4702c569e73] * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg: white-space nits in config files [32049d39e86b] 2013-05-07 Sumalatha Polureddy * source/test/filterharness.cpp, source/test/filterharness.h: Merged multicoreware/xhevc into default [e29437861397] 2013-05-07 sumalatha * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/x265.h, source/x265cfg.cpp, source/x265enc.cpp: Included additional flag "AMPRefine" in cfg file and made changes in the code such that if the flag is enabled, the partition size Nx2N and 2NxN is used for search and other operations in INTER otherwise these two partition sizes are excluded. [4589879e4226] 2013-05-07 Deepthi Devaki * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: Removed unwanted comments [498c2a8e99e9] * source/encoder/InterpolationFilter.cpp: Modified filterverticalpel_pel [5c9b304404b5] * source/encoder/vec/ipfilter.inc, source/encoder/vec/ipfilter16.inc, source/encoder/vec/ipfilter8.inc, source/test/ipfilterharness.cpp: Added vector primitives for filtervertical_pel_pel [da889c1d7641] * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h: Remove all references to chroma filterBlocks. [171889c50962] * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: ME and Prediction uses new Luma subpel blocks, instead of generating subpels on demand. [127995bc3034] * source/test/CMakeLists.txt, source/test/filterharness.cpp, source/test/filterharness.h, source/test/testbench.cpp: Removed old filter from testbench [069d0a894c3b] * source/encoder/macroblock.cpp: Removed old filter c primitives from macroblock.cpp [f5f4cefafde6] * source/encoder/vec/macroblock.inc: Removed old filters vec primitives [98efb37469d6] 2013-05-06 Steve Borho * source/encoder/vec/blockcopy.inc: blockcopy: retask 8bpp s_p for s_c [b80724df82fb] * source/encoder/pixel.cpp, source/encoder/primitives.h, source/test/pixelharness.cpp, source/test/pixelharness.h: pixel: introduce blockcopy_s_c primitive for expanding bytes to shorts In some places, we always want to expand bytes to shorts unconditionally, regardless of the size of pixel/Pel. This function pointer may be used for that. Implementation wise, it should use the existing vectorized function for 8bpp blockcopy_s_p. [f0ce6f417381] * source/Lib/TLibCommon/TComPrediction.cpp: TComPrediction: fix build warning at 16bpp [1c265556534f] * Merged in deepthidevaki/xhevc_deepthid (pull request #118) Added function to generate Luma subpels for entire frame. [6e133daf825b] 2013-05-06 Deepthi Devaki * source/Lib/TLibCommon/TComPicYuv.cpp: Modified function to generate Luma subpels for entire frame. [8910b39167b2] * source/Lib/TLibCommon/TComPicYuv.cpp: Functions to generate QPels for entire frame [a230bfeb4924] * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/encoder/InterpolationFilter.h: Generate Hpel for entire frame. (tested!) [5e8ea012ff63] 2013-05-06 Deepthi Devaki Akkoorath * source/Lib/TLibCommon/TComPicYuv.h, source/encoder/vec/interpolationfilter.inc: Merged multicoreware/xhevc into default [a9d4a7ce337c] 2013-05-03 Deepthi Devaki * source/Lib/TLibCommon/TComPicYuv.h: Added access functions for filteredBlocks [260dd458563c] * Merge [5fafbbd52b06] * source/Lib/TLibCommon/TComPicYuv.cpp: Initialize m_filterBlocks to NULL [dd7000afff97] * source/Lib/TLibCommon/TComPicYuv.cpp: Fix deallocating filterBlocks memory. [e7e63540cbf8] * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/encoder/TShortYUV.h: Added Data structures for H/Q planes [d2269b064b50] 2013-05-06 Steve Borho * source/test/intrapredharness.cpp: intrapredharness: prevent out-of-bounds reads during validation tests [25de1ee81ef5] * source/encoder/vec/ipfilter.inc: ipfilter: remove cruft that was only for preventing unused parameter warnings [df6907669de5] * source/encoder/vec/ipfilter.inc, source/encoder/vec/ipfilter8.inc: Merged in mandarmcw/xhevc_mandar_mahesh (pull request #117) Filter implementation for HIGH_BIT_DEPTH=0 [d6a9d7d2fb0e] 2013-05-06 Mandar Gurav * source/encoder/vec/ipfilter.inc, source/encoder/vec/ipfilter8.inc: Filter implementation for HIGH_BIT_DEPH=0 [0e7d769686df] 2013-05-06 Min Chen * source/test/intrapredharness.cpp, source/test/intrapredharness.h: intrapred: testbench for xPredIntraDC --- source/test/intrapredharness.cpp | 59 +++++++++++++++++++++++++++++--------- source/test/intrapredharness.h | 4 ++- 2 files changed, 48 insertions(+), 15 deletions(-) [9d2804da4cff] * source/Lib/TLibCommon/TComPrediction.cpp, source/encoder/IntraPred.cpp, source/encoder/primitives.h, source/encoder/vec/intrapred.inc: intrapred: C reference model and code cleanup --- source/Lib/TLibCommon/TComPrediction.cpp | 12 ++- source/encoder/IntraPred.cpp | 44 ++++++++++- source/encoder/primitives.h | 6 +- source/encoder/vec/intrapred.inc | 132 +----------------------------- 4 files changed, 53 insertions(+), 141 deletions(-) [8f5f1349ecb3] * source/encoder/vec/intrapred.inc: intrapred: simplify in xDCPredFiltering() --- source/encoder/vec/intrapred.inc | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) [22b068217f37] * source/Lib/TLibCommon/TComPrediction.cpp, source/encoder/IntraPred.cpp, source/encoder/primitives.h, source/encoder/vec/intrapred.inc: intrapred: new vector optimize code for predIntraDC, xDCPredFiltering --- source/Lib/TLibCommon/TComPrediction.cpp | 4 + source/encoder/IntraPred.cpp | 1 + source/encoder/primitives.h | 2 + source/encoder/vec/intrapred.inc | 471 ++++++++++++++++++++++++++++++ 4 files changed, 478 insertions(+), 0 deletions(-) [66de4e152e1f] * source/VectorClass/vectori128.h: vector128: constant shift for Vec8us --- source/VectorClass/vectori128.h | 12 ++++++++++++ 1 files changed, 12 insertions(+), 0 deletions(-) [6764e16594d5] * source/VectorClass/vectori128.h, source/encoder/vec/intrapred.inc: vector128: more general load_partial and store_partial --- source/VectorClass/vectori128.h | 56 +++++++++++++++++++++++++++++++------ source/encoder/vec/intrapred.inc | 3 +- 2 files changed, 48 insertions(+), 11 deletions(-) [2cc4fc0e415e] * source/VectorClass/vectori128.h, source/encoder/vec/intrapred.inc: vectorclass: fix Vec4ui wrong action and name --- source/VectorClass/vectori128.h | 4 ++-- source/encoder/vec/intrapred.inc | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) [19c3e1abfd46] 2013-05-06 Steve Borho * source/encoder/vec/ipfilter16.inc, source/encoder/vec/ipfilter8.inc: ipfilter: more pruning [2bb2e364d57c] * source/encoder/vec/ipfilter.inc, source/encoder/vec/ipfilter16.inc, source/encoder/vec/ipfilter8.inc, source/encoder/vec/vecprimitives.inc: vec: inc files should not include other headers Only vecprimitives.inc may include files; the other files are being included within a namespace and can cause strange link problems if headers are included. [b6fc9bf11a3e] * source/Lib/TLibEncoder/TEncSlice.cpp: TEncSlice: backout replacement of calcRdCost64 with CALCRDCOST_SAD Those were two entirely different function calls [74bf6c970636] 2013-05-06 nandaku2 * source/encoder/vec/interpolationfilter.inc: Merged in mandarmcw/xhevc_mandar_mahesh (pull request #116) Interpolationfilter primitives restructured. [81577757e572] 2013-05-06 Mandar Gurav * source/encoder/vec/CMakeLists.txt, source/encoder/vec/interpolationfilter.inc, source/encoder/vec/ipfilter.inc, source/encoder/vec/ipfilter16.inc, source/encoder/vec/ipfilter8.inc, source/encoder/vec/vecprimitives.inc: Interpolationfilter primitives restructured. [07679e04c0e4] 2013-05-06 sumalatha * source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSlice.cpp: Replaced the function call for calcRdCost() with MACRO CALCRDCOST such that in macro, the switch case for selection of "eDFunc" is removed. [7f3fe334fb1e] 2013-05-05 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: fix warning with 15bpp build [cd46a81725fb] * source/Lib/TLibCommon/TComYuv.cpp: TComYuv: use primitives for remaining copy functions [34471ada8ab3] * source/Lib/TLibCommon/TComYuv.cpp: TComYuv: use pixel copy primitives [bce043dae3ef] * source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPicYuv.h: white-space nits, no changes [2bed949a69ab] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: get access to the original source pixel plane and real strides [d959edb866f9] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: get offset into original picture buffer pcOrgYuv seems to point to a small YUV buffer holding only the pixels for the current CTU under analysis. [d85c6703f022] * source/Lib/TLibCommon/TComPrediction.cpp: TComPrediction: fix MSVC reported stack corruption When run in debug mode, MSVC reported stack corruption near leftColumn. The 1st for loop is iterating over blkSize+1 This looks like an HM bug exposed by reducing MAX_CU_SIZE to the actual max 64 [14d43f8589d0] * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc, source/encoder/vec/pixel8.inc: pixel: add vectorized sad_48_x3 [765fc92c7d80] * source/encoder/pixel.cpp, source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc, source/encoder/vec/pixel8.inc: pixel: add vectorized sad_48_x4 [254937aa7425] * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc, source/encoder/vec/pixel8.inc: pixel: add vectorized sad 48 [f48a79bd4693] * source/encoder/vec/pixel16.inc: pixel16: fix bug in sad_12_x4 [a1ec7d7c20ee] * source/encoder/vec/pixel16.inc: pixel16: fix bug in sad_12_x3 [da712d42ba62] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: fix compiler warning [3be39838c8d4] * source/encoder/vec/pixel8.inc: pixel8: fix bug in sad_4_x4 [0b7655d1a1b3] * source/encoder/pixel.cpp, source/encoder/primitives.cpp, source/encoder/primitives.h, source/test/pixelharness.cpp: pixel: add 48 sized partitions [98c591baafeb] 2013-05-05 Min Chen * source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComRom.h: intrapred: use alignment piAdibuf --- source/Lib/TLibCommon/TComPattern.cpp | 18 +++++++++--------- source/Lib/TLibCommon/TComPrediction.cpp | 4 ++-- source/Lib/TLibCommon/TComRom.h | 1 + 3 files changed, 12 insertions(+), 11 deletions(-) [48895f57159b] * source/Lib/TLibCommon/TComPattern.cpp: intrapred: perform by merge loop --- source/Lib/TLibCommon/TComPattern.cpp | 10 ++-------- 1 files changed, 2 insertions(+), 8 deletions(-) [51b0fb4398be] * source/Lib/TLibCommon/TComPattern.cpp: intrapred: perform pixel copy with memcpy() in TComPattern::fillReferenceSamples --- source/Lib/TLibCommon/TComPattern.cpp | 23 ++++------------------- 1 files changed, 4 insertions(+), 19 deletions(-) [bab59102ce8e] * source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h: intrapred: remove unsupported mode code for Chroma_FromLuma --- source/Lib/TLibCommon/TComPattern.cpp | 15 +++------------ source/Lib/TLibCommon/TComPattern.h | 3 +-- 2 files changed, 4 insertions(+), 14 deletions(-) [da7059cdee2c] * source/Lib/TLibCommon/TComPattern.cpp: intrapred: perform pixel copy with memcpy() in TComPattern::initAdiPattern --- source/Lib/TLibCommon/TComPattern.cpp | 11 +++-------- 1 files changed, 3 insertions(+), 8 deletions(-) [d249be0a4674] * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibEncoder/TEncSearch.cpp: intrapred: correct buffer name from YuvExt to PredBuf --- source/Lib/TLibCommon/TComPrediction.cpp | 14 +++++++------- source/Lib/TLibCommon/TComPrediction.h | 12 ++++++------ source/Lib/TLibEncoder/TEncSearch.cpp | 14 +++++++------- 3 files changed, 20 insertions(+), 20 deletions(-) [3faafbf81d93] * source/Lib/TLibCommon/TComRom.h: reduce MAX_CU_SIZE to 64 --- source/Lib/TLibCommon/TComRom.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) [800d16ed3620] 2013-05-05 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: TEncSearch: SAD primitives all expect 16byte aligned fenc buffer [7f90a9927f4a] * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc, source/encoder/vec/pixel8.inc: pixel: finish optimizations - performance summary below Measured on AMD Trinity A10M (more tuning can be done) 16b orig 16b opt 8b orig 8b opt sad[ 4x4] 3.79x 3.51x 2.53x 3.34x sad_x3[ 4x4] 2.02x 4.17x 4.17x 5.99x sad_x4[ 4x4] 3.63x 4.35x 3.64x 5.95x sad[ 4x8] 3.76x 3.90x 4.21x 3.47x sad_x3[ 4x8] 3.64x 4.33x 5.67x 7.58x sad_x4[ 4x8] 2.56x 4.74x 6.39x 8.21x sad[ 4x12] 4.25x 3.94x 3.11x 4.74x sad_x3[ 4x12] 4.67x 4.98x 4.93x 8.96x sad_x4[ 4x12] 2.82x 5.31x 6.71x 9.39x sad[ 4x16] 4.42x 3.96x 3.41x 3.60x sad_x3[ 4x16] 4.65x 5.09x 6.98x 8.60x sad_x4[ 4x16] 3.17x 5.35x 7.81x 8.41x sad[ 4x24] 5.08x 4.07x 3.69x 4.19x sad_x3[ 4x24] 5.53x 5.83x 7.70x 8.82x sad_x4[ 4x24] 3.52x 5.73x 8.32x 9.37x sad[ 4x32] 5.59x 3.94x 3.99x 4.00x sad_x3[ 4x32] 5.83x 5.27x 7.39x 9.31x sad_x4[ 4x32] 3.46x 5.41x 7.94x 9.42x sad[ 4x64] 5.40x 3.68x 3.60x 4.36x sad_x3[ 4x64] 5.89x 5.95x 8.27x 8.82x sad_x4[ 4x64] 3.56x 6.37x 9.17x 9.50x sad[ 8x4] 6.10x 5.74x 5.87x 5.84x sad_x3[ 8x4] 6.39x 8.13x 9.75x 11.53x sad_x4[ 8x4] 3.26x 8.52x 9.19x 10.51x sad[ 8x8] 6.05x 6.33x 8.87x 8.01x sad_x3[ 8x8] 6.32x 9.18x 11.84x 13.61x sad_x4[ 8x8] 4.14x 10.67x 12.58x 14.97x sad[ 8x12] 8.03x 6.79x 10.30x 6.91x sad_x3[ 8x12] 8.84x 10.46x 12.15x 17.12x sad_x4[ 8x12] 5.28x 11.92x 12.83x 16.98x sad[ 8x16] 8.23x 6.79x 7.63x 9.17x sad_x3[ 8x16] 9.26x 11.33x 13.88x 17.11x sad_x4[ 8x16] 5.49x 12.22x 14.27x 17.19x sad[ 8x24] 10.02x 6.93x 8.16x 9.32x sad_x3[ 8x24] 11.32x 11.86x 15.38x 17.91x sad_x4[ 8x24] 6.48x 13.29x 15.28x 17.95x sad[ 8x32] 10.96x 6.94x 8.03x 7.51x sad_x3[ 8x32] 12.70x 10.95x 14.03x 17.67x sad_x4[ 8x32] 6.87x 13.09x 15.16x 17.80x sad[ 8x64] 10.61x 6.76x 8.18x 8.75x sad_x3[ 8x64] 12.35x 12.67x 16.05x 17.61x sad_x4[ 8x64] 6.70x 14.02x 17.93x 17.90x sad[ 12x4] 12.01x 8.40x 4.32x 11.48x sad_x3[ 12x4] 14.04x 7.17x 9.33x 12.21x sad_x4[ 12x4] 4.42x 7.61x 9.60x 12.85x sad[ 12x8] 5.78x 10.04x 3.35x 14.10x sad_x3[ 12x8] 5.31x 8.08x 10.47x 15.54x sad_x4[ 12x8] 4.34x 9.55x 11.67x 16.22x sad[12x12] 6.83x 10.16x 2.92x 15.61x sad_x3[12x12] 6.52x 9.10x 9.02x 18.85x sad_x4[12x12] 3.65x 9.97x 11.17x 18.88x sad[12x16] 6.68x 10.00x 3.90x 14.68x sad_x3[12x16] 6.04x 9.09x 12.11x 18.01x sad_x4[12x16] 4.12x 10.20x 10.40x 16.77x sad[12x24] 7.30x 10.50x 3.72x 17.46x sad_x3[12x24] 6.50x 9.48x 11.51x 18.17x sad_x4[12x24] 4.42x 10.80x 12.50x 19.86x sad[12x32] 7.26x 10.35x 3.60x 15.86x sad_x3[12x32] 7.37x 9.28x 10.14x 19.57x sad_x4[12x32] 4.50x 10.46x 11.64x 19.26x sad[12x64] 7.39x 10.43x 3.68x 16.47x sad_x3[12x64] 6.97x 9.85x 11.97x 19.00x sad_x4[12x64] 4.74x 10.70x 13.86x 19.14x sad[ 16x4] 6.70x 11.02x 16.55x 15.20x sad_x3[ 16x4] 2.94x 10.38x 14.13x 20.10x sad_x4[ 16x4] 9.72x 10.35x 13.35x 18.95x sad[ 16x8] 8.44x 13.62x 23.35x 22.69x sad_x3[ 16x8] 8.36x 11.16x 17.99x 25.49x sad_x4[ 16x8] 12.18x 13.23x 18.34x 23.65x sad[16x12] 10.72x 13.74x 25.86x 19.47x sad_x3[16x12] 11.61x 13.38x 19.21x 31.36x sad_x4[16x12] 13.33x 13.83x 19.15x 31.15x sad[16x16] 9.02x 13.12x 20.34x 24.25x sad_x3[16x16] 10.56x 13.96x 22.97x 31.96x sad_x4[16x16] 14.20x 14.20x 23.01x 28.75x sad[16x24] 11.53x 13.88x 25.07x 21.63x sad_x3[16x24] 12.69x 14.23x 25.64x 32.38x sad_x4[16x24] 12.16x 15.11x 21.14x 34.09x sad[16x32] 13.78x 12.36x 24.08x 20.00x sad_x3[16x32] 11.73x 13.73x 25.03x 33.07x sad_x4[16x32] 12.30x 14.24x 17.85x 33.74x sad[16x64] 12.01x 14.42x 29.62x 20.27x sad_x3[16x64] 9.17x 15.85x 28.93x 26.92x sad_x4[16x64] 10.81x 13.19x 13.30x 27.21x sad[ 24x4] 11.59x 17.13x sad_x3[ 24x4] 10.48x 13.78x sad_x4[ 24x4] 11.10x 11.48x sad[ 24x8] 12.13x 18.30x sad_x3[ 24x8] 10.54x 21.45x sad_x4[ 24x8] 10.38x 20.92x sad[24x12] 13.24x 19.48x sad_x3[24x12] 11.65x 24.07x sad_x4[24x12] 10.70x 23.24x sad[24x16] 14.78x 16.64x sad_x3[24x16] 12.28x 24.14x sad_x4[24x16] 11.00x 23.40x sad[24x24] 13.03x 18.30x sad_x3[24x24] 11.58x 25.63x sad_x4[24x24] 11.58x 24.97x sad[24x32] 13.31x 20.60x sad_x3[24x32] 11.98x 24.82x sad_x4[24x32] 11.75x 24.23x sad[24x64] 14.44x 19.69x sad_x3[24x64] 11.99x 24.59x sad_x4[24x64] 10.38x 24.77x sad[ 32x4] 14.00x 13.52x 16.56x 22.89x sad_x3[ 32x4] 11.05x 10.79x 19.78x 27.12x sad_x4[ 32x4] 10.05x 9.93x 13.85x 24.46x sad[ 32x8] 8.41x 14.32x 27.08x 25.34x sad_x3[ 32x8] 12.81x 11.18x 27.39x 29.64x sad_x4[ 32x8] 10.39x 9.57x 13.85x 29.09x sad[32x12] 10.30x 16.07x 26.75x 27.38x sad_x3[32x12] 14.42x 11.35x 23.73x 33.19x sad_x4[32x12] 10.77x 10.22x 16.79x 33.34x sad[32x16] 9.98x 15.20x 29.70x 27.72x sad_x3[32x16] 10.34x 11.84x 27.65x 32.54x sad_x4[32x16] 10.91x 11.07x 12.62x 33.63x sad[32x24] 10.65x 15.88x 32.63x 28.39x sad_x3[32x24] 11.09x 11.14x 29.62x 33.79x sad_x4[32x24] 11.21x 11.18x 13.53x 34.14x sad[32x32] 11.62x 14.51x 32.15x 24.65x sad_x3[32x32] 14.23x 11.83x 29.88x 30.06x sad_x4[32x32] 11.63x 11.44x 15.78x 33.15x sad[32x64] 11.39x 15.72x 35.13x 28.99x sad_x3[32x64] 10.43x 10.39x 28.87x 36.20x sad_x4[32x64] 10.73x 9.71x 14.08x 36.61x sad[ 64x4] 9.92x 12.61x 24.17x 25.65x sad_x3[ 64x4] 10.89x 9.16x 20.94x 27.04x sad_x4[ 64x4] 7.64x 9.67x 11.56x 24.33x sad[ 64x8] 8.64x 13.43x 25.54x 26.88x sad_x3[ 64x8] 11.55x 9.80x 22.40x 23.04x sad_x4[ 64x8] 8.34x 10.10x 12.34x 18.87x sad[64x12] 9.41x 14.17x 27.20x 28.67x sad_x3[64x12] 12.39x 9.30x 23.76x 26.13x sad_x4[64x12] 7.88x 9.21x 14.02x 22.10x sad[64x16] 8.66x 14.51x 28.84x 30.87x sad_x3[64x16] 8.98x 9.60x 24.42x 27.69x sad_x4[64x16] 8.27x 9.67x 29.10x 24.21x sad[64x24] 9.16x 13.90x 24.11x 27.05x sad_x3[64x24] 8.56x 9.75x 16.25x 28.11x sad_x4[64x24] 9.61x 9.99x 30.53x 24.77x sad[64x32] 10.06x 14.10x 25.67x 28.96x sad_x3[64x32] 8.46x 9.97x 13.58x 29.50x sad_x4[64x32] 10.15x 10.14x 31.67x 25.41x sad[64x64] 10.06x 14.75x 25.82x 32.25x sad_x3[64x64] 8.04x 8.93x 31.06x 30.90x sad_x4[64x64] 9.36x 9.88x 26.55x 26.53x [82239d0023c8] * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc, source/encoder/vec/pixel8.inc: pixel: optimize sad_4 and sad_8 to not need helpers [3ad29dc2d608] * source/encoder/vec/pixel8.inc: pixel8: more cleanups, no behavior changes [9ebffae04e6f] * source/encoder/vec/pixel8.inc: pixel8: intermediate variable rename, to be consistent with pixel16 [6f3ac7d4cfbd] * source/encoder/vec/pixel8.inc: pixel8: 8bpp sad_64_x4 and sad_64_x3 cannot have residual rows [6fe1fd06c373] * source/encoder/vec/pixel16.inc: pixel16: optimize 16bpp sad_N_x3 (adapted copies of sad_N_x4) [9b3489a15596] * source/encoder/vec/pixel16.inc: pixel16: optimize sad_N_x4 16bpp [fde81cd177e9] * source/encoder/vec/pixel.inc, source/encoder/vec/pixel8.inc: pixel8: optimize sad_N_x4 8bpp, add sad_24_x4 [2b22cc59fa15] * source/encoder/vec/pixel8.inc: pixel8: optimize 8bpp sad_12_x4 [379a62ef320b] * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc, source/encoder/vec/pixel8.inc: pixel: add sad_24 for 8bpp and 24bpp [8851cd024b0f] * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc: pixel16: add sad_24_x3 [e2002f58b3a8] * source/encoder/vec/pixel16.inc: pixel16: fix some unaligned access exceptions triggered by VC10 16bpp x64 [3d667e4c590c] * source/encoder/vec/pixel16.inc: pixel16: fixups for 16bpp primitives [e88afd27d35a] * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc, source/encoder/vec/pixel8.inc: pixel: optimize sad_8_x4 - now same X over C as sad_8_x3 [c17efc4e7f4a] * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc, source/encoder/vec/pixel8.inc: pixel: optimize sad_4_x4, remove unnecessary sad_X_4_x4 functions [06554d1dedba] * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc, source/encoder/vec/pixel8.inc: pixel: remove more useless lx parameters and for-loops for x3 functions [72a35f3f6e2e] * source/encoder/vec/pixel8.inc: pixel: optimize sad_64_x3 - about 20% improvement [46c082e89598] * source/encoder/vec/pixel8.inc: pixel: optimize sad_32_x3 - about 20% improvement, remove unused sad_32_4 [12351a667289] * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc, source/encoder/vec/pixel8.inc: pixel: optimize sad_16_x3 - about 30% improvement, remove sad_16_4 [ca2192011209] 2013-05-04 Steve Borho * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc, source/encoder/vec/pixel8.inc: pixel: optimize sad_12_x3 - about 2x improvement, remove sad_12_4 [fed8c8152de7] * source/encoder/vec/pixel8.inc: pixel8: slight tuneup for sad_8_3x [056c029b7762] * source/encoder/vec/pixel8.inc: pixel8: allow 16 rows in a row of 4-wide 8bpp blocks - up to 30% faster [d906f4351c02] * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc, source/encoder/vec/pixel8.inc: pixel: sad_8_x3<4> is faster than sad_8_4_x3<8,4> which seems to have no use [e834992087df] 2013-05-05 ShinYee Chung * source/encoder/vec/CMakeLists.txt: cmake: Specify the compilation of architecture SSE2 explicitly. The VS2010 crashes when executing one of the sad variants. The instruction vmovdqa() was found generated, crashing cpuid == 4 CPU. [9cf98cfecaa7] 2013-05-04 Steve Borho * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc, source/encoder/vec/pixel8.inc: pixel: sad_4_x3 should not have lx template var; it was broken for 8bpp Removes sad_4_4_x3 since it added no optimization [a89f7e937705] * source/encoder/vec/pixel.inc: pixel: enable SAD PARTITION_16x24 now that it is supported for 8bpp [bc25ce99514e] * source/encoder/vec/pixel8.inc: pixel8: use Vec8us to accumulate sums with addSumAbsDiff() From 30 to 100% speedups for 8bpp SAD functions [a194cda3c978] * source/VectorClass/vectori128.h: vector: add Vec8us::addSumAbsDiff() This avoids data casts and removes a couple of instructions from some tight paths. [f167c85b6707] * source/encoder/vec/CMakeLists.txt: cmake: add a comment about inc files listed in PrimitivesVec project [bc8c389159c5] * source/CMakeLists.txt: cmake: remove option for multithreaded build, enable unconditionally [013198c3eb01] 2013-05-05 ShinYee Chung * source/encoder/vec/interpolationfilter.inc: Interpolation: Fix compile warning/error on unused parameter. [e160901853b5] * source/encoder/vec/vecprimitives.inc: primitives: Fix compile error on re-declaration of selectf() and selectd(). It is probably due to cycle in the header includes. [3736fe22253e] 2013-05-04 Min Chen * source/VectorClass/vectori128.h, source/encoder/vec/intrapred.inc: intrapred: more improvement 8bpp DC for 32 and 64 blocks --- source/VectorClass/vectori128.h | 45 ++++++++++++++++++++++++++++++++++++++ source/encoder/vec/intrapred.inc | 38 +++++++++++++------------------ 2 files changed, 61 insertions(+), 22 deletions(-) [c8fe324edc4d] * source/encoder/threadpool.cpp: threadpool: VS2008 not defined _WIN32_WINNT_VISTA --- source/encoder/threadpool.cpp | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) [d5d163ce5222] 2013-05-04 Steve Borho * source/encoder/vec/intrapred.inc: intrapred: remove includes and namespace from inc header includes must be in vecprimitives.inc, outside of the anonoymous namespace [ed8b00af0055] * source/encoder/vec/CMakeLists.txt: cmake: add intrapred.inc to the PrimitivesVec project So it's easy to find [40ccd41545cb] * source/VectorClass/vectori128.h, source/encoder/vec/intrapred.inc: vectori128: add fromUint64() method, only available for x64 builds Needs a better fallback and cross-platform x64 compilation detection [2daae31d6ab5] * source/encoder/vec/intrapred.inc: intrapred: simplify 8bpp DC for 32 and 64 blocks, now faster than C [78aeea32fd92] * source/encoder/vec/intrapred.inc: intrapred: add an 8bpp path for DC pred (currently slower than C at 64x64) This primitive might have to use aligned loads to be faster than C.. or have a function pointer per intra-block width to avoid the switch statement. [4f1b0d47e596] 2013-05-03 Steve Borho * source/encoder/vec/intrapred.inc: intrapred: use g_aucConvertToBit for bit size [b2b21d6fe1fc] * source/test/intrapredharness.cpp: intrapredharness: ensure top pixels always avail for perf test [3bb5cca8fb52] * source/encoder/vec/intrapred.inc: intrapred: perform horizontal sum at increased depth Test now passes with 10bit pixels [5a3d377654c2] * source/test/intrapredharness.cpp: intrapredharness: pre-calculate all random pixels, ensure top pixels always avail [55dc29e361fa] * source/test/intrapredharness.cpp: intrapredharness: this primitive requires initROM() to be called [793b2e36e7e8] * source/test/CMakeLists.txt: testbench: 8bpp link now requires HM, just for a global array [d883646084ac] * source/encoder/vec/intrapred.inc: intrapred: disable 4100 warnings until 8bpp is supported [3db61f610fc5] * source/encoder/threadpool.cpp: threadpool: further compilation fixes for other platforms [5c2c51892268] * source/test/intrapredharness.cpp: intrapredharness: fix shadowed loop variable [c9341cd75fca] * source/test/CMakeLists.txt: cmake: add new intrapred harness to testbench build [fee22e63bf0a] 2013-05-04 Min Chen * source/test/intrapredharness.cpp, source/test/intrapredharness.h, source/test/testbench.cpp: intrapred: testbench From 990ec815902203bfb954921bac75e1913719e630 Mon Sep 17 00:00:00 2001 --- source/test/testbench.cpp | 5 +- source/test/intrapredharness.cpp | 122 ++++++++++++++++++++++++++++++++++++++ source/test/intrapredharness.h | 53 ++++++++++++++++ 3 files changed, 179 insertions(+), 1 deletions(-) create mode 100644 source/test/intrapredharness.cpp create mode 100644 source/test/intrapredharness.h [50d74bce7e74] 2013-05-03 Steve Borho * source/encoder/vec/intrapred.inc: intrapred: fix one obvious bug, disable DC vec prim for 8bpp until debugged [1276967fdbcc] * source/encoder/IntraPred.cpp: IntraPred: yes, pixel is an alias for Pel and vice-versa [4ee48f5e5c8d] * source/encoder/CMakeLists.txt: cmake: add IntraPred.cpp to CPRIMITIVES file list [6da50ba09221] 2013-05-03 Min Chen * source/Lib/TLibCommon/TComPrediction.cpp, source/VectorClass/vectori128.h, source/encoder/IntraPred.cpp, source/encoder/primitives.cpp, source/encoder/primitives.h, source/encoder/vec/intrapred.inc, source/encoder/vec/vecprimitives.inc: intrapred: vector code --- source/Lib/TLibCommon/TComPrediction.cpp | 8 ++- source/VectorClass/vectori128.h | 9 ++ source/encoder/IntraPred.cpp | 83 ++++++++++++++++ source/encoder/primitives.cpp | 2 + source/encoder/primitives.h | 3 + source/encoder/vec/intrapred.inc | 156 ++++++++++++++++++++++++++++++ source/encoder/vec/vecprimitives.inc | 3 + 7 files changed, 263 insertions(+), 1 deletions(-) create mode 100644 source/encoder/IntraPred.cpp create mode 100644 source/encoder/vec/intrapred.inc [8ba7ba4f1b69] * source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibEncoder/TEncSearch.cpp: replace piAdiBuf type from Int to Pel --- source/Lib/TLibCommon/TComPattern.cpp | 28 ++++++++++++++-------------- source/Lib/TLibCommon/TComPattern.h | 14 +++++++------- source/Lib/TLibCommon/TComPrediction.cpp | 22 +++++++++++----------- source/Lib/TLibCommon/TComPrediction.h | 6 +++--- source/Lib/TLibEncoder/TEncSearch.cpp | 6 +++--- 5 files changed, 38 insertions(+), 38 deletions(-) [a787dfc1a781] * source/Lib/TLibCommon/TComPrediction.cpp: Intra dc prediction own function Conflicts: source/Lib/TLibCommon/TComPrediction.cpp --- source/Lib/TLibCommon/TComPrediction.cpp | 61 +++++++++++++++++------------- 1 files changed, 35 insertions(+), 26 deletions(-) [2a4abd157919] * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h: extract Intra prediction functions from class to normal --- source/Lib/TLibCommon/TComPrediction.cpp | 10 ++++++---- source/Lib/TLibCommon/TComPrediction.h | 5 ----- 2 files changed, 6 insertions(+), 9 deletions(-) [b947edf8099b] * source/Lib/TLibCommon/TComPrediction.cpp: OPT predIntraLumaAng: merge function call --- source/Lib/TLibCommon/TComPrediction.cpp | 16 +++++----------- 1 files changed, 5 insertions(+), 11 deletions(-) [39e2bb372e4c] 2013-05-03 Steve Borho * source/test/pixelharness.cpp: pixelharness: cut down on iterations for measuring x3 and x4 perf [ba8113125178] * source/encoder/threadpool.cpp: threadpool: fixup commit for GCC and later Windows versions [c8479b70bcdb] 2013-05-03 Min Chen * source/encoder/threadpool.cpp: Fix WinXP compatible --- source/encoder/threadpool.cpp | 23 +++++++++++++++++++++-- 1 files changed, 21 insertions(+), 2 deletions(-) [069ddee0aceb] 2013-05-03 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/motion.cpp, source/test/testbench.cpp: motion: make new motion search disappear without ENABLE_PRIMITIVES [96457db97f8e] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: don't use neighbor MVs as search candidates, merge will check them I'm leaving the search candidate arguments in place, later we might get some search candidates that are not also merge candidates (lookahead, for one) [078a4dfddbcd] 2013-05-02 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: found some predictor MVs [3e656c4c7905] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/motion.cpp, source/encoder/motion.h, source/encoder/mv.h: motion: partial integration into TEncSearch for debugging purposes Adds a small amount of overhead [0842edc65dea] * source/encoder/vec/pixel.inc: pixel: disable satd function completely for 8bpp [b49e50e70bb2] * source/Lib/TLibCommon/TComPicYuv.cpp: TComPicYuv: add TODOs where new performance primitives can be added [ba309a167e38] * source/Lib/TLibCommon/TComPicYuv.cpp: TComPicYuv: white-space nits, no effect [387f505139c6] * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h: TComPic: remove unused m_bNeededForOutput [0279f22166ba] * source/encoder/motion.cpp: motion: use block copy primitive [a116b67a5a01] * source/CMakeLists.txt: cmake: the big switch. Make 8bpp the default build configuration [6c9154cdab6f] * source/encoder/bitcost.cpp: bitcost: and another cast [af04f537b82e] * source/encoder/bitcost.cpp: bitcost: add back explicit typecasts [80b6aba5b4e4] 2013-05-03 ShinYee Chung * source/encoder/bitcost.cpp: bitcost: Use portable std::min() instead of implicit min(). [49605906cd31] 2013-05-02 Steve Borho * source/encoder/bitcost.cpp: bitcost: document more differences between the HM and x264 approaches [dc6634bdf401] * source/encoder/bitcost.cpp: bitcost: use integer min() for MSVC compatibility [abe3030915d6] 2013-05-03 ShinYee Chung * source/encoder/bitcost.cpp: bitcost: Fix segfault due to out of bound accesses to logs table. [7b18a1bab2fa] * source/input/y4m.cpp: y4m: Fix -ve PSNR when encoding a y4m file. Sample output: POC 0 TId: 0 ( I-SLICE, nQP 32 QP 32 ) 23444072 bits [Y -40.5587 dB U -40.8645 dB V -40.8654 dB] [ET 21 ] [L0 ] [L1 ] [13cd19348761] 2013-05-02 ShinYee Chung * source/encoder/motion.cpp: motion: Fix a compile error due to undeclared memcpy(). [85d91dfdccc6] * source/encoder/motion.cpp, source/encoder/motion.h: motion: Fix compile warnings/errors due to shadowed variables. [9e6d97767358] * source/CMakeLists.txt, source/encoder/bitcost.cpp: bitcost: Fix undeclared min(). The math.h header defines fmin(), and algorithm header defines std::min(). We decided to use fmin(). [ebfbc677b238] 2013-05-02 nandaku2 * Merged in deepthidevaki/xhevc_deepthid (pull request #111) Fix compile issue in TComPrediction.cpp with disable primitives. [4ec6cd5d2732] 2013-05-02 Deepthi Devaki * source/Lib/TLibCommon/TComPrediction.cpp: Fix compile issue in TComPrediction.cpp with disable primitives. [a4f56554606d] 2013-05-02 Mandar Gurav * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc, source/encoder/vec/pixel8.inc: Implementation of sad_x4 stage 2 and sad_x3 [c8d6caa73c42] 2013-05-02 Mandar Gurav * Merged multicoreware/xhevc into default [700a3436aa9f] * source/encoder/InterpolationFilter.cpp: Merged multicoreware/xhevc into default [1ded90aad015] 2013-05-02 Mandar Gurav * source/encoder/vec/pixel.inc, source/encoder/vec/pixel8.inc: Implementation for sad_x4 - 8,16,32,64 with HIGH_BT_WIDTH disabled. [3dd9ebabfdcb] 2013-05-02 Deepthi * source/encoder/primitives.cpp: Compilation fix for primitives disabled [4f863ec8e9d8] 2013-05-02 Deepthi Devaki * source/encoder/CMakeLists.txt: Merge [0ad59133e0b6] * source/Lib/TLibCommon/TComPrediction.cpp, source/encoder/CMakeLists.txt, source/encoder/InterpolationFilter.cpp, source/encoder/InterpolationFilter.h: cleaning up TComPrediction.cpp with new filters [7827c5d4f308] * source/encoder/CMakeLists.txt, source/encoder/InterpolationFilter.cpp, source/encoder/ipfilter.cpp: Rename .cpp file with filter-primitives [bd3f6bf45ab7] * source/encoder/InterpolationFilter.cpp, source/encoder/interpolationfilter.cpp: Backed out changeset: 2e29f87a6088 [2efde965e0ee] * source/encoder/CMakeLists.txt: Backed out changeset: dd6580ef216e [6df4928a88a8] * source/encoder/CMakeLists.txt: Renaming interpolationfilter.cpp in CMakeList [dd6580ef216e] * source/encoder/InterpolationFilter.cpp, source/encoder/interpolationfilter.cpp: Rename .cpp file containing filter-primitives [2e29f87a6088] 2013-05-02 Steve Borho * source/encoder/CMakeLists.txt, source/encoder/motion.cpp, source/encoder/motion.h: motion: motion search now compiles, added to build but unused [56dfb55dad17] * Merged in praveentiwari/xhevc_praveent (pull request #108) 2.20x more performance gain for partialButterflyInverse16 [7b4811d9db39] 2013-05-02 praveentiwari * source/encoder/vec/macroblock.inc: 2.20x more performance gain for partialButterflyInverse16 [eba40e7f48dc] 2013-05-02 Mandar Gurav * source/encoder/pixel.cpp, source/encoder/primitives.h, source/encoder/vec/interpolationfilter.inc, source/encoder/vec/pixel16.inc, source/test/pixelharness.cpp: Implementation of sad_x3 and sad_x4 with reference frame stride. [249bdb052e0a] 2013-05-02 Steve Borho * source/encoder/motion.cpp, source/encoder/motion.h: motion: compilation fixes - file still not part of build [3dd5ac35ea76] 2013-05-01 Steve Borho * source/encoder/vec/pixel8.inc: pixel8: remove unused satd_4x4 and sa8d_8x8 [d8bc48ebe95c] 2013-05-02 Mandar Gurav * source/encoder/vec/CMakeLists.txt, source/encoder/vec/interpolationfilter.inc, source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc, source/encoder/vec/pixel8.inc, source/encoder/vec/vecprimitives.inc: Restructure pixel.inc [78d93b165924] 2013-05-01 Steve Borho * source/test/pixelharness.cpp: pixelharness: increase size of pixel buffers [d30a346a00d0] * source/test/pixelharness.cpp: pixelharness: test random PU block sizes [a16589611ae6] * source/encoder/vec/blockcopy.inc, source/test/pixelharness.cpp: blockcopy: couple of bug fixes, now all but p_s pass with 8bpp [26bcd02b0ffc] * source/encoder/vec/blockcopy.inc, source/encoder/vec/pixel.inc: pixel: fix HIGH_BIT_DEPTH=0 build, temp fix [e3f72af44dff] * source/encoder/vec/CMakeLists.txt, source/encoder/vec/blockcopy.inc, source/encoder/vec/vecprimitives.inc: primitives: add blockcopy.inc - only HIGH_BIT_DEPTH is accelerated [a2cb9e405fbe] * source/encoder/pixel.cpp: pixel: fixes for block copy C ref [122dcad10a6f] * source/test/pixelharness.cpp: pixelharness: add block copy perf tests [3842dc74d0e3] * source/encoder/pixel.cpp, source/encoder/primitives.h, source/test/pixelharness.cpp, source/test/pixelharness.h: primitive: add block copy primitives [7f115c88c899] * source/test/pixelharness.cpp: pixelharness: nit white-space [de5953b7be6e] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/bitcost.cpp: bitcost: store logs as fractional values *CHANGES OUTPUTS* /me dumb. What was the point of storing the output of ceil() in a float? This was a small but unambiguous win in compression efficiency [ca0cd4e5b78c] * source/encoder/bitcost.cpp: bitcost: use just one copy of "acquire" logic [94d5a08f85bd] * source/encoder/bitcost.h: bitcost: nit - reorder methods in order they are typically used [fd114658c2d0] * source/encoder/bitcost.cpp, source/encoder/bitcost.h: bitcost: store cost estimates as 16bits, clamp to max16 It's somewhat pedantic to keep more bits than this, and wasteful of precious CPU cache. If someone in the future really wants >16bit mv costs, they can template this class and instantiate the size they want. This had no measurable effect on the outputs. [1522b5f696e4] * source/encoder/bitcost.h: bitcost: reorder initializers to make GCC happy [75f7df4a2567] 2013-04-30 Steve Borho * source/encoder/primitives.h: primitives: avoid redecl of CDECL with GCC [e3e7d5fc0930] 2013-05-01 Steve Borho * source/encoder/primitives.h: Merged in mandarmcw/xhevc_mandar_mahesh (pull request #105) Implementation of sad_4_x3 and sad_12_x3. and sad_x4 [6f85a46676d5] 2013-05-01 Mandar Gurav * source/encoder/pixel.cpp, source/encoder/primitives.h, source/encoder/vec/pixel.inc, source/test/pixelharness.cpp, source/test/pixelharness.h: Implementation of sad_x4 [b8dac1cab20f] * source/encoder/vec/pixel.inc, source/test/pixelharness.cpp: Implementation of sad_4_x3 and sad_12_x3. [e1c2cc61fd99] 2013-05-01 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/bitcost.cpp, source/encoder/primitives.cpp, source/encoder/primitives.h: bitcost: use new bitcost class for mv cost estimates *CHANGES OUTPUTS* Sample encode statistics comparing HM vs x265 mv cost estimates: (comparing HM vs our HM optimization, not the x264 approach) kbps Y PSNR U PSNR V PSNR HM getCost(): 1381.8880 32.8096 41.0167 43.3698 m_bc.mvcost(): 1383.2000 32.8171 41.0402 43.3580 (mostly noise, but it is different) [8fbf3bf1bce5] * source/encoder/bitcost.cpp, source/encoder/bitcost.h, source/encoder/primitives.cpp: bitcost: rename cleanupCosts to destroy [e0e5b913b3ea] * source/encoder/bitcost.cpp: bitcost: bring mv costs close in line with HM's methods mvcost rounds earlier, so it results in even scores while the HM rounds at the end so it usually gets odd scores, but they are typically one digit apart. In a few places logs[] will vary from Motion_Costs by 1, causing the result to differ by 1 lambda. [af142516c4ff] 2013-05-01 Deepthi * Merge [55bb44dbbcab] * source/x265enc.cpp: The very common sizeof bug. [961680a9f94e] 2013-05-01 Steve Borho * source/encoder/primitives.cpp: primitives: free Motion_Cost in x265_cleanup() [c424425a66f2] 2013-04-30 Steve Borho * source/encoder/bitcost.cpp, source/encoder/bitcost.h: bitcost: precalculate 2 * log2(n) for each MVD offset [42f145aaeea0] * source/encoder/mv.h: mv: bug fixes; cannot use word shifts because x or y can be signed [425867841725] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: HM uses different sqrt(lambda) to calculate SAD bitcosts [28a3ad887c33] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: comment improvements and white-space nits [fe0009c03145] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/bitcost.cpp, source/encoder/bitcost.h: bitcost: bug fixes and enable integration into TEncSearch.cpp [c18cfa4d13a6] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/bitcost.cpp, source/encoder/bitcost.h, source/encoder/primitives.h: bitcost: begin integration into TEncSearch [81b815f0ac28] * source/encoder/bitcost.cpp, source/x265.h: x265: comment nits [1ca12b92b67f] * source/encoder/bitcost.cpp: bitcost: fix bug caused by bad eye-sight and worse fonts [2208db9f4e49] * source/encoder/primitives.cpp, source/x265.h, source/x265main.cpp: api: add x265_cleanup() method, to make leak detectors happy [3bbdb7451176] * source/encoder/CMakeLists.txt, source/encoder/bitcost.cpp, source/encoder/bitcost.h, source/encoder/motion.h: bitcost: add BitCost to x265 project build [1fb55290fb14] * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/mv.h: mv: remove getAbsHor|Ver access methods [99ed9f571a1c] * source/Lib/TLibCommon/TComDataCU.cpp, source/encoder/mv.h: mv: move scaleMV method to file static in TComDataCU.cpp This was the only file to use it, and it requires CommonDef.h so it was cleaner to move it there than to #include CommonDef in our new code. [22f8092af4c0] * source/encoder/bitcost.h, source/encoder/motion.cpp, source/encoder/motion.h, source/encoder/mv.h: motion: simplify block offset calculations and MV API [d45e0bf08279] * source/Lib/TLibCommon/TComTrQuant.cpp: backout micro optimization in TComTrQuant uiQ is much larger than a pixel value, so doing calculation as Int64 is correct This change was resulting in an infinite for-loop in debug runs [2803c3221494] * source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComMotionInfo.cpp, source/encoder/mv.h: mv: replace setZero() calls with assignments to 0 (implicit cast) [8bf5cfa3dc58] * source/encoder/mv.h: mv: fix shadow compile warnings [26f80f4c0e63] * source/encoder/vec/macroblock.inc: Merged in mandarmcw/xhevc_mandar_mahesh (pull request #103) Implementation of sad_16_x3, sad_32_x3 stage 1 [dcc9d54d3338] 2013-04-30 Mandar Gurav * source/Lib/TLibCommon/TComRdCost.cpp, source/encoder/vec/macroblock.inc: Revert to xhevc code... [d78e74091ac4] * source/Lib/TLibCommon/TComRdCost.cpp, source/encoder/vec/macroblock.inc: Merge [c3c08427ee92] * source/encoder/vec/pixel.inc: Implementation of sad_16_x3, sad_32_x3 stage 2 [4e9455062807] 2013-04-30 Mandar Gurav * Merged multicoreware/xhevc into default [181bdddec8a7] 2013-04-30 Mandar Gurav * source/encoder/vec/pixel.inc: Implementation of sad_16_x3, sad_32_x3 stage 1 [d0e56fa89954] 2013-04-30 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: white-space nits [c3dc302391b9] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComMv.h, source/encoder/CMakeLists.txt: mv: substitute our x265::MV class for TComMv [7f84c91c706f] * source/Lib/TLibCommon/TComTrQuant.cpp: TComTrQuant: white-space nits [2efe97558d45] * source/Lib/TLibEncoder/TEncSearch.cpp: TEncSearch: eoln fixes [706caf90a11f] * source/encoder/mv.h: mv: compilation fixes [10022975148e] * source/encoder/motion.cpp: motion: call x264_cpu_emms() at end of motion search [ab58c2ee829a] * Merge [da161f8dda40] 2013-04-30 Deepthi * source/Lib/TLibCommon/TComSlice.h: Signed/unsigned comparison mismatch [19e430b976bd] 2013-04-30 Deepthi Devaki * source/Lib/TLibCommon/TComPrediction.cpp, source/encoder/InterpolationFilter.cpp, source/encoder/InterpolationFilter.h, source/encoder/primitives.h: Filter in TComPrediction.cpp 0 - compiles with highBitDepth = 0/ 1 [ee367956acdc] 2013-04-30 praveentiwari * source/encoder/vec/macroblock.inc: Robust logic for clip3 function and multiplication replaced with shift [b9a706e1c328] * source/encoder/vec/macroblock.inc: .62X more performance gain for partialButterflyInverse8 [fa15bd1d94d1] 2013-04-30 praveen Tiwari * Merged multicoreware/xhevc into default [d4c8a6822d48] * Merged multicoreware/xhevc into default [0595c6492fc9] 2013-04-29 praveen Tiwari * Merged multicoreware/xhevc into default [e1633a0b4388] 2013-04-26 praveen Tiwari * Merged multicoreware/xhevc into default [2e307dbf8bc3] 2013-04-25 praveen Tiwari * Merged multicoreware/xhevc into default [8079c95648f2] * Merged multicoreware/xhevc into default [df407ba015a9] 2013-04-24 praveen Tiwari * source/encoder/vec/macroblock.inc: Merged multicoreware/xhevc into default [d084fa7c1507] 2013-04-30 Deepthi * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibEncoder/TEncSearch.cpp: Adding support for Short-Short/Pel-Short SSE calculations. [963b0a22e185] * Merge [df3e251c1550] * source/Lib/TLibCommon/TComRdCost.h: Merge [43db01e2d0f1] * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h: Restructuring TComRdCost to allow for Pel,Short combinations of SSE calc. [6929ad484805] 2013-04-30 Steve Borho * source/encoder/vec/pixel.inc: pixel: disable sad_x3 functions for HIGH_BIT_DEPTH=0 [7d724b6d631d] * source/encoder/primitives.cpp, source/encoder/primitives.h: primitives: nit cleanups [4fabe59015fb] * source/encoder/primitives.h: Merged in ggopu/ggopu_xhevc (pull request #101) Removed GetCost() Function [5923e7ea9058] 2013-04-29 ggopu * source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/primitives.cpp, source/encoder/primitives.h: Removed GetCost() Function [d59ff5bf67d9] 2013-04-30 Steve Borho * Merged in sumalatha/xhevc_sumalatha (pull request #99) C Level Optimization on xRateDistOptQuant() [9920f881602d] 2013-04-30 sumalatha * source/Lib/TLibCommon/TComTrQuant.cpp: C Level Optimization on xRateDistOptQuant() - 1. removed all memsets ( except for pdCostCoeffGroupSig[]) - initialized only those array elements that will be read first before its updated from the inside the main for loop itself. 2. optimized a few of local variables used in certain calculations inside the loop. Also done changes based on steves suggestion [8bb8a28015b6] * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComTrQuant.cpp: Backed out changeset: eb3d76f250f8 [93f865e11524] 2013-04-30 Sumalatha Polureddy * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComTrQuant.cpp: Merged multicoreware/xhevc into default [5d85009c6e6b] 2013-04-29 sumalatha * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComTrQuant.cpp: C Level Optimization on xRateDistOptQuant() - 1. removed all memsets ( except for pdCostCoeffGroupSig[]) - initialized only those array elements that will be read first before its updated from the inside the main for loop itself. 2. optimized a few of local variables used in certain calculations inside the loop. [eb3d76f250f8] 2013-04-30 Steve Borho * Merged in mandarmcw/xhevc_mandar_mahesh (pull request #100) Incoprporated Steve's comments - stage 2. [a68d3284d72a] 2013-04-30 Mandar Gurav * source/test/pixelharness.cpp, source/test/pixelharness.h: Incoprporated Steve's comments - stage 2. [45002b3f2b97] * source/encoder/pixel.cpp, source/encoder/primitives.h, source/encoder/vec/pixel.inc, source/test/pixelharness.cpp, source/test/pixelharness.h: Incoprporated Steve's comments. [c44e18dd256b] 2013-04-30 Mandar Gurav * source/VectorClass/vectori128.h: Merged multicoreware/xhevc into default [d5e09736dcb5] 2013-04-29 Mandar Gurav * source/VectorClass/vectori128.h, source/encoder/pixel.cpp, source/encoder/vec/pixel.inc: Revert old updates. [3c1645af294a] * source/encoder/pixel.cpp, source/encoder/primitives.h, source/encoder/vec/pixel.inc, source/test/pixelharness.cpp, source/test/pixelharness.h: Implemented sad_x3 for calculation of 3 SAD's in single call. [e79693d592d3] 2013-04-28 Mandar Gurav * source/VectorClass/vectori128.h, source/encoder/pixel.cpp, source/encoder/primitives.h, source/encoder/vec/pixel.inc, source/test/pixelharness.cpp: Merged multicoreware/xhevc into default [5692f4fd8ad5] 2013-04-29 Mandar Gurav * source/encoder/vec/pixel.inc, source/test/pixelharness.cpp: Revert to new xhevc code. [21650019be5e] 2013-04-23 Mandar Gurav * source/VectorClass/vectori128.h: Vector class library function [f4465f31f99c] * source/encoder/vec/pixel.inc: Implemented x265_sad16 function into vectorclass librasy. [aed28167b644] * source/encoder/pixel.cpp, source/encoder/primitives.h, source/encoder/vec/pixel.inc, source/test/pixelharness.cpp, source/test/pixelharness.h: Implementation of SAD using intrinsics for 8 bit values. [6af56ea1b74c] 2013-04-30 Steve Borho * source/encoder/bitcost.cpp, source/encoder/bitcost.h, source/encoder/motion.cpp, source/encoder/motion.h, source/encoder/mv.h: add a new motion search core feature - is not part of the project yet The MV, BitCost, MotionReference, and MotionEstimation classes will form the core of the x265 motion estimation system; eventually replacing TEncSearch, TComMV, and most of TComRdCost. [6937acae97d5] 2013-04-29 Steve Borho * source/VectorClass/instrset_detect.cpp: instrset_detect: workaround on Mac OS X [3b6663bd7fb9] * source/VectorClass/vectori128.h, source/encoder/vec/CMakeLists.txt: cmake: isolate warnings disables within vectori128.h with two exceptions [c9ef5adc6f2b] * source/test/testbench.cpp: testbench: mingw_aligned_malloc requires malloc.h [8e58b5fc3759] * source/test/CMakeLists.txt, source/test/filterharness.cpp, source/test/ipfilterharness.cpp, source/test/testbench.cpp: testbench: remove compiler warning training wheels [377da7143671] * source/CMakeLists.txt: cmake: add a comment about why we ignore warnings in the CLI files [1ec1c161fb9e] * source/Lib/TLibEncoder/TEncGOP.cpp: TEncGOP: provide bool values for Bool arguments [0cfc86971117] * source/Lib/TLibEncoder/TEncCfg.h: TEncCfg: fix compiler warning [9e9458725136] * source/Lib/TLibCommon/TComSlice.h: TComSlice: use Bools where appropriate [20b2e53cd947] * source/Lib/TLibCommon/TComPicSym.h: TComPicSym: fix signed/unsigned mangling in the header [2dd01031906c] * source/Lib/TAppCommon/program_options_lite.h: TAppCommon: give classes noimpl copy constructors, makes MSVC happy [18e014cab1d4] * source/CMakeLists.txt: cmake: move tests above CLI, avoid pulling in disabled warnings [4fd9c4ed8a0a] * source/CMakeLists.txt: cmake: add /wd4800 and /wd4018 to x265main.cpp and x265cfg.cpp [8ec187f802f3] * source/Lib/CMakeLists.txt: cmake: add back /wd4018 and /wd4800 to HM source files It would be a gargantuan effort to clean all these up at this point. Instead we will just make all the new code compile clean and these old files will eventually be replaced [7b1566c818a6] * source/Lib/TLibCommon/CommonDef.h: Remove warnings disables from CommonDef.h, will add back with more focus These were leaking into the encoder/ folder where we want our new code to be warning free. [a949c6f35a76] 2013-04-29 ShinYee Chung * source/encoder/TShortYUV.cpp: shortyuv: Fix compile warnings/errors due to comparing signed and unsigned integers. GCC 4.8.0 Linux64: source/encoder/TShortYUV.cpp:424:32: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare] for(int x = 0; x < iWidth; x++) [03df6f73f616] 2013-04-29 Deepthi * source/Lib/TLibEncoder/TEncSearch.cpp: Quick Fix for compilation errors in TEncSearch::xEstimateResidualQT. This has to be re-architected asap. [5305e9dd0f98] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/TShortYUV.h: Merge [f298a0cc803f] * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h: One more function for TComYuv [27e841216893] * source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: Changing the datatype of m_pcQTTempTComYuv. Need to review this at some point - why does it hold both recon and residual data? [8e100ef76380] * source/Lib/TLibCommon/TComYuv.cpp: Changes in TComYuv class [9625d6b6bfc0] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h: Pel to Short changes in TComTrQuant [2161442f663e] * source/encoder/TShortYUV.cpp, source/encoder/TShortYUV.h: Adding more functions to TShortYUV for TComyuv compatilibity. We can use inheritance later for better maintenance and code reuse. [03ed7310e127] 2013-04-28 Deepthi * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/encoder/TShortYUV.cpp, source/encoder/TShortYUV.h: Adding a bunch of function definition/declarations to TShortYUV and TComYUV classes. Compilation successful. [dc004e397c4d] 2013-04-27 Deepthi * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: Replacing all function declarations/definitions with TShortYUV. [d17b57e25292] 2013-04-29 ShinYee Chung * source/test/testharness.h: test: Fix compile error due to undefined size_t. [a3f27ae55e67] * source/Lib/TLibCommon/CommonDef.h: HM/Common: Fix the undefined aligned memory allocation function. [15c7da6ad105] 2013-04-28 Steve Borho * source/test/mbdstharness.cpp, source/test/pixelharness.cpp, source/test/testbench.cpp, source/test/testharness.h: testbench: add aligned alloc and free helper functions [a37bc125a568] * source/CMakeLists.txt, source/test/CMakeLists.txt: cmake: define PLATFORM_LIBS in main cmake file, use for x265-cli [bd817f383232] * source/Lib/TLibCommon/CommonDef.h: aligned_malloc() needs stdlib.h [589ba1b50405] * source/encoder/threadpool.cpp: threadpool: use _BitScanReverse64() instead of __lzcnt64() All variants of __lzcnt() fail to work correctly on Intel CPUs, with no warnings. [04fa32c7226a] * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibEncoder/TEncSearch.cpp: remove FIX203 #define, it will always be 1 [6d3f0c68430c] 2013-04-27 Steve Borho * source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibEncoder/TEncSearch.cpp: rename GetsadFunctions to getSadFunctions() [7e2616997871] * source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/encoder/primitives.cpp, source/encoder/threadpool.cpp, source/x265.h, source/x265cfg.cpp, source/x265cfg.h: api: improvements to C API, make encoder auto-setup primitives and threadpool Remove m_FrameSkip and m_framesToBeEncoded from the public params [a75806cbe14b] * source/Lib/TLibEncoder/TEncCu.cpp: nits, no logic changes [0f02c76c63d1] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: white-space nits [0b87935166f5] * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSlice.cpp, source/PPA/ppa.h, source/PPA/ppaCPUEvents.h: ppa: add some high-level events [f8031314c27d] * source/x265.h, source/x265cfg.cpp, source/x265cfg.h: x265: for public API, only internal bitdepth is configurable And when HIGH_BIT_DEPTH is 0, the value is ignored. This change allows the input and output bit depth fields to be configurable for !HIGH_BIT_DEPTH builds, but are only allowed to be 8. When x265 is used as a library, the input and output bitdepths are completely up to the user. libx265 does not have to know what they are. [e9afe7587e44] * source/encoder/CMakeLists.txt: cmake: add x265.h to libx265 project [1a076f248de6] * source/Lib/TLibCommon/TComTrQuant.cpp: white-space nit [e866124b9b3f] * source/Lib/TLibCommon/TComRdCost.cpp: TComRdCost: micro optimizations, more for clarity than anything else [2df4c0434338] * source/CMakeLists.txt, source/Lib/TLibCommon/TypeDef.h: cmake: define HIGH_BIT_DEPTH to 0 for 8bpp [02382ad0344d] * source/encoder/TShortYUV.h: tshortyuv: white-space nits [06a3ab224b5a] * source/encoder/TShortYUV.h: tshortyuv: forward slashes for includes [a25e6ee7923e] 2013-04-27 Deepthi * source/Lib/TLibEncoder/TEncSearch.cpp: Chroma fixes for Pixel=UShort; Bitrate issues sorted out, bit mismatch issues with Pixel=Short [2ccf934a7a83] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: Merge [d5bf22fdf56d] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: 3 cheers!! Pixel now works with UShort (at a much higher bitrate). [05ddb2c288c6] 2013-04-26 Deepthi * source/encoder/TShortYUV.h: Adding more member functions to TShortYUV [78cd7e5ab0a1] 2013-04-26 Steve Borho * source/Lib/TLibCommon/TComRdCost.cpp: shift SAD result from TComRdCost::getSADPart() rather than each diff [03433b6ee01b] * source/Lib/TLibCommon/TComRdCost.cpp: remove partition size check from TComRdCost::getSADPart() [194f459ded86] * source/Lib/TLibCommon/TypeDef.h: remove unused Pxl type [4915dcd016d8] * source/Lib/TLibCommon/TypeDef.h: clean up white-space alignment in TypeDef.h [52d5df36432e] * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncRateCtrl.cpp, source/Lib/TLibEncoder/TEncSlice.cpp: remove L0033_RC_BUGFIX #define, it will always be 1 [8485a6a1c12d] * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncRateCtrl.cpp, source/Lib/TLibEncoder/TEncRateCtrl.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/Lib/TLibEncoder/TEncTop.cpp, source/x265cfg.cpp, source/x265enc.cpp: remove RATE_CONTROL_LAMBDA_DOMAIN #define, it will always be 1 [88101df1faee] * source/test/mbdstharness.cpp: white-space nit [941581484868] * source/encoder/x86/CMakeLists.txt: cmake: tell gcc not to sqawk about empty ASM setup function [659cbd8026b8] * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComTrQuant.cpp: improve portability of alignment macros [12708950babd] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TypeDef.h: remove MATRIX_MULT #define, it will always be 0 [b7e14c53edda] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/x265cfg.cpp, source/x265enc.cpp: remove ADAPTIVE_QP_SELECTION #define, it will always be 1 [c33334661f82] * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h: remove SAO_ENCODING_CHOICE #define, it will always be 1 [1b2d55dd7b4f] * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/x265cfg.cpp, source/x265enc.cpp: remove L0232_RD_PENALTY #define, it will always be 1 [9dcea9d2b459] * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCavlc.cpp: remove L0372 #define, it will always be 1 [4fa6f3a09dc7] * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/x265cfg.cpp: remove L0444_FPA_TYPE #define, it will always be 1 [c86464d72455] * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncTop.cpp: remove L0255_MOVE_PPS_FLAGS #define, it will always be 1 [c198a462c1c8] * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCavlc.cpp: remove L0363_BYTE_ALIGN #define, it will always be 1 [64d5e486b138] * source/Lib/TLibCommon/TComDataCU.cpp: fix eoln damage in TComDataCU.cpp [13b5ff7b9bb6] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TypeDef.h: remove L0363_MVP_POC #define, it will always be 1 [b354aa200feb] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncTop.cpp, source/x265cfg.cpp, source/x265enc.cpp: remove L0046_CONSTRAINT_FLAGS #define, it will always be 1 [a06f0d0bec2b] * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCavlc.cpp: remove L0043_MSS_IDC, L0116_ENTRY_POINT #defines, they will always be 1 [5b78e69a6347] * source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/SEIwrite.cpp: remove L0045_CONDITION_SIGNALLING #define, it will always be 1 [3adb926ba0a7] * source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/SEIwrite.cpp: remove L0046_RENAME_PROG_SRC_IDC #define, it will always be 1 [0b26e3187fdb] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncTop.cpp: remove L0043_TIMING_INFO #define, it will always be 1 [5e92e75e0bb6] * source/Lib/TLibCommon/TypeDef.h: typo nits [bb19a6cf86dd] * source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/TEncGOP.cpp: remove L0047_APS_FLAGS #define, it will always be 1 [f55166a0ca8b] * source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/TEncGOP.cpp: remove L0044_CPB_DPB_DELAY_OFFSET #define, it will always be 1 [472b0e4bc12d] * source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h: remove L0045_NON_NESTED_SEI_RESTRICTIONS #define, it will always be 1 [f716604c56ab] * source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/TEncGOP.cpp: remove L0045_PERSISTENCE_FLAGS #define, it will always be 1 [397acf975a04] * source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncGOP.cpp: remove L0044_DU_DPB_OUTPUT_DELAY_HRD #define, it will always be 1 [8d3ed21fb716] * source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/TEncGOP.cpp: remove L0328_SPLICING #define, it will always be 1 [355807b023d6] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCavlc.cpp: remove L0363_DU_BIT_RATE #define, it will always be 1 [426f0abeaed4] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCavlc.cpp: remove FIX1071 #define, this temporary fix has been there for 1.5 years [b43f11555c88] * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/x265cfg.cpp, source/x265enc.cpp: remove L0386_DB_METRIC #define, it will always be 1 [9eb517f53928] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/x265cfg.cpp: remove L0323_DPB #define, it will always be 1 [5e53a1acd0de] * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncTop.cpp, source/x265cfg.cpp, source/x265enc.cpp: remove L0034_COMBINED_LIST_CLEANUP #define, it will always be 1 [c44835756f8c] * source/Lib/TLibCommon/ContextModel.cpp, source/Lib/TLibCommon/ContextModel.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.h, source/Lib/TLibEncoder/TEncBinCoderCABACCounter.cpp, source/Lib/TLibEncoder/TEncBinCoderCABACCounter.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h: remove FAST_BIT_EST #define, it will always be 1, improve readability [7d1e89b0e90a] * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncSearch.cpp: remove NS_HAD #define, it will always be 0, improve readability [b455c6b5b150] * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: remove ZERO_MVD_EST #define, it will always be 0, improve readability [7c96e41f3155] * source/Lib/TLibEncoder/TEncSearch.cpp: uncrustify: cleanup TEncSearch.cpp after AMP_MRG define removal [f93d8ade008f] * source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h: remove AMP_MRG #define, it will always be 1, improve readability [900e0173b6fe] * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h: remove AMP_ENC_SPEEDUP #define, it will always be 1, improve readability [423fefc35e88] * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncSearch.cpp: remove AMP_SAD #define, it will always be 1, improve readability [0efc8467e6cd] * source/encoder/x86/asm-primitives.cpp: asm: disable assembly; was causing stack corruption in debug runs The SATD functions are getting called from random places that do not enforce input buffer alignment. These need to be fixed before ASM can be re-enabled. [962848c1c6ff] * source/test/CMakeLists.txt: cmake: add primitive defines to test folder [0bc70419ada8] 2013-04-27 ShinYee Chung * source/encoder/TShortYUV.cpp: shortyuv: Fix the '\' in an #include. Use '/' instead for compatibility with Windows and Linux. [c325ba0eb7b3] 2013-04-26 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/primitives.cpp, source/encoder/primitives.h: primitive: remove FastHeight(), use same logic with/without ENABLE_PRIMITIVES * Allow iSubShift if iRows is greater than 12, since half-height blocks will be supported. * Unconditionally use the partition returned from PartitionFromSizes() [aa94262bd0b9] 2013-04-26 nandaku2 * Merged in deepthidevaki/xhevc_deepthid (pull request #94) Modified FIlter vec primitives [c531582449c4] 2013-04-26 Deepthi Devaki * source/encoder/vec/interpolationfilter.inc: Modified Filter vec primitives [b0115edcc276] * source/test/ipfilterharness.cpp: Fix errors in IPfilterharness [c32c36a3ac29] 2013-04-26 Deepthi * source/encoder/CMakeLists.txt: Merge [0e30f0ceb6c3] * source/encoder/TShortYUV.cpp, source/encoder/TShortYUV.h: Formatting the TShortYUV class. [a178a6e93c00] * source/Lib/TLibCommon/TComPrediction.h, source/encoder/CMakeLists.txt, source/encoder/TShortYUV.cpp, source/encoder/TShortYUV.h: Introducing TShortYUV formally [80ff753040be] 2013-04-26 Deepthi Devaki * source/encoder/vec/interpolationfilter.inc, source/test/ipfilterharness.cpp: FilterConvert - vec primitives [dbf2e884f457] * source/encoder/InterpolationFilter.cpp, source/encoder/vec/interpolationfilter.inc: Vectorized FilterHorizontal-pel-pel and pel_short [5ec9ce76685c] * Merge [2af6e7c7b715] * source/test/ipfilterharness.cpp: Changes to ipfilterharness.cpp [6accfad1e082] 2013-04-25 Deepthi Devaki * source/encoder/vec/CMakeLists.txt, source/encoder/vec/interpolationfilter.inc, source/encoder/vec/vecprimitives.inc, source/test/ipfilterharness.cpp: Vectorized version of filterVertical_short_Pel [4faf8dcd1180] 2013-04-26 Deepthi Devaki Akkoorath * Merged multicoreware/xhevc into default [f34557bd0c1b] 2013-04-25 Deepthi Devaki * source/encoder/InterpolationFilter.cpp: Typecast result val to pel. [8cc213785f0f] 2013-04-25 Steve Borho * source/x265cfg.cpp: x265: output string nit [062b636765af] * source/x265.h, source/x265cfg.cpp, source/x265cfg.h, source/x265enc.cpp: x265: move encoder configurable fields into a C friendly header [ad159c607977] * source/CMakeLists.txt, source/encoder/CMakeLists.txt: cmake: make vector and asm build flags local to encoder/ folder Toggling the ASM or vector primitives should not require the HM library to be rebuilt. [e942246d64aa] * source/CMakeLists.txt, source/encoder/CMakeLists.txt: cmake: move VectorClass include path within encoder/ folder [dc3899c4f7a7] * source/CMakeLists.txt: cmake: remove getopt from build; leave files in place for potential later use [fdda9447ee37] * source/CMakeLists.txt, source/Lib/CMakeLists.txt: cmake: move program_options_lite out of HM lib and into CLI project [1d8a40959e29] * source/encoder/primitives.cpp: primitives: turn partition checks into asserts; we expect success [0f56cdd99c40] * source/x265main.cpp: main: nits in output header [f8a551edd2b7] * source/encoder/vec/pixel.inc: pixel: add vector width/height 12 SAD functions [27f5f9a00390] * source/encoder/pixel.cpp, source/encoder/primitives.cpp, source/encoder/primitives.h, source/test/pixelharness.cpp: pixel: add support for width/height of 12 [e2cb9064721e] * source/encoder/vec/pixel.inc: pixel: add vector width/height 24 SAD functions [2c86ffb3f28b] * source/test/pixelharness.cpp: pixelharness: fix up partition name strings [a968ffee3ff1] * source/encoder/pixel.cpp, source/encoder/primitives.cpp, source/encoder/primitives.h: pixel: add support for width/height of 24 [fb552f51143d] * source/encoder/pixel.cpp: pixel: reorder C refs to match enums, add missing 64 sized SATD functions Intra will not use 64 sized partitions, but sub-pel inter might. I'm surprised this didn't break uterly before? [167863d172b5] * source/Lib/TLibEncoder/TEncSearch.cpp: white-space nit [4ccf1edbb887] * source/Lib/TLibEncoder/TEncSearch.cpp: search: do not use iSubShift if it would result in slow path *CHANGES OUTPUT* This doesn't have a large impact on performance today because motion search is still so bloody innefficient. But it is the right thing to do. [f99e73f1e0f5] * source/encoder/primitives.cpp, source/encoder/primitives.h: primitives: add a FastHeight() method to give early warnings of slow paths [7a97443c2155] * source/encoder/primitives.cpp: primitives: simplify PartitionFromSizes() [f4b4f25eb901] * source/encoder/primitives.h: primitives: add macros for 32byte aligment [b65c2c4fa585] * source/encoder/primitives.h: primitives: re-order enums so partitions with the same width are contiguous [0d3a7ebba9e9] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/primitives.cpp: Merged in deepthidevaki/xhevc_deepthid (pull request #92) Call Filter Primitives from SamplingQ, SamplingH [57aa9e90c935] 2013-04-25 Deepthi Devaki * source/Lib/TLibEncoder/TEncSearch.cpp: Add filter Primitives call in SamplingQ [4e66d9fa333c] * source/Lib/TLibEncoder/TEncSearch.cpp: Add Filter Primitives call in SamplingQ [9362b0761fa0] * source/encoder/InterpolationFilter.cpp: Remove assert from filters [286250886456] * source/Lib/TLibEncoder/TEncSearch.cpp: Call Filter Primitives from SamplingQ, SamplingH [c005c9980a4b] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/InterpolationFilter.h: Merge [94205c681a97] * source/encoder/InterpolationFilter.cpp, source/test/ipfilterharness.cpp: Fix unused variables. [3a12d696bf54] 2013-04-25 Deepthi Devaki Akkoorath * Merged multicoreware/xhevc into default [995b6235dffc] 2013-04-25 Deepthi Devaki * source/test/ipfilterharness.cpp: Add limits.h to IPFilterHarness. [a2483d531f95] * source/encoder/CMakeLists.txt, source/encoder/primitives.cpp, source/test/CMakeLists.txt: Filter c primitives - add to Cmake and primitives.cpp [410a769be98e] 2013-04-25 Steve Borho * source/Lib/TLibEncoder/TEncSearch.cpp: Merged in ggopu/gopu_xhevc (pull request #89) included 64 Bit in PartitionFromSizes and Eliminated the setDisParam() call from xTZSearchHelp() and Removed the primitive call for rdCost for all the sad functions [0004001ac17b] 2013-04-25 ggopu * source/Lib/TLibEncoder/TEncSearch.cpp: included 64 Bit in PartitionFromSizes and Eliminated the setDisParam() call from xTZSearchHelp() and Removed the primitive call for rdCost for all the sad functions Resolved the issue based on the comment [3e30fb1adc96] * source/Lib/TLibEncoder/TEncSearch.cpp: included 64 Bit in PartitionFromSizes and Eliminated the setDisParam() call from xTZSearchHelp() and Removed the primitive call for rdCost for all the sad functions --solved the issues based on the comment [cbde0042b475] * source/Lib/TLibEncoder/TEncSearch.cpp: included 64 Bit in PartitionFromSizes and Eliminated the setDisParam() call from xTZSearchHelp() and Removed the primitive call for rdCost for all the sad functions -- solved the issues based on the comment [c6af59bec3cd] * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibEncoder/TEncSearch.cpp: included 64 Bit in PartitionFromSizes and Eliminated the setDisParam() call from xTZSearchHelp() and Removed the primitive call for rdCost for all the sad functions [a3a21e07ef69] * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/primitives.cpp: Included 64 Bit in PartitionFromSizes and Eliminated the setDisParam() call from xTZSearchHelp() Removed the primitive call for rdCost for all the sad functions [df5479194d8d] 2013-04-24 Gopu G * Merged multicoreware/xhevc into default [388938d47d3a] * Merged multicoreware/xhevc into default [18941a42d529] 2013-04-23 Gopu G * source/Lib/TLibVideoIO/TVideoIO.h, source/Lib/TLibVideoIO/TVideoIOY4m.cpp, source/Lib/TLibVideoIO/TVideoIOY4m.h, source/Lib/TLibVideoIO/TVideoIOYuv.cpp, source/Lib/TLibVideoIO/TVideoIOYuv.h: Merged multicoreware/xhevc into default [a1d0b89d4a09] 2013-04-22 Gopu G * source/Lib/encoder.cpp, source/Lib/encoder.h, source/Lib/libmd5/MD5.h, source/Lib/libmd5/libmd5.c, source/Lib/libmd5/libmd5.h: Merged multicoreware/xhevc into default [51911ce2d52e] 2013-04-25 nandaku2 * Merged in deepthidevaki/xhevc_deepthid (pull request #91) Added new IPFilter function pointers. Added TestSuite for new IPFilter primitives. [ceded0279117] 2013-04-25 Deepthi Devaki * source/encoder/InterpolationFilter.cpp: assert bitDepth==8 [81b6dda66506] * source/encoder/primitives.h, source/test/ipfilterharness.cpp, source/test/ipfilterharness.h, source/test/testbench.cpp: Added new IPFilter function pointers. Added TestSuite for new IPFilter primitives. [6e541a1f02e4] 2013-04-25 Deepthi * source/Lib/TLibEncoder/TEncSearch.cpp: Merge [93dcae8999dd] * source/Lib/TLibCommon/TComPrediction.cpp: Random data type changes [dde5cb2850a0] * source/Lib/TLibEncoder/TEncSearch.cpp: Correct typecasts in IFSamplingQ and H [3b74bb5a814c] * cfg/encoder_I_15P.cfg: Turn off SAO [fb2f0ff73dc3] 2013-04-25 Deepthi Devaki * source/encoder/CMakeLists.txt: Add InterpolationFilter.cpp to CMakeList [4356b72d5c7b] * source/encoder/InterpolationFilter.cpp, source/encoder/InterpolationFilter.h: Changes to filter (fixing merge conflict) [92c17b5fe436] 2013-04-25 Deepthi Devaki Akkoorath * source/encoder/InterpolationFilter.h: Merged multicoreware/xhevc into default [a6ee0ff27646] 2013-04-25 Deepthi Devaki * source/encoder/InterpolationFilter.h: Backed out changeset: cc54b45a0eac [d2aebf4a7562] 2013-04-24 Deepthi Devaki * source/encoder/InterpolationFilter.cpp, source/encoder/InterpolationFilter.h: added filterVertical_pel_pel [e2cacd2ec890] * source/encoder/InterpolationFilter.cpp, source/encoder/InterpolationFilter.h: Split interpolationfilter.h and .cpp [cc54b45a0eac] * source/encoder/InterpolationFilter.h: Removed copying coeff to temporary array [9a69b9fd012f] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/InterpolationFilter.h: modified filter assuming bitDepth is always 8 [1bb0a3358d50] * source/encoder/InterpolationFilter.h: Removed filterVertical_pel_pel. [76a182472142] * source/encoder/InterpolationFilter.h: Add memcpy in filterCopy [6ea7aa1a93c3] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/InterpolationFilter.h: Eliminated redundant operations in filter [6f17253fe853] 2013-04-24 Steve Borho * source/encoder/vec/macroblock.inc: Merged in praveentiwari/xhevc_praveent (pull request #87) Vector code for partialButterflyInverse32 [09cf53b336c3] 2013-04-24 praveentiwari * source/Lib/TLibCommon/TComTrQuant.cpp, source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc: vector code for partialButterflyInverse32 [71b1a222d57a] 2013-04-24 praveen Tiwari * Merged multicoreware/xhevc into default [c43e9ed20d1f] 2013-04-24 praveentiwari * source/test/mbdstharness.cpp, source/test/mbdstharness.h: Test code for partialButterflyInverse32 [e47972d48684] 2013-04-24 ShinYee Chung * source/encoder/InterpolationFilter.h: Interpolation: Fix unused variable in the horizontal filter. [3d35a4bbd255] 2013-04-24 Steve Borho * source/encoder/InterpolationFilter.h: fix build on Linux, always use forward slashes in includes [e4e556b60058] 2013-04-24 Deepthi * Merge [ebdfe69383cc] * source/Lib/TLibCommon/TComYuv.cpp: Static_casts in TComYuv [8541479eac97] 2013-04-24 Deepthi Devaki * source/Lib/TLibEncoder/TEncSearch.cpp: Fixed case mismatch in include [e345fae910b3] 2013-04-24 Deepthi Devaki Akkoorath * source/Lib/TLibEncoder/TEncSearch.cpp: Merged multicoreware/xhevc into default [73ed43fb0ef7] 2013-04-24 Deepthi Devaki * source/encoder/InterpolationFilter.h: Added InterpolationFilter.h [74d34f6cd481] * source/encoder/interpolationFilter.h: removed interpolationFilter.h [98afe5c82a2e] * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/CMakeLists.txt, source/encoder/interpolationFilter.h: Fixed data types of srcPtr,dstPtr and intPtr. [1cfc4aa1e5be] 2013-04-23 Deepthi Devaki * source/Lib/TLibEncoder/TEncSearch.cpp: Changed typecasting to Pel. [2a77751c7ab8] * source/Lib/TLibEncoder/TEncSearch.cpp: Modified call to Filters based on input/ouput data type [58cee8796bb4] * source/encoder/CMakeLists.txt, source/encoder/interpolationFilter.h: Added new filter functions for different datatypes(Pel or short) for input/output. [77b56bf695f2] 2013-04-23 Deepthi Devaki Akkoorath * source/Lib/TLibVideoIO/TVideoIO.h, source/Lib/TLibVideoIO/TVideoIOY4m.cpp, source/Lib/TLibVideoIO/TVideoIOY4m.h, source/Lib/TLibVideoIO/TVideoIOYuv.cpp, source/Lib/TLibVideoIO/TVideoIOYuv.h, source/encoder/vec/macroblock.inc: Merged multicoreware/xhevc into default [6daee65aa014] * source/Lib/encoder.cpp, source/Lib/encoder.h, source/Lib/libmd5/MD5.h, source/Lib/libmd5/libmd5.c, source/Lib/libmd5/libmd5.h, source/encoder/vec/macroblock.inc: Merged multicoreware/xhevc into default [eb50336c8520] 2013-04-23 Deepthi Devaki * source/encoder/vec/macroblock.inc: fix the merge conflicts [2996c71961a0] 2013-04-19 Deepthi Devaki Akkoorath * Merged multicoreware/xhevc into default [afcb19e80d04] 2013-04-24 Deepthi * Merge [3e006ed9fb6c] 2013-04-23 Deepthi * source/Lib/TLibEncoder/TEncSearch.cpp: More static_cast in IntraCoding [979f31a68ee5] * Merge [5c3124219338] * source/Lib/TLibEncoder/TEncSearch.cpp: static_casts in IntraCoding [ba3596764ed0] * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp: Change to short to prevent infinite loop [11fe08841d59] 2013-04-23 Steve Borho * source/x265enc.cpp: x265enc: check return status of input.readPicture() [0484be696c65] * source/input/y4m.cpp: input: further y4m reading fixes [a399bd21bdf5] * source/input/y4m.cpp: input: declare header as char[] so sizeof works correctly [f9a651676c2f] 2013-04-23 ShinYee Chung * source/encoder/md5.cpp: md5: Fix incorrect memory reset on MD5 context structure. [fd8e4a7004cd] 2013-04-23 Steve Borho * source/test/testbench.cpp: testbench: report bit depth in testbench output log [dc2cd230f09d] * source/encoder/vec/pixel.inc: pixel: refactor pixel templates, optimizations mostly for 8bpp, see below SAD part 16bpp opt 8bpp opt [4x4] 4.88x 4.24x 2.75x 3.16x [8x4] 4.57x 6.40x 4.79x 5.87x [4x8] 4.95x 4.34x 3.08x 3.24x [8x8] 6.63x 6.14x 6.03x 6.98x [4x16] 3.70x 6.10x 3.76x 3.67x [16x4] 8.51x 10.55x 8.77x 10.75x [8x16] 7.08x 6.99x 6.65x 7.83x [16x8] 12.57x 14.31x 11.21x 18.17x [16x16] 15.30x 13.36x 12.80x 26.20x [4x32] 4.83x 4.95x 3.55x 3.99x [32x4] 10.30x 12.03x 7.07x 13.03x [8x32] 6.77x 7.66x 6.43x 8.01x [32x8] 11.01x 14.35x 9.25x 13.80x [16x32] 14.12x 14.24x 13.38x 17.81x [32x16] 10.75x 12.63x 9.72x 19.84x [32x32] 12.11x 12.01x 9.19x 14.41x [4x64] 4.23x 4.12x 4.00x 4.73x [64x4] 11.34x 11.63x 8.53x 14.24x [8x64] 7.68x 7.25x 7.74x 8.32x [64x8] 10.69x 13.61x 8.79x 14.71x [16x64] 12.93x 12.82x 11.45x 21.61x [64x16] 10.37x 10.46x 9.12x 17.29x [32x64] 13.22x 13.03x 10.34x 19.46x [64x32] 10.49x 10.81x 8.58x 13.40x [64x64] 11.19x 11.34x 9.45x 16.19x [7dbd423a8820] * source/VectorClass/vectori128.h: vec: add two methods to Vec16uc that are handy for pixelcmp [d45d724f45e4] * source/x265cfg.cpp: x265cfg: more HIGH_BIT_DEPTH fixes [3118ee99c520] * source/VectorClass/vectori128.h: vec: fix eoln in vectori128.h [f0069ad5eb70] * source/PPA/ppaCPUEvents.h, source/output/y4m.cpp, source/output/yuv.cpp: ppa: add profile events for file write [667b19cb2ca6] * source/input/input.h, source/input/y4m.h, source/output/y4m.cpp: nit: prune unnecessary includes [31f5f01b6a80] * source/encoder/md5.cpp, source/encoder/md5.h: nit: hide internal function [f4b07506d49b] * source/encoder/threadpool.cpp, source/test/testpool.cpp: threadpool: fix 32bit Windows __lzcnt_2x32 [6dbcb3afc321] * doc/uncrustify/codingstyle.cfg: uncrustify: comment two lines that triggered warnings [a918e7b44e0d] * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibEncoder/TEncGOP.cpp: take HM updates up to 10.1rc [fdace7753eed] * source/output/output.h, source/output/y4m.h, source/output/yuv.h, source/x265cfg.cpp: output: add error handling for output reconstructed video file [3c4a4ccc8da8] * source/output/yuv.cpp, source/output/yuv.h: output: use ofstream for yuv [5e083ea9e0a7] * source/output/y4m.cpp, source/output/y4m.h: output: use ofstream for y4m [dc215c6aa2ff] * source/output/output.cpp, source/output/output.h, source/output/y4m.cpp, source/output/y4m.h, source/x265cfg.cpp: output: pass frame rate to output file [8808b77229fe] * source/x265enc.cpp: we must initialize the fields which have been deprecated from config [29c9d0740692] * source/x265cfg.cpp: use estimated frame count [1e3a180ec0ad] * source/input/input.h, source/input/y4m.cpp, source/input/y4m.h, source/input/yuv.cpp, source/input/yuv.h: input: implement guessFrameCount(), use std::ifstream, cleanup Y4M header read Prevent double-close of YUV file handle [7805c8506eda] * source/x265cfg.h: white-space nits [6324d2cd5e04] * source/x265cfg.cpp, source/x265cfg.h, source/x265enc.cpp: cli: make bit depth arguments go away when HIGH_BIT_DEPTH=0, simplify Enforce the requirement that the output bit depth cannot be larger than the internal bit depth. Remove "conformance mode" and aiPad[]. Those operations, including color space adjustments, don't belong in an encoder. They should be done by a video processing library prior to the encoder. [5c453394226c] * source/encoder/x86/asm-primitives.cpp: asm-primitives: use #if 0 rather than comments [2d660854c182] * source/encoder/vec/pixel.inc: pixel: add separate implementations for 8bit pixels the current 8bit versions are sub-optimal. Needs psadbw [c557f437293c] * source/encoder/pixel.cpp: pixel: remove old TODO comment [c8bef114ec96] 2013-04-23 nandaku2 * Merged in praveentiwari/xhevc_praveent (pull request #84) Vector code for partialButterflyInverse16 [0e66af1883ad] 2013-04-23 praveentiwari * source/Lib/TLibCommon/TComTrQuant.cpp, source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc: Vector code for partialButterflyInverse16 [9703357da52b] 2013-04-23 praveen Tiwari * Merged multicoreware/xhevc into default [788b291a1720] * Merged multicoreware/xhevc into default [b6dcceb8ec9e] * Merged multicoreware/xhevc into default [d3ed8a3f0be5] 2013-04-23 praveentiwari * source/test/mbdstharness.cpp, source/test/mbdstharness.h: Testcode for partialButterflyInverse16 [15924dfd46bb] 2013-04-23 praveen Tiwari * source/Lib/TLibVideoIO/TVideoIO.h, source/Lib/TLibVideoIO/TVideoIOY4m.cpp, source/Lib/TLibVideoIO/TVideoIOY4m.h, source/Lib/TLibVideoIO/TVideoIOYuv.cpp, source/Lib/TLibVideoIO/TVideoIOYuv.h: Merged multicoreware/xhevc into default [dfa318bc6c1f] 2013-04-23 praveentiwari * source/encoder/vec/macroblock.inc: Robust alternative logic for Clip3 [6026e8c2efd5] 2013-04-23 nandaku2 * Merged in ggopu/gopu_xhevc (pull request #83) Enhanced the Regression suite and added Regression suite for Mingw and Linux [e85d16d29d0c] 2013-04-22 ggopu * build/BuildEncoderApplications.bat, build/CreateRegressionPackage.bat, build/CreateRegressionPackage.sh, build/RunEncoderApplications.bat, build/config.txt: Enhanced the Regression suite and added Regression suite for Mingw and Linux [06e573f8842f] 2013-04-23 Deepthi * source/Lib/TLibVideoIO/TVideoIO.h, source/Lib/TLibVideoIO/TVideoIOY4m.cpp, source/Lib/TLibVideoIO/TVideoIOY4m.h, source/Lib/TLibVideoIO/TVideoIOYuv.cpp, source/Lib/TLibVideoIO/TVideoIOYuv.h: Merge [e30ef3ca26c8] * source/Lib/TLibCommon/TComPrediction.cpp: more precision related static casts in prediction. [7d9f38dc50a8] * source/Lib/TLibCommon/TComLoopFilter.cpp: Deblocking Filter made type safe [b8763aa9e2cb] 2013-04-23 Steve Borho * source/output/y4m.cpp: output: simplify frame header generation [a07c8d0cb501] * source/output/yuv.cpp: output: handle 16bit YUV output files correctly [b383da39acb2] * .hgignore: hg: ignore y4m files [5182602454f0] 2013-04-23 Deepthi * source/Lib/TLibCommon/TComLoopFilter.cpp: static_cast to remove precision loss in loop filter (during Pel type conversions) [569611fe5c7c] 2013-04-23 Steve Borho * source/output/y4m.cpp, source/output/y4m.h, source/output/yuv.cpp, source/output/yuv.h, source/x265cfg.cpp, source/x265enc.cpp: output: handle 16bit Pel type from the encoder [4f7100891763] 2013-04-22 Steve Borho * source/CMakeLists.txt, source/Lib/CMakeLists.txt, source/Lib/TLibEncoder/TEncTop.h, source/Lib/TLibVideoIO/TVideoIO.h, source/Lib/TLibVideoIO/TVideoIOY4m.cpp, source/Lib/TLibVideoIO/TVideoIOY4m.h, source/Lib/TLibVideoIO/TVideoIOYuv.cpp, source/Lib/TLibVideoIO/TVideoIOYuv.h, source/output/CMakeLists.txt, source/output/output.cpp, source/output/output.h, source/output/y4m.cpp, source/output/y4m.h, source/output/yuv.cpp, source/output/yuv.h, source/x265cfg.cpp, source/x265cfg.h, source/x265enc.cpp, source/x265enc.h: replace TLibVideoIO with as-yet unimplemented Output classes [1b5074c2cf17] 2013-04-23 Steve Borho * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibEncoder/TEncCavlc.cpp: remove unicode chars from HM source [99deb04e11c5] * source/test/timer.cpp: testbench: re-add EMMS calls to timer funcs, for x86 builds Apparently uint64_t somehow involves the same hardware registers as MMX on x86 [caa9d879d8bd] 2013-04-22 Steve Borho * source/test/timer.cpp: testbench: fix timer behavior on Linux [900e90ef3ec6] * source/test/CMakeLists.txt, source/test/timer.cpp: testbench: fix Linux compile [8a71a9d9dd3c] * source/test/CMakeLists.txt: cmake: the test bench apps no long need to link with the HM libs [c34f8aa32544] * source/test/filterharness.cpp, source/test/mbdstharness.cpp, source/test/pixelharness.cpp, source/test/testbench.cpp, source/test/testharness.h, source/test/timer.cpp: testbench: report only speedups over C reference [5bf58f12bed0] * source/x265main.cpp: fix eoln damage to x265main.cpp [18a1d0360507] * source/Lib/CMakeLists.txt, source/Lib/TLibCommon/TComPicYuvMD5.cpp, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/libmd5/MD5.h, source/Lib/libmd5/libmd5.c, source/Lib/libmd5/libmd5.h, source/encoder/CMakeLists.txt, source/encoder/md5.cpp, source/encoder/md5.h, source/test/testpool.cpp: replace BSD libmd5 library with tweaked GPL MD5 from Min's x265 [4dc1489e326b] * source/input/y4m.cpp, source/input/yuv.cpp, source/x265enc.cpp: move file read PPA events inside the file read classes [ff2e1d6a420c] * source/x265cfg.cpp: nit cleanups in x265cfg.cpp [3a706e89af04] * source/x265main.cpp: use correct data type for clock() output [3a23868f4daf] * source/x265cfg.cpp, source/x265cfg.h, source/x265main.cpp: move some bits out of x265main into their proper locations [fd477ac10863] * source/CMakeLists.txt, source/Lib/CMakeLists.txt, source/Lib/encoder.cpp, source/Lib/encoder.h, source/x265enc.cpp, source/x265enc.h, source/x265main.cpp: move CLI encoder toplevel class out of Lib/ folder [9fbc3e142f42] * source/Lib/TLibCommon/TComPicYuv.cpp: fix eoln of TComPicYuv::copyFromPicture [00930012bc2b] * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/Lib/encoder.cpp, source/x265cfg.cpp, source/x265cfg.h: Use Input classes for file reads, bit-exact [98ea3cd98a49] * source/input/input.h, source/input/y4m.h, source/input/yuv.h: prune unnecessary Input class methods [edf1cf197b7f] * source/input/input.h, source/input/y4m.cpp, source/input/y4m.h, source/input/yuv.cpp, source/input/yuv.h, source/x265.h: introduce x265.h - public interface header, C compatible [1b9dbdbe3b3c] * source/input/input.h, source/input/y4m.cpp: input: remove include of internal header [0fd879feff34] * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg: remove ScalingListFile from config files It was never implemented, and we're unlikely to add it [d7c1fa3d6c92] * source/Lib/TLibEncoder/TEncCu.cpp: white-space tweak to TEncCu.cpp [fcf2c9a0f811] * source/input/input.h, source/input/y4m.h, source/input/yuv.h: input tweaks [c5f827448a65] * .hgignore: hg: ignore test run remnants [2708d9bed556] 2013-04-21 Steve Borho * source/CMakeLists.txt: cmake: set -D_CRT_NONSTDC_NO_DEPRECATE on x265cfg.cpp [6d42d360d056] * source/Lib/TLibEncoder/TEncCfg.h: TEncCfg: minor white-space cleanups [7d53979cdc0c] 2013-04-22 nandaku2 * Merged in praveentiwari/xhevc_praveent (pull request #82) Vectorized code for partialButterflyInverse8 [5d949f9e5b57] 2013-04-22 praveentiwari * source/Lib/TLibCommon/TComTrQuant.cpp, source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc: Vectorized code for partialButterflyInverse8 [2c0f4fb594da] * source/test/mbdstharness.cpp, source/test/mbdstharness.h: Test code for partialButterflyInverse8 [e1ae28e06e85] 2013-04-22 praveen Tiwari * Merged multicoreware/xhevc into default [e5de08686fce] 2013-04-22 praveentiwari * source/Lib/TLibCommon/TComTrQuant.cpp, source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc: Vectorized code for partialButterflyInverse4 [65245e2e352b] * source/Lib/TLibCommon/TComTrQuant.cpp, source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc: Vectorized code for partialButterfly8 [2331625b3ed3] * source/test/mbdstharness.cpp, source/test/mbdstharness.h: Test code for partialButterflyInverse4 [70688db2af31] 2013-04-22 Deepthi * source/Lib/TLibVideoIO/TVideoIOY4m.cpp, source/Lib/TLibVideoIO/TVideoIOYuv.cpp: Bit Depth checks. [303d89672240] * source/Lib/TLibCommon/TComInterpolationFilter.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: Final Short* parameter type casts. Now compiles with Pel as UShort. Output incorrect. [d2c2078f9a54] * source/Lib/TLibCommon/TComPrediction.h: Merge [83b1e733d352] 2013-04-21 Deepthi * source/Lib/TLibCommon/TComPrediction.h: Comments [eadc32e88cc5] 2013-04-21 Steve Borho * source/x265cfg.h: eoln fixes for x265cfg.h [80b3d7f2ea2b] * source/cmake/version.cmake: cmake: print detected xhevc version [7732fd1be70c] * source/x265cfg.h: reintrodude old TVideIO classes, short term fix [0b3a7f032ca7] * source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComInterpolationFilter.cpp, source/Lib/TLibCommon/TComInterpolationFilter.h, source/Lib/TLibEncoder/TEncCavlc.h: re-apply some changes that were accidentally backed out [301365973418] * source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.h, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/AnnexBwrite.h, source/Lib/TLibEncoder/NALwrite.cpp, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/SyntaxElementWriter.h, source/Lib/TLibEncoder/TEncAnalyze.h, source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCavlc.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncPic.cpp, source/Lib/TLibEncoder/TEncPic.h, source/Lib/TLibEncoder/TEncRateCtrl.cpp, source/Lib/TLibEncoder/TEncRateCtrl.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/Lib/TLibEncoder/WeightPredAnalysis.cpp, source/Lib/TLibEncoder/WeightPredAnalysis.h: remaining checkin of HM files [d1697a1eb39d] * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h: partial checkin of more HM files [843a9b287b93] * source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h: partial checkin of more HM files [c34e62ee498a] * source/Lib/TLibCommon/TComBitStream.h, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComInterpolationFilter.cpp, source/Lib/TLibCommon/TComInterpolationFilter.h, source/Lib/TLibCommon/TComList.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h, source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibCommon/TComMv.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h: partial checkin of more HM files [ede16ee58c25] * source/Lib/TLibCommon/ContextModel.h, source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComBitStream.h, source/x265cfg.h: apply uncrustify tweak [5151eb7614ca] * doc/uncrustify/codingstyle.cfg: uncrustify: yet another tweak [6f329f8be6cb] * source/Lib/TAppCommon/program_options_lite.cpp, source/Lib/TAppCommon/program_options_lite.h, source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/ContextModel.cpp, source/Lib/TLibCommon/ContextModel.h, source/Lib/TLibCommon/ContextModel3DBuffer.cpp, source/Lib/TLibCommon/ContextModel3DBuffer.h, source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibCommon/SEI.cpp, source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComBitCounter.h, source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComBitStream.h, source/Lib/TLibCommon/TComDataCU.cpp: partial checkin of more HM files [a3e1adc924bc] * cfg/encoder_I_15P.cfg, source/Lib/encoder.cpp, source/x265cfg.cpp, source/x265cfg.h: partial check-in of HM bug fixes - hand tweaking of large table formats [b54b96b9d205] * source/Lib/TAppCommon/program_options_lite.cpp, source/Lib/TAppCommon/program_options_lite.h, source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/ContextModel.h, source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComBitCounter.h, source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComBitStream.h, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComInterpolationFilter.cpp, source/Lib/TLibCommon/TComInterpolationFilter.h, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibCommon/TComMv.h, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibEncoder/NALwrite.cpp, source/Lib/TLibEncoder/SyntaxElementWriter.h, source/Lib/TLibEncoder/TEncAnalyze.h, source/Lib/TLibEncoder/TEncBinCoder.h, source/Lib/TLibEncoder/TEncBinCoderCABAC.h, source/Lib/TLibEncoder/TEncCavlc.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncPic.cpp, source/Lib/TLibEncoder/TEncPic.h, source/Lib/TLibEncoder/TEncRateCtrl.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/Lib/TLibVideoIO/TVideoIOY4m.h, source/Lib/encoder.cpp, source/encoder/pixel.cpp, source/encoder/primitives.cpp, source/encoder/primitives.h, source/encoder/threading.cpp, source/encoder/threadpool.cpp, source/encoder/vec/pixel.inc, source/encoder/vec/vec-primitives.cpp, source/encoder/vec/vecprimitives.inc, source/input/input.cpp, source/input/y4m.cpp, source/input/y4m.h, source/input/yuv.cpp, source/input/yuv.h, source/test/filterharness.cpp, source/test/filterharness.h, source/test/mbdstharness.cpp, source/test/pixelharness.cpp, source/test/pixelharness.h, source/test/testbench.cpp, source/test/testharness.h, source/test/testpool.cpp, source/test/timer.cpp: uncrustify: apply coding style tweaks The new style needed to be in place before I updated the HM code, in order to reduce the number of diffs to sift through. [6d038ab13735] * doc/uncrustify/codingstyle.cfg: uncrustify: more tweaks to style setting [c451dbda7d94] * doc/uncrustify/apply-to-all-source.py, doc/uncrustify/codingstyle.cfg, doc/uncrustify/uncrustify.exe: uncrustify: update uncrustify executable [46c33fbe9333] * source/encoder/x86/asm-primitives.cpp: asm: disable SAD assembly to get back to bit-exact outputs Perhaps a data alignment problem, or arguments in the wrong order somewhere [33d2ebf5f487] * Merge [3fe21a59f6fd] 2013-04-21 Deepthi * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h: Cleanups; remove TComYUV structure. [581d2044bf91] * source/Lib/TLibEncoder/TEncSearch.cpp: Replace TComYUV class by TShortYUV [c9777c7b75fe] * source/Lib/TLibCommon/TComPrediction.h: More members functions added to TShortYUV [64fc6448254c] * source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h: Create and destroy filteredTmp class [01deb523db8b] * source/Lib/TLibCommon/TComPrediction.h: Defining a new class for holding Short YUV buffers. This will replace the Pel YUV intermediate buffers in filter interpolation. [24500d602afd] 2013-04-20 Steve Borho * source/encoder/macroblock.cpp: cleanup some unfortunate uncrustify expression reflows [a9e3b68b81d9] 2013-04-20 Mandar Gurav * source/Lib/TLibCommon/TComInterpolationFilter.cpp, source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc, source/test/filterharness.cpp: * Implemented vectorization of Filter_horizontal_4 * Uncrustify all the commit files * Print one more field (speedup = c_time/vec_time) in testbench [d5eaa39bf3b6] 2013-04-20 Deepthi * source/Lib/TLibCommon/TComPrediction.cpp: Changing the intermediate filtering output to short-lived heap memory (type short). [e8b8232ddbb2] * source/Lib/TLibCommon/TComInterpolationFilter.cpp, source/encoder/macroblock.cpp, source/encoder/primitives.h, source/encoder/vec/macroblock.inc, source/test/filterharness.cpp: Merge [e77a39c2105c] 2013-04-19 Mandar Gurav * source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc: Filter Horizontal vectorization stage 2 [6f25724b3f93] 2013-04-19 Mandar Gurav * Merged multicoreware/xhevc into default [aa8a54f38812] * source/Lib/TLibCommon/TComInterpolationFilter.cpp, source/encoder/macroblock.cpp, source/encoder/primitives.h, source/encoder/vec/macroblock.inc, source/test/filterharness.cpp: Merged multicoreware/xhevc into default [0e019be400f8] * source/encoder/macroblock.cpp: Merged multicoreware/xhevc into default [dc9f04885f43] 2013-04-17 Mandar Gurav * source/Lib/TLibCommon/TComInterpolationFilter.cpp, source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc, source/test/filterharness.cpp: Merged multicoreware/xhevc into default [7ea883f9071d] 2013-04-18 Mandar Gurav * source/Lib/TLibCommon/TComInterpolationFilter.cpp: Copy file directly from xhevc. [2b8e435f91bb] 2013-04-17 Mandar Gurav * build/RegressionTester.bat, source/Lib/config.cpp, source/Lib/config.h, source/encoder/macroblock.cpp, source/encoder/primitives.h, source/encoder/vec/macroblock.inc, source/test/filterharness.cpp: Merged multicoreware/xhevc into default [7f14170ed329] 2013-04-17 Mandar Gurav * source/encoder/primitives.h: Move to Xhevc source stage 2 [a45e2efa1fd6] * source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc, source/test/filterharness.cpp: Move to latest xhevc source [b9152b69273b] * source/encoder/macroblock.cpp: Revert changes [d451573343a3] * source/encoder/macroblock.cpp: Copy file directly from xHEVC [aabf6e1c4ce3] 2013-04-16 Mandar Gurav * source/Lib/TLibCommon/TComInterpolationFilter.cpp, source/encoder/macroblock.cpp, source/encoder/primitives.h, source/encoder/vec/macroblock.inc, source/test/filterharness.cpp: Restrctured filter function calling/template as per the discussion [675639180295] 2013-04-20 Deepthi * source/encoder/macroblock.cpp, source/encoder/primitives.h, source/encoder/vec/macroblock.inc: Merge [a8918bd5c534] * source/Lib/TLibCommon/TComInterpolationFilter.cpp, source/Lib/TLibCommon/TComInterpolationFilter.h, source/encoder/macroblock.cpp, source/encoder/primitives.h, source/encoder/vec/macroblock.inc, source/test/filterharness.cpp, source/test/filterharness.h: Changing all filter interpolation primitives to accept short pointers. [53e2f960638a] * source/Lib/TLibCommon/TComInterpolationFilter.cpp, source/Lib/TLibCommon/TComInterpolationFilter.h: Changing all filter interpolation functions to accept Short pointers. [55d414249baa] 2013-04-19 Steve Borho * source/encoder/x86/CMakeLists.txt: cmake: use .obj extension for ASM compilation outputs, makes VS happier [e81ef56a1f28] * source/CMakeLists.txt: cmake: enable /Oi flag globally for Visual Studio This makes the test bench run faster compiled with VS than with GCC [e4cbdf357e3d] * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: add x264_cpu_emms() in some likely locations [454a38de0b89] * source/encoder/x86/asm-primitives.cpp: asm: disable many of the sa8d_8x8 functions, they are causing crashes (perhaps misalingment related, don't know. this will have to be revisited later) [9fa4ad5c65bf] * source/encoder/x86/asm-primitives.cpp: asm: enable many more primitives, leave bunches disabled Many of the high-bit depth primitives seem to be busted, they cause stack corruption even when called from GCC, at least the versions we have here. [b6c387c6256b] * source/test/pixelharness.cpp: pixelharness: tweak print statements to show progress more clearly [796e05062cdc] * source/encoder/x86/CMakeLists.txt: cmake: pass ARCH_X86_64 flag to asm-primitives.cpp [e81431e4bf6c] * source/encoder/vec/pixel.inc: pixel: add a 16x4 satd vector primitive [ea89ec5d7ace] * source/encoder/pixel.cpp: pixel: fix larger dimension satd C primitives, using simple template [b899a70a433b] * source/encoder/x86/CMakeLists.txt, source/encoder/x86/sad-a.asm: cmake: add x264's sad-a.asm for more SAD functions [55920369b223] * source/encoder/x86/CMakeLists.txt: cmake: fix linking of assembly code with MSVC x86 [2b777b1de100] * source/encoder/x86/asm-primitives.cpp: asm-primitives: repair EOLN [b758e0607830] * source/input/yuv.cpp: yuv: fix MSVC x86 compiler warning [789f01fd0555] * source/encoder/primitives.h, source/encoder/x86/CMakeLists.txt, source/encoder/x86/asm-primitives.cpp: cmake: fix linking of assembly code with MSVC builds (rename outputs to .lib) [06c9c88a35a8] * source/encoder/primitives.h, source/encoder/x86/CMakeLists.txt, source/encoder/x86/asm-primitives.cpp, source/encoder/x86/cpu-a.asm, source/test/CMakeLists.txt, source/test/timer.cpp: asm: pull in cpu-a.asm from x264, includes EMMS function The intrinsic support for EMMS is broken with MS compilers, so we have to use this short function provided by x264. We could improve this somewhat with inline assembly in primitives.h, but it would have to be cross-compiler. linking the assembly with MSVC seems clearly broken [42546d6bb2da] * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibVideoIO/TVideoIOY4m.h: EOLN repair in HM files [11cf80f51ee9] * source/cmake/CMakeASM_YASMInformation.cmake, source/cmake/CMakeDetermineASM_YASMCompiler.cmake, source/cmake/CMakeTestASM_YASMCompiler.cmake, source/cmake/version.cmake: cmake: dos to unix eoln [b7668187381e] * source/test/timer.cpp: timer: issue EMMS before attempting any floating point math [ea5150ee49a4] * source/cmake/CMakeASM_YASMInformation.cmake, source/encoder/x86/asm- primitives.cpp, source/test/CMakeLists.txt: cmake: fix GCC Win32 linkage with x264 assembly [74d0c855ad7d] * source/input/y4m.cpp: input: fix GCC build [234401a376c3] * source/input/input.h, source/input/y4m.cpp, source/input/y4m.h, source/input/yuv.cpp, source/input/yuv.h: input: remove unnecessary public methods, cleanup read functions fread returns the count of elements read. The file reader should know nothing about margins. [40d080f01e1b] * source/input/y4m.cpp, source/input/yuv.cpp: input: fix compile warnings [875679b4cb08] * source/input/input.h, source/input/y4m.cpp, source/input/y4m.h, source/input/yuv.cpp, source/input/yuv.h: input: update headers and classes [aa83c6072932] 2013-04-18 Steve Borho * source/encoder/macroblock.cpp: macroblock: move warning disable to top of file, remove dups [358d7a322561] 2013-04-19 Steve Borho * Merged in praveentiwari/xhevc_praveent (pull request #78) Vectorized code for partialButterfly32 [fe41a1e01a93] 2013-04-19 praveentiwari * source/test/mbdstharness.cpp, source/test/mbdstharness.h: Test code of partialButterfly8 [1f6cd6ba73f8] 2013-04-19 praveen Tiwari * source/Lib/TLibCommon/TComTrQuant.cpp: Merged multicoreware/xhevc into default [cc32f7a1aacf] * source/encoder/vec/macroblock.inc: Merged multicoreware/xhevc into default [c2a7b5bce16e] * source/encoder/vec/macroblock.inc: Merged multicoreware/xhevc into default [37b3da3c6bf9] 2013-04-19 praveentiwari * source/Lib/TLibCommon/TComTrQuant.cpp, source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc: Vectorized code for partialButterfly32 [961ebc25f630] 2013-04-19 Steve Borho * Merge [d613c2fde0f8] 2013-04-19 Deepthi * source/Lib/TLibCommon/TComTrQuant.cpp: Changing 16-bit hard coded memory copy in TComTrQuant::xT [8a517c789bbb] * source/Lib/TLibCommon/TComTrQuant.cpp: Changing 16-bit hard coded memory copy in TComTrQuant::xIT [3e327e235ef6] 2013-04-19 Deepthi Devaki * source/encoder/vec/macroblock.inc: Fix build issue in macroblock.inc with Mingw, Msys [45b7819d08eb] 2013-04-19 Deepthi * source/encoder/vec/macroblock.inc: Comment [4252824d518f] 2013-04-19 Deepthi Devaki * source/encoder/vec/macroblock.inc, source/test/filterharness.cpp: Vertical Filter - vector primitive with 32 bit operations. [5334266bbebb] * source/Lib/TLibCommon/TComInterpolationFilter.cpp, source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc: Filter C - primitive with isFirst, isLast and 32 bit sums. [f517af8fa3e1] 2013-04-19 Deepthi Devaki Akkoorath * source/encoder/macroblock.cpp: Merged multicoreware/xhevc into default [b95fa4555d92] 2013-04-19 Deepthi Devaki * source/Lib/TLibCommon/TComInterpolationFilter.cpp, source/encoder/macroblock.cpp, source/encoder/primitives.h, source/encoder/vec/macroblock.inc, source/test/filterharness.cpp: Backed out changeset: c51b962d2155 [53fe4175ecf6] 2013-04-18 Rajesh * source/Lib/TLibCommon/TComInterpolationFilter.cpp, source/encoder/macroblock.cpp, source/encoder/primitives.h, source/encoder/vec/macroblock.inc, source/test/filterharness.cpp: Changed the array of Filter function pointers in primitives.h to have only Filter[V_8] and FIlter[V_4]. [c51b962d2155] 2013-04-19 praveentiwari * source/test/mbdstharness.cpp, source/test/mbdstharness.h: Test code for partialButterfly32 [7d9db6232717] 2013-04-18 Steve Borho * source/CMakeLists.txt, source/encoder/CMakeLists.txt: cmake: move CPRIMITIVES variable creation into source/encoder/CMakeLists.txt [d69532344cd2] * source/encoder/CMakeLists.txt: cmake: document the reason for the -march-i686 flag [f86cfcd39cda] * source/encoder/threading.cpp, source/encoder/threading.h, source/encoder/threadpool.cpp: threading: cleanup of shutdown methods This fixes the deadlock we see once 1 in 1 million runs of the pool test. [189956c5ac7e] * source/encoder/primitives.cpp: primitives: remove PartitionFromSizes if primitives are disabled [1b4bcbe0b604] * source/encoder/primitives.cpp, source/x265main.cpp: primitives: report primitive compilation settings when setting up primitives [622eada81044] * source/encoder/primitives.cpp: primitives: fix GCC compile without primitives [f77e4badb7c3] * source/test/testbench.cpp: testbench: allow to compile without primitives [906891cfca09] 2013-04-18 Deepthi * source/encoder/macroblock.cpp: reverting vertical filter to isLast and isFirst as template arguments. [ba92d2b802b0] 2013-04-17 Steve Borho * source/encoder/threadpool.cpp: threadpool: ensure threads spin up before allowing any jobs to enqueue [1711ba4cbae9] * source/test/testpool.cpp: testpool: output nothing to stdout unless hashes mismatch [7a831fa74921] * source/encoder/threadpool.cpp, source/encoder/threadpool.h, source/test/testpool.cpp: threadpool: prevent threads seing partially destroyed job providers [1c05ce459601] * source/encoder/x86/asm-primitives.cpp, source/test/mbdstharness.cpp: further GCC fixes [4817f4da5c71] * source/encoder/vec/macroblock.inc: vec: fix GCC build of macroblock.inc [75bd4e212561] * source/encoder/threadpool.cpp: threadpool: add a mechanism to determine safety of job provider deletion [bada21fa0e75] * source/encoder/x86/CMakeLists.txt: cmake: unify assembly file list, use a common object file name [4d8da41d0a98] 2013-04-18 Steve Borho * source/encoder/x86/CMakeLists.txt, source/encoder/x86/asm- primitives.cpp, source/encoder/x86/const-a.asm: asm: Fix integrations of pixel-a.asm. [2ac269a795fe] 2013-04-18 Deepthi * source/encoder/vec/macroblock.inc: Merge [72ad141d57f3] 2013-04-17 Deepthi * source/encoder/vec/macroblock.inc: Merge [69fe3d55e91b] * merged [125be1e48dcd] 2013-04-17 Deepthi Devaki * source/encoder/vec/macroblock.inc: Modified vertical_filter to pre-load coeff [e162b60189b8] * source/encoder/vec/macroblock.inc, source/test/filterharness.cpp: Backed out changeset: b520a3ddbf36 [082f8068d4cd] * source/encoder/vec/macroblock.inc, source/test/filterharness.cpp: Modified vertical_filter to pre-load coeff [b520a3ddbf36] * source/encoder/vec/macroblock.inc: Backed out changeset: 0848ac28c541 [31b64b009d89] * source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc: Backed out changeset: fbbc5ec48951 [df782495c742] * source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc: Backed out changeset: bd537ec0cba7 [fbbc5ec48951] * source/encoder/vec/macroblock.inc: Backed out changeset: db0ac8504e1a [0848ac28c541] * source/Lib/TLibCommon/TComInterpolationFilter.cpp: Modifed TComInterpolationFilter.cpp to call vertical-filter primitives [2b049a973793] * source/test/filterharness.cpp: Modifed filterharness to test vertical filter. [25b506f908ff] * source/encoder/vec/macroblock.inc: Modifed vertical-filter [db0ac8504e1a] * source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc: Added vectorized vertical Filter [bd537ec0cba7] * source/encoder/macroblock.cpp: Added filter_Vertical C-primitive with isFirst = isLAst = True always. [808c38c73c93] * source/encoder/macroblock.cpp: Added filter_Vertical C-primitive with isFirst = isLAst = True always. [1fe37c453312] 2013-04-17 Deepthi Devaki Akkoorath * build/RegressionTester.bat, source/Lib/config.cpp, source/Lib/config.h, source/encoder/macroblock.cpp: Merged multicoreware/xhevc into default [4c19cddce21b] 2013-04-17 Deepthi Devaki * source/encoder/macroblock.cpp: Backed out changeset: 0826f419aa6d [e93b9f1e9f10] 2013-04-16 Deepthi Devaki Akkoorath * Merged multicoreware/xhevc into default [66c24df49d97] 2013-04-15 Deepthi Devaki Akkoorath * source/Lib/TLibCommon/TComInterpolationFilter.cpp, source/encoder/macroblock.cpp: Merged multicoreware/xhevc into default [f05a5d3879f0] 2013-04-15 Deepthi Devaki * source/Lib/TLibCommon/TComInterpolationFilter.cpp: Backed out changeset: 0826f419aa6d [7f8daed75336] 2013-04-12 Deepthi Devaki Akkoorath * source/encoder/macroblock.cpp: Merged multicoreware/xhevc into default [755bda7f920c] 2013-04-12 Rajesh * source/Lib/TLibCommon/TComInterpolationFilter.cpp, source/encoder/macroblock.cpp: Added filter c primitive to macroblock.cpp. Changed TComInterpolationfilter.cpp to call filter primitives [0826f419aa6d] 2013-03-26 deepthidevaki * source/encoder/TComRdCost_SSE.cpp: Modified xCalcHADs4x4 for better optimization [6b9e69b013e8] 2013-04-17 Deepthi * source/Lib/TLibCommon/TComTrQuant.cpp: MingW support for alignment. [91412bd3a9a8] 2013-04-17 praveentiwari * source/encoder/vec/macroblock.inc: partialButterfly16 vectorized code [e590f654128d] 2013-04-17 praveen Tiwari * source/encoder/vec/macroblock.inc: Merged multicoreware/xhevc into default [f98bb4be9285] 2013-04-17 praveentiwari * source/encoder/vec/macroblock.inc: solving merge conflict [745408cf439a] * source/encoder/vec/macroblock.inc: merge conflict [0273e986d1ca] * source/encoder/vec/macroblock.inc: solving merge conflict [ee1fec0bfdc3] * source/encoder/vec/macroblock.inc: solving merge conflict [9ac0ab2c4469] * source/encoder/vec/macroblock.inc: Replaced Vec16s and Vec8i usage with Vec8s and Vec4i for Vec- partialButterfly16 [70f2f5526c71] 2013-04-17 Deepthi * source/Lib/TLibCommon/TComTrQuant.cpp, source/encoder/vec/macroblock.inc: Enforcing memory alignment in inversedst. [e7784727f33b] * source/test/mbdstharness.cpp: Aligned mem in mbdst test harness [4580bf5d1062] * source/encoder/vec/macroblock.inc: Removing extraneous min,max - performance improvements by 20% [882c40e8df1a] * source/encoder/vec/macroblock.inc: Merge [7c3b537734e1] 2013-04-17 praveentiwari * source/test/butterflyharness.cpp, source/test/butterflyharness.h: removed butterflyharness files [c0a349fc04e6] 2013-04-17 praveen Tiwari * Merged multicoreware/xhevc into default [12c9c9bceb8c] 2013-04-17 praveentiwari * source/test/CMakeLists.txt, source/test/mbdstharness.cpp, source/test/mbdstharness.h, source/test/testbench.cpp: Moved the butterfly-harness into mbdst-harness [d2e5c53f22d2] 2013-04-17 praveen Tiwari * build/RegressionTester.bat, source/Lib/config.cpp, source/Lib/config.h, source/encoder/macroblock.cpp, source/test/CMakeLists.txt: Merged multicoreware/xhevc into default [170e9ffd084e] 2013-04-16 praveen Tiwari * source/encoder/macroblock.cpp: Merged multicoreware/xhevc into default [a266c75a843d] 2013-04-16 praveentiwari * source/test/CMakeLists.txt: Included butterflyharness.h and .cpp file in make file [d24a9c1f7f3e] * source/test/butterflyharness.cpp: Increased the buffer size and used more meaningful name in Test Code of partialButterfly16 [3b621b943630] 2013-04-16 praveen Tiwari * Merged multicoreware/xhevc into default [2df037f5f4a2] 2013-04-16 praveentiwari * source/Lib/TLibCommon/TComTrQuant.cpp, source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc: Added vectorized code for partialButterfly16 and removed unused function code [8effa08eff14] * source/test/butterflyharness.cpp, source/test/butterflyharness.h, source/test/testbench.cpp: Test Suit for partialButterfly16 [641d56d61ba2] 2013-04-16 praveen Tiwari * source/encoder/vec/macroblock.inc, source/test/testbench.cpp: Merged multicoreware/xhevc into default [e75d8a96b2b8] 2013-04-16 praveentiwari * source/test/testbench.cpp: TestBench MergeConflict [5be23aedc1d5] * source/test/testbench.cpp: Merge conflict [c5d7681b866f] * source/test/testbench.cpp: Solving merge conflict with TestBench.cpp [42821ff0e1d5] * source/test/testbench.cpp: Solving merge conflict with Testbench.cpp [fd6fae9fb6fa] 2013-04-15 praveentiwari * source/Lib/TLibCommon/TComTrQuant.cpp, source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc: Added Primitives for partialButterfly32 [9c97c040fc19] 2013-04-15 praveen Tiwari * source/test/testbench.cpp: Merged multicoreware/xhevc into default [237ff80c3bd1] 2013-04-15 praveentiwari * source/Lib/TLibCommon/TComTrQuant.cpp, source/encoder/butterfly.h, source/encoder/macroblock.cpp, source/encoder/primitives.h, source/encoder/vec/macroblock.inc, source/test/testbench.cpp: Fixed alignment problem with partialButterfly16 [1239bf84868c] * source/Lib/TLibCommon/TComTrQuant.cpp: Fixed alignment problem with ENABLE_PRIMITIVES switch for partialButterfly16 [48d8838f4298] * source/Lib/TLibCommon/TComTrQuant.cpp, source/encoder/macroblock.cpp, source/encoder/primitives.h, source/encoder/vec/macroblock.inc, source/test/testbench.cpp: Added ENABLE_PRIMITIVES switch for partialButterfly16 [9b87cb3d8c84] 2013-04-15 praveen Tiwari * Merged multicoreware/xhevc into default [35e483e872ff] * source/encoder/macroblock.cpp, source/encoder/primitives.h, source/encoder/vec/macroblock.inc: Merged multicoreware/xhevc into default [af2db6bbb5a7] 2013-04-12 praveen Tiwari * source/encoder/macroblock.cpp, source/encoder/primitives.h, source/encoder/vec/macroblock.inc: Merged multicoreware/xhevc into default [7413fc103a3e] * source/encoder/macroblock.cpp: Merged multicoreware/xhevc into default [70abf8d31e02] 2013-04-11 praveen Tiwari * Merged multicoreware/xhevc into default [4d7790972b0e] * source/encoder/macroblock.cpp, source/encoder/primitives.h, source/encoder/vec/macroblock.inc: Merged multicoreware/xhevc into default [71ca57e3681f] 2013-04-10 praveen Tiwari * source/encoder/macroblock.cpp, source/encoder/primitives.h, source/encoder/vec/macroblock.inc: Merged multicoreware/xhevc into default [9687e766009f] 2013-04-10 praveentiwari * source/encoder/macroblock.cpp, source/encoder/primitives.h, source/encoder/vec/macroblock.inc: resolving merge conflict [00c935e908ce] * source/encoder/macroblock.cpp, source/encoder/primitives.h, source/encoder/vec/macroblock.inc: Added C and Vector primitives for partialButterfly16 [93846235af07] * source/encoder/butterfly.h: Created butterfly.h to read the value from the g_aiT array [6d234bd90345] 2013-04-17 Deepthi * test_new.rtf: Delete test commit [1ad18182408d] * test_new.rtf: Test commit [59aec92c8f61] 2013-04-16 Steve Borho * source/encoder/x86/CMakeLists.txt: cmake: figure out a workaround for YASM builds of assembly files with MSVC [28408d0ef0f7] * source/CMakeLists.txt, source/encoder/CMakeLists.txt, source/encoder/vec/CMakeLists.txt, source/encoder/x86/CMakeLists.txt: cmake: allow YASM to be used by MSVC, even though its currently broken Rename primitive projects so they sort together in VC [ffe6cf7be445] * source/CMakeLists.txt, source/Lib/CMakeLists.txt, source/Lib/config.cpp, source/Lib/config.h, source/Lib/encoder.h, source/input/CMakeLists.txt, source/input/input.cpp, source/input/input.h, source/input/y4m.cpp, source/input/y4m.h, source/input/yuv.cpp, source/input/yuv.h, source/x265cfg.cpp, source/x265cfg.h: establish a new input file library, move CLI and command parsing to x265-cli [8163e7e7b324] * source/test/CMakeLists.txt: cmake: disable the pool test by default, even when tests are enabled Now that its functional, not many people will want to build/run it [5d16e9d82d62] * source/test/timer.cpp: timer: replace NULL with 0 [a182530927da] * source/test/pixelharness.cpp: pixelharness: fix MinGW build [4c2412305e62] * source/test/timer.cpp: timer: use native Windows high resolution timer [4f65489aaaf1] * source/test/filterharness.cpp, source/test/filterharness.h, source/test/mbdstharness.cpp, source/test/mbdstharness.h, source/test/pixelharness.cpp, source/test/pixelharness.h, source/test/testharness.h: dos to unix eoln for test harnesses [26baba09de44] * source/test/testpool.cpp: trim trailing white-space [4f1719887601] * source/test/testpool.cpp: testpool: verify below row is restartable output is now deterministic regardless of thread count [19ba1f4edaf2] * source/encoder/macroblock.cpp: Partial Backout changeset: 81101974408f [d03b4fa32d79] * build/BuildEncoderApplications.bat: white-space cleanup in BuildEncoderApplications.bat [71a75afbb8e8] * build/RegressionTester.bat: Merge [ce10cac4ce71] * source/test/pixelharness.cpp: testbench: add a POSIX friendly aligned malloc, pad to 32 bytes [9e1a1faad621] 2013-04-16 Deepthi * source/encoder/macroblock.cpp: Changing 32-bit multiplies to 16-bit multiplies for filter. (This may need more testing). [81101974408f] * source/test/pixelharness.cpp: Aligned mallocs and frees in pixel buffers [defda4cf08c2] 2013-04-16 nandaku2 * build/RegressionTester.bat: Merged in ggopu/gopu_xhevc (pull request #66) Redesigned the Regression test script - the script will be compatible for vc 9, vc 10 and vc 11 [3b066f46831d] 2013-04-15 ggopu * build/BuildEncoderApplications.bat, build/CreateRegressionPackage.bat, build/RegressionTester.bat, build/config.txt: Redesigned the Regression test script - the script will be compatible for vc 9, vc 10 and vc 11 [0d9f10323b82] 2013-04-16 sumalatha * source/Lib/TLibVideoIO/TVideoIOY4m.cpp: Fixed issue in handling y4m files Issue: The reconstructed file(yuv) were all zeros Fix: In y4m handler, bitDepthShiftY, bitDepthShiftC were not updated properly in the open(), so changed the code to update it properly. [c422cc514b80] 2013-04-15 Steve Borho * source/test/testbench.cpp: testbench: add the ability to easily bypass some tests [bd316d5a9edc] * source/test/filterharness.cpp, source/test/testbench.cpp: testbench: GCC compilation fixes [d5e4ce5c651d] * source/test/CMakeLists.txt, source/test/filterharness.cpp, source/test/filterharness.h, source/test/mbdstharness.cpp, source/test/mbdstharness.h, source/test/pixelharness.cpp, source/test/pixelharness.h, source/test/testbench.cpp, source/test/testharness.h, source/test/timer.cpp: testbench: split into classes that know how to test each primitive type [d72521706de8] * source/test/testbench.cpp: testbench: remove unused defines [0eb7444ebf8a] * source/test/testbench.cpp: testbench: don't forget to test the detected CPUID [878233d4bcc9] * source/test/testbench.cpp: less cargo-cult programming please checkasm used BENCH_ALIGNS to over-allocate the buffers then fix the alignment We're just over-allocating buffers [de3741f6a1af] * source/test/testbench.cpp: testbench: tune iterations to primitive type so test finishes in 60 seconds [5206b476c65e] * source/test/testbench.cpp: testbench: fix bugs exposed by GCC warnings t_size was being used as a global by two different primitives, and then defined locally by one of them. [06cbe8719bfa] * source/encoder/vec/pixel.inc: pixel: use aligned loads for 8 and 16 wide SAD 14% improvement Using this optimization before the other loop optimizations hid the benefits of reducing the pipeline stalls. 350->300ms for 16x16 testbench (many) iterations [7f9b889ce129] * source/test/testbench.cpp: testbench: check primitive accuracy on all SIMD architectures Measure performance only once, with the most optimized primitives available [9b4729fe6825] * source/encoder/vec/pixel.inc: pixel: optimize 4 pixel wide SAD Now 4x faster than the C version. We accumulate 8 values then discard half at the end. [4d0aa20b3fb8] * source/encoder/vec/pixel.inc: pixel: further optimize multiples of 16 wide SAD [b3b7dc98a6ba] * source/test/testbench.cpp: testbench: use a pseudo-random seed [f323471e8eaf] * source/encoder/vec/pixel.inc: pixel: use lower case var named [4161c1c2d852] * source/encoder/vec/pixel.inc: pixel: collect SAD sums in vectors, do horizontal_add_x only at end The gives at least a 2X speedup. Many SAD functions are now 10x faster than the C primitives. [98af7878ab54] * source/VectorClass/vectori128.h, source/encoder/vec/macroblock.inc: inversedst: use blend8s to generate outputs 30% faster [b1c604dac752] * source/encoder/vec/sse2.cpp, source/encoder/vec/sse3.cpp, source/encoder/vec/ssse3.cpp: vectorized: correct the INSTRSET values for SSE2, SSE3, and SSSE3 [a4d6b0f5c3c6] 2013-04-15 Mandar Gurav * Merged multicoreware/xhevc into default [9a0056333a34] 2013-04-15 https://mandarmcw * source/test/testbench.cpp: Used more meaningful variable names [bc80f481a448] * source/test/testbench.cpp: Implemented init/clean function for filter testbench. [cce1fa50f3ff] * source/test/testbench.cpp: Print a more meaningful message - replace %d value with a meaningful string showing the filter configuration. [96d57ac3598b] 2013-04-15 Deepthi * source/encoder/vec/pixel.inc: Reverting aligned loads in pixel.inc - caused crash. This needs more research [b5f1f4eef5ae] 2013-04-14 Steve Borho * source/Lib/TLibCommon/TComInterpolationFilter.cpp: cleanup TComInterpolationFilter.cpp [a230019cf137] * source/Lib/TLibCommon/TComRdCost.cpp, source/encoder/vec/pixel.inc: change order of arguments to SATD primitives to match x264 assembly x264 assembly code wants fenc, fencstride, fref, frefstride. fenc is assumed to be aligned by the block size. [ce3635066069] * source/encoder/vec/pixel.inc, source/test/testbench.cpp: pixel: use aligned loads for piOrg (encoded block), enable sad_4 vectorized sad_4 is now just a little bit faster than the C version. [c8333b3c1536] * source/Lib/TLibCommon/TComRdCost.cpp: change order of arguments to SAD primitives to match x264 assembly x264 assembly code wants fenc, fencstride, fref, frefstride. fenc is assumed to be aligned by the block size. [03dbce445e13] * source/Lib/config.cpp: unfortunately the FrameN options are currently necessary [db32d5905f73] * source/Lib/config.cpp: nuke the --FrameN command line options These make the command line help really annoying [6ac0c6263ad4] * source/encoder/vec/pixel.inc: pixel: add sad_4, but do not use it for now When memory alignment is considered, it may be faster than the C primitive [c8a89155a025] * source/encoder/vec/pixel.inc: pixel: add 16-wide vector SAD, instantiate all but 4x implementations [781034812b77] * source/encoder/pixel.cpp: pixel: add C SAD partitions sized 64 [18d7c9ec18c8] 2013-04-13 Steve Borho * source/Lib/TLibCommon/TComInterpolationFilter.cpp, source/encoder/macroblock.cpp, source/encoder/primitives.h, source/encoder/vec/macroblock.inc, source/test/testbench.cpp: backout bitdepth argument changes, the HM does not operate this way yet The HM allows you to encode 8 bit pixels with HIGH_BIT_DEPTH enabled, so we cannot assume the bit depth is 10 just because HIGH_BIT_DEPTH is enabled. However, the test bench should always test 10 bit pixels in that config. [9d49396e32b0] 2013-04-13 https://mandarmcw * source/Lib/TLibCommon/TComInterpolationFilter.cpp, source/encoder/macroblock.cpp, source/encoder/macroblock.h, source/encoder/primitives.h, source/encoder/vec/macroblock.inc, source/test/testbench.cpp, source/test/unittest.h: Updated the source as per the comments from Steve. * Unit test for filter improved. * bitDepth taken as a MACRO * Moved #define to respective cpp files * Remove unnecessary lines * Names added to copyright headers [c83ff08514ca] 2013-04-13 Mandar Gurav * Merged multicoreware/xhevc into default [fe804dbed45e] 2013-04-12 https://mandarmcw * source/Lib/TLibCommon/TComInterpolationFilter.cpp, source/encoder/macroblock.h, source/encoder/vec/macroblock.inc, source/test/testbench.cpp, source/test/unittest.h: vectorization of filter<8,0,...> stage 1 Added testbench support [cdb296338769] 2013-04-13 Deepthi * source/encoder/macroblock.cpp: Removing implicit-type conversion warnings. [848bb2845b01] 2013-04-12 Steve Borho * source/encoder/macroblock.cpp: macroblock: remove pixel typecasts, since block is now a Short* [9eb88e4e0d10] 2013-04-13 ShinYee Chung * source/encoder/threadpool.cpp: threadpool: Fix incorrect memory deallocation. The in-place buffer is an array. [5aaee38ecab2] * source/encoder/threadpool.cpp: threadpool: Fix incorrect use of &= operator. [fe63fd1ba96a] 2013-04-12 Steve Borho * source/Lib/TLibCommon/TComRdCost.cpp: Merge [98452862003d] * source/encoder/threadpool.cpp: threadpool: fix VC9 compile [9fce3c13f7f8] 2013-04-12 Deepthi * source/Lib/TLibCommon/TComRdCost.cpp: Replacing primitive call in xHADs8 and xHADs [36d7b00b1262] * source/Lib/TLibCommon/TComRdCost.cpp: Replacing primitive call in xHads4 [cd58cb707516] * source/Lib/TLibCommon/TComRdCost.cpp: Fixing final scaling in sad primitives; disabling satd primitives. [a14a67418620] 2013-04-12 Steve Borho * source/Lib/TLibCommon/TComTrQuant.cpp: tabs to spaces [6b21dab6629d] 2013-04-12 Deepthi * Merge [9193471ef54e] * source/Lib/TLibCommon/TComTrQuant.cpp: Replacing original inversedst with primitives [67404b0825e3] * source/encoder/macroblock.cpp, source/encoder/primitives.h, source/encoder/vec/macroblock.inc, source/test/testbench.cpp: Changing inversedst primitives parameters from pixel to short [beb412d2232f] 2013-04-11 Steve Borho * source/test/testpool.cpp: testpool: use fflush() on stdout [f3ba46f293db] * source/encoder/threadpool.cpp: threadpool: wait for threads to quiesce before shutting them down [10746baf67fd] * source/test/testpool.cpp: testpool: ensure MD5Frame is freed before pool [4749a6ab37f9] * source/encoder/threading.cpp, source/encoder/threading.h: threading: build fixes for linux, more error checking [985af075a732] * source/test/testpool.cpp: testpool: add indication of thread pool size [c20e695593ed] * source/encoder/threading.h, source/encoder/threadpool.cpp, source/test/testpool.cpp: threadpool: use counting semaphore on POSIX, single wake event, lock for eol To avoid race hazards at the end of each row, a row deciding to quit because it is block needs to block out the row above it that might be trying to exit. The is only ever between two threads, so hopefully it is low-contention. This patch also goes back to a blocking wait when idle, to save power. Note: the test does not currently pass. there is still a data hazard to be addressed. [87d026d4cced] 2013-04-11 Deepthi * source/test/testbench.cpp: Increase iteration count for better measurements [27c82c220aa9] 2013-04-11 ShinYee Chung * source/encoder/macroblock.cpp: macroblock: Fix the path in an #include. Use / instead of \ to remain portable to Windows and Linux. [e47f5284eed3] * source/Lib/TLibVideoIO/TVideoIOY4m.cpp: y4m: Fix missing math header include for function ceil(). We probably also need to add linking to the math library. [9092312686da] 2013-04-11 nandaku2 * Merged in ggopu/gopu_x265 (pull request #57) Fixed the issue for inversedst and malloc issue [4e62c71ed307] 2013-04-11 ggopu * source/test/testbench.cpp: Fixed the issue for inversedst and malloc issue [510d32f9a7ec] 2013-04-11 sumalatha * source/Lib/encoder.cpp: The code was crashing when the reconstructed filename is not given in the cfg file. Fixed it in this version. The fix was like in the xCreateLib(), the reconstructed file is opened based on the flag "m_pchReconFile"(this flag is set when the recon filename is given in cfg), but in xDestroyLib(), the recon file is closed always, so have included the check like close the file only when the m_pchReconFile is set. [a21280198bad] 2013-04-11 Deepthi * source/Lib/TLibCommon/TComInterpolationFilter.cpp, source/encoder/macroblock.cpp, source/encoder/primitives.h, source/encoder/vec/macroblock.inc: Filter coefficients should always be const short* (irrespective of bitdepth) [4c4119d136fa] * source/test/testbench.cpp: Comments for direction [e1e522b2a01e] 2013-04-10 nandaku2 * Merged in sumalatha/xhevc_sumalatha (pull request #54) support for y4m files(skipping the frame headers at each frame) [a4ea6dec3a3a] 2013-04-10 sumalatha * source/Lib/TLibVideoIO/TVideoIO.h, source/Lib/TLibVideoIO/TVideoIOY4m.cpp, source/Lib/TLibVideoIO/TVideoIOY4m.h, source/Lib/TLibVideoIO/TVideoIOYuv.cpp, source/Lib/TLibVideoIO/TVideoIOYuv.h, source/Lib/config.cpp, source/Lib/config.h, source/Lib/encoder.cpp, source/Lib/encoder.h: added support for y4m files (like skipping the plain-text frame headers present in each frame) [5acc3f79f938] 2013-04-10 Sumalatha Polureddy * source/Lib/TLibCommon/TComRdCost.cpp, source/encoder/vec/macroblock.inc: Merged multicoreware/xhevc into default [72bd9b78bfef] * source/encoder/vec/macroblock.inc: Merged multicoreware/xhevc into default [1b339b28b04a] 2013-04-09 Sumalatha Polureddy * Merged multicoreware/xhevc into default [c682e0de3aa0] 2013-04-08 Sumalatha Polureddy * source/encoder/vec/macroblock.inc, source/encoder/vec/pixel.inc, source/encoder/vec/vecprimitives.inc: Merged multicoreware/xhevc into default [d0031331b9c7] 2013-04-08 sumalatha * source/encoder/TComRdCost_SSE.cpp: Deleted this file to remove merge conflict [697eee51787c] 2013-04-05 Sumalatha Polureddy * source/Lib/TLibCommon/TComRdCost.cpp, source/encoder/vec/pixel.inc: Merged multicoreware/xhevc into default [321cb189ce36] 2013-04-04 Sumalatha Polureddy * source/encoder/vec/pixel.inc, source/test/TestBench.cpp, source/test/UnitTest.cpp, source/test/UnitTest.h: Merged multicoreware/xhevc into default [6993599a77b4] * source/Lib/TLibCommon/TComRdCost.cpp, source/VectorClass/dispatch_example.cpp, source/encoder/TComRdCost_SSE.cpp, source/encoder/vec/macroblock.inc, source/encoder/vec/pixel.inc, source/encoder/vec/vecprimitives.inc: Merged multicoreware/xhevc into default [b9716716f21a] 2013-04-04 sumalatha * source/Lib/TLibCommon/TComRdCost.cpp, source/encoder/TComRdCost_SSE.cpp, source/encoder/vec/vecprimitives.inc: Backed out changeset: 914f5238a7df [9646554f4779] * source/encoder/TComRdCost_SSE.cpp: Backed out changeset: 850f67a0d4be [933d82869b8c] * source/Lib/TLibCommon/TComRdCost.cpp: Backed out changeset: 11f514fc3415 [44be5efc13ac] 2013-04-03 Steve Borho * source/Lib/TLibCommon/TComRdCost.cpp: made changes to remove merge conflicts [11f514fc3415] * source/encoder/TComRdCost_SSE.cpp: made changes to remove the merge conflict [850f67a0d4be] * source/Lib/TLibCommon/TComRdCost.cpp, source/encoder/TComRdCost_SSE.cpp, source/encoder/vec/vecprimitives.inc: moved the "xCalcHADs8x8()" from TComRdCost_SSE.cpp to vecprimitives.in [914f5238a7df] 2013-04-10 nandaku2 * Merged in ggopu/gopu_x265 (pull request #55) Created the New script for Regression testing [f7c677c40e17] 2013-04-10 ggopu * build/RegressionTester.bat, build/config.txt: Created the New script for Regression testing [b5f0f40fb40e] 2013-04-10 Deepthi * source/test/testbench.cpp: Cleanup [f3273ba48335] * source/test/testbench.cpp: Cleanup of cycle count measurement [0018c423de94] * source/test/testbench.cpp: Disable cycle count. Separate mbdst testing into init_buffer, checkprimitive and clearbuffer. [6d16557c9e11] * source/test/testbench.cpp: Buffer handling separated. pixelcmp buffers stay global for now. [454fe1e43fb6] * source/test/testbench.cpp: More global vars removed [b05c7182c446] * source/test/testbench.cpp: Removing unnecessary global variables [a76a6109a7ff] * source/test/testbench.cpp: Replace delete with free. [08757a371067] 2013-04-10 Deepthi Devaki * source/Lib/TLibCommon/TComInterpolationFilter.cpp, source/encoder/macroblock.cpp, source/encoder/primitives.h, source/encoder/vec/macroblock.inc: Used array of function pointers for filter primitives. Added C primitives for filter_nonvertical. [66f39285c340] 2013-04-10 praveen Tiwari * Merged multicoreware/xhevc into default [9e59fba57f1b] 2013-04-10 praveentiwari * source/encoder/macroblock.cpp: Fixed fastInverseDst function in encoder primitive file by adding the missing line [2bb7cf3d86c1] * source/Lib/TLibCommon/TComTrQuant.cpp: Added missing line in fastInverseDst function [5008d1bf6cd2] * source/Lib/TLibCommon/TComTrQuant.cpp: Removed last calculation in fastInverseDst function [f959a6b66cba] 2013-04-10 Steve Borho * source/test/testbench.cpp: testbench: give an indication of pixel size in test bench [306defc44548] * source/Lib/TLibCommon/TComRdCost.cpp: TComRdCost: fix handling of iSubShift When iSubShift was 1, the strides were already being doubled. We just needed to halve the rows and run the matching primitive. Also, the subpel functions were checking for iStep == 0, but xCalcHADs8x8 was asserting the value to be 1. So it was never calling our satd performance primitives. [a95d907ee411] 2013-04-09 Deepthi * source/test/testbench.cpp: Fix memory leak in testbench [1dcb29da96d6] 2013-04-09 Steve Borho * source/test/testbench.cpp: testbench: fix warnings and errors when compiled with GCC [17d58d88ae09] * source/Lib/TLibCommon/CommonDef.h, source/VectorClass/instrset_detect.cpp: more Linux Intel compiler fixes [25f7ecb0aaee] * source/Lib/TLibCommon/CommonDef.h: Prevent multiple NVM_COMPILEDBY definitions [a344a1fabb0c] * source/CMakeLists.txt: cmake: use CXX env var, which is not a full path [7c1b5e9245c2] * source/CMakeLists.txt: cmake: treat Intel C++ compiler on Linux as gcc [aceaa0fb013d] * source/encoder/vec/macroblock.inc, source/test/testbench.cpp: nit cleanups [bfcb3bfff0f0] 2013-04-09 Deepthi * source/test/testbench.cpp: Adding to-do list [0cc3ada11beb] * source/test/testbench.cpp: Removing redundant function [261e9c67faa6] * source/test/testbench.cpp: Clearer error message [cc9e92334c63] * source/test/testbench.cpp: Renaming check_*_primitive functions. [b3b4c099ab8c] 2013-04-09 ggopu * source/test/testbench.cpp: Added IntraDct check [23a010c31203] 2013-04-09 https://mandarmcw * source/Lib/TLibCommon/TComInterpolationFilter.cpp, source/encoder/macroblock.cpp, source/encoder/primitives.h, source/encoder/vec/macroblock.inc: Modified Filter<8.0,..> functions as per the comments [d0f96efda047] 2013-04-08 Steve Borho * source/test/testbench.cpp: testbench: call Setup_Assembly_Primitives() to setup assembly primitives [a1e16c2c4e39] * source/test/testbench.cpp: testbench: fix a compiler warning, add notice of which primitives are testing [3b0549756509] * source/test/testbench.cpp: testbench: use single pixelcmp test function, tighten up output logging [52836d9667ac] * source/cmake/FindHg.cmake: cmake: backout FindHg.cmake, it only causes further problems [725f3a534139] * source/cmake/FindHg.cmake, source/cmake/version.cmake: cmake: add FindHg.cmake to our repo, only very recent cmake versions have it and fix case-sensitivity issue [9bbaca4f9d79] 2013-04-08 ggopu * source/test/testbench.cpp: Included comment to specify the source of code snippet [3191e8a2d66e] * source/test/testbench.cpp: Implemented the Cycle testing [37ad4814764e] 2013-04-07 Steve Borho * source/CMakeLists.txt: cmake: disable ASM compilation for non-GCC compilers until a workaround is found [399977f3a6ec] * source/cmake/CMakeASM_YASMInformation.cmake: cmake: use ASM_DIALECT consistently in CMakeASM_YASMInformation.cmake [584c490b9274] * build/nmake/make-solutions.bat: cmake: add a VC11 nmake batch file, to test ASM builds [df3e9810d7a2] * source/test/testbench.cpp: testbench: fix a couple of bugs [202fe2157dd3] * source/CMakeLists.txt, source/encoder/CMakeLists.txt: cmake: rename primitive variables so they are listed together in cmake-gui [0c0b08a9373f] * source/cmake/version.cmake: cmake: add version detection support for hg archives [aa2c04b65976] * source/CMakeLists.txt, source/cmake/version.cmake: cmake: move version detection into cmake/version.cmake [00d01d23e853] * source/encoder/CMakeLists.txt, source/encoder/primitives.cpp, source/encoder/primitives.h, source/encoder/vec/CMakeLists.txt, source/encoder/vec/vec-primitives.cpp, source/encoder/x86/CMakeLists.txt, source/encoder/x86/asm- primitives.cpp, source/test/testbench.cpp: Move primitive setup functions closer to their implementations [c8563d2c4612] * source/cmake/CMakeASM_YASMInformation.cmake, source/cmake/CMakeDetermineASM_YASMCompiler.cmake, source/cmake/CMakeTestASM_YASMCompiler.cmake: cmake: add yasm compilation ability [e4b548bbe391] * source/CMakeLists.txt, source/cmake/FindYasm.cmake: cmake: introduce a cmake/ folder, add a package to find a yasm assembler [6f2940ddc545] * source/encoder/x86/util.h: remove x264's utils.h, it has inline assembly we cannot use And the functions implemented are not obviously applicable to HEVC [cd85d3840279] 2013-04-06 Steve Borho * source/CMakeLists.txt, source/encoder/CMakeLists.txt, source/encoder/primitives.cpp, source/encoder/x86/CMakeLists.txt, source/encoder/x86/pixel-32.asm, source/encoder/x86/pixel-a.asm, source/encoder/x86/pixel.h, source/encoder/x86/util.h, source/encoder/x86/x86inc.asm, source/encoder/x86/x86util.asm, source/test/CMakeLists.txt, source/test/testbench.cpp, source/test/unittest.cpp: cmake: begin to add plumbing for assembly language primitives This changeset makes the vectorized primitives a build option, seperate from the C primitives and ASM primitives. [0704a16139c0] * source/CMakeLists.txt: cmake: improve version detection logic from revision control [e59bb7a0d173] * source/CMakeLists.txt: cmake: multithreaded make does not appear to work; gmake users should use -j4 [33b9731a501c] 2013-04-05 Steve Borho * source/encoder/CMakeLists.txt, source/encoder/TComRdCost_SSE.cpp: remove TComRdCost_SSE.cpp [ca197e22abff] * source/encoder/CMakeLists.txt: cmake: show the GPL license file in Visual Studio in the x265 project [365967021bb4] * source/test/unittest.cpp: unittest: fix pixel variable shadowing type name from primitives.h Only broke the GCC build [5191e30d92cc] * source/CMakeLists.txt, source/compat/msvc/getopt.c, source/compat/msvc/getopt.h: add GNU getopt library from glibc for argument parsing Will replace all of TAppCommon and allow us to use getopt() style argument parsing on all platforms. [06c29bb43ee0] * source/CMakeLists.txt, source/x265main.cpp: cmake: compile a version number from Mercurial into x265-cli.exe The version number is only updated when cmake is run, so if you care about the version number you should trigger a cmake update by touching a cmake file (or building from a clean repository) [c1924f5ca686] * source/encoder/macroblock.cpp: comment cleanups in macroblock.cpp [65329bd984d3] * source/encoder/vec/pixel.inc: pixel: add 16x16 and 32x32 vectorized SAD functions [f153e4a050c6] 2013-04-05 Deepthi Devaki * Merge [ffb382a731cb] * source/encoder/vec/pixel.inc: Uncrustified pixel.inc after changing sa8d_8x8 [961f8617fa0a] * source/encoder/vec/pixel.inc: Backed out changeset: dc9cf177f0d9 [7fdb843fbcc9] * source/encoder/vec/pixel.inc: Uncrustified pixel.inc after changing sa8d_8x8 [dc9cf177f0d9] 2013-04-05 Deepthi Devaki Akkoorath * Merged multicoreware/xhevc into default [6de9d7e911b6] 2013-04-05 Deepthi Devaki * source/encoder/vec/pixel.inc: Fixed overflow issue when 10 bit pixels are used in vec-sa8d_8x8 [ad257e35e970] * source/encoder/vec/pixel.inc: Backed out changeset: b39276d2ef19 [e19c604a0505] * source/encoder/vec/pixel.inc: Added cases for high bit depth = 1 and 0 in vec-sa8d_8x8 in pixel.inc [b39276d2ef19] 2013-04-05 Deepthi * source/encoder/primitives.cpp: Disabling 64-size primitives temporarily. [9aaf8e56f457] * source/encoder/primitives.cpp: Fixing the partition array for 64. [05df015ff6f4] * source/encoder/primitives.cpp: Rollback: to 8x8 matrix [1b099c5ad876] * source/encoder/primitives.cpp: Rollback: 64 expands the array heavily. [fdad810f7948] * source/encoder/primitives.cpp: Width and height permitted to be > 32 [9d01406efb58] * Merge [315488d4f4b7] * source/encoder/primitives.cpp: Expanding the psize static array to 64. [0108af4ff636] * source/encoder/primitives.h: Expanding Partitions enum [49f2265daf5a] * Merge [7281801c55a0] * source/Lib/TLibCommon/TComPrediction.cpp: Temporary array to match Pel [7d1889dce383] * source/Lib/TLibCommon/TComInterpolationFilter.cpp: Fix Error - matching function declaration and definition [bf5df7838588] 2013-04-05 Steve Borho * source/encoder/macroblock.cpp: fix implicit integer type conversions in macroblock.cpp [0d3b1caacadf] * source/x265main.cpp: fix build error in x265main.cpp [76e4a2d6a8ba] 2013-04-04 Steve Borho * source/encoder/primitives.cpp, source/x265main.cpp: rewrite main(), add code that describes detected CPU type and other info [5c55457268e2] 2013-04-05 praveentiwari * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TypeDef.h, source/encoder/macroblock.cpp, source/encoder/primitives.cpp, source/encoder/primitives.h, source/encoder/vec/macroblock.inc: Cleaned up the files checked in for modified encoder performance primitive for fastinversedst. [ba79f2fbc467] * source/encoder/TComTrQuant_SSE.cpp: Removed as it is no longer needed. [7ca0466b0cd6] 2013-04-04 praveen Tiwari * Merged multicoreware/xhevc into default [6a6d1c7492dc] * Merged multicoreware/xhevc into default [9ebdc2159a69] * source/encoder/primitives.h, source/encoder/vec/pixel.inc: Merged multicoreware/xhevc into default [f582f89a4cad] 2013-04-04 praveentiwari * source/encoder/macroblock.cpp, source/encoder/primitives.h, source/encoder/vec/macroblock.inc: Modified encoder performance primitive for fastinversedst [044cf66c07ba] 2013-04-04 praveen Tiwari * Merged multicoreware/xhevc into default [067fdd3b2787] * source/encoder/vec/macroblock.inc, source/encoder/vec/pixel.inc, source/encoder/vec/vecprimitives.inc, source/test/TestBench.cpp, source/test/UnitTest.cpp, source/test/UnitTest.h: Merged multicoreware/xhevc into default [b6dcf4d300cd] 2013-04-04 praveentiwari * source/encoder/vec/pixel.inc: resolving merge conflict with pixel.inc [0b5baa981f79] * source/Lib/TLibCommon/TypeDef.h, source/encoder/vec/macroblock.inc, source/encoder/vec/pixel.inc: resolving merge conflicts with pixel.inc and macroblock.inc [205ece1b25c4] * source/encoder/vec/vecprimitives.inc: second attempt to resolve merge conflict [6107601bfd02] * source/encoder/vec/vecprimitives.inc: solving merge conflict with vecprimitives.inc [3706ae74ae2f] * source/encoder/macroblock.cpp, source/encoder/primitives.cpp, source/encoder/primitives.h, source/encoder/vec/vecprimitives.inc: Encoder Performance Primitive fastInverseDst [ad754aa34a5b] * source/encoder/primitives.h: Added a cdecl funcdef to primitives.h and function pointer to EncoderPrimitives structure [79f25cc12b0f] 2013-04-03 praveen Tiwari * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/VectorClass/dispatch_example.cpp, source/encoder/CMakeLists.txt: Merged multicoreware/xhevc into default [19bbb70cf090] 2013-04-04 praveentiwari * source/Lib/TLibCommon/TComTrQuant.cpp: Solving merge conflict with TComTrQuant.cpp file [30e4df5a4552] 2013-04-03 praveen Tiwari * source/encoder/CMakeLists.txt: Merged multicoreware/xhevc into default [6e07d4ecd02e] 2013-04-03 praveentiwari * source/encoder/CMakeLists.txt: Second attempt to solve merge conflict [305d19e49341] * source/encoder/CMakeLists.txt: solving merge conflict with CMakeLists.txt [d69a08ec93b4] * cfg/per-sequence/BasketballPass.cfg: Backed out changeset: 1801be94c033 [52da05be5212] * source/encoder/CMakeLists.txt: Merge Conflict [aa4d052d016c] * cfg/per-sequence/BasketballPass.cfg: Merge Conflict [1801be94c033] 2013-04-02 praveentiwari * source/Lib/TLibCommon/TComTrQuant.h, source/encoder/CMakeLists.txt: fastInverseDst with declarartion in TComTrQuant.h file [686753ae63ac] * source/encoder/CMakeLists.txt: Solving merge conflict with CMakeLists.txt [d5d198a662ee] 2013-04-01 praveen Tiwari * source/encoder/CMakeLists.txt: Merged multicoreware/xhevc into default [779f1786e667] 2013-03-31 praveen Tiwari * source/encoder/CMakeLists.txt, source/x265cfg.cpp, source/x265cfg.h, source/x265top.cpp, source/x265top.h: Merged multicoreware/xhevc into default [28876bb73087] 2013-03-28 praveen Tiwari * source/encoder/CMakeLists.txt: Merged multicoreware/xhevc into default [7a2643c01212] 2013-03-28 praveentiwari * source/encoder/CMakeLists.txt: Trying to resolve conflict during merge [55b8785b08bb] 2013-03-27 praveentiwari * source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/encoder/TComTrQuant_SSE.cpp: Vectorized fastInverseDst with added fastInverse decleration and ENABLE_VECTOR macro [8d5b58c7cf54] * source/Lib/TLibCommon/TComTrQuant.cpp, source/encoder/TComTrQuant_SSE.cpp: Backed out changeset: 587fa81d140b [b84bc6b7ba79] * source/Lib/TLibCommon/TComTrQuant.cpp, source/encoder/TComTrQuant_SSE.cpp: Replaced Clip3 and Inhanced techniqueVectorized TComTrQuant::fastInverseDst with added ENABLE_VECTOR macro [587fa81d140b] 2013-03-27 praveen Tiwari * Merged multicoreware/xhevc into default [531e2bde522d] 2013-03-26 praveentiwari * source/encoder/TComTrQuant_SSE.cpp: Replaced Clip3 and Inhanced technique to load data in vectorization of TComTrQuant::fastInverseDst [b3b9435fdb6c] 2013-03-26 praveen Tiwari * source/encoder/CMakeLists.txt: Merged multicoreware/xhevc into default [225bfae48ee2] 2013-03-25 praveentiwari * source/encoder/TComTrQuant_SSE.cpp: Vectorized code for TComTrQuant::fastInverseDst [14dab7ea86d5] * source/encoder/CMakeLists.txt: Modified CMakeLists.txt for TComTrQuant_SSE.cpp [3a4b0271c907] * source/Lib/TLibCommon/TComTrQuant.cpp, source/encoder/CMakeLists.txt: Backed out changeset: aa84b30cd9ae [297daf59f4e7] * source/Lib/TLibCommon/TComTrQuant.cpp, source/encoder/CMakeLists.txt: Modified CMakeLists.txt for TComTrQuant.cpp [aa84b30cd9ae] * source/Lib/TLibCommon/TComTrQuant.cpp: First attempt to vectorize [efdab4e67252] 2013-04-04 Steve Borho * source/test/testbench.cpp: testbench: add remaining pixel functions [a7b9fc5161dc] * source/test/testbench.cpp: testbench: use a for() loop, rename numofprim to curpar [084eea175be7] * source/test/testbench.cpp: testbench: combine loops [f139817f864a] * source/test/testbench.cpp, source/test/unittest.cpp, source/test/unittest.h: testbench: remove redundant partition enum, clean unittest.h Headers should #include only the minimal number of headers required to ensure their own data types are defined. They should also not use "using namespace", only CPP files should use those statements. [16de12763457] * source/test/testbench.cpp: testbench: more flexible argument parsing [11cd8cf25ae1] * source/test/testbench.cpp: testbench: remove unused do_bench [7b6028c5e509] * source/test/testbench.cpp: testbench: allow cpuid to be user-provided [2df55ead8fe4] * source/test/testbench.cpp: pass primitive function tables to validate to the check* functions [6473652ab8da] * source/test/testbench.cpp: testbench: fix typos in comments, remove unused global var [380aa78e70ae] * source/Lib/TLibCommon/TComRdCost.cpp: xCalcHADs8x8 should call sa8d_8x8, remove satd calls from similar functions xCalcHADs16x4() and xCalcHADs4x16() would both need sa8d primitives [1a2ac116b26c] * source/encoder/pixel.cpp, source/encoder/primitives.h, source/encoder/vec/pixel.inc: primitives: add sa8d_8x8 and sa8d_16x16 primitives I copied C references for those functions from x264, and renamed satd_8x8 in pixel.inc to sa8d_8x8 since that is what it implements. [6b67af80a1f4] 2013-04-04 ggopu * source/test/testbench.cpp, source/test/unittest.cpp, source/test/unittest.h: Added header and removed unwanted variable and comments [76e096fbd6bf] * doc/UnitTestUsage.txt, source/test/testbench.cpp: Added Test bench usage Doc and Included the Single primitive check and Fixed all the Warning in test bench [cfa472c6afd5] 2013-04-04 Gopu G * source/test/CMakeLists.txt: Merged multicoreware/xhevc into default [a373f73d422a] 2013-04-04 ggopu * source/test/CMakeLists.txt: solved conflict issue [df3b82e6640f] * source/test/CMakeLists.txt: Disabled warnings for testbench [b7adfdf47dbe] * doc/UnitTestUsage.txt: Added Doc for UnitTest Usage [f9a1d53c7703] * source/test/testbench.cpp: Added Single primitive check [765992ddceb1] 2013-04-04 Steve Borho * source/encoder/vec/pixel.inc: uncrustify: fix eoln damage in pixel.inc [a6a4ecc9d93c] 2013-04-04 Deepthi * Merge [e07bb748be27] * source/encoder/vec/pixel.inc: Removing shadows/redeclarations [ff75a4f2a134] 2013-04-04 Steve Borho * source/test/CMakeLists.txt: cmake: rename thread pool test to PoolTest [b79778a2a241] * source/test/CMakeLists.txt: cmake: fix case of test bench filenames [8801f4346870] 2013-04-04 nandaku2 * source/test/unittest.CPP: Merged in ggopu/gopu_x265 (pull request #33) file name extension issue fixed [4449194c1d02] 2013-04-04 ggopu * source/test/unittest.CPP, source/test/unittest.cpp: File name Extension issue fixed [350b345eff63] 2013-04-04 nandaku2 * Merged in deepthidevaki/xhevc_deepthid (pull request #32) Added vectorized satd_8x8 to pixel.inc [7e51f92d13e8] 2013-04-04 Deepthi Devaki * source/encoder/vec/pixel.inc: Added vectorized satd_8x8 to pixel.inc [349f2249ec7d] 2013-04-04 nandaku2 * source/test/TestBench.cpp, source/test/UnitTest.cpp, source/test/UnitTest.h: Merged in ggopu/gopu_x265 (pull request #31) changed the file name conversion and added comparision for c and vector primitives [4abb704ac3ba] 2013-04-04 ggopu * source/test/TestBench.cpp, source/test/UnitTest.cpp, source/test/UnitTest.h, source/test/testbench.cpp, source/test/unittest.CPP, source/test/unittest.h: Changed file name conversion and included the c and vector primitive comparision check [3101b15fba69] 2013-04-03 Gopu G * source/VectorClass/dispatch_example.cpp, source/test/TestBench.cpp: Merged multicoreware/xhevc into default [809027331954] 2013-04-03 ggopu * source/test/TestBench.cpp: conflict error [3adf277f27b9] * source/test/TestBench.cpp: resolved conflict error [8089151317d8] * source/test/TestBench.cpp: solved conflict error [8bd75c20c1be] * source/test/TestBench.cpp: resolved conflict error [3e19d1cb4d37] 2013-04-03 Gopu G * Merged multicoreware/xhevc into default [50f85e140aac] 2013-04-02 Gopu G * Merged multicoreware/xhevc into default [181970e99874] 2013-04-02 ggopu * source/test/TestBench.cpp: Enhanced test bench for satd*x* [8659ad7e9457] 2013-04-01 Gopu G * source/test/TestBench.cpp, source/x265cfg.cpp, source/x265cfg.h, source/x265top.cpp, source/x265top.h: Merged multicoreware/xhevc into default [7900bd4aedb5] 2013-04-01 ggopu * source/test/TestBench.cpp: Resolved the Conflict Error [7d97e00d4fdf] * source/test/TestBench.cpp: Resolved conflict [f085c786246b] 2013-03-28 ggopu * source/test/TestBench.cpp: included test functions like pixelcmp [585c75f7107a] 2013-04-04 Steve Borho * source/encoder/vec/CMakeLists.txt, source/encoder/vec/macroblock.inc, source/encoder/vec/pixel.inc, source/encoder/vec/vecprimitives.inc: break vecprimitives.inc into multiple headers [462b9403a0bf] 2013-04-03 Steve Borho * source/encoder/macroblock.cpp, source/encoder/primitives.cpp, source/encoder/primitives.h: make an empty shell for macroblock.cpp [732999829240] * source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibEncoder/TEncPreanalyzer.cpp: uncrustify: fixup some code where uncrustify thought it saw templates x> 1 was converted to x > 1 instead of x < (foo>>1). I added parens to avoid this abiguity. [7595da33f0f2] * source/encoder/macroblock.cpp: change macroblock.cpp to unix eoln [70861c21adc1] * source/encoder/primitives.cpp, source/encoder/primitives.h: Merge [e94d0b91c049] 2013-04-04 Deepthi * source/encoder/CMakeLists.txt: cmake: add macroblock.cpp [39e35d878b64] * source/encoder/macroblock.cpp: Adding new file macroblock.cpp [6618a2d9f5fe] * source/encoder/primitives.cpp, source/encoder/primitives.h: Move Setup_C_PixelPrimitives decl to header file [689fa6d23f01] 2013-04-03 Steve Borho * source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibEncoder/TEncRateCtrl.h: uncrustify: final run, fixups my hand edits [d77975bfe8ec] * source/Lib/TAppCommon/program_options_lite.h, source/Lib/TLibCommon/ContextModel.cpp, source/Lib/TLibCommon/ContextModel3DBuffer.cpp, source/Lib/TLibCommon/SEI.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncRateCtrl.h, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/config.cpp, source/Lib/encoder.cpp, source/Lib/libmd5/libmd5.c: uncrustify: apply globally again After the first pass, some of the distance thresholds are now exceeded, requiring #endif comments or better wrapping. I've hand edited a few spots to make them easier to read [186aa91fb1c3] * doc/uncrustify/apply-to-all-source.py: uncrustify: do not apply style to VectorClass headers They are difficult functions to align mechanically, just leave them be [21185b179d11] * source/Lib/TAppCommon/program_options_lite.cpp, source/Lib/TAppCommon/program_options_lite.h, source/Lib/TLibCommon/AccessUnit.h, source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/ContextModel.cpp, source/Lib/TLibCommon/ContextModel.h, source/Lib/TLibCommon/ContextModel3DBuffer.cpp, source/Lib/TLibCommon/ContextModel3DBuffer.h, source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/SEI.cpp, source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComBitCounter.h, source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComBitStream.h, source/Lib/TLibCommon/TComCABACTables.cpp, source/Lib/TLibCommon/TComCABACTables.h, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComInterpolationFilter.cpp, source/Lib/TLibCommon/TComInterpolationFilter.h, source/Lib/TLibCommon/TComList.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h, source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibCommon/TComMv.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPicYuvMD5.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp, source/Lib/TLibCommon/TComRdCostWeightPrediction.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.h, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/AnnexBwrite.h, source/Lib/TLibEncoder/NALwrite.cpp, source/Lib/TLibEncoder/NALwrite.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/SEIwrite.h, source/Lib/TLibEncoder/SyntaxElementWriter.cpp, source/Lib/TLibEncoder/SyntaxElementWriter.h, source/Lib/TLibEncoder/TEncAnalyze.cpp, source/Lib/TLibEncoder/TEncAnalyze.h, source/Lib/TLibEncoder/TEncBinCoder.h, source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.h, source/Lib/TLibEncoder/TEncBinCoderCABACCounter.cpp, source/Lib/TLibEncoder/TEncBinCoderCABACCounter.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCavlc.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncPic.cpp, source/Lib/TLibEncoder/TEncPic.h, source/Lib/TLibEncoder/TEncPreanalyzer.cpp, source/Lib/TLibEncoder/TEncPreanalyzer.h, source/Lib/TLibEncoder/TEncRateCtrl.cpp, source/Lib/TLibEncoder/TEncRateCtrl.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/Lib/TLibEncoder/WeightPredAnalysis.cpp, source/Lib/TLibEncoder/WeightPredAnalysis.h, source/Lib/TLibVideoIO/TVideoIOYuv.cpp, source/Lib/TLibVideoIO/TVideoIOYuv.h, source/Lib/config.cpp, source/Lib/config.h, source/Lib/encoder.cpp, source/Lib/encoder.h, source/Lib/libmd5/MD5.h, source/Lib/libmd5/libmd5.c, source/Lib/libmd5/libmd5.h, source/PPA/ppa.cpp, source/PPA/ppa.h, source/PPA/ppaApi.h, source/VectorClass/instrset.h, source/VectorClass/instrset_detect.cpp, source/encoder/TComRdCost_SSE.cpp, source/encoder/pixel.cpp, source/encoder/primitives.cpp, source/encoder/primitives.h, source/encoder/threading.cpp, source/encoder/threading.h, source/encoder/threadpool.cpp, source/encoder/threadpool.h, source/encoder/vec/vecprimitives.inc, source/test/TestBench.cpp, source/test/UnitTest.cpp, source/test/UnitTest.h, source/test/testpool.cpp: uncrustify: apply globally [a2054f7e2644] * doc/uncrustify/apply-to-all-source.py, doc/uncrustify/drag- uncrustify.bat: uncrustify: add a drag/drop batch file for uncrustify, and apply-to- all.py [a737735e60a6] * source/VectorClass/dispatch_example.cpp: remove VectorClass/dispatch_example.cpp [98b7425b8b1d] * source/encoder/threading.cpp: threading: do not call pthread_exit after joining a thread [8333f6a4b74e] * source/encoder/pixel.cpp, source/encoder/primitives.cpp: primitives: allow for the fact that multiple C++ files will define C primitives [98bb68d4f9aa] * source/VectorClass/instrset_detect.cpp: instrset: prevent compiler warnings about nop function [4f459b703920] * source/encoder/pixel.cpp: pixel: 4x16 and 16x4 were backwards [212467c42aba] * source/VectorClass/instrset_detect.cpp: instrset: improve compiler fallbacks for xgetbv [8d1a5839809a] * source/encoder/TComRdCost_SSE.cpp: remove cruft from TComRdCost_SSE.cpp [9ac68e0fc2ee] * source/encoder/vec/vecprimitives.inc: astyle: cleanup vecprimitives.inc [3ecb9180930e] * Merged in deepthidevaki/xhevc_deepthid (pull request #30) Added satd4x4 in vecprimitives.inv [d17d19c2f9d6] 2013-04-03 Deepthi Devaki * source/encoder/vec/vecprimitives.inc: Added vectorized hads4x4(satd_4x4) to vecprimitive.inc [ba8f928d91d6] 2013-04-03 Deepthi Devaki Akkoorath * Merged multicoreware/xhevc into default [e9cffb400da1] * source/encoder/TComRdCost_SSE.cpp: Merged multicoreware/xhevc into default [b553eaec9dd7] 2013-04-03 Deepthi Devaki * source/encoder/TComRdCost_SSE.cpp: Vectorized xCalcHADS8x8 with 16 bit operations [552a75a69cb0] * source/encoder/TComRdCost_SSE.cpp: Backed out changeset: e4616400a510 [88a6837e15b5] * source/encoder/TComRdCost_SSE.cpp: Backed out changeset: e500456e0146 [e1ada400cd62] 2013-04-03 Deepthi Devaki Akkoorath * Merged multicoreware/xhevc into default [9054e642786b] 2013-04-02 Deepthi Devaki * source/encoder/TComRdCost_SSE.cpp: Modifed xCalcHADS8x8 with 16bit operations. [e500456e0146] * source/encoder/TComRdCost_SSE.cpp: Modified xCalcHADS8x8 with 16bit operations. [e4616400a510] 2013-04-03 Steve Borho * source/encoder/threadpool.cpp: threadpool: use InterlockedCompareExchange64 [74715f9955e9] * source/encoder/primitives.cpp, source/encoder/primitives.h: rename cpuIDDetect to CpuIDDetect, to follow convention of primitives.cpp [3b9f17747601] * source/encoder/primitives.cpp, source/encoder/primitives.h, source/encoder/vec/CMakeLists.txt: cmake: gcc 4.6 supports AVX, but not yet AVX2 [5d84ec0af006] 2013-04-03 Deepthi * source/encoder/primitives.cpp, source/encoder/primitives.h: Moving function declarations to the header file. [329deaeea8e7] 2013-04-03 Steve Borho * source/encoder/pixel.cpp, source/encoder/primitives.cpp, source/encoder/primitives.h, source/encoder/vec/vecprimitives.inc: Merge [3732add09cc2] 2013-04-03 Deepthi * source/encoder/pixel.cpp, source/encoder/primitives.cpp, source/encoder/primitives.h, source/encoder/vec/vecprimitives.inc: Changing Primitives Setup for C and vector code. [c5b472d23023] 2013-04-02 Deepthi * source/encoder/primitives.cpp: Bug Fix for crashes in PartitionFromSizes [c9dd52c5c274] 2013-03-30 Steve Borho * source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TypeDef.h, source/encoder/TComRdCost_SSE.cpp: Replace #define ENABLE_VECTOR with ENABLE_PRIMITIVES cmake option Use x265 performance primitives. We need to profile which of the 12, 24, 48, and 64 partition sizes are worth adding as primitives. Ditto for the SSE (sum of square differences) functions. [30ece3e5796f] 2013-04-02 Steve Borho * doc/uncrustify/codingstyle.cfg: uncrustify: tweak enum and struct bracing and comment margins [2ce1d641581a] * doc/uncrustify/codingstyle.cfg, source/PPA/ppaApi.h, source/encoder/pixel.cpp, source/encoder/primitives.cpp, source/encoder/primitives.h, source/encoder/threading.cpp, source/encoder/threading.h, source/encoder/threadpool.cpp, source/encoder/threadpool.h, source/encoder/vec/vecprimitives.inc: Prepare to use uncrustify on our encoder sources [ae8c19ec7690] * doc/uncrustify/codingstyle.cfg, doc/uncrustify/uncrustify.bat, doc/uncrustify/uncrustify.exe: add uncrustify and a base config [0b9a400d0a1a] * source/encoder/threadpool.cpp: threadpool: remove semicolon from macro definition [a6a8378d4f32] * source/encoder/primitives.cpp: primitives: replace asserts with if() checks [f833a10d6b5c] * source/test/testpool.cpp: testpool: add another assertion [3b903329179e] * source/encoder/threadpool.cpp: threadpool: correct the order of the arguments to InterlockedCompareExchange() Amusingly, it mostly worked the wrong way, except it never cleared any bits, so the worker threads kept working on rows until the frame dequeued itself. [c3dad08b999b] * source/test/testpool.cpp: testpool: stop processing CUs on the last column [e26d67716fd9] * source/encoder/threadpool.cpp: threadpool: use the correct MSVC instrinsic for integer CAS [821adc18540a] * source/encoder/threadpool.cpp: threadpool: use atomic compare and swap when consuming rows The GCC __sync_and_and_fetch() instrinsic was returning the new value, which is entirely useless. The thread could not tell if it was the one which cleared the bit. So I've switched it to a compare and swap operation. Now the thread pool test runs correctly when compiled with GCC [b2d5a5aa7a20] * source/encoder/threadpool.cpp: threadpool: remove redundant semicolon [10e63f2bdbc1] * source/encoder/primitives.cpp: apply coding style to primitives.cpp, minor cleanups [2b33261c0e61] * source/encoder/primitives.cpp: primitives: remove cruft from primitives.cpp, add compiler checks Do not try to access vectorized architectures that we know the compiler cannot generate. [128a506f7cb9] * source/encoder/primitives.cpp, source/encoder/primitives.h: primitives: do not include instrset.h from primitives.h Just declare the instrset_detect() function as an extern in primitives.cpp [0f32be5b4fa8] * source/encoder/CMakeLists.txt: cmake: tabs to spaces [1bd0a875d97d] 2013-04-02 sumalatha * source/encoder/CMakeLists.txt, source/encoder/primitives.cpp, source/encoder/primitives.h: 1. Included the cpu detection logic in SetupPrimitives() function. 2. Changed the SetupPrimitives() function such that, based on the cpuid, the corresponing vector architure and fucntions are selected [d5eb4f663e29] * source/encoder/CMakeLists.txt, source/encoder/primitives.cpp, source/x265main.cpp: Backed out changeset: 94aff9bad183 [8f33a2e2af52] * source/encoder/cpu_detection.cpp, source/encoder/cpu_detection.h, source/encoder/instrset.h, source/encoder/instrset_detect.cpp: Backed out changeset: 36b4e54f54b9 [274955b783ac] 2013-04-02 Sumalatha Polureddy * source/encoder/CMakeLists.txt: Merged multicoreware/xhevc into default [a729ebc85dd7] 2013-04-01 sumalatha * source/encoder/cpu_detection.cpp, source/encoder/cpu_detection.h, source/encoder/instrset.h, source/encoder/instrset_detect.cpp: these files has to go with the previous checkin version(199) [36b4e54f54b9] * source/encoder/CMakeLists.txt, source/encoder/primitives.cpp, source/x265main.cpp: 1. Included the cpu detection logic in the main 2. Changed the SetupPrimitives() function such that, based on the cpuid, the corresponing vector architure and fucntions are selected [94aff9bad183] 2013-04-02 Steve Borho * source/CMakeLists.txt, source/encoder/CMakeLists.txt, source/encoder/primitives.h: cmake: x64 Linux build fixes [c67a39f91e07] * source/CMakeLists.txt: cmake: provide an appopriate -march for 64bit GCC targets [0c8fda784ba1] 2013-04-01 Steve Borho * source/Lib/CMakeLists.txt, source/encoder/CMakeLists.txt, source/encoder/vec/CMakeLists.txt, source/test/CMakeLists.txt: cmake: use GCC variable, in lieu of CMAKE_COMPILER_IS_GNUCXX [60c583f05000] * source/CMakeLists.txt: cmake: detect 64bit build, set GCC flag if GCC is detected Both of these can be used in internal CMakeLists.txt files, to improve clarity [0e8858d0fb9f] 2013-04-01 deepthidevaki * source/encoder/TComRdCost_SSE.cpp: Modified xCalcHADS4x4 to use 16bit operations. [87514f1663f3] 2013-03-30 Steve Borho * source/Lib/TLibCommon/TypeDef.h: Disable DISTORTION_PRECISION_ADJUSTMENT when HIGH_BIT_DEPTH is disabled. This turns the operation into a >> 0, which any sane compiler will discard. [99eea17c57d6] * source/encoder/primitives.cpp, source/encoder/primitives.h: add mapping function from Width x Height to Partition enum [759fd1db4927] * source/CMakeLists.txt, source/Lib/CMakeLists.txt, source/Lib/config.cpp, source/Lib/config.h, source/Lib/encoder.cpp, source/Lib/encoder.h, source/x265cfg.cpp, source/x265cfg.h, source/x265main.cpp, source/x265top.cpp, source/x265top.h: move top level encoder classes into Lib/ folder The encoder should be usable as a shared library (x265.lib + HM.lib). The top level class should not be part of the CLI-only portion of the source. [c509aabfc0a7] * source/encoder/CMakeLists.txt: remove unused set_source_files_properties [2c938c6441e3] * source/Lib/TLibEncoder/TEncCavlc.h: fix VC compiler warnings (unreferenced formal parameter) in HM source [3df5de68dbe7] * source/Lib/TLibCommon/TComDataCU.h: fix VC compiler warnings (integer size type conversions) in HM source [73f1aa34c9a0] * source/Lib/TLibCommon/ContextModel3DBuffer.h: fix VC compiler warning in the HM source [d6a9f964a0dc] 2013-03-29 Steve Borho * source/Lib/TLibCommon/TComPicYuvMD5.cpp: prevent one compile warning when HIGH_BIT_DEPTH is disabled [e0b7e82b403f] * source/encoder/vec/vecprimitives.inc: add a stub 8bit vectorized primitive to prevent compile warnings [cbff9e95a7cb] * source/encoder/pixel.cpp, source/encoder/primitives.h: move primitives_c extern to the file(s) which define its methods [ace6ed34ee4c] * source/encoder/CMakeLists.txt, source/encoder/pixel.cpp: add templated SATD functions, based on x264's macro routines These use SWAR to do two operations in each clock cycle [018408f096c4] * source/encoder/pixel.cpp, source/encoder/primitives.h: add more irregular partition sizes (we probably still need 24s) [f676a5209ed7] * source/encoder/CMakeLists.txt, source/encoder/pixel.cpp: add pixel.cpp with templated sad function [0f94e98ddcfa] * source/encoder/vec/vecprimitives.inc: bug fix in vecprimitives.inc [aa80411df22e] * source/encoder/vec/vecprimitives.inc: declare seperate implementations of vector primitives for 8bit and 16bit pels [7adb3cf4ebe2] * source/encoder/primitives.cpp, source/encoder/primitives.h: stub in support for C reference versions of each encoder primitive [ddc4616609f6] * source/compat/msvc/stdint.h: ensure intptr_t is defined on MSVC compiles [ab7e6788a2bc] * source/encoder/primitives.h, source/encoder/vec/vecprimitives.inc: compiler portable CDECL macro [130b6f1555d2] * source/PPA/ppa.cpp, source/PPA/ppa.h, source/PPA/ppaApi.h, source/encoder/TComRdCost_SSE.cpp, source/encoder/primitives.cpp, source/encoder/primitives.h, source/encoder/threading.cpp, source/encoder/threading.h, source/encoder/threadpool.cpp, source/encoder/threadpool.h, source/encoder/vec/avx.cpp, source/encoder/vec/avx2.cpp, source/encoder/vec/sse2.cpp, source/encoder/vec/sse3.cpp, source/encoder/vec/sse41.cpp, source/encoder/vec/sse42.cpp, source/encoder/vec/ssse3.cpp, source/encoder/vec/vecprimitives.inc, source/test/TestBench.cpp, source/test/UnitTest.cpp, source/test/UnitTest.h, source/test/testpool.cpp, source/x265cfg.cpp, source/x265cfg.h, source/x265main.cpp, source/x265top.cpp, source/x265top.h: apply coding style to all new code (leaving HM unmodified for the moment) [86b79c630261] * doc/astyle/apply-to-all-source.py: add a Python script to apply coding style globally [750cd70ec32b] * doc/astyle/drag-astyle.bat: fix comment in drag-astyle.bat [bae49dd4f46d] * doc/astyle/AStyle.exe, doc/astyle/astyle-config.txt, doc/astyle /drag-astyle.bat: Add astyle.exe for Windows, a config file, and a handy drag-drop batch file [5695e621070f] * source/x265top.cpp: also take updates to x265top.cpp [9096a01c31e7] * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCavlc.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncSbac.h: Take HM tip code (mostly cleanups) [d5a4085b832a] 2013-03-29 Deepthi * source/encoder/vec/vecprimitives.inc: xCaldHads4x4 added as an example vector primitive. [7794ab12b1b8] * source/encoder/primitives.cpp: Remove unused parameter warning [f69b495d2323] 2013-03-29 Steve Borho * source/CMakeLists.txt, source/Lib/TLibCommon/TypeDef.h, source/encoder/primitives.h, source/encoder/vec/vecprimitives.inc: cmake: add HIGH_BIT_DEPTH build flag, defaults to ON (previous behavior) [a168ba02c525] 2013-03-28 Steve Borho * source/encoder/threadpool.cpp: threadpool: fix MinGW build again [ec62c87b6a69] * source/test/testpool.cpp: testpool: show MD5 hash as 4 hex ints [e78340875f4e] * source/encoder/threadpool.cpp, source/encoder/threadpool.h: threadpool: make worker threads spin so long as job providers are enqueued The idle list mechanism was buggy; threads would go idle when no work was available but none would be in the idle list when a work request arrived. Not sure how to fix this without locking, so removing the idle list for now. All threads are awakened when job providers are enqueued, and they stay active until there are no job providers registered with the thread pool. Awakening a thread multiple times should be safe; might just cause a few extra loops for it to go idle later. [34d48bb54077] * source/encoder/threadpool.cpp: threadpool: remove idle thread poke when job provider is enqueued The provider may not have work yet; and if it did it can poke the pool itself [ede480130c99] * source/CMakeLists.txt: add -march=i686 globally to gcc compile flags This was required to fix MinGW link errors on Windows (__sync_and_fetch*) [64821a2d1dfe] * source/test/testpool.cpp: add a proper hex print for the MD5 hash [9235319777da] * source/test/UnitTest.cpp: white-space cleanups in UnitTest.cpp [e8052c1be059] * source/test/CMakeLists.txt, source/test/UnitTest.cpp: more MSYS fixes [e87400a37651] * source/test/CMakeLists.txt, source/test/TestBench.cpp: better workaround for strdup [14115a094db7] * source/test/CMakeLists.txt, source/test/TestBench.cpp: msys compilation fixes for TestBench [cdb75f7b2fa7] * source/test/CMakeLists.txt, source/test/TestBench.cpp, source/test/UnitTest.cpp: fix test bench compiler warnings [fe55521ed24c] * source/test/CMakeLists.txt: cmake: fix case sensitivity of filenames [ad7dd76dc39d] * source/test/CMakeLists.txt: cleanup source/test/CMakeLists.txt [47f9ec819fe8] 2013-03-25 ShinYee Chung * build/linux/make-Makefiles.bash: Build: Fix missing executable permission on the BASH script. [0abab5c52e97] 2013-03-28 nandaku2 * Merged in ggopu/gopu_x265 (pull request #19) Created the Test bench For Vector Premitive Functions [a35abc703177] 2013-03-28 ggopu * source/test/CMakeLists.txt, source/test/TestBench.cpp, source/test/UnitTest.cpp, source/test/UnitTest.h: Created the Test bench For Vector Premitive Functions [c530d6d7b14f] 2013-03-29 ShinYee Chung * source/encoder/threadpool.cpp: threadpool: Fix missing #include for memset(). [5ac9ea3e104f] 2013-03-28 Steve Borho * source/encoder/CMakeLists.txt, source/encoder/TComRdCost_SSE.cpp, source/encoder/primitives.cpp, source/encoder/primitives.h: add ALIGN_VAR macros for compiler portability [98b3d54f8bf6] * source/encoder/primitives.h: primitives: use extern "C" instead of _cdecl; is more compiler portable [498c9bea248a] * source/encoder/primitives.cpp, source/encoder/primitives.h, source/x265main.cpp: primitives: call SetupPrimitives() before starting encoder [da0d5b94edb6] * source/CMakeLists.txt, source/encoder/primitives.cpp: primitives: add ENABLE_PRIMITIVES build option, default to ON [f2fa629b460b] * source/encoder/primitives.cpp, source/encoder/primitives.h, source/encoder/vec/CMakeLists.txt: primitives: move vectorized function table externs into CPP file [24ac23d75f87] * source/encoder/primitives.cpp, source/encoder/primitives.h: move stdint.h include to primitives.h since it uses std int types [a1b10c4251f9] * source/encoder/primitives.h, source/encoder/vec/vecprimitives.inc: primitives: match x264's pixel compare funcdef so we can later use their asm [4dc9fabbf725] * source/encoder/CMakeLists.txt: fix compile of TComRdCost_SSE.cpp on VC (not sure why this worked before) [a3a4f0ed61b4] * source/encoder/vec/CMakeLists.txt: cmake: VC10 appears to support /arch:AVX We can back this out later if there are problems with it [ce56b207242b] 2013-03-27 Steve Borho * source/encoder/CMakeLists.txt, source/encoder/primitives.cpp: add a stub primitives.cpp, showing what CPU runtime detection should do [d169138ef9f2] * source/encoder/vec/vecprimitives.inc: vec: automatically generate a primitive table for each vector architecture [169f67a4972c] * source/encoder/CMakeLists.txt: cmake: add primitives.h x265 project [0bc67c2dc278] * source/encoder/primitives.h: introduce EncoderPrimitives structure of function pointers [64638e854efb] * source/VectorClass/vectori256.h: workaround two compiler warnings for AVX2 and VC11 [97e315fd1008] * source/encoder/CMakeLists.txt, source/encoder/vec/CMakeLists.txt, source/encoder/vec/avx.cpp, source/encoder/vec/avx2.cpp, source/encoder/vec/sse2.cpp, source/encoder/vec/sse3.cpp, source/encoder/vec/sse41.cpp, source/encoder/vec/sse42.cpp, source/encoder/vec/ssse3.cpp, source/encoder/vec/vecprimitives.inc: introduce a vec/ folder for instancing vectorized encoder primitives This is incomplete. Next step is to declare a function table and set one up. [05481bf6d65a] * source/encoder/TComRdCost_SSE.cpp: use one contributor per line in copyright header [27148d109699] * source/CMakeLists.txt: cmake: add option to use multiple processors for compiling [d265d139dd54] * source/CMakeLists.txt, source/encoder/CMakeLists.txt: cmake: move /Ob2 flag to be global [695e210034ad] * source/test/testpool.cpp: testpool: add semicolons after PPA macros [ebb7b3d857cc] * source/encoder/threadpool.cpp: cmake: use 64bit interlocked commands and C style typecasts For some reason Microsoft uses signed types for atomic intrinsics and LONG64 is not the same as uint64_t [bffed1db2e83] * source/test/CMakeLists.txt: cmake: add PPA and pthread libraries for appropriate build configurations [207e0e47d1c4] * source/CMakeLists.txt: cmake: fix eoln damage from copy-pasting from a web-page [6c27e3178e4e] 2013-03-27 deepthidevaki * source/encoder/TComRdCost_SSE.cpp: Modified vector- xCalcHADs4x4 [329defb33896] * source/encoder/TComRdCost_SSE.cpp: Modifed vector- xCalcHADS4x4 [ffc0604b89a9] 2013-03-27 Deepthi Devaki Akkoorath * source/encoder/TComRdCost_SSE.cpp: Merged multicoreware/xhevc into default [c4df9c66f793] 2013-03-26 deepthidevaki * source/encoder/TComRdCost_SSE.cpp: Modified xCalcHADs4x4 for better optimization [921103b76c69] 2013-03-26 Deepthi Devaki Akkoorath * Merged multicoreware/xhevc into default [a1206301f004] 2013-03-25 deepthidevaki * source/encoder/TComRdCost_SSE.cpp: Modifed vectorized xCalcHADs* for aligned data access [cdddf736f4a1] 2013-03-26 Steve Borho * source/encoder/threadpool.cpp: threadpool: reorder initializers to match member declarations to make gcc happy [a42d35cf40ea] * source/test/testpool.cpp: testpool: memset requires string.h on Linux [5576e606f381] * source/test/testpool.cpp: testpool: initialize CUData on allocation, makes hashes persistent [2f9e75feedfa] * source/encoder/TComRdCost_SSE.cpp: disable formal parameter warnings in TComRdCost_SSE, for Release mode builds This pragma should go away when we clean up the vectorized code [600af352c248] * source/test/testpool.cpp: testpool: add more resolution to elapsed time [347c13c7c13a] * source/encoder/threadpool.cpp: threadpool: safely allow the threadpool to be freed and reallocated [8ccacddcb5c2] * source/test/testpool.cpp: testpool: do not check top-right data dependency for last block in row The fact that the penumltimate block was finished implies all of the dependencies for the last block are also available. [a9b0cb1167f5] * source/encoder/threadpool.cpp, source/encoder/threadpool.h: threadpool: fix a couple of bugs, introduce m_numWords variable for clarity [a2cc29d90646] * source/test/testpool.cpp: testpool: enqueue row 0 to trigger processing [550abf2e723d] * source/encoder/threadpool.cpp: threadpool: initialize m_numThreads correctly [72d310781d4f] * source/encoder/threadpool.cpp: threadpool: clear m_queuedBitmap after allocation [b70a1bd11c88] 2013-03-25 Steve Borho * source/test/CMakeLists.txt, source/test/testpool.cpp: testpool: add MD5 fake CTU encode logic [ebef6ad81ce7] * source/test/testpool.cpp: testpool: make progress on thread pool unit test [719adfd4d95a] * build/README.txt: simplify build/README.txt [f0f36350faf2] 2013-03-25 Deepthi * Merge [928a9fe490c2] * source/encoder/CMakeLists.txt: Force inlining for x265 project. [c5d96e5290e1] * source/encoder/CMakeLists.txt: Adding /Ob1 for inline functions in vectorclass [58fdaadc8c9b] 2013-03-25 Steve Borho * source/Lib/TLibCommon/TComRdCost.cpp, source/encoder/TComRdCost_SSE.cpp: Added vectorized xCalcHADs4x4. [e4511f7ffd67] * source/Lib/TLibCommon/TComRdCost.cpp, source/encoder/TComRdCost_SSE.cpp: Added vectorized xCalcHADs8x8 to TComRdCost_sse.cpp. [75902874989e] 2013-03-23 Steve Borho * build/ConfigureBuild.bat, build/README.txt, build/vc10-x86/build- all.bat, build/vc10-x86_64/build-all.bat, build/vc11-x86/build- all.bat, build/vc11-x86_64/build-all.bat, build/vc9-x86/build- all.bat, build/vc9-x86_64/build-all.bat, source/CMakeLists.txt, source/encoder/TComRdCost_SSE.cpp: cmake: change solution name to x265.sln The repository will eventually be renamed to x265 as well [0b06a183e9d9] 2013-03-23 ShinYee Chung * source/encoder/TComRdCost_SSE.cpp: Encoder: Fix the backslash used in an #include. The lookup fails in Linux platform, while VC works with both backslash and forwardslash [3f5f4347ca3c] * build/linux/make-Makefiles.bash: Build: cmake bash script for Linux 64bit platform. [1571b62368bf] 2013-03-22 Steve Borho * source/CMakeLists.txt: cmake: fix a copy-pasted comment [b6d723716d3a] * source/CMakeLists.txt, source/VectorClass/CMakeLists.txt, source/encoder/CMakeLists.txt: cmake: merge VectorClass and all vectorization knowledge into encoder/ [42d9ce7dd5b6] * source/x265cfg.cpp: fixup a harmless mistake made when renaming files [2801e45e10fc] 2013-03-23 ShinYee Chung * source/Lib/CMakeLists.txt: Build: Fix compile errors in HM codes due to compiler warning on unused variables. [48b1fa53a585] 2013-03-22 Steve Borho * source/CMakeLists.txt: cmake: for gcc builds, select Release build type by default [504de19e1c0c] * source/App/README.txt, source/App/TAppEncoder/CMakeLists.txt, source/App/TAppEncoder/TAppEncCfg.cpp, source/App/TAppEncoder/TAppEncCfg.h, source/App/TAppEncoder/TAppEncTop.cpp, source/App/TAppEncoder/TAppEncTop.h, source/App/TAppEncoder/encmain.cpp, source/CMakeLists.txt, source/x265cfg.cpp, source/x265cfg.h, source/x265main.cpp, source/x265top.cpp, source/x265top.h: cmake: remove the APP folder, move encoder main files to source/ folder The CLI portion of the project is now a build option, defaulting to ON. The build target is now named x265-cli, and it will be generated in the build root Debug/ or Release/ folder [b4939353bb2f] * source/App/TAppEncoder/CMakeLists.txt, source/CMakeLists.txt, source/Lib/CMakeLists.txt, source/Lib/TLibCommon/CMakeLists.txt, source/Lib/TLibEncoder/CMakeLists.txt: cmake: group all HM code into one library [dee196e7dd7f] * build/vc10-x86/build-all.bat, build/vc10-x86_64/build-all.bat, build/vc11-x86/build-all.bat, build/vc11-x86_64/build-all.bat, build/vc9-x86/build-all.bat, build/vc9-x86_64/build-all.bat: cmake: add build-all batch files for each compiler target This auto-detects the VS install location and skips impossible compiles [ea00c6454cd6] * build/msys/make-Makefiles.sh, build/vc10-x86/make-solutions.bat, build/vc10-x86_64/make-solutions.bat, build/vc11-x86/make- solutions.bat, build/vc11-x86_64/make-solutions.bat, build/vc9-x86 /make-solutions.bat, build/vc9-x86_64/make-solutions.bat: cmake: add build folders for each compiler target and batch files to open GUI This makes it easy to configure the build options for each target. The number of build options is about to grow. [f8838d1b8aeb] * source/Lib/TLibCommon/TComSlice.cpp: remove an include of a decoder header from the common lib [7308255a8774] * source/App/TAppDecoder/CMakeLists.txt, source/App/TAppDecoder/TAppDecCfg.cpp, source/App/TAppDecoder/TAppDecCfg.h, source/App/TAppDecoder/TAppDecTop.cpp, source/App/TAppDecoder/TAppDecTop.h, source/App/TAppDecoder/decmain.cpp, source/CMakeLists.txt, source/Lib/CMakeLists.txt, source/Lib/TLibDecoder/AnnexBread.cpp, source/Lib/TLibDecoder/AnnexBread.h, source/Lib/TLibDecoder/CMakeLists.txt, source/Lib/TLibDecoder/NALread.cpp, source/Lib/TLibDecoder/NALread.h, source/Lib/TLibDecoder/SEIread.cpp, source/Lib/TLibDecoder/SEIread.h, source/Lib/TLibDecoder/SyntaxElementParser.cpp, source/Lib/TLibDecoder/SyntaxElementParser.h, source/Lib/TLibDecoder/TDecBinCoder.h, source/Lib/TLibDecoder/TDecBinCoderCABAC.cpp, source/Lib/TLibDecoder/TDecBinCoderCABAC.h, source/Lib/TLibDecoder/TDecCAVLC.cpp, source/Lib/TLibDecoder/TDecCAVLC.h, source/Lib/TLibDecoder/TDecCu.cpp, source/Lib/TLibDecoder/TDecCu.h, source/Lib/TLibDecoder/TDecEntropy.cpp, source/Lib/TLibDecoder/TDecEntropy.h, source/Lib/TLibDecoder/TDecGop.cpp, source/Lib/TLibDecoder/TDecGop.h, source/Lib/TLibDecoder/TDecSbac.cpp, source/Lib/TLibDecoder/TDecSbac.h, source/Lib/TLibDecoder/TDecSlice.cpp, source/Lib/TLibDecoder/TDecSlice.h, source/Lib/TLibDecoder/TDecTop.cpp, source/Lib/TLibDecoder/TDecTop.h: Drop the HM decoder project; we should use HM project directly for decodes We should be finding other decoders to test with as well [4e8dec8e4636] * source/encoder/threadpool.h, source/test/testpool.cpp: threadpool: make pool destructor protected to force the use of Release() [e43c28659b53] * source/CMakeLists.txt, source/test/CMakeLists.txt, source/test/testpool.cpp: add unit test for thread pool, incomplete [97e90fcd77fe] * source/App/TAppEncoder/TAppEncCfg.cpp: ignore warnings in Y4M header reader imported from VPL [aa2829f682fb] 2013-03-21 Steve Borho * source/App/TAppEncoder/TAppEncCfg.cpp: fix white-space damage in TAppEncCfg.cpp [cca6a7ba5f3a] * source/App/TAppEncoder/TAppEncCfg.cpp: Fix eoln damage in TAppEncCfg.cpp [50261b240150] * source/Lib/TLibCommon/TComMv.h: fix another compiler warning in the HM [8a2d14661327] * source/Lib/TLibCommon/TComSlice.h: fix a warning in the HM header [1942f88a267c] * source/App/TAppEncoder/CMakeLists.txt: cmake: encoder app now links against x265 library (source/encoder) [d5de005561cf] * source/App/TAppEncoder/TAppEncCfg.cpp: encoder: gcc requires math.h for ceil() [d6d1e2f2f535] * source/App/TAppDecoder/CMakeLists.txt, source/App/TAppEncoder/CMakeLists.txt, source/Lib/CMakeLists.txt: cmake: rename md5 lib so it is not compiled as liblibmd5 [f45eb3a34f5a] * source/CMakeLists.txt, source/Lib/TLibCommon/CMakeLists.txt, source/encoder/CMakeLists.txt: cmake: move TComRdCost_SSE build to encoder/CMakeLists.txt [437850ed2225] 2013-03-21 ggopu * build/ConfigureSolution.bash: Noo Need for this Script [21f0f70a76a6] * build/ConfigureSolution.bat: No Need for this Script [f780b517b7b8] * build/ConfigureBuild.bat: Modified the Script for Build Mode [f2ce5bd828bf] 2013-03-21 Deepthi * Merge [dd3d01a52f4c] * build/ConfigureBuild.bat: Updates to build script [ee39c9715956] * source/encoder/TComRdCost_SSE.cpp: Removing redundant path [c23b0c5f44b8] * source/Lib/TLibCommon/CMakeLists.txt: Adding include directories and vector build options. [e788257c2b47] * source/VectorClass/CMakeLists.txt: Changing all vector builds to SSE2 for now. [1ff8a33f3356] * source/Lib/TLibCommon/CMakeLists.txt: Forward slash error in Cmake script [6d19c8cf40d2] * build/buildSolution.bash: Removing initial build script [fa010f66f667] 2013-03-21 sumalatha * source/App/TAppEncoder/TAppEncCfg.cpp: Changed the code for supporting 1. YUV files with per sequence cfg files 2. y4m files with no per seqence cfg files for y4m files, width, height and frame rate are obtained by parsing the y4m file [d825fcd6fcf0] 2013-03-21 nandaku2 * Merged in ggopu/xhevc_ggopu (pull request #6) Build Scripts [36be38d95a0e] 2013-03-20 ggopu * build/ConfigureSolution.bat: Script is for To Build only Visual Stdio Solutions for All Visual Studio Compilers or any Specific Visual Studio Compiler [1a26d0d759f3] * build/ConfigureSolution.bash: Script is for To Build Only Solutions for All MinGW Compilers or Any Specific MinGW Compilers [cdb508562f50] * build/ConfigureBuild.bat: Script is for To Build Bin and Solutions for All the Visual Studio Compilers or any Specific Visual Studio Compiler [924204a92ab3] * build/ConfigureBuild.bash: Script is used to Configure the Solution and Build the Bin for all MinGW Compilers - MingW, UNIX and MSYS [cfc72567b7d1] 2013-03-21 Steve Borho * source/encoder/threadpool.cpp: add MACOS cpu number detection This doesn't imply we care about MacOS, only that I found code for it online [22b6e4c7dbef] 2013-03-21 nandaku2 * Merged in mandarmcw/xhevc_mandar (pull request #5) Functions vectorized stage 1 [cfccc2255421] 2013-03-20 mandarmcw * source/Lib/TLibCommon/CMakeLists.txt, source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TypeDef.h, source/encoder/TComRdCost_SSE.cpp: Functions vectorized stage 1 : TcomRdCost::xGetSAD* (Replace * with the numbers - 8, 16, 32, 64, 12, 24) Changes:- * Defined a macro ENABLE_VECTOR for enabling the vectorized function definations. * Addedd file source/encoder/TComRdCost_SSE.cpp to Cmakelists file [e5ab4f0e46f0] 2013-03-19 Mandar Gurav * cfg/encoder_intra_main.cfg, cfg/encoder_intra_main10.cfg, cfg/encoder_lowdelay_P_main.cfg, cfg/encoder_lowdelay_P_main10.cfg, cfg/encoder_lowdelay_main.cfg, cfg/encoder_lowdelay_main10.cfg, cfg/encoder_randomaccess_main.cfg, cfg/encoder_randomaccess_main10.cfg: Merged multicoreware/xhevc into default [552584fc09d7] * Merged multicoreware/xhevc into default [93fa9a5208a3] 2013-03-19 mandarmcw * source/encoder/TComRdCost_SSE.cpp: Updated all file names with *_SSE [fd7954b7ccb3] * source/encoder/TComRdCost_SSE.cpp: New TComRdCost.cpp file with Vectorization. [7547355fbf79] * source/Lib/TLibCommon/TComRdCost.cpp: Merge [831a802091f2] * source/Lib/TLibCommon/TComRdCost.cpp: Discard changes [2e2e69ec398c] * source/Lib/TLibCommon/TComRdCost.cpp: Discard changes. Revert back to original source [30854b3469d4] 2013-03-19 Mandar Gurav * Merged multicoreware/xhevc/default (954436fbb3df) into default [605590cb93f4] 2013-03-19 mandarmcw * source/Lib/TLibCommon/TComRdCost.cpp: Functions vectorized stage 1 : TcomRdCost::xGetSAD* (Replace * with the numbers - 8, 16, 32, 64, 12, 24) [95ba23e9aec0] 2013-03-20 Steve Borho * source/encoder/threadpool.cpp: threadpool: add CPU core count detection, remove need for friend classes [ba0dcc65b645] * build/buildSolution.bash: switch build/buildSolution.bash to unix EOLN, no behavior change [03a24f5c924e] * source/encoder/threadpool.cpp, source/encoder/threadpool.h: threadpool: add worker thread implementation, non-blocking idle list [e69134e545db] * source/App/README.txt, source/Lib/README.txt, source/VectorClass/README.txt: add README files describing where various code originated [d627780e1c0d] * source/VectorClass/CMakeLists.txt: cmake: update name of VectorClass lib [64d3463a7437] * .hgignore: ignore Mercurial merge/patch remnants [74246322f5d6] * source/CMakeLists.txt, source/Lib/CMakeLists.txt, source/Lib/TVectorClass/CMakeLists.txt, source/Lib/TVectorClass/dispatch_example.cpp, source/Lib/TVectorClass/instrset.h, source/Lib/TVectorClass/instrset_detect.cpp, source/Lib/TVectorClass/special/complexvec.h, source/Lib/TVectorClass/special/decimal.h, source/Lib/TVectorClass/special/quaternion.h, source/Lib/TVectorClass/special/vector3d.h, source/Lib/TVectorClass/special/vectormath.h, source/Lib/TVectorClass/vectorclass.h, source/Lib/TVectorClass/vectorf128.h, source/Lib/TVectorClass/vectorf256.h, source/Lib/TVectorClass/vectorf256e.h, source/Lib/TVectorClass/vectori128.h, source/Lib/TVectorClass/vectori256.h, source/Lib/TVectorClass/vectori256e.h, source/VectorClass/CMakeLists.txt, source/VectorClass/dispatch_example.cpp, source/VectorClass/instrset.h, source/VectorClass/instrset_detect.cpp, source/VectorClass/special/complexvec.h, source/VectorClass/special/decimal.h, source/VectorClass/special/quaternion.h, source/VectorClass/special/vector3d.h, source/VectorClass/special/vectormath.h, source/VectorClass/vectorclass.h, source/VectorClass/vectorf128.h, source/VectorClass/vectorf256.h, source/VectorClass/vectorf256e.h, source/VectorClass/vectori128.h, source/VectorClass/vectori256.h, source/VectorClass/vectori256e.h: move TVectorClass folder from Lib/ folder to source/VectorClass [d1f2dcfd8c66] * source/CMakeLists.txt, source/Lib/CMakeLists.txt, source/Lib/PPA/CMakeLists.txt, source/Lib/PPA/ppa.cpp, source/Lib/PPA/ppa.h, source/Lib/PPA/ppaApi.h, source/Lib/PPA/ppaCPUEvents.h, source/PPA/CMakeLists.txt, source/PPA/ppa.cpp, source/PPA/ppa.h, source/PPA/ppaApi.h, source/PPA/ppaCPUEvents.h: move PPA from Lib/ folder [7aa3258f57d8] 2013-03-20 sumalatha * Merge [e9f96ed95f8a] * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg: included few configurations like deblock filter, quantisation, motion search etc with default value in both cfg file [99cfa30c5630] 2013-03-20 Sumalatha Polureddy * Merged multicoreware/xhevc into default [ca7efc3bd26f] * Merged multicoreware/xhevc into default [364d82f2fb06] 2013-03-19 Sumalatha Polureddy * Merged multicoreware/xhevc into default [1d6ff1eaba4e] 2013-03-19 MCW * cfg/encoder_intra_main.cfg, cfg/encoder_intra_main10.cfg, cfg/encoder_lowdelay_P_main10.cfg, cfg/encoder_lowdelay_main.cfg, cfg/encoder_lowdelay_main10.cfg, cfg/encoder_randomaccess_main.cfg, cfg/encoder_randomaccess_main10.cfg: Deleting redundant cfg files [24be06d25080] * Merge [a1108949be35] * cfg/encoder_lowdelay_P_main.cfg: Removing encoder cfg file [28407cd95bdc] * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg: included the two config files for testing. "encoder_all_I.cfg" encodes all frames as I frames. "encoder_I_15P.cfg" encodes "I" frame followed by 15 "P" frames. This pattern is followed for entire sequence. [124fe50587b5] 2013-03-19 Sumalatha Polureddy * Merged multicoreware/xhevc/default (954436fbb3df) into default [6f5679aa1420] 2013-03-20 nandaku2 * Merged in ggopu/xhevc_ggopu (pull request #2) New Script for To build the Windows Solution / Make files for all the VS and MSYS Compilers [c6c9c4f150e1] 2013-03-19 ggopu * build/buildSolution.bash: New Script for To build the Windows Solution / Make files for all the VS and MSYS Compilers [83904e69121d] 2013-03-19 Steve Borho * source/encoder/CMakeLists.txt, source/encoder/threadpool.cpp, source/encoder/threadpool.h: partially completed thread pool needs PoolThread::ThreadMain(), ThreadPoolImpl::PokeIdleThread(), and a shutdown/flush mechanism for the pool [f9f791c32093] 2013-03-19 Deepthi * Merge [e70117d0f3d5] 2013-03-18 Deepthi * source/Lib/TLibCommon/TComRdCost.h: Backed out changeset: db7ddb189d7d [954436fbb3df] * source/Lib/TLibCommon/TComRdCost.h: Test commit [db7ddb189d7d] 2013-03-19 Steve Borho * source/encoder/threadpool.h: threadpool: stub in interfaces for the thread pool and job providers [c5d831ed2ce0] 2013-03-18 Steve Borho * source/encoder/threading.h: threading: remove copy assignment operator body I want a compile error generated if it is attempted [80a0e976c24e] * source/encoder/CMakeLists.txt: cmake: remove redundant lib prefix This was building liblibx265 [bcabd73ba3f9] * source/encoder/threading.cpp, source/encoder/threading.h: threading: fix compile problems with gcc on Linux [23e6db8e39d2] * source/App/TAppEncoder/TAppEncCfg.cpp, source/App/TAppEncoder/TAppEncCfg.h, source/App/TAppEncoder/TAppEncTop.cpp, source/Lib/TLibCommon/SEI.cpp, source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComBitStream.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibDecoder/SEIread.cpp, source/Lib/TLibDecoder/SEIread.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/SEIwrite.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h: take tip HM 10.0-dev changes (subversion HM-10.0-dev@3381) [b1d8625402d8] * source/CMakeLists.txt, source/encoder/CMakeLists.txt, source/encoder/threading.cpp, source/encoder/threading.h: introduce encoder folder and libx265 library project with threading classes [24d5964cfb3b] * source/Lib/TVectorClass/CMakeLists.txt: cmake: fix comment about /arch:AVX flag, it is only necessary for VC11 [4a68b817dea5] * source/Lib/TVectorClass/CMakeLists.txt: cmake: white-space nits [097f1ac9a970] * source/Lib/CMakeLists.txt, source/Lib/TVectorClass/CMakeLists.txt: cmake: isolate /arch:AVX compile flag to code which includes vector libs When the HM is compiled with /arch:AVX globally, it causes a runtime exception when run in release mode but not in debug mode. Gah! [25fc265da117] * source/Lib/TVectorClass/CMakeLists.txt: cmake: no need to build dispatch_example.cpp [0b93848cb7cc] 2013-03-16 Steve Borho * source/App/TAppDecoder/CMakeLists.txt, source/App/TAppEncoder/CMakeLists.txt, source/CMakeLists.txt, source/Lib/CMakeLists.txt: cmake: enable full GCC warnings globally, disable for HM source where required [23d5ac432957] * build/README.txt: document MSYS build instructions [e76417ca32c7] * source/Lib/CMakeLists.txt: cmake: MSYS gcc requires -msse4 and does not support AVX2 intrinsics (refs #1) [94aef6522ed0] * source/Lib/CMakeLists.txt: cmake: VC9 can handle only SSE4.2 intrinsics (closes #1) gcc was tested under CentOS 6.3 and it compiled fine as-is [66263d046d28] 2013-03-15 Steve Borho * source/Lib/CMakeLists.txt: cmake: VC11 does support AVX2 intrinsics, but lib does not compile (refs #1) The library does not compile cleanly when AVX2 is enabled, one warning about an implicit int to bool conversion (easily ignored) and then an error that a formal parameter cannot be aligned as requested, which is much more serious. So I'm leaving AVX2 disabled for VC11 /arch:AVX2 was not valid, but /arch:AVX seemed to enable AVX2 intrinsics. [b541bd207ee8] * source/Lib/CMakeLists.txt, source/Lib/TVectorClass/vectori128.h: cmake: add INSTRSET definitions for various VC versions (refs #1) I'm guessing that VC9 supports AVX and VC11 supports AVX2. I'll have to verify both of them. A similar section must be added for gcc. [70b96b111797] 2013-03-15 Deepthi * source/Lib/CMakeLists.txt: Merge [d465f7915365] * source/Lib/CMakeLists.txt, source/Lib/TVectorClass/CMakeLists.txt: Adding Cmake build scripts for VectorClass [b948ddbdb645] * source/Lib/TVectorClass/dispatch_example.cpp, source/Lib/TVectorClass/instrset.h, source/Lib/TVectorClass/instrset_detect.cpp, source/Lib/TVectorClass/special/complexvec.h, source/Lib/TVectorClass/special/decimal.h, source/Lib/TVectorClass/special/quaternion.h, source/Lib/TVectorClass/special/vector3d.h, source/Lib/TVectorClass/special/vectormath.h, source/Lib/TVectorClass/vectorclass.h, source/Lib/TVectorClass/vectorf128.h, source/Lib/TVectorClass/vectorf256.h, source/Lib/TVectorClass/vectorf256e.h, source/Lib/TVectorClass/vectori128.h, source/Lib/TVectorClass/vectori256.h, source/Lib/TVectorClass/vectori256e.h: Adding GPL vectorclass source files [ccf65d86f57b] 2013-03-15 ShinYee Chung * source/CMakeLists.txt: Build: Update GCC compilations with more warning options. [aa8994f58577] 2013-03-14 Steve Borho * source/App/TAppDecoder/CMakeLists.txt, source/App/TAppEncoder/CMakeLists.txt, source/CMakeLists.txt, source/Lib/CMakeLists.txt, source/Lib/TLibCommon/CMakeLists.txt, source/Lib/TLibDecoder/CMakeLists.txt, source/Lib/TLibEncoder/CMakeLists.txt: move warning disablings as close as possible to the source that needs them I want newly added files and folders to have full warnings by default [ae7aa0c6b26a] * source/App/TAppDecoder/TAppDecTop.cpp, source/CMakeLists.txt, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibDecoder/TDecCAVLC.cpp, source/Lib/TLibEncoder/TEncSearch.cpp: enable maximal warnings (and warnings as errors) on Windows Manually exclude each warning emitted by the HM code that we chose to ignore, fix one warning to avoid ignoring all warnings of that type in the App folder. Explicitly disable some dangerous warnings directly in the files which emit them, so they can remain enabled globally to catch bugs as they are created. [053177b5e32c] 2013-03-11 Steve Borho * source/Lib/PPA/ppa.cpp: ppa: use API bindings from public Linux PPA package On Linux the PPA shared library is quiet on success (yeah!) but this makes it a challenge to debug shared library path problems. So I added some logging. [cf22c53c7108] 2013-03-07 Steve Borho * source/App/TAppDecoder/CMakeLists.txt, source/App/TAppEncoder/CMakeLists.txt: ppa: -ldl is necessary for UNIX systems; not necessarily gcc For instance, if building on MinGW gcc on Windows one does not need -ldl since PPA will still not use the dlsym library loader [07ec03019bda] * source/App/TAppEncoder/TAppEncTop.cpp, source/Lib/PPA/ppaCPUEvents.h: ppa: add some very high level CPU events in the encoder [c1b56eec0474] * source/App/TAppDecoder/CMakeLists.txt, source/App/TAppDecoder/decmain.cpp, source/App/TAppEncoder/CMakeLists.txt, source/App/TAppEncoder/encmain.cpp, source/CMakeLists.txt, source/Lib/CMakeLists.txt, source/Lib/PPA/CMakeLists.txt, source/Lib/PPA/ppa.cpp, source/Lib/PPA/ppa.h, source/Lib/PPA/ppaApi.h, source/Lib/PPA/ppaCPUEvents.h: introduce PPA as cmake build option [3117ce6b9688] * source/App/TAppDecoder/CMakeLists.txt, source/App/TAppEncoder/CMakeLists.txt, source/CMakeLists.txt, source/Lib/CMakeLists.txt, source/Lib/TLibCommon/CMakeLists.txt, source/Lib/TLibDecoder/CMakeLists.txt, source/Lib/TLibEncoder/CMakeLists.txt: convert CMakeLists.txt to unix EOLN [04901970ea1a] * source/Lib/TLibEncoder/CMakeLists.txt: fix case sensitivity of file paths in TLibEncoder/CMakeLists.txt [81a323ceae15] 2013-03-06 Steve Borho * source/App/TAppDecoder/CMakeLists.txt, source/App/TAppEncoder/CMakeLists.txt: reorder library linking to help gcc ld to resolve dependencies [f451d1272522] * source/CMakeLists.txt: copy gcc warning flags from HM Makefiles Can now compile without warnings on MSYS on Windows, but cannot link [99bb609ac6da] * .hgignore, COPYING, build/README.txt, cfg/encoder_intra_main.cfg, cfg/encoder_intra_main10.cfg, cfg/encoder_lowdelay_P_main.cfg, cfg/encoder_lowdelay_P_main10.cfg, cfg/encoder_lowdelay_main.cfg, cfg/encoder_lowdelay_main10.cfg, cfg/encoder_randomaccess_main.cfg, cfg/encoder_randomaccess_main10.cfg, cfg/per-sequence/BQMall.cfg, cfg/per-sequence/BQSquare.cfg, cfg/per-sequence/BQTerrace.cfg, cfg /per-sequence/BasketballDrill.cfg, cfg/per- sequence/BasketballDrillText.cfg, cfg/per- sequence/BasketballDrive.cfg, cfg/per-sequence/BasketballPass.cfg, cfg/per-sequence/BlowingBubbles.cfg, cfg/per-sequence/Cactus.cfg, cfg/per-sequence/ChinaSpeed.cfg, cfg/per-sequence/FourPeople.cfg, cfg/per-sequence/Johnny.cfg, cfg/per-sequence/Kimono.cfg, cfg/per- sequence/KristenAndSara.cfg, cfg/per- sequence/NebutaFestival_10bit.cfg, cfg/per-sequence/ParkScene.cfg, cfg/per-sequence/PartyScene.cfg, cfg/per- sequence/PeopleOnStreet.cfg, cfg/per-sequence/RaceHorses.cfg, cfg /per-sequence/RaceHorsesC.cfg, cfg/per-sequence/SlideEditing.cfg, cfg/per-sequence/SlideShow.cfg, cfg/per- sequence/SteamLocomotiveTrain_10bit.cfg, cfg/per- sequence/Traffic.cfg, cfg/per-sequence/Vidyo1.cfg, cfg/per- sequence/Vidyo3.cfg, cfg/per-sequence/Vidyo4.cfg, doc/Doxyfile, doc /README_data-structure.ppt, doc/gop-structure-example.pdf, doc/mainpage.h, doc/software-manual.pdf, source/App/TAppDecoder/CMakeLists.txt, source/App/TAppDecoder/TAppDecCfg.cpp, source/App/TAppDecoder/TAppDecCfg.h, source/App/TAppDecoder/TAppDecTop.cpp, source/App/TAppDecoder/TAppDecTop.h, source/App/TAppDecoder/decmain.cpp, source/App/TAppEncoder/CMakeLists.txt, source/App/TAppEncoder/TAppEncCfg.cpp, source/App/TAppEncoder/TAppEncCfg.h, source/App/TAppEncoder/TAppEncTop.cpp, source/App/TAppEncoder/TAppEncTop.h, source/App/TAppEncoder/encmain.cpp, source/CMakeLists.txt, source/Lib/CMakeLists.txt, source/Lib/TAppCommon/program_options_lite.cpp, source/Lib/TAppCommon/program_options_lite.h, source/Lib/TLibCommon/AccessUnit.h, source/Lib/TLibCommon/CMakeLists.txt, source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/ContextModel.cpp, source/Lib/TLibCommon/ContextModel.h, source/Lib/TLibCommon/ContextModel3DBuffer.cpp, source/Lib/TLibCommon/ContextModel3DBuffer.h, source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/SEI.cpp, source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComBitCounter.h, source/Lib/TLibCommon/TComBitStream.cpp, source/Lib/TLibCommon/TComBitStream.h, source/Lib/TLibCommon/TComCABACTables.cpp, source/Lib/TLibCommon/TComCABACTables.h, source/Lib/TLibCommon/TComDataCU.cpp, source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComInterpolationFilter.cpp, source/Lib/TLibCommon/TComInterpolationFilter.h, source/Lib/TLibCommon/TComList.h, source/Lib/TLibCommon/TComLoopFilter.cpp, source/Lib/TLibCommon/TComLoopFilter.h, source/Lib/TLibCommon/TComMotionInfo.cpp, source/Lib/TLibCommon/TComMotionInfo.h, source/Lib/TLibCommon/TComMv.h, source/Lib/TLibCommon/TComPattern.cpp, source/Lib/TLibCommon/TComPattern.h, source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicSym.cpp, source/Lib/TLibCommon/TComPicSym.h, source/Lib/TLibCommon/TComPicYuv.cpp, source/Lib/TLibCommon/TComPicYuv.h, source/Lib/TLibCommon/TComPicYuvMD5.cpp, source/Lib/TLibCommon/TComPrediction.cpp, source/Lib/TLibCommon/TComPrediction.h, source/Lib/TLibCommon/TComRdCost.cpp, source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp, source/Lib/TLibCommon/TComRdCostWeightPrediction.h, source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h, source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp, source/Lib/TLibCommon/TComSampleAdaptiveOffset.h, source/Lib/TLibCommon/TComSlice.cpp, source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TComTrQuant.cpp, source/Lib/TLibCommon/TComTrQuant.h, source/Lib/TLibCommon/TComWeightPrediction.cpp, source/Lib/TLibCommon/TComWeightPrediction.h, source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibDecoder/AnnexBread.cpp, source/Lib/TLibDecoder/AnnexBread.h, source/Lib/TLibDecoder/CMakeLists.txt, source/Lib/TLibDecoder/NALread.cpp, source/Lib/TLibDecoder/NALread.h, source/Lib/TLibDecoder/SEIread.cpp, source/Lib/TLibDecoder/SEIread.h, source/Lib/TLibDecoder/SyntaxElementParser.cpp, source/Lib/TLibDecoder/SyntaxElementParser.h, source/Lib/TLibDecoder/TDecBinCoder.h, source/Lib/TLibDecoder/TDecBinCoderCABAC.cpp, source/Lib/TLibDecoder/TDecBinCoderCABAC.h, source/Lib/TLibDecoder/TDecCAVLC.cpp, source/Lib/TLibDecoder/TDecCAVLC.h, source/Lib/TLibDecoder/TDecCu.cpp, source/Lib/TLibDecoder/TDecCu.h, source/Lib/TLibDecoder/TDecEntropy.cpp, source/Lib/TLibDecoder/TDecEntropy.h, source/Lib/TLibDecoder/TDecGop.cpp, source/Lib/TLibDecoder/TDecGop.h, source/Lib/TLibDecoder/TDecSbac.cpp, source/Lib/TLibDecoder/TDecSbac.h, source/Lib/TLibDecoder/TDecSlice.cpp, source/Lib/TLibDecoder/TDecSlice.h, source/Lib/TLibDecoder/TDecTop.cpp, source/Lib/TLibDecoder/TDecTop.h, source/Lib/TLibEncoder/AnnexBwrite.h, source/Lib/TLibEncoder/CMakeLists.txt, source/Lib/TLibEncoder/NALwrite.cpp, source/Lib/TLibEncoder/NALwrite.h, source/Lib/TLibEncoder/SEIwrite.cpp, source/Lib/TLibEncoder/SEIwrite.h, source/Lib/TLibEncoder/SyntaxElementWriter.cpp, source/Lib/TLibEncoder/SyntaxElementWriter.h, source/Lib/TLibEncoder/TEncAnalyze.cpp, source/Lib/TLibEncoder/TEncAnalyze.h, source/Lib/TLibEncoder/TEncBinCoder.h, source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp, source/Lib/TLibEncoder/TEncBinCoderCABAC.h, source/Lib/TLibEncoder/TEncBinCoderCABACCounter.cpp, source/Lib/TLibEncoder/TEncBinCoderCABACCounter.h, source/Lib/TLibEncoder/TEncCavlc.cpp, source/Lib/TLibEncoder/TEncCavlc.h, source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncEntropy.cpp, source/Lib/TLibEncoder/TEncEntropy.h, source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncPic.cpp, source/Lib/TLibEncoder/TEncPic.h, source/Lib/TLibEncoder/TEncPreanalyzer.cpp, source/Lib/TLibEncoder/TEncPreanalyzer.h, source/Lib/TLibEncoder/TEncRateCtrl.cpp, source/Lib/TLibEncoder/TEncRateCtrl.h, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp, source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h, source/Lib/TLibEncoder/TEncSbac.cpp, source/Lib/TLibEncoder/TEncSbac.h, source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/TLibEncoder/TEncSearch.h, source/Lib/TLibEncoder/TEncSlice.cpp, source/Lib/TLibEncoder/TEncSlice.h, source/Lib/TLibEncoder/TEncTop.cpp, source/Lib/TLibEncoder/TEncTop.h, source/Lib/TLibEncoder/WeightPredAnalysis.cpp, source/Lib/TLibEncoder/WeightPredAnalysis.h, source/Lib/TLibVideoIO/TVideoIOYuv.cpp, source/Lib/TLibVideoIO/TVideoIOYuv.h, source/Lib/libmd5/MD5.h, source/Lib/libmd5/libmd5.c, source/Lib/libmd5/libmd5.h, source/compat/msvc/stdint.h: commit JCT-VC HM source with cmake based build scripts HM-10.0-dev@3375 with some parts trimmed and some trivial folder reorgs https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/ [09fe40627f03]