1 2014-12-23 Satoshi Nakagawa <nakagawa424@oki.com>
3 * source/encoder/rdcost.h, source/encoder/search.cpp:
4 rdcost: unify scaleChromaDist*()
7 2014-12-23 Gopu Govindaswamy <gopu@multicorewareinc.com>
9 * source/encoder/encoder.cpp:
10 encoder: allocate memory for inter and intra analysis data based on
14 * source/encoder/analysis.cpp, source/encoder/analysis.h:
15 analysis: remove redundant argument in compressIntraCU
18 2014-12-20 Satoshi Nakagawa <nakagawa424@oki.com>
20 * source/encoder/search.cpp:
24 2014-12-18 David T Yuen <dtyx265@gmail.com>
26 * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm,
27 source/common/x86/dct8.h:
28 asm: idct[8x8] sse2 12232 -> 3500 over c code 3550 -> 3500 over
32 2014-12-17 Steve Borho <steve@borho.org>
34 * source/PPA/ppaCPUEvents.h, source/encoder/frameencoder.cpp:
35 ppa: emit one event per CTU for more clarity, disable frame threads
38 The frame threads are generally uninteresting when WPP is in use
41 * source/PPA/ppaCPUEvents.h, source/encoder/frameencoder.cpp,
42 source/encoder/framefilter.cpp, source/encoder/slicetype.cpp,
44 ppa: refine event names
46 Drop the unused names, remove uninteresting events. Try to cover the
47 main thread pool tasks and the frame encoder times.
50 * source/PPA/ppa.cpp, source/PPA/ppa.h, source/PPA/ppaApi.h:
51 ppa: simplify interfaces, enforce coding style
54 * source/common/common.h, source/encoder/analysis.cpp,
55 source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp,
57 ppa: minimize code foot-print of profiling events
59 This will allow us to add support for more profiling systems without
63 * doc/reST/cli.rst, source/x265.h:
64 doc: improve documentation for --stats and multi-pass in general
67 2014-12-16 Min Chen <chenm003@163.com>
69 * source/encoder/nal.cpp:
70 fix: output wrong WppEntryOffset when emulating start code at end of
74 2014-12-16 Aasaipriya Chandran <aasaipriya@multicorewareinc.com>
76 * source/common/x86/asm-primitives.cpp,
77 source/common/x86/ipfilter8.asm:
78 asm: chroma_hpp[16x16] for colorspace i420 in avx2 improve
82 * source/common/x86/asm-primitives.cpp,
83 source/common/x86/ipfilter8.asm:
84 asm: chroma_hpp[32x32] for colorspace i420 in avx2 improve
88 2014-12-13 Steve Borho <steve@borho.org>
90 * source/encoder/api.cpp, source/encoder/encoder.cpp,
91 source/encoder/encoder.h:
92 encoder: combine create() and init() functions
94 They were always called back-to-back() and their functionality was
95 non-distinct. It also now checks for abort errors at startup and
96 returns a NULL from the encoder open function (early aborts are
97 usually malloc failures)
100 * source/CMakeLists.txt, source/cmake/CMakeASM_YASMInformation.cmake:
101 cmake: eoln and white-space fixes, slight refactor
104 2014-12-12 Steve Borho <steve@borho.org>
106 * source/encoder/analysis.h:
110 * source/CMakeLists.txt, source/cmake/CMakeASM_YASMInformation.cmake:
111 cmake: allow position independent code to be generally configurable
114 Allow the builder to over-ride the default
117 2014-12-11 Steve Borho <steve@borho.org>
119 * source/encoder/entropy.cpp, source/encoder/entropy.h:
120 entropy: add methods to estimate CU mode decision costs
123 2014-12-12 Steve Borho <steve@borho.org>
125 * source/common/pixel.cpp:
129 * doc/reST/cli.rst, source/common/param.cpp, source/x265.h:
130 api: change default AQ mode to 1
132 We've received a lot of feedback that AQ mode 2 is often
133 problematic, but AQ mode 1 is generally safe and useful.
136 2014-12-12 Divya Manivannan <divya@multicorewareinc.com>
138 * source/common/x86/asm-primitives.cpp,
139 source/common/x86/ipfilter8.asm:
140 asm: luma_vps[4x4] in avx2: improve 337c->219c
143 2014-12-11 Steve Borho <steve@borho.org>
146 build: update README to not be so specific about yasm 1.2.0
149 2014-12-10 Steve Borho <steve@borho.org>
151 * source/encoder/reference.cpp:
152 reference: avoid weighting pixels when plane is unweighted
154 Just because the luma plane is weighted does not mean either of the
155 chroma planes are also weighted. If the weight parameters for a
156 given plane are not present, then just directly use the un-weighted
160 2014-12-11 Aasaipriya Chandran <aasaipriya@multicorewareinc.com>
162 * source/common/x86/asm-primitives.cpp,
163 source/common/x86/ipfilter8.asm:
164 asm: chroma_hpp[4x4] for colorspace i420 in avx2 improve 217c->192c
167 2014-12-10 Steve Borho <steve@borho.org>
170 doc: describe what happens when psy-rd is too high for bitrate
173 2014-12-10 Divya Manivannan <divya@multicorewareinc.com>
175 * source/common/x86/asm-primitives.cpp,
176 source/common/x86/ipfilter8.asm:
177 asm: chroma_vpp[32x32] for colorspace i420 in avx2: improve
181 2014-12-10 Steve Borho <steve@borho.org>
183 * source/encoder/analysis.cpp:
184 analysis: avoid redundant MC work
187 * source/encoder/analysis.cpp:
188 analysis: fix chroma predictions for 2Nx2N bidir at zero mv
190 Valgrind discovered that the chroma predictions were not in fact
195 api: add some blank lines
198 2014-12-09 Divya Manivannan <divya@multicorewareinc.com>
200 * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.h:
201 asm: chroma_vpp[4x4] for colorspace i422 in avx2: improve 228c->184c
204 2014-12-10 Steve Borho <steve@borho.org>
206 * source/common/lowres.cpp, source/common/lowres.h,
207 source/encoder/frameencoder.cpp, source/encoder/motion.cpp,
208 source/encoder/reference.cpp, source/encoder/reference.h,
209 source/encoder/slicetype.cpp:
210 reference: weight chroma planes of reference pictures if using
214 2014-12-08 Steve Borho <steve@borho.org>
216 * doc/reST/cli.rst, source/encoder/analysis.cpp,
217 source/encoder/frameencoder.cpp, source/encoder/motion.cpp,
218 source/encoder/motion.h, source/encoder/search.cpp,
219 source/encoder/slicetype.cpp:
220 motion: chroma ME [CHANGES OUTPUTS]
222 include chroma distortion in satd decisions when --subme > 2 and
223 chroma blocks are multiples of 4x4
225 This required making the MotionEstimate class more aware of PicYuv
226 and its indexing scheme so that it could find the correct chroma
227 pixels to interpolate. This allowed me to merge the setSourcePlane()
228 method into the lookahead's version of setSourcePU.
230 This requires further work. The Reference class needs to generate
231 weighted chroma planes if subpel refine will use chroma residual
232 cost. Until this is fixed, the chroma subpel steps will use
233 unweighted reference pixels.
236 2014-12-09 Steve Borho <steve@borho.org>
238 * source/common/pixel.cpp, source/common/primitives.cpp:
239 primitives: use NULL chroma satd func pointers for blocks not
242 If the block is not a multiple of 4x4, then chroma satd measurements
243 are not possible, so we will disable chroma residual measurements
244 for these block sizes (and thus only measure luma residual)
247 * source/common/primitives.cpp:
248 primitives: use luma satd functions for chroma, where applicable
250 The commented lines should be considered TODO items for the assembly
254 * source/common/pixel.cpp, source/common/primitives.h:
255 primitives: add a chroma satd table that is indexed by luma
258 There are a number of chroma partitions that have dimensions of 2 or
259 6 and those cannot use satd (which is 4x4 based), so we degrade them
260 down to SAD which makes me unhappy.
263 2014-12-08 Steve Borho <steve@borho.org>
265 * source/common/lowres.h, source/encoder/reference.cpp,
266 source/encoder/reference.h:
267 reference: move reconPic pointer to base class so it is available to
271 * source/encoder/motion.cpp:
272 motion: sync argument names between the header and the cpp file
275 * source/common/yuv.cpp:
276 yuv: fix size check in copyFromYuv
278 The target buffer needs to be as large as or larger than the source.
279 The fact that this check has never failed tells me all users of this
280 function have equal sized arguments.
283 * source/encoder/search.cpp:
284 search: rename index variable to puIdx for consistency
287 * source/common/yuv.cpp, source/common/yuv.h,
288 source/encoder/analysis.cpp, source/encoder/motion.cpp,
289 source/encoder/motion.h, source/encoder/search.cpp:
290 motion: add a version of setSourcePU which can accept fenc from
293 The analysis code has already gone through the trouble of loading
294 the CU's fenc pixels from the source picture into a much smaller Yuv
295 buffer with small strides. This allows us to avoid accessing the
296 fenc PicYuv in a performance critical portion of the encoder.
298 We utilize the Yuv class to copy the PU, since it already has logic
299 for calculating part offsets for luma and chroma
302 * source/encoder/motion.cpp, source/encoder/motion.h,
303 source/encoder/search.cpp, source/encoder/slicetype.cpp,
304 source/encoder/slicetype.h:
305 motion: use Yuv instance to hold fenc PU pixels (preparing for
308 This required making an init function which accepts the encoder
309 color space. We use 4:0:0 for lookahead since it does not keep
310 chroma planes. Note that I explicitly renamed this Yuv instance
311 fencPUYuv to make sure people understand it is not a duplicate of
312 the fencYuv kept by the Analysis structure; it will often be a sub-
313 partition of the CU fenc yuv.
316 * source/encoder/slicetype.cpp:
317 slicetype: cleanups - use bufSATD method where applicable
320 * source/common/yuv.cpp:
321 yuv: plumb in support for mono-chrome YUV buffers
323 The need for this will be obvious in the next commit
326 2014-12-09 Aasaipriya Chandran <aasaipriya@multicorewareinc.com>
328 * source/common/x86/asm-primitives.cpp,
329 source/common/x86/ipfilter8.asm:
330 asm: chroma_hpp[8x8] for colorspace i420 in avx2 improve 530c->373c
333 2014-12-08 Steve Borho <steve@borho.org>
335 * source/common/x86/asm-primitives.cpp:
336 asm: fix x86 link errors
339 2014-12-09 Deepthi Nandakumar <deepthi@multicorewareinc.com>
341 * source/common/x86/asm-primitives.cpp,
342 source/common/x86/ipfilter8.asm:
343 asm: chroma_vpp[16x16] for colorspace i420 in avx2: improve
347 2014-12-05 Divya Manivannan <divya@multicorewareinc.com>
349 * source/common/x86/asm-primitives.cpp,
350 source/common/x86/ipfilter8.asm:
351 asm: chroma_vpp[8x8] for colorspace i420 in avx2: improve 338c->269c
354 2014-12-06 Satoshi Nakagawa <nakagawa424@oki.com>
356 * source/common/cudata.h, source/encoder/analysis.cpp,
357 source/encoder/entropy.cpp, source/encoder/entropy.h,
358 source/encoder/search.cpp, source/encoder/search.h:
359 refine tuDepth related
362 2014-12-05 Steve Borho <steve@borho.org>
364 * source/cmake/version.cmake:
365 cmake: do not use a cache string for version found in hg_archive.txt
368 This was not passing the tagged version number to version.cpp
371 2014-12-04 Aarthi Thirumalai <Aarthi Thirumalai>
373 * source/encoder/ratecontrol.cpp:
374 rc : fix bug in deciding qp for first frame in CRF
377 * source/encoder/rdcost.h, source/encoder/sao.cpp:
378 rc: fix chroma qp and chroma lambda derivations.
380 fix the chroma qp values for Main10 profile, derive chroma qp from
381 luma qp values according to the HEVC spec. improves quality at high
385 2014-12-05 Deepthi Nandakumar <deepthi@multicorewareinc.com>
387 * source/encoder/analysis.cpp:
391 2014-12-05 Satoshi Nakagawa <nakagawa424@oki.com>
393 * source/encoder/analysis.cpp:
394 fix chroma distortion for 4:2:2
397 2014-12-04 Steve Borho <steve@borho.org>
399 * source/encoder/CMakeLists.txt:
400 cmake: disable idiotic uninitialized local variable warnings from VC
402 If the compiler is not going to make any minimal attempt to figure
403 out if a variable was initialized, I am not going to make any
404 attempt to look at their stupid warnings.
407 2014-12-04 Divya Manivannan <divya@multicorewareinc.com>
409 * source/common/x86/asm-primitives.cpp,
410 source/common/x86/ipfilter8.asm, source/common/x86/ipfilter8.h:
411 asm: chroma_vpp[4x4] for colorspace i420 in avx2: improve 228c->184c
414 2014-12-04 Steve Borho <steve@borho.org>
416 * source/encoder/analysis.cpp, source/encoder/analysis.h:
417 analysis: cache m_bChromaSa8d and reduce redundant work
419 Renamed some 'part' variables to 'puIdx' to avoid variable shadow
420 warnings and for consistency with search.cpp
423 2014-12-04 Deepthi Nandakumar <deepthi@multicorewareinc.com>
425 * source/encoder/analysis.cpp:
426 analysis: add chroma distortion to rdLevels 3 and 4
428 At these rdLevels, inter/bidir and merge candidate decisions were
429 being taken based on luma sa8dCost only. This will increase bitrate
430 and lower ssim slightly, with better subjective quality.
432 Also fixed some naming nits.
435 * doc/reST/cli.rst, source/CMakeLists.txt, source/common/param.cpp,
436 source/encoder/frameencoder.cpp, source/encoder/search.cpp,
437 source/x265.cpp, source/x265.h:
438 noiseReduction: allow separate strengths to be specified for intra
442 2014-12-04 Aarthi Thirumalai <Aarthi Thirumalai>
444 * source/common/x86/asm-primitives.cpp:
445 primitives: fix build error in refactor of chroma p2s primitive.
448 2014-12-03 Steve Borho <steve@borho.org>
450 * source/common/ipfilter.cpp, source/common/lowres.cpp,
451 source/common/pixel.cpp, source/common/predict.cpp,
452 source/common/primitives.cpp, source/common/primitives.h,
453 source/common/quant.cpp, source/common/shortyuv.cpp,
454 source/common/x86/asm-primitives.cpp, source/common/yuv.cpp,
455 source/encoder/search.cpp, source/test/ipfilterharness.cpp,
456 source/test/pixelharness.cpp:
457 primitives: cleanup EncoderPrimitives, refactor chroma p2s primitive
462 * source/common/pixel.cpp, source/common/primitives.h:
463 primitives: remove unused chroma lowres primitive
466 * source/encoder/search.cpp:
467 search: avoid AMVP selection if both MVs are the same
469 This is a simple work avoidance optimization, should have no effect
473 * source/common/CMakeLists.txt, source/common/primitives.cpp:
474 cmake: remove buggy workarounds for partial SIMD support (fixes #92)
476 In the past, there were a number of primitives written in SIMD
477 intrinsics that could work without compiling with YASM. Most of
478 those are now gone, and we generally require YASM for SIMD support.
479 This commit remoes support for using the few remaining SIMD
480 intrinsics without having YASM to provide implementations of
481 x265_emms(), x265_cpu_cpuid(), etc. Fixing a bug in the process.
485 doc: fix typo (closes #83)
488 * doc/reST/cli.rst, source/common/param.cpp, source/x265.cpp,
490 param: allow NR values from 1..99, clarify docs (closes #87)
493 * doc/reST/Makefile, doc/reST/conf.py, doc/reST/x265.rst:
494 doc: add support for reST generated man-pages (closes #89)
496 This patch was attached to issue #89 by djcj
499 * source/common/constants.cpp:
500 constants: adjust lambda tabels for 10bit encodes (fixes #55)
502 Since samples are 10bits, where two bits of extra resolution has
503 been added to add more granularity, distortion also has two extra
504 bits. A typical resolution for this problem is to down-shift
505 distortion by 2 bits everywhere, before adding lambda * bits to
506 calculate RD cost. Instead, we multiply lambda by 4 (essentially
507 shift it up by two bits) so distortion and lambda * bits are both at
510 lambda2 uses the square of the up-shifted lambda, so it has the
511 doubled up-shift same as the squared distortion values used for RDO.
513 Example output change: ./x265
514 /Volumes/video/sintel_trailer_2k_480p24.y4m o.bin --ssim --no-info
516 Main: 195.67 kb/s, SSIM Mean Y: 0.9833338 (17.782 dB) Main10 before:
517 363.49 kb/s, SSIM Mean Y: 0.9888182 (19.515 dB) Main10 after: 206.54
518 kb/s, SSIM Mean Y: 0.9855121 (18.390 dB)
521 2014-12-03 Gopu Govindaswamy <gopu@multicorewareinc.com>
523 * source/encoder/encoder.cpp:
524 encoder: fix binary mismatch for analysis load vs save with same
528 2014-12-02 Steve Borho <steve@borho.org>
533 2014-11-27 Divya Manivannan <divya@multicorewareinc.com>
535 * source/common/x86/asm-primitives.cpp,
536 source/common/x86/ipfilter8.asm:
537 asm: luma_vpp[8x16, 8x32] in avx2: improve 1139c->774c, 1968c->1452c
540 * source/common/x86/asm-primitives.cpp,
541 source/common/x86/ipfilter8.asm:
542 asm: luma_vpp[12x16] in avx2: improve 1977c->1418c
545 * source/common/x86/asm-primitives.cpp,
546 source/common/x86/ipfilter8.asm:
547 asm: luma_vpp[24x32] in avx2: improve 5637c->3695c
550 * source/common/x86/asm-primitives.cpp,
551 source/common/x86/ipfilter8.asm:
552 asm: luma_vpp[48x64] in avx2: improve 21298c->14696c
555 2014-12-02 Deepthi Nandakumar <deepthi@multicorewareinc.com>
558 x265: add ratetol to command line help
561 2014-12-01 Deepthi Nandakumar <deepthi@multicorewareinc.com>
563 * source/CMakeLists.txt, source/encoder/encoder.cpp, source/x265.h:
564 encoder: free csv file name
566 Since strdup is used uniformly for filenames, csvfn cannot be const.
569 2014-11-27 Divya Manivannan <divya@multicorewareinc.com>
571 * source/common/x86/asm-primitives.cpp,
572 source/common/x86/ipfilter8.asm:
573 asm: luma_vpp[8x16, 8x32] in avx2: improve 1139c->774c, 1968c->1452c
576 * source/common/x86/asm-primitives.cpp,
577 source/common/x86/ipfilter8.asm:
578 asm: luma_vpp[12x16] in avx2: improve 1977c->1418c
581 * source/common/x86/asm-primitives.cpp,
582 source/common/x86/ipfilter8.asm:
583 asm: luma_vpp[24x32] in avx2: improve 5637c->3695c
586 * source/common/x86/asm-primitives.cpp,
587 source/common/x86/ipfilter8.asm:
588 asm: luma_vpp[48x64] in avx2: improve 21298c->14696c
591 2014-11-30 Deepthi Nandakumar <deepthi@multicorewareinc.com>
594 x265: remove validateFanout
597 2014-11-27 Satoshi Nakagawa <nakagawa424@oki.com>
599 * source/common/pixel.cpp, source/common/primitives.h,
600 source/common/quant.cpp, source/common/x86/asm-primitives.cpp,
601 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h,
602 source/test/pixelharness.cpp, source/test/pixelharness.h:
603 primitives: refactor tskip related
606 2014-11-28 Satoshi Nakagawa <nakagawa424@oki.com>
608 * source/common/dct.cpp, source/common/quant.h,
609 source/common/x86/dct8.asm, source/common/x86/dct8.h,
610 source/encoder/search.cpp:
614 2014-11-28 Deepthi Nandakumar <deepthi@multicorewareinc.com>
616 * source/common/param.cpp:
617 param: disable b-intra in B frames when tune grain is true.
620 2014-11-25 Gopu Govindaswamy <gopu@multicorewareinc.com>
622 * source/encoder/encoder.h:
623 encoder: make all member fields public
626 2014-11-26 Steve Borho <steve@borho.org>
628 * doc/reST/cli.rst, doc/reST/presets.rst:
629 doc: restructure documentation with better grouping, improve cross-
633 * doc/reST/introduction.rst:
634 doc: fix a sphinx build warning
637 * doc/reST/presets.rst:
638 doc: improve readability of film grain section
641 * doc/reST/cli.rst, doc/reST/presets.rst:
642 doc: add cbr to the list of tunings, add helpful cross-refs
645 2014-11-27 Aarthi Thirumalai <Aarthi Thirumalai>
647 * source/CMakeLists.txt, source/common/param.cpp,
648 source/encoder/ratecontrol.cpp, source/x265.cpp, source/x265.h:
649 rc: introduce cli option to tune for cbr.
652 2014-11-25 Aarthi Thirumalai <Aarthi Thirumalai>
654 * source/encoder/ratecontrol.cpp:
655 rc: improve the frame size planning with respect to vbv buffer
656 occupancy and the lookahead window.
659 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
660 rc: adjust qp for B frames from ABR feedback in case of CBR.
662 limits the bitrate fluctuation for CBR with respect to the target
666 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
667 rc: limit bit amortization in ABR to longer sequences
670 2014-11-26 Steve Borho <steve@borho.org>
672 * source/encoder/ratecontrol.cpp:
673 rc: use c-style typecasts
676 2014-11-19 Aarthi Thirumalai <Aarthi Thirumalai>
678 * source/encoder/ratecontrol.cpp:
679 rc: tune midframe vbv logic for B frames
682 2014-11-21 Aarthi Thirumalai <Aarthi Thirumalai>
684 * source/encoder/slicetype.cpp:
685 slicetype: fix vbv lookahead data collection for all frames within
686 the lookahead window.
689 2014-11-26 Divya Manivannan <divya@multicorewareinc.com>
691 * source/common/x86/asm-primitives.cpp,
692 source/common/x86/ipfilter8.asm:
693 asm: luma_hpp[8x8, 8x16, 8x32] in avx2: improve 623c->523c,
694 1384c->1083c, 2555c->2058c
697 2014-11-26 Aasaipriya Chandran <aasaipriya@multicorewareinc.com>
699 * source/common/x86/asm-primitives.cpp,
700 source/common/x86/ipfilter8.asm:
701 Luma_hpp[48x64] avx2 asm code : improved 25053c->17882c
704 2014-11-26 Divya Manivannan <divya@multicorewareinc.com>
706 * source/common/x86/asm-primitives.cpp,
707 source/common/x86/ipfilter8.asm:
708 asm: luma_hpp[8x4] in avx2: improve 357c->261c
711 2014-11-26 Aasaipriya Chandran <aasaipriya@multicorewareinc.com>
713 * source/common/x86/asm-primitives.cpp,
714 source/common/x86/ipfilter8.asm:
715 Luma_hpp[32x8 , 32x16 , 32x24 , 32x32 , 32x64] avx2 asm code:
716 improved 2032c->1556c, 4238c->3014c, 6696c->4801c, 8697c->6433c,
720 2014-11-26 Divya Manivannan <divya@multicorewareinc.com>
722 * source/common/x86/asm-primitives.cpp,
723 source/common/x86/ipfilter8.asm:
724 asm: luma_vpp[64x16] in avx2: improve 7245c->4910c
727 * source/common/x86/asm-primitives.cpp,
728 source/common/x86/ipfilter8.asm:
729 asm: luma_vpp[64x32, 64x48, 64x64] in avx2: improve 14150c->9810c,
730 21132c->14684c, 28663c->19616c
733 2014-11-25 Divya Manivannan <divya@multicorewareinc.com>
735 * source/common/x86/asm-primitives.cpp,
736 source/common/x86/ipfilter8.asm:
737 asm: luma_vpp[32x8] in avx2: improve 2047c->1472c
740 * source/common/x86/asm-primitives.cpp,
741 source/common/x86/ipfilter8.asm:
742 asm: luma_vpp[32x24] in avx2: improve 5562c->3899c
745 * source/common/x86/asm-primitives.cpp,
746 source/common/x86/ipfilter8.asm:
747 asm: luma_vpp[32x16] in avx2: improve 3808c->2491c
750 * source/common/x86/asm-primitives.cpp,
751 source/common/x86/ipfilter8.asm:
752 asm: luma_vpp[32x32, 32x64] in avx2: improve 7247c->4909c,
756 * source/common/x86/asm-primitives.cpp,
757 source/common/x86/ipfilter8.asm:
758 asm: luma_vpp[16x32, 16x64] in avx2: improve 3875c->2463c,
762 2014-11-25 Aasaipriya Chandran <aasaipriya@multicorewareinc.com>
764 * source/common/x86/asm-primitives.cpp,
765 source/common/x86/ipfilter8.asm:
766 asm: avx2 for Luma_hpp[16x4, 16x8, 16x12, 16x16 , 16x32, 16x64]
768 619c->458c, 1174c->812c, 1694c->1112c, 2291c->1535c, 4846c->3207c,
772 * source/common/x86/asm-primitives.cpp,
773 source/common/x86/ipfilter8.asm:
774 asm: avx2 for luma_hpp[64x64, 64x48, 64x32, 64x16]
776 33137c->22606c , 24826c->17202c , 16726c->11560c , 7830c->5534c
779 2014-11-22 Steve Borho <steve@borho.org>
781 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
782 frameencoder: do not use bitmaps for framefilter if not WPP
784 The non-WPP row loop wants to do frame filter work in between each
785 row, with a m_filterRowDelay lag. If we use the functions which
786 update the bitmap, it would allow a worker thread to process a
787 filter row before it was ready. In short, the non-WPP path was never
788 intended to work in the presence of a thread pool. This was causing
789 crashes when --no-wpp --pmode||--pme was used.
792 2014-11-24 Steve Borho <steve@borho.org>
794 * source/encoder/frameencoder.cpp:
795 frameencoder: release row lock while waiting during VBV restarts
797 This fixes what appears to have been an old deadlock bug that has
798 just recently become very reproducible
801 2014-11-21 Divya Manivannan <divya@multicorewareinc.com>
803 * source/common/x86/asm-primitives.cpp,
804 source/common/x86/ipfilter8.asm:
805 asm: luma_vpp[16x4] in avx2: improve 734c->497c
808 * source/common/x86/asm-primitives.cpp,
809 source/common/x86/ipfilter8.asm:
810 asm: luma_vpp[16x8] in avx2: improve 1195c->745c
813 * source/common/x86/asm-primitives.cpp,
814 source/common/x86/ipfilter8.asm:
815 asm: luma_vpp[16x12] in avx2: improve 1644c->1018c
818 2014-11-21 Praveen Tiwari <Praveen Tiwari>
820 * source/common/dct.cpp:
821 idct32_c: C code optimization
824 * source/common/dct.cpp:
825 idct16_c: optimization
828 * source/common/dct.cpp:
829 idct8_c: optimization
832 * source/common/dct.cpp:
833 idct4_c: optimization
836 * source/common/dct.cpp:
837 dct32_c: optimization
840 * source/common/dct.cpp:
841 dct16_c: optimization
844 * source/common/dct.cpp:
848 * source/common/dct.cpp:
849 dct4_c: C code optimization
852 * source/common/dct.cpp:
853 idst4_c: optimization
856 * source/common/dct.cpp:
860 2014-11-21 Satoshi Nakagawa <nakagawa424@oki.com>
862 * source/common/pixel.cpp, source/common/x86/asm-primitives.cpp,
863 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
867 2014-11-20 Steve Borho <steve@borho.org>
869 * source/encoder/analysis.cpp, source/encoder/analysis.h,
870 source/encoder/search.cpp, source/encoder/search.h:
871 analysis: explicit locking for pmode and pme parameters
873 We've found a repro case involving --no-wpp --pmode --pme --preset
874 slower where time starved worker threads get stuck in the findJob()
875 routine and pushed off the CPU in the mean time the master thread
876 moves on to another CU. This caused very hard to reproduce crashes.
879 2014-11-20 David T Yuen <dtyx265@gmail.com>
881 * source/common/vec/dct-sse3.cpp:
882 Updated intrinsic of idct8 sse3 for new input format
885 2014-11-20 Divya Manivannan <divya@multicorewareinc.com>
887 * source/common/x86/asm-primitives.cpp,
888 source/common/x86/ipfilter8.asm:
889 asm: luma_vpp[16x16] in avx2: improve 2141c->1284c
892 * source/common/x86/asm-primitives.cpp,
893 source/common/x86/ipfilter8.asm:
894 asm: luma_vpp[8x4] in avx2: improve 498c->257c
897 * source/common/x86/asm-primitives.cpp,
898 source/common/x86/ipfilter8.asm:
899 asm: luma_vpp[8x8] in avx2: improve 701c->387c
902 2014-11-20 Steve Borho <steve@borho.org>
904 * source/encoder/encoder.cpp:
905 encoder: nits and alloc zero fix
907 intraData needs to be zerod on allocation else if one of the later
908 allocs failed some of the pointers will be uninitialized and passed
912 2014-11-20 Praveen Tiwari <Praveen Tiwari>
914 * source/common/dct.cpp:
915 Fix for C code mismatch
917 This patch is for fix the the binary mismatch in encoded output
918 introduced during refactorizaton of the transform/quant path.
919 Basically it is original version of code to make sure all valid
920 inputs are copied in input buffer, in other hand it is not fully
921 optimized code but this patch is quick fix for the problem and allow
922 us to optimze one function at a time.
925 2014-11-20 Satoshi Nakagawa <nakagawa424@oki.com>
927 * source/common/pixel.cpp:
931 2014-11-20 Deepthi Nandakumar <deepthi@multicorewareinc.com>
933 * build/icl32/build-all.bat, build/icl32/make-makefile.bat,
934 build/icl64/build-all.bat, build/icl64/make-makefile.bat:
935 build: remove icl32 and icl64 scripts
937 Typical Windows ICL users link with Visual Studio
940 2014-11-20 Praveen Tiwari <Praveen Tiwari>
942 * source/common/x86/ipfilter8.asm:
943 luma_hpp[4x4]: AVX2 asm code bug fix
946 2014-11-20 Gopu Govindaswamy <gopu@multicorewareinc.com>
948 * source/encoder/encoder.cpp:
949 encoder: fix analysis file read
952 2014-11-20 Satoshi Nakagawa <nakagawa424@oki.com>
954 * source/encoder/analysis.cpp:
958 * source/common/cudata.cpp, source/common/cudata.h,
959 source/encoder/analysis.cpp, source/encoder/frameencoder.cpp,
960 source/encoder/search.cpp:
961 replace char to int8_t, where it should be signed char
964 2014-11-19 Praveen Tiwari <Praveen Tiwari>
966 * source/common/x86/asm-primitives.cpp:
967 disable denoiseDct asm code until fixed for Mac OS
970 2014-11-16 Satoshi Nakagawa <nakagawa424@oki.com>
972 * source/common/dct.cpp, source/common/ipfilter.cpp,
973 source/common/picyuv.h, source/common/pixel.cpp,
974 source/common/predict.cpp, source/common/primitives.h,
975 source/common/quant.cpp, source/common/quant.h,
976 source/common/shortyuv.cpp, source/common/vec/dct-sse3.cpp,
977 source/common/vec/dct-ssse3.cpp, source/common/x86/blockcopy8.h,
978 source/common/x86/dct8.h, source/common/x86/ipfilter8.h,
979 source/common/x86/mc.h, source/common/x86/pixel-util.h,
980 source/common/x86/pixel.h, source/common/yuv.cpp,
981 source/encoder/analysis.cpp, source/encoder/rdcost.h,
982 source/encoder/search.cpp:
983 primitives: clarify constness
986 2014-11-18 Steve Borho <steve@borho.org>
988 * source/common/dct.cpp:
989 dct: fix gcc warnings
992 2014-11-18 Praveen Tiwari <Praveen Tiwari>
994 * source/common/dct.cpp, source/common/pixel.cpp,
995 source/common/primitives.h, source/common/quant.cpp,
996 source/common/quant.h, source/common/vec/dct-sse3.cpp,
997 source/common/vec/dct-sse41.cpp, source/common/vec/dct-ssse3.cpp,
998 source/common/x86/asm-primitives.cpp,
999 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h,
1000 source/common/x86/dct8.asm, source/common/x86/dct8.h,
1001 source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm,
1002 source/test/mbdstharness.cpp, source/test/mbdstharness.h,
1003 source/test/pixelharness.cpp, source/test/pixelharness.h:
1004 refactorizaton of the transform/quant path.
1006 This patch involves scaling down the DCT/IDCT coefficients from
1007 int32_t to int16_t as they can be accommodated on int16_t without
1008 any introduction of encode error, this allows us to clean up lots of
1009 DCT/IDCT intermediate buffers, optimize enode efficiency for
1010 different cli options including noise reduction by reducing data
1011 movement operations, accommodating more number of coefficients in a
1012 single register for SIMD operations. This patch include all
1013 necessary changes for the transfor/quant path including unit test
1017 2014-11-19 Satoshi Nakagawa <nakagawa424@oki.com>
1019 * source/common/common.h:
1023 2014-11-19 Steve Borho <steve@borho.org>
1025 * source/common/threading.h:
1026 threadind: fixes for VC11 Win32 includes, prune two unused functions
1029 2014-11-18 Steve Borho <steve@borho.org>
1031 * source/common/wavefront.cpp:
1032 wavefront: fix msvc warning
1034 warning C4800: 'unsigned long' : forcing value to bool 'true' or
1035 'false' (performance warning)
1038 * source/common/param.cpp, source/common/quant.cpp,
1039 source/common/threading.h, source/common/threadpool.cpp,
1040 source/common/wavefront.cpp, source/common/wavefront.h,
1041 source/common/winxp.h, source/encoder/entropy.cpp,
1042 source/encoder/slicetype.cpp:
1043 threading: use 32bit atomic integer operations exclusively
1045 The 32bit operations have better portability and have less onerous
1046 alignment restrictions.
1049 * source/common/constants.cpp, source/common/constants.h,
1050 source/common/primitives.cpp, source/encoder/api.cpp,
1051 source/test/intrapredharness.cpp:
1052 constants: remove init/destroyROM functions
1056 api: fix range limit docs for RQT limit params
1059 * source/encoder/frameencoder.cpp:
1060 frameencoder: white-space nits
1063 * source/encoder/analysis.cpp:
1064 analysis: drop MATCH_NON_PMODE macro
1066 this was a debugging feature, it's not being tested which means it
1067 will get broken and so it's best just to keep the code clean
1070 * source/common/threading.cpp:
1071 threading: don't use this->
1073 We don't do this anywhere else
1076 * source/common/threading.cpp, source/common/threading.h,
1077 source/common/threadpool.cpp, source/common/threadpool.h:
1078 threading: copyright comment format nits
1080 be consistent with our other files
1083 * source/common/param.cpp:
1084 param: use strdup() on input strings uniformly
1087 2014-11-18 Deepthi Nandakumar <deepthi@multicorewareinc.com>
1089 * source/encoder/encoder.cpp:
1090 encoder: init filename to NULL
1093 2014-11-17 Gopu Govindaswamy <gopu@multicorewareinc.com>
1095 * source/common/common.h, source/encoder/analysis.cpp,
1096 source/encoder/search.cpp:
1097 search: fix binary mismatch and inconsistent crash for share inter
1101 * source/encoder/encoder.cpp:
1102 encoder: force slicetype using analysis file
1105 2014-11-17 Satoshi Nakagawa <nakagawa424@oki.com>
1107 * source/common/cudata.cpp, source/common/lowres.h,
1108 source/common/mv.h, source/encoder/bitcost.h,
1109 source/encoder/motion.cpp, source/encoder/motion.h,
1110 source/encoder/slicetype.cpp:
1111 modify MV default constructor to do nothing
1114 2014-11-17 Aarthi Thirumalai <Aarthi Thirumalai>
1116 * source/encoder/ratecontrol.cpp:
1117 vbv: tune vbv predictors for better mapping of predicted bits to
1121 2014-11-16 Deepthi Nandakumar <deepthi@multicorewareinc.com>
1123 * source/encoder/analysis.cpp, source/encoder/analysis.h:
1124 analysis: cleanups, init pointers, variable names are made self-
1128 2014-11-12 Gopu Govindaswamy <gopu@multicorewareinc.com>
1130 * source/encoder/analysis.cpp:
1131 analysis: fix binary mismatch for share intra save and load mode
1135 2014-11-14 Steve Borho <steve@borho.org>
1138 cli: fix analysis filename argument
1140 This showed up as a GCC warning about an unused variable, but having
1141 the arg handled here prevented the org from being passed to
1145 * source/encoder/encoder.cpp:
1146 encoder: add prefix to FREAD and FWRITE macros to avoid MacOSX macro
1149 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform
1150 /Developer/SDKs/MacOSX10.10.sdk/usr/include/sys/fcntl.h:111:9: note:
1151 previous definition is here #define FWRITE 0x0002
1154 * source/common/common.h, source/common/frame.h,
1155 source/encoder/encoder.h:
1156 common: move analysis reuse structs to common.h
1158 files in common/ shouldn't include encoder.h
1161 2014-11-14 Satoshi Nakagawa <nakagawa424@oki.com>
1163 * source/encoder/analysis.cpp:
1164 analysis: encodeResidue() directly write to reconPic
1167 2014-11-14 Deepthi Nandakumar <deepthi@multicorewareinc.com>
1169 * source/CMakeLists.txt, source/common/common.h,
1170 source/common/frame.h, source/common/param.cpp,
1171 source/encoder/analysis.cpp, source/encoder/analysis.h,
1172 source/encoder/api.cpp, source/encoder/encoder.cpp,
1173 source/encoder/encoder.h, source/x265.cpp, source/x265.def.in,
1175 analysis save/load: refactor full implementation
1177 1. Move analysis inter/intra data into encoder 2. Encoder allocates
1178 and frees memory for x265 analysis, remove api calls 3. Inter and
1179 intra data allocated based on sliceType only 4. frame record size is
1183 2014-11-13 Satoshi Nakagawa <nakagawa424@oki.com>
1185 * source/encoder/analysis.cpp:
1186 analysis: don't add the cost of picture boundary CU to avgCost
1190 2014-11-13 Steve Borho <steve@borho.org>
1192 * source/cmake/FindVLD.cmake:
1193 cmake: hack to avoid escaping problems in cmake 3.1 parser
1195 Fix suggested by Mario *LigH* Rohkrämer
1198 2014-11-13 Satoshi Nakagawa <nakagawa424@oki.com>
1200 * source/common/cudata.cpp, source/encoder/analysis.cpp,
1201 source/encoder/entropy.cpp, source/encoder/entropy.h,
1202 source/encoder/sao.cpp:
1206 2014-11-12 Steve Borho <steve@borho.org>
1208 * source/encoder/rdcost.h:
1209 rdcost: lower the psy-rd scale factor for I slices to 96/256
1211 Based on Santhoshini's testing, this is better at preventing
1215 2014-11-11 Satoshi Nakagawa <nakagawa424@oki.com>
1217 * source/common/cudata.cpp, source/common/cudata.h,
1218 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
1219 refine initializeGeoms()
1222 2014-11-11 Steve Borho <steve@borho.org>
1224 * source/encoder/analysis.cpp:
1225 analysis: fix bidir non-determinism in --pmode --rd 5
1228 * source/common/param.cpp, source/encoder/analysis.cpp,
1229 source/encoder/search.cpp, source/encoder/search.h:
1233 2014-11-10 Steve Borho <steve@borho.org>
1235 * source/common/quant.cpp:
1236 quant: allow --nr in all slice types evenly
1239 2014-11-06 Deepthi Nandakumar <deepthi@multicorewareinc.com>
1241 * source/common/common.h, source/common/quant.cpp,
1242 source/common/quant.h:
1243 noiseReduction: apply only for I and P, move NoiseReduction to
1246 This doubles the number of quant nr categories; intra blocks now use
1250 2014-11-10 Steve Borho <steve@borho.org>
1252 * doc/reST/cli.rst, source/common/param.cpp:
1253 param: raise --nr limit to 2000
1256 * doc/reST/presets.rst, source/common/param.cpp:
1257 param: remove --b-intra from --tune grain, document rdoq restriction
1260 2014-11-09 Steve Borho <steve@borho.org>
1262 * source/encoder/rdcost.h:
1263 rdcost: experimental slice-type based psy-rd scale factor
1266 2014-11-08 Steve Borho <steve@borho.org>
1268 * source/encoder/analysis.cpp, source/encoder/analysis.h,
1269 source/encoder/search.cpp:
1270 analysis: RDO based BIDIR decisions
1272 At RD 0, 1, and 2, this changes 2Nx2N bidir from a SATD decision to
1275 At RD 3 and 4, if the bidir SA8D cost is within 17/16 of the best
1276 inter cost, then it makes an RDO decision between bestInter and
1277 Bidir (allowing psy-rd to influence the decision, which is the whole
1280 At RD 5 and 6, 2Nx2N BIDIR is yet another RD choice at the same
1281 level as 2Nx2N inter and rect and amp. (psy) RDO picks the best mode
1285 2014-11-11 Deepthi Nandakumar <deepthi@multicorewareinc.com>
1288 x265: more meaningful error messages in analysis
1291 * source/encoder/api.cpp:
1295 * source/encoder/api.cpp:
1296 api: replace analysis data with pre defined constant
1300 x265: create and initialise recon object if analysis mode is enabled
1303 * source/common/param.cpp:
1304 param: add default value to analysis mode
1307 2014-11-11 Gopu Govindaswamy <gopu@multicorewareinc.com>
1309 * source/encoder/analysis.cpp, source/encoder/api.cpp,
1310 source/x265.cpp, source/x265.h:
1311 x265: remove redundant variables from intra and inter analysis
1315 * source/encoder/analysis.cpp, source/encoder/search.cpp,
1316 source/encoder/search.h, source/x265.h:
1317 analysis: Dump best MV statistics and re-use this for analysis load
1320 This patch fixes a bug in inter slices in analysis=load|save mode.
1321 Inter data for all partitions is now saved correctly.
1324 2014-11-10 Satoshi Nakagawa <nakagawa424@oki.com>
1326 * source/common/cudata.cpp, source/common/cudata.h,
1327 source/common/deblock.cpp, source/encoder/analysis.cpp,
1328 source/encoder/entropy.cpp, source/encoder/frameencoder.cpp,
1329 source/encoder/search.cpp:
1330 cleanup SIZE_NONE. empty CU has MODE_NONE.
1333 2014-11-09 Steve Borho <steve@borho.org>
1335 * source/encoder/search.cpp:
1339 2014-11-08 Steve Borho <steve@borho.org>
1341 * source/encoder/reference.cpp, source/encoder/reference.h,
1342 source/encoder/search.cpp:
1343 reference: add methods for querying CU/PU pointers
1346 * source/encoder/analysis.cpp:
1347 analysis: delay initialization of prediction cu in RD 5 and 6
1350 2014-11-09 Satoshi Nakagawa <nakagawa424@oki.com>
1352 * source/encoder/analysis.cpp:
1356 2014-11-08 Steve Borho <steve@borho.org>
1358 * source/encoder/analysis.cpp:
1359 analysis: delay initialization of prediction cu until just before
1362 This avoids initializing CUs that may never be used because of
1366 * source/encoder/search.cpp, source/encoder/search.h:
1367 search: keep AMVP candidates in mode structure
1369 This fixes some work replication in --pme and will also make
1370 handling BIDIR as a seperate prediction easier.
1373 * source/encoder/motion.h, source/encoder/search.cpp,
1374 source/encoder/slicetype.h:
1375 motion: remove trivial set methods; make some members public
1378 2014-11-07 Steve Borho <steve@borho.org>
1380 * source/encoder/frameencoder.cpp:
1381 nr: fix denoise offset memcopy size
1384 * source/encoder/entropy.h:
1385 entropy: pass context model (state) to bitsCodeBin as uint32_t
1387 Should be slightly more efficient
1390 * source/encoder/entropy.cpp:
1394 * source/encoder/entropy.cpp:
1395 entropy: ensure X265_CHECK() has braces
1398 * source/encoder/entropy.cpp, source/encoder/entropy.h:
1399 entropy: inline methods which mapped to encodeBin() calls
1402 * source/encoder/entropy.cpp, source/encoder/entropy.h:
1403 entropy: inline bit counting functions
1406 * source/encoder/entropy.cpp:
1407 entropy: use bitsCodeBin in intra mode bit estimate functions
1410 * source/encoder/entropy.cpp, source/encoder/entropy.h:
1411 entropy: rename encodeBinContext to bitsCodeBin, make const
1413 The function is not modifying the context, so there is no need to
1414 pass as a reference, and the function can be const. Also, group the
1415 bit counting RDO functions together
1418 * source/encoder/entropy.cpp:
1419 entropy: white-space nits
1422 2014-11-07 Satoshi Nakagawa <nakagawa424@oki.com>
1424 * source/encoder/search.cpp:
1425 fix bug in 522baf03fbbd
1428 2014-11-07 Deepthi Nandakumar <deepthi@multicorewareinc.com>
1430 * source/encoder/search.cpp:
1431 search: fix warnings
1434 2014-11-07 Satoshi Nakagawa <nakagawa424@oki.com>
1436 * source/encoder/analysis.cpp:
1440 2014-11-05 Ashok Kumar Mishra <ashok@multicorewareinc.com>
1442 * source/encoder/entropy.cpp, source/encoder/entropy.h,
1443 source/encoder/search.cpp, source/encoder/search.h:
1444 [REVIEW PATCH/OUTPUT CHANGED]search: removed multiple encode
1445 Coefficients from estimateResidualQT()
1447 Tried to remove multiple encode coefficients from
1448 estimateResidualQT() function. Coefficients are encoded in three
1449 stages: Once for calculation of distortion and twice for split and
1450 unsplit block cost calculation. I have given comments where I have
1454 * source/encoder/search.cpp, source/encoder/search.h:
1455 search: made a function for null cost calculation in
1456 xEstimateResidualQT()
1459 * source/encoder/search.cpp, source/encoder/search.h:
1460 search: made separate functions for encoding cbfs in
1461 xEstimateResidualQT()
1464 2014-11-07 Satoshi Nakagawa <nakagawa424@oki.com>
1466 * source/common/cudata.cpp, source/common/cudata.h:
1467 cudata: remove default argument
1470 2014-11-06 Steve Borho <steve@borho.org>
1472 * doc/reST/presets.rst:
1473 doc: fix sub-title depth
1475 Single dash was already used by a higher section
1478 * doc/reST/cli.rst, doc/reST/presets.rst, source/common/param.cpp:
1479 param: add --tune grain
1482 * source/encoder/search.cpp:
1483 search: ugly bias hack for bidir with psy-rd
1487 docs: document RC params, at least minimally
1491 api: cleanup comments
1495 cli: cleanup CLI help, add 'verbose' tier
1497 Remove a lot of uncommon features from the initial help output,
1499 --log-level debug --help to see it all
1502 * source/common/param.cpp, source/x265.cpp:
1503 api: expose rate control params via x265_param_parse() and CLI
1505 Adds range checks for qCompress, which has documented limits. The
1506 others have very minimal explanations; so I'm not adding them to the
1507 CLI help. Users should not touch them unless they know what they are
1510 Note this commit doesn't bump X265_BUILD since no new params were
1514 2014-11-05 Steve Borho <steve@borho.org>
1516 * source/common/deblock.cpp:
1517 deblock: fix type conversion warnings
1520 2014-11-05 Satoshi Nakagawa <nakagawa424@oki.com>
1522 * source/common/deblock.cpp, source/common/deblock.h,
1523 source/common/quant.cpp, source/common/slice.h,
1524 source/encoder/encoder.cpp, source/encoder/entropy.cpp,
1525 source/encoder/framefilter.cpp, source/encoder/rdcost.h,
1526 source/encoder/sao.cpp:
1527 refine deblocking filter
1530 2014-11-04 Gopu Govindaswamy <gopu@multicorewareinc.com>
1533 cli: bug fix for validatefanout param analysis-mode=save and load
1536 2014-11-04 gopi jayaraman <gopi@multicorewareinc.com>
1538 * source/encoder/encoder.cpp:
1539 encoder: use 6 frameNumThreads for cpucount 32 and above
1542 2014-11-04 Steve Borho <steve@borho.org>
1545 api: add void to functions that take no parameters for -Wstrict-
1549 * source/common/deblock.cpp, source/common/frame.cpp,
1550 source/common/frame.h, source/common/framedata.h,
1551 source/common/predict.cpp, source/encoder/analysis.cpp,
1552 source/encoder/dpb.cpp, source/encoder/encoder.cpp,
1553 source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp,
1554 source/encoder/ratecontrol.cpp, source/encoder/sao.cpp,
1555 source/encoder/search.cpp, source/encoder/slicetype.cpp,
1556 source/encoder/weightPrediction.cpp:
1557 frame: rename m_reconPicYuv -> m_reconPic, m_origPicYuv -> m_fencPic
1559 the fooPicYuv names were potentially confusing, preferred names:
1560 PicYuv* fooPic; Yuv* fooYuv;
1563 * source/encoder/motion.cpp, source/encoder/motion.h:
1564 motion: remove unused sa8d pointer and bufSA8D method
1567 2014-11-04 Gopu Govindaswamy <gopu@multicorewareinc.com>
1569 * source/common/cudata.h, source/encoder/analysis.cpp,
1570 source/encoder/analysis.h, source/encoder/api.cpp,
1571 source/encoder/encoder.cpp, source/encoder/search.cpp,
1572 source/encoder/search.h, source/x265.cpp, source/x265.h:
1573 search: dump and share the best motion statistics for inter(P&B)
1577 2014-11-03 Steve Borho <steve@borho.org>
1580 docs: fix reST parsing issues
1583 2014-11-03 Min Chen <chenm003@163.com>
1585 * source/common/primitives.h, source/common/x86/pixel-util.h,
1586 source/common/x86/pixel-util8.asm:
1587 cleanup: remove unused asm calcrecon
1590 * source/common/x86/ipfilter8.asm:
1591 asm: fix typo error in interp_8tap_vert_pp_4x4_avx2
1594 2014-11-03 Satoshi Nakagawa <nakagawa424@oki.com>
1596 * source/common/cudata.cpp, source/common/cudata.h,
1597 source/common/quant.cpp, source/encoder/analysis.cpp,
1598 source/encoder/entropy.cpp, source/encoder/frameencoder.cpp,
1599 source/encoder/search.cpp:
1600 cleanup CUData::m_skipFlag
1603 2014-10-31 Steve Borho <steve@borho.org>
1605 * source/encoder/encoder.cpp:
1606 encoder: make it clear that --fast-cbf is innefective at lower rd
1609 This begs the question of whether the feature should exist, or
1610 whether it should be added to the lower RD levels
1613 * source/common/param.cpp:
1614 param: show options using their CLI / param_parse names
1617 2014-10-30 Steve Borho <steve@borho.org>
1620 remove dead non-release tags
1622 anyone interested in archeology can still find them; there's no
1623 sense to keep them on the tip since we stopped tracking last known
1624 good more than a year ago
1627 2014-10-31 Steve Borho <steve@borho.org>
1629 * source/encoder/encoder.cpp:
1634 Added tag 1.4 for changeset 5e604833c5aa
1635 [d2db9c1ab44b] <stable>
1637 * source/encoder/encoder.cpp:
1638 encoder: emit an Active Parameter Sets SEI in stream headers if
1641 The APS is technically required if we're going to be emitting
1642 picture timing SEI which we do for HRD and for interlaced inputs.
1643 The lack of APS for interlaced content was causing a warning from
1644 the HM decoder and on Windows the decoder would later crash.
1645 [5e604833c5aa] [1.4] <stable>
1647 2014-10-30 Steve Borho <steve@borho.org>
1649 * source/encoder/slicetype.cpp:
1650 slicetype: fix an msvc warning
1653 2014-10-30 Min Chen <chenm003@163.com>
1655 * source/common/x86/asm-primitives.cpp,
1656 source/common/x86/ipfilter8.asm:
1657 asm: AVX2 version luma_vpp[4x4], improve 391c -> 302c
1660 * source/common/x86/ipfilter8.asm:
1661 asm: replace constant table tab_c_512 by pw_512
1664 * source/common/x86/ipfilter8.asm:
1665 asm: replace constant table tab_c_128 by pb_128
1668 2014-10-30 Nicolas Morey-Chaisemartin <nmorey@kalray.eu>
1670 * source/common/lowres.cpp, source/common/lowres.h,
1671 source/encoder/slicetype.cpp:
1672 lowres: save intra mode in lowres
1675 2014-10-30 Steve Borho <steve@borho.org>
1678 doc: make a note about how to ensure the version number is accurate
1681 * source/encoder/encoder.cpp:
1682 encoder: fix some obviously incorrect comments
1685 * doc/reST/cli.rst, source/common/param.cpp,
1686 source/encoder/encoder.cpp, source/x265.cpp, source/x265.h:
1690 * source/encoder/encoder.cpp:
1691 encoder: give more warnings when features are automatically disabled
1693 and add comments describing why the combinations are prevented. Some
1694 of them are simply impossible, the option would have no affect and
1695 so it is best not to pretend it is enabled. Some will not be useful
1696 (have a negative impact on performance with no compression
1697 improvement). And others are just currently broken and not typically
1699 [ba3193adff60] <stable>
1701 * doc/reST/cli.rst, source/common/param.cpp, source/x265.cpp,
1703 api: allow --psy-rdoq values up to 50; it can be beneficial for film
1705 [73c243602b07] <stable>
1707 * source/encoder/analysis.cpp:
1708 analysis: remove TODO comment, I've given up on the idea
1711 2014-10-29 Gopu Govindaswamy <gopu@multicorewareinc.com>
1713 * source/encoder/analysis.cpp, source/encoder/search.cpp,
1714 source/encoder/search.h:
1715 search: move m_bestME[] from search to Mode structure
1718 2014-10-29 Steve Borho <steve@borho.org>
1720 * doc/reST/cli.rst, doc/reST/threading.rst, source/x265.h:
1721 docs: improve --pmode documentation, the feature is fully functional
1722 [9b73a4d2210a] <stable>
1724 * source/encoder/analysis.cpp, source/encoder/analysis.h:
1725 analysis: inline checkBestMode(), improve comments
1728 * source/encoder/analysis.cpp:
1732 * source/test/CMakeLists.txt, source/test/testpool.cpp:
1733 cmake: remove obsolete pool test
1736 * source/encoder/analysis.cpp, source/encoder/analysis.h,
1737 source/encoder/frameencoder.cpp, source/encoder/search.cpp,
1738 source/encoder/search.h:
1739 search: nits - pull Mode out of Search class, remove unused
1743 * source/encoder/analysis.cpp:
1744 analysis: do not allow top-skip and depth earlyout in --pmode with
1747 Now outputs match or are better than those without --pmode
1748 [476acb7a4088] <stable>
1750 2014-10-29 Min Chen <chenm003@163.com>
1752 * source/common/x86/asm-primitives.cpp:
1753 asm: correct wrong index name
1754 [3995c5e0f313] <stable>
1756 2014-10-29 Steve Borho <steve@borho.org>
1758 * source/encoder/analysis.cpp:
1759 analysis: clarify --rd 1
1762 * source/encoder/analysis.cpp:
1763 analysis: add #if to make pmode exactly match non-pmode
1765 This switch will throw away the hard work of some worker thread, so
1766 it should only be used for debugging.
1768 With the flag enabled, pmode matches non-pmode output exactly for RD
1769 levels 2, 3 and 4. But RD 5 and 6 still have problems.
1772 * doc/reST/cli.rst, doc/reST/presets.rst:
1776 * doc/reST/cli.rst, doc/reST/lossless.rst, doc/reST/presets.rst:
1777 docs: update preset table and various command line options
1778 [812ce345a14d] <stable>
1780 * source/encoder/analysis.cpp, source/encoder/search.cpp:
1784 2014-10-30 Satoshi Nakagawa <nakagawa424@oki.com>
1786 * source/common/predict.cpp, source/common/predict.h,
1787 source/encoder/analysis.cpp, source/encoder/search.cpp:
1789 [41220fab15c1] <stable>
1791 2014-10-29 Ashok Kumar Mishra <ashok@multicorewareinc.com>
1793 * source/encoder/search.cpp:
1797 2014-10-29 Steve Borho <steve@borho.org>
1799 * doc/reST/cli.rst, source/CMakeLists.txt, source/common/param.cpp,
1800 source/encoder/encoder.cpp, source/x265.cpp, source/x265.h:
1801 api: expose deblocking filter offsets as public params, deprecate
1804 It was always a bit unfortunate to base the deblock param name on
1805 loop filter when HEVC has two (deblock and SAO).
1807 Now we support --deblock=<int>:<int> and similar options as x264
1812 api: improve comment for bEnableCbfFastMode
1815 * source/encoder/analysis.cpp, source/encoder/analysis.h,
1816 source/encoder/search.cpp, source/encoder/search.h:
1817 search: relocate intra in inter functions to search.cpp
1820 * source/encoder/analysis.cpp, source/encoder/search.cpp:
1824 * source/encoder/analysis.cpp:
1825 analysis: fix for --rd 0, do not assume a CU is only inter or intra
1826 [3aec7242d0be] <stable>
1828 * source/encoder/analysis.cpp, source/encoder/search.cpp,
1829 source/encoder/search.h:
1830 search: split generateCoeffRecon() into its two callers, improve
1833 The function consisted of a big if (inter) else (intra) expression
1834 and it had only two callers, one which knew it was inter and one
1835 which knew it was intra.
1838 2014-10-29 gopi jayaraman <gopi@multicorewareinc.com>
1840 * source/encoder/analysis.cpp:
1841 analysis: rect cost compare typo fix for pmode
1842 [da5ba239bf59] <stable>
1844 2014-10-28 Steve Borho <steve@borho.org>
1846 * source/encoder/search.cpp:
1847 search: ensure RDOQ entropy state is always initialized for chroma
1850 Fixes non-determinism seen in --preset slow and lower
1851 [afb216f71318] <stable>
1853 * doc/uncrustify/apply-to-all-source.py, doc/uncrustify/drag-
1854 uncrustify.bat, source/Lib/COPYING.HM, source/Lib/README.txt,
1855 source/Lib/TLibCommon/CommonDef.h,
1856 source/Lib/TLibCommon/ContextTables.h,
1857 source/Lib/TLibCommon/TComDataCU.cpp,
1858 source/Lib/TLibCommon/TComDataCU.h,
1859 source/Lib/TLibCommon/TComMotionInfo.cpp,
1860 source/Lib/TLibCommon/TComMotionInfo.h,
1861 source/Lib/TLibCommon/TComPattern.cpp,
1862 source/Lib/TLibCommon/TComPattern.h,
1863 source/Lib/TLibCommon/TComPicSym.cpp,
1864 source/Lib/TLibCommon/TComPicSym.h,
1865 source/Lib/TLibCommon/TComPicYuv.cpp,
1866 source/Lib/TLibCommon/TComPicYuv.h,
1867 source/Lib/TLibCommon/TComPicYuvMD5.cpp,
1868 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
1869 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
1870 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
1871 source/Lib/TLibCommon/TComWeightPrediction.cpp,
1872 source/Lib/TLibCommon/TComWeightPrediction.h,
1873 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
1874 source/Lib/TLibCommon/TypeDef.h,
1875 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
1876 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
1877 source/Lib/TLibEncoder/TEncSearch.cpp,
1878 source/Lib/TLibEncoder/TEncSearch.h, source/common/vec/blockcopy-
1879 sse3.cpp, source/encoder/cturow.cpp, source/encoder/cturow.h,
1880 source/encoder/predict.cpp, source/encoder/predict.h:
1881 Merge with default (prep for 1.4 release)
1882 [24b4177ea1ec] <stable>
1884 * source/encoder/search.cpp:
1885 search: trModeC -> tuDepthC
1888 * source/encoder/entropy.cpp:
1889 entropy: simplify loadIntraDirModeLuma
1892 * source/encoder/analysis.cpp, source/encoder/search.cpp,
1893 source/encoder/search.h:
1894 search: make getIntraRemModeBits() const
1897 * source/encoder/analysis.cpp, source/encoder/entropy.cpp,
1898 source/encoder/entropy.h, source/encoder/search.cpp:
1899 search: add a fast method for estimating non-MPM intra mode signal
1903 * source/encoder/analysis.cpp, source/encoder/search.cpp:
1904 search: move getIntraDirLumaPredictor() into getIntraRemModeBits()
1907 * source/encoder/analysis.cpp, source/encoder/search.cpp,
1908 source/encoder/search.h:
1909 search: use fast-path to get mpm mode signal cost
1911 inline single caller of getIntraModeBits
1914 * source/encoder/entropy.cpp, source/encoder/entropy.h:
1915 entropy: make a fast const method for getting MPM mode signal cost
1918 * source/encoder/search.cpp:
1919 search: simplify checks for 2x2 chroma blocks
1921 "log2TrSize == 2 && m_csp != X265_CSP_I444" essentially means that
1922 the chroma transform would be 2x2, aka log2TrSizeC == 1.
1924 In offsetSubTUCBFs(), the chroma tu size is not calculated but
1925 implied. We should be able to skip the X265_CSP_I444 check since the
1926 function should only be called by 4:2:2 encodes that code two half-
1927 sized chroma blocks per luma block
1930 * source/encoder/search.cpp:
1931 search: remove redundant work from residualTransformQuantInter()
1934 * source/common/cudata.cpp, source/common/cudata.h,
1935 source/encoder/analysis.cpp, source/encoder/entropy.cpp,
1936 source/encoder/search.cpp:
1937 cudata: split getQuadtreeTULog2MinSizeInCU() into intra/inter
1940 The caller usually knows what the CU prediction mode is
1943 * source/encoder/search.cpp:
1944 search: remove redundant logic
1947 * doc/uncrustify/apply-to-all-source.py, doc/uncrustify/drag-
1949 doc: remove uncrustify helper scripts
1951 I don't expect a lot of whole-new file development or wholesale
1952 style enforcement. Leave the config script in place for new
1956 2014-10-28 Ashok Kumar Mishra <ashok@multicorewareinc.com>
1958 * source/encoder/search.cpp:
1959 [OUTPUT CHANGED for 422] made loops for chroma components in
1960 xEstimateResidualQT()
1962 The output change for 422 is valid. Initially the no. of bits(cbf
1963 and coeff.) were calculated per block and per chroma component. Now
1964 the no. of bits are calculated per chroma component.
1967 2014-10-27 Steve Borho <steve@borho.org>
1969 * source/encoder/search.h:
1970 search: sync up argument names between source and header
1973 * source/encoder/search.cpp, source/encoder/search.h:
1974 search: remove x prefixes from inter residual coding functions
1977 * source/encoder/search.cpp, source/encoder/search.h:
1978 search: use Cost instances to accumulate costs in
1982 * source/encoder/search.cpp:
1986 * source/common/cudata.cpp, source/common/cudata.h:
1987 cudata: coding style nits
1989 * reorder arguments so outputs are listed first
1990 * pass const by reference
1991 * return single integer output rather than pass by reference
1992 * A == 0 ? B : C => A ? C : B;
1993 * standardized variable names (puIdx, absPartIdx, etc)
1996 * source/common/cudata.cpp, source/common/cudata.h:
1997 cudata: perform MV scaling directly within POC distance function
1999 this avoids some code duplication and is also a bit more efficient
2002 * source/encoder/encoder.cpp, source/encoder/slicetype.cpp,
2003 source/encoder/slicetype.h:
2004 slicetype: remove top-level Encoder pointer from Slicetype
2006 Move the slice type assignment earlier to happen even before the
2007 picture is given to the lookahead
2010 * source/encoder/encoder.cpp:
2011 encoder: nit cleanup of code copying data from input picture
2014 * source/common/cudata.cpp, source/common/deblock.cpp,
2015 source/common/frame.h, source/common/predict.cpp,
2016 source/common/predict.h, source/common/quant.cpp,
2017 source/encoder/analysis.cpp, source/encoder/dpb.cpp,
2018 source/encoder/encoder.cpp, source/encoder/entropy.cpp,
2019 source/encoder/entropy.h, source/encoder/frameencoder.cpp,
2020 source/encoder/framefilter.cpp, source/encoder/ratecontrol.cpp,
2021 source/encoder/sao.cpp, source/encoder/slicetype.cpp,
2022 source/encoder/slicetype.h:
2023 fix some header include loops
2026 * source/common/frame.cpp, source/common/frame.h,
2027 source/encoder/encoder.cpp:
2028 frame: initialize and re-initialize m_bChromaExtended
2030 fixes some non-determinism
2033 2014-10-27 Nicolas Morey-Chaisemartin <nmorey@kalray.eu>
2035 * source/common/param.cpp, source/encoder/encoder.cpp,
2036 source/encoder/search.cpp:
2037 Set tuQTMaxLog2Size to MIN(5, maxLog2CUSize)
2039 This allows 32x32 TUs even when --ctu 32 is used, for instance
2042 * doc/reST/cli.rst, source/common/param.cpp, source/x265.cpp:
2043 Add CLI option to enable/disable Temporal MVP
2046 * source/CMakeLists.txt, source/common/cudata.cpp,
2047 source/common/param.cpp, source/common/slice.h,
2048 source/encoder/encoder.cpp, source/encoder/entropy.cpp,
2050 Add flag to enable/disable temporal MVP
2053 2014-10-27 Min Chen <chenm003@163.com>
2055 * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm,
2056 source/common/x86/ipfilter8.asm, source/common/x86/ipfilter8.h:
2057 asm: AVX2 version of luma_pp[4x4], improve 320c -> 188c
2060 2014-10-27 Steve Borho <steve@borho.org>
2062 * source/encoder/analysis.cpp:
2063 analysis: simplify logic slightly, combine conditionals
2066 * source/encoder/analysis.cpp:
2067 analysis: fix a typo in --rd 5 --rect
2070 * source/encoder/analysis.cpp:
2071 analysis: allow AMP to work at 64x64 with --pmode and --rd 5
2074 * source/encoder/search.cpp:
2075 search: leave a helpful comment to avoid unfortunate reordering
2078 * source/common/predict.cpp, source/common/predict.h,
2079 source/encoder/search.cpp:
2080 predict: cache color space dimension shifts, use in search.cpp
2083 * source/encoder/analysis.cpp:
2084 analysis: in RD 5/6 ignore redundant merge candidates
2087 * source/encoder/analysis.cpp:
2088 analysis: use same MV range check in merge functions
2091 * source/encoder/analysis.cpp, source/encoder/search.cpp:
2092 analysis: defer broadcast sets of merge mv field data until final
2095 The MC / encode functions do not need for the ME sub-parts to be
2096 set. This is only needed by later neighbor parts
2099 * source/encoder/search.cpp:
2100 search: use member variable from Predict for csp
2102 There's no need to derefernece the CU for the color space
2105 * source/encoder/entropy.cpp:
2109 * source/encoder/search.cpp, source/encoder/search.h:
2110 search: simplify handling of TU size edge case in
2111 extractIntraResultChromaQT
2114 * source/encoder/search.cpp, source/encoder/search.h:
2115 search: fixes for chroma tskip coding with placebo preset
2117 Move the tskip decision after the special logic that deals with 4x4
2118 luma, etc A couple of places where tskip == 0 was implied needed to
2119 actually set the flag
2122 * source/encoder/search.cpp:
2123 search: trMode -> tuDepth, improve clarity
2126 * source/common/cudata.h:
2127 cudata: remove unused setDepthSubParts
2130 * source/common/cudata.h, source/encoder/search.cpp:
2131 cudata: setTrIdxSubParts() -> setTUDepthSubParts()
2134 * source/common/cudata.cpp, source/common/cudata.h,
2135 source/common/deblock.cpp, source/common/quant.cpp,
2136 source/encoder/analysis.cpp, source/encoder/entropy.cpp,
2137 source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp,
2138 source/encoder/search.cpp:
2139 cudata: renames (m_depth, m_trIdx) -> (m_cuDepth, m_tuDepth)
2145 docs: update --tu-intra-depth / --tu-inter-depth docs (refs #71)
2148 * source/encoder/entropy.cpp:
2149 entropy: improve check strings and comments
2152 * source/encoder/search.cpp:
2153 search: further --rd-penalty 2 fixes (refs #71)
2156 * source/encoder/analysis.cpp:
2157 analysis: invalidate slave entropy contexts, to help find bugs
2159 this function has no effect in non-checked builds
2162 * source/encoder/analysis.cpp:
2163 analysis: checkIntraInInter_rd0_4() needs the entropy context to be
2167 2014-10-25 Steve Borho <steve@borho.org>
2169 * source/encoder/analysis.cpp:
2170 analysis: further work on --pmode for --rd 5/6
2172 Still needs debugging. The results with --pmode enabled have worse
2173 compression than without, when used with --rd 5. That should be un-
2177 2014-10-24 gopi jayaraman <gopi@multicorewareinc.com>
2179 * source/encoder/analysis.cpp:
2180 analysis: adding support for --rd 5/6 in compressInterCU_dist() and
2181 parallelModeAnalysis()
2184 2014-10-26 Steve Borho <steve@borho.org>
2186 * source/encoder/entropy.cpp:
2187 entropy: readability nits
2190 * source/common/common.h:
2191 common: add support for debug breaks in Xcode
2194 * source/common/param.cpp:
2195 param: fix w-s spacing in log messages for --rdpenalty and chroma
2198 and some nit fixes with braces while I was in the area
2201 2014-10-27 Deepthi Nandakumar <deepthi@multicorewareinc.com>
2203 * source/encoder/analysis.cpp:
2204 analysis: motionCompensation(chroma) needs to be performed for
2205 asymmetric merge also
2207 This fixes a bug introduced in commit (372a8230110a) for rd2
2211 * source/encoder/motion.cpp:
2212 motion: this emms is required
2215 * source/encoder/analysis.cpp:
2219 2014-10-27 Satoshi Nakagawa <nakagawa424@oki.com>
2221 * source/common/cudata.h, source/encoder/frameencoder.cpp:
2222 cugeom: fix uninitialized reported by valgrind
2225 2014-10-25 Steve Borho <steve@borho.org>
2227 * source/common/cudata.cpp:
2228 cudata: validate subCU size against current analysis depth
2231 * source/common/cudata.cpp, source/common/cudata.h:
2232 cudata: make sure per-part buffers are allocate for g_maxCUSize
2234 There are memsets which rely on the data being consecutive, and for
2235 this to work they have to be the correct length. This fixes some
2236 X265_CHECK failures and possibly some odd behavior with --ctu 32 or
2240 * source/encoder/search.cpp:
2241 search: improve comments in mergeEstimation()
2244 * source/encoder/search.cpp:
2245 search: turn some redundant clears of tskip flags into runtime
2249 * source/encoder/search.cpp:
2250 search: cleanup residualQTIntraChroma
2252 There was a bug where it was reading tskip before setting it to
2253 zero, but fortunately we never allow analysis to set tskip anyway.
2257 docs: update --tskip and --cu-lossless docs
2260 * source/encoder/encoder.cpp:
2261 encoder: issue warning and disable --pmode if rdlevel < 2
2264 * source/encoder/analysis.cpp, source/encoder/search.cpp,
2265 source/encoder/search.h:
2266 search: remove resiYuv from Mode, keep tmpResiYuv in m_rqt[]
2268 The residual buffer is always very short lived; there is no reason
2269 to keep a copy of it per mode.
2272 * source/encoder/search.h:
2273 search: updateCandList() can be a static method
2276 * source/encoder/search.cpp, source/encoder/search.h:
2277 search: inline updateModeCost
2280 * source/encoder/encoder.cpp:
2281 encoder: issue warnings and explicitly disable tskip or culossless
2284 the analysis code is quite incapable of making these RDO decisions
2285 at these RD levels. It's best that these tools never appear to be
2286 enabled at these RD RD levels, and to explain why
2289 * source/encoder/search.cpp:
2290 search: prevent warnings about unused bCheckSplit value
2293 * source/common/pixel.cpp, source/common/primitives.h,
2294 source/common/x86/asm-primitives.cpp, source/test/pixelharness.cpp,
2295 source/test/pixelharness.h:
2296 primitives: remove unused calcrecon primitive (assembly needs
2300 * source/encoder/analysis.cpp, source/encoder/frameencoder.cpp,
2301 source/encoder/motion.cpp, source/encoder/search.cpp,
2302 source/encoder/slicetype.cpp, source/encoder/weightPrediction.cpp:
2303 trim x265_emms(), try to only use prior to floating point operations
2306 * source/encoder/search.cpp:
2307 search: avoid a context save at the last recursion depth
2310 * source/encoder/search.cpp:
2311 search: improve comments and readability of
2312 residualTransformQuantIntra
2315 * source/encoder/search.cpp, source/encoder/search.h:
2316 search: keep recon QT in pixels, instead of shorts
2318 This changes outputs, apparently because SSE is now comparing fenc
2319 against the clipped recon instead of the un-clipped recon. This was
2320 punishing residuals which were close to the pixel dynamic range
2321 limits. The user never sees un- clipped pixels, and external
2322 distortion metrics always use clipped recon, so it makes sense to do
2323 the same here (never mind the obvious perf benefits)
2326 * source/encoder/search.cpp, source/encoder/search.h:
2327 search: remove tskip analysis out of luma chroma normal path
2330 * source/encoder/search.cpp:
2331 search: nit. splitted is not a word
2334 * source/encoder/analysis.cpp, source/encoder/search.cpp,
2335 source/encoder/search.h:
2336 search: rename methods that read coeff and recon from RQT struct at
2339 also reorder arguments and pass reconYuv as a reference
2342 * source/encoder/search.cpp:
2343 search: give offsetSubTUCBFs a basic comment
2346 2014-10-24 Steve Borho <steve@borho.org>
2348 * source/encoder/search.cpp, source/encoder/search.h:
2349 search: simplify RDO chroma intra coding, changes tskip outputs
2351 Since the TU layers above tskip's 4x4 are not encoding their
2352 residual (they only need distortion, not RD cost) there is no reason
2353 to try to preserve the entropy coder state. This gives slightly
2354 better compression than before, when tskip is enabled, and I believe
2355 it makes the code a lot more maintainable.
2358 2014-10-25 Steve Borho <steve@borho.org>
2360 * source/encoder/search.cpp:
2361 search: simplify initTrDepth
2364 * source/encoder/search.cpp:
2365 search: reconYuv as ref
2368 * source/encoder/search.cpp:
2369 search: improve a variable name
2372 * source/encoder/search.cpp, source/encoder/search.h:
2373 search: rename a couple chroma intra helper methods
2376 2014-10-24 Steve Borho <steve@borho.org>
2378 * source/encoder/search.cpp, source/encoder/search.h:
2379 search: rename tmpCoeff to coeffRQT, tmpShortYuv to reconQtYuv /
2382 Explain why these buffers are allocated to max CU size at every
2383 layer, fix a few nits
2386 * source/encoder/search.cpp:
2387 search: fix 4:2:2 chroma tskip bit-cost estimation
2390 * source/common/yuv.cpp, source/common/yuv.h:
2391 yuv: add copyPartToPart* methods for recon RQT finalization
2393 We're switching reconQt to be kept in pixels rather than shorts
2396 * source/common/shortyuv.cpp, source/common/shortyuv.h:
2397 shortyuv: use absPartIdx for CU/TU part offset like everywhere else
2400 2014-10-24 Praveen Tiwari <Praveen Tiwari>
2402 * source/common/x86/pixel-util8.asm:
2403 weight_sp: pshufd to handle width 6 for SSE version of asm code
2405 Backout of 2cb8cdaa7df5
2408 2014-10-24 Ashok Kumar Mishra <ashok@multicorewareinc.com>
2410 * source/encoder/entropy.cpp, source/encoder/entropy.h,
2411 source/encoder/search.cpp:
2412 search: refactored xEstimateResidualQT() to remove cbf flag settings
2415 * source/encoder/search.cpp:
2416 search: remove redundant cbf flags setting in xEstimateResidualQT()
2419 2014-10-24 Praveen Tiwari <Praveen Tiwari>
2421 * source/common/quant.cpp:
2425 2014-10-24 Ashok Kumar Mishra <ashok@multicorewareinc.com>
2427 * source/encoder/search.cpp:
2428 search: remove unnecessary set of cbf flags in xEstimateResidualQT()
2431 2014-10-23 Steve Borho <steve@borho.org>
2433 * source/CMakeLists.txt:
2434 cmake: add -Wno-array-bounds if the compiler supports it
2436 These warnings have proven to always be spurious
2439 2014-10-23 Ashok Kumar Mishra <ashok@multicorewareinc.com>
2441 * source/encoder/search.cpp:
2442 [OUTPUT CHANGED for 444] : considering cbf bits for best cost
2443 estimation for 444 format
2446 2014-10-23 Steve Borho <steve@borho.org>
2448 * source/encoder/analysis.cpp:
2449 analysis: cleanup checkInter functions
2452 * source/encoder/analysis.cpp:
2453 analysis: remove unnecessary set of skip flags in checkInter_rd5_6()
2455 initSubCU() does this already, and the pred's cu is not being reused
2458 * source/common/quant.cpp, source/common/quant.h,
2459 source/encoder/analysis.cpp, source/encoder/encoder.cpp,
2460 source/encoder/search.cpp, source/encoder/search.h:
2461 search: large mostly mechanical change to pass cu by reference
2464 * source/common/cudata.h:
2465 cudata: remove unused method
2468 * source/common/predict.cpp, source/common/predict.h,
2469 source/encoder/analysis.cpp, source/encoder/search.cpp:
2470 predict: enforce calling conventions, fix wrong side-effects
2472 use references and consts where possible, order arguments to follow
2473 the convention of memcpy (dest, src)
2475 This exposed a bug in addWeightBi() and addWeightUni(), they were
2476 modifying the PU size variables directly instead of making chroma
2477 versions. This explains why it seemed to best necessary at times to
2478 make seemingly redundant calls to prepMotionCompensation.
2480 as a side-effect, this commit also removes the 1k 'avg' buffer that
2481 bidir allocated on the stack and instead uses the existing
2485 * source/common/predict.cpp, source/common/predict.h,
2486 source/encoder/analysis.cpp, source/encoder/search.cpp:
2487 predict: rename members for clarity, save work in
2488 singleMotionEstimation()
2490 The first thing singleMotionEstimation() did was call
2491 getPartIndexAndSize() to get the PU part index and dimensions. Then
2492 it called prepMotionCompensation() which did the exact same thing,
2493 storing its outputs into member variables. (after predInterSearch()
2494 had already done it twice as well)
2496 Now singleMotionEstimation() and predInterSearch() both directly use
2497 the variables initialized by prepMotionCompensation(). Now when the
2498 master thread calls its own singleMotionEstimation(), there is much
2502 * source/encoder/search.cpp:
2503 search: fix a change of outputs from f3bd6e5a880a, always zero
2506 it's not clear why this affects outputs, but it seems better to err
2507 on the side of the data being initialized.
2510 * source/encoder/analysis.cpp, source/encoder/search.cpp,
2511 source/encoder/search.h:
2512 search: re-combine --pme with --no-pme code paths
2515 * source/common/cudata.cpp, source/common/cudata.h:
2516 cudata: cache numPartInCUSize as a class static
2518 The obliviates a lot of pointer dereferences in some key functions
2521 * source/encoder/entropy.cpp:
2522 entropy: drop last use of g_winUnitX, g_winUnitY
2525 * source/common/cudata.cpp, source/common/deblock.cpp,
2526 source/common/framedata.cpp, source/common/framedata.h,
2527 source/common/predict.cpp, source/common/slice.h,
2528 source/encoder/encoder.cpp:
2529 slice: move numPartitions and numPartInCUSize from FrameData to SPS
2531 these fields never change, so it made no sense to have copies in
2532 every FrameData they are based on CTU size, so SPS made sense
2535 * source/common/cudata.h:
2536 cudata: remove default arguments for getPUAboveRightAdi(),
2540 * source/common/cudata.cpp, source/common/cudata.h,
2541 source/common/framedata.cpp, source/encoder/analysis.cpp:
2542 cudata: simplify allocation / initialization interfaces
2544 the callers shouldn't need to know details about partitions or coeff
2548 * source/encoder/search.cpp:
2549 search: use intptr_t for picture stride variables
2552 * source/common/cudata.cpp, source/common/cudata.h,
2553 source/encoder/analysis.cpp, source/encoder/frameencoder.cpp:
2554 cudata: push more data type casts out to callers
2557 * source/common/cudata.cpp, source/common/cudata.h,
2558 source/encoder/analysis.cpp:
2559 cudata: use static array of absolute depth broadcast set functions
2561 this commit changed the value arguments to these set functions to
2562 match the data type of their array, forcing one cast in analysis.cpp
2566 2014-10-22 Steve Borho <steve@borho.org>
2568 * source/encoder/analysis.cpp:
2569 analysis: encodeResidue rewrite, much improved --rd 0
2571 it's not clear --rd 0 is always correct, but I can encode long clips
2572 without hash mistakes and at reasonable bitrates (compared to
2573 previous --rd 0). I suspect there is still problems with passing in
2574 residual to residualTransformQuantInter() and getting it back in the
2575 same ShortYuv instance
2578 * source/common/frame.cpp, source/common/frame.h,
2579 source/common/framedata.h, source/common/quant.cpp,
2580 source/common/quant.h, source/encoder/analysis.cpp,
2581 source/encoder/analysis.h, source/encoder/encoder.cpp,
2582 source/encoder/frameencoder.cpp, source/encoder/search.cpp:
2583 nr: move noise reduction arrays to Quant, simplify its upkeep
2585 This cleans up a number of layering violations and makes the array
2586 management more robust
2589 * source/CMakeLists.txt, source/Lib/COPYING.HM, source/Lib/README.txt,
2590 source/Lib/TLibCommon/ContextTables.h, source/common/CMakeLists.txt,
2591 source/common/contexts.h, source/common/quant.cpp,
2592 source/common/quant.h, source/encoder/entropy.cpp,
2593 source/encoder/entropy.h:
2594 cleanup enough of the context tables to bring them into common/
2596 This was the last file under Lib/ so the whole folder is now
2600 * source/Lib/TLibCommon/CommonDef.h,
2601 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
2602 source/Lib/TLibCommon/TypeDef.h, source/common/CMakeLists.txt,
2603 source/common/common.cpp, source/common/common.h,
2604 source/common/constants.cpp, source/common/constants.h,
2605 source/common/cudata.cpp, source/common/cudata.h,
2606 source/common/dct.cpp, source/common/deblock.h,
2607 source/common/intrapred.cpp, source/common/ipfilter.cpp,
2608 source/common/loopfilter.cpp, source/common/param.cpp,
2609 source/common/picyuv.h, source/common/pixel.cpp,
2610 source/common/primitives.cpp, source/common/quant.h,
2611 source/common/scalinglist.cpp, source/common/shortyuv.h,
2612 source/common/slice.h, source/common/vec/dct-sse3.cpp,
2613 source/common/vec/dct-sse41.cpp, source/common/vec/dct-ssse3.cpp,
2614 source/common/x86/asm-primitives.cpp, source/common/yuv.h,
2615 source/encoder/bitcost.cpp, source/encoder/encoder.cpp,
2616 source/encoder/entropy.cpp, source/encoder/motion.cpp,
2617 source/encoder/search.cpp, source/encoder/slicetype.cpp,
2618 source/test/ipfilterharness.cpp, source/test/mbdstharness.cpp:
2619 pull TComRom into common/constants. bring CommonDef and TypeDefs
2622 A number of enums were pulled into cudata.h, one went to slice.h.
2623 All the defines went into common.h
2626 * source/common/cudata.cpp:
2627 cudata: nits, use m_encData directly
2630 * source/encoder/search.h:
2631 search: use proper allocation size for m_rqt, fix --preset placebo
2633 The entropy contexts need to be addressed from 0..4 (full depth)
2634 even if the buffers are only allocated to CU depth 0..3
2637 * source/encoder/analysis.cpp:
2638 analysis: fix --rd 1,2 behavior (broken by 84933c3136ec)
2640 Also includes some fixes for --rd 0
2643 * source/common/cudata.cpp:
2644 cudata: avoid 'char subscript' warnings from GCC
2647 * source/common/framedata.cpp, source/common/framedata.h,
2648 source/encoder/encoder.cpp:
2649 framedata: param is now unused
2652 * source/common/frame.cpp, source/common/framedata.cpp,
2653 source/common/framedata.h, source/common/slice.h,
2654 source/encoder/encoder.cpp, source/encoder/framefilter.cpp,
2655 source/encoder/ratecontrol.cpp:
2656 slice: move numCUsInFrame from FrameData to SPS
2659 * source/encoder/framefilter.cpp, source/encoder/framefilter.h:
2660 framefilter: optimize row-height operations
2663 * source/common/cudata.cpp, source/common/frame.cpp,
2664 source/common/frame.h, source/common/picyuv.cpp,
2665 source/common/picyuv.h, source/common/slice.cpp,
2666 source/common/slice.h, source/encoder/dpb.cpp,
2667 source/encoder/encoder.cpp, source/encoder/entropy.cpp,
2668 source/encoder/entropy.h, source/encoder/frameencoder.cpp,
2669 source/encoder/framefilter.cpp, source/encoder/framefilter.h,
2670 source/encoder/ratecontrol.cpp, source/encoder/reference.cpp,
2671 source/encoder/sao.cpp, source/encoder/search.cpp,
2672 source/encoder/slicetype.cpp, source/encoder/weightPrediction.cpp:
2673 slice: move numCuInWidth, numCuInHeight to SPS, remove Frame pointer
2675 Since the SPS defines the picture size and CTU size, it makes sense
2676 to keep these values there. It's a bit annoying removing m_frame
2677 from Slice, but all of its users didn't really want the frame
2678 itself, except in a couple instances (most already had the frame
2682 * source/common/cudata.cpp, source/common/cudata.h,
2683 source/common/deblock.cpp, source/common/predict.cpp,
2684 source/encoder/framefilter.cpp:
2685 cudata: keep a FrameData pointer instead of a Frame pointer
2687 90% of the dereferences of m_frame were to access
2688 m_frame->m_encData. For good reason, all of the encode data needed
2689 by the CU is in m_encData. A few places need to get to the orig pic.
2692 * source/common/cudata.cpp, source/common/cudata.h,
2693 source/encoder/frameencoder.cpp:
2694 cudata: pass picWidth and picHeight to calcCTUGeoms()
2696 this was the only method which used m_frame for anything other than
2700 * source/common/cudata.cpp, source/common/cudata.h,
2701 source/encoder/analysis.cpp:
2702 cudata: simplify setQPSubCUs()
2705 * source/common/cudata.cpp, source/common/cudata.h,
2706 source/encoder/analysis.cpp, source/encoder/search.cpp:
2707 cudata: consistent names for consistent functionality
2710 * source/common/cudata.cpp, source/common/cudata.h,
2711 source/encoder/analysis.cpp, source/encoder/search.cpp:
2712 cudata: no need to pass part size to setAll*, it can look it up
2715 It only needed the part size in the past when these were
2716 TComCUMvField methods and they had no access to the part size array
2719 * source/encoder/search.cpp:
2720 search: use helper function to set transform depth
2723 * source/common/cudata.cpp, source/common/cudata.h,
2724 source/encoder/search.cpp:
2725 cudata: simplify clearCbf()
2728 * source/common/cudata.cpp, source/common/cudata.h:
2729 cudata: hoist a number of trivial functions to cudata.h for inlining
2732 * source/common/common.h, source/common/cudata.h,
2733 source/common/frame.h:
2734 cudata: clean up a couple defines
2737 * source/encoder/search.cpp:
2738 search: remove unnecessary parens
2741 * source/common/cudata.cpp, source/common/cudata.h,
2742 source/encoder/analysis.cpp, source/encoder/search.cpp:
2743 cudata: remove depth argument to setInterDirSubParts()
2745 Inter dir is coded at the PU level, so it is always at the current
2749 * source/Lib/TLibCommon/TComMotionInfo.cpp,
2750 source/Lib/TLibCommon/TComMotionInfo.h,
2751 source/common/CMakeLists.txt, source/common/cudata.cpp,
2752 source/common/cudata.h, source/common/deblock.cpp,
2753 source/common/framedata.cpp, source/common/framedata.h,
2754 source/common/predict.cpp, source/common/predict.h,
2755 source/encoder/analysis.cpp, source/encoder/analysis.h,
2756 source/encoder/entropy.cpp, source/encoder/search.cpp,
2757 source/encoder/search.h:
2758 cudata: merge motion field data directly into the CUData
2760 TComCUMvField didn't add anything except overhead
2763 * source/Lib/TLibCommon/TComMotionInfo.h, source/common/cudata.cpp,
2764 source/common/cudata.h, source/encoder/analysis.cpp,
2765 source/encoder/search.h:
2766 mvfield: move TComMvField into cudata as MVField
2768 The structure is only used for collecting merge candidates now, and
2769 does not need any constructor
2772 * source/Lib/TLibCommon/TComMotionInfo.cpp,
2773 source/Lib/TLibCommon/TComMotionInfo.h:
2774 mvfield: combine mv buffers into a single allocation
2777 * source/Lib/TLibCommon/TComMotionInfo.cpp,
2778 source/Lib/TLibCommon/TComMotionInfo.h, source/encoder/analysis.cpp,
2779 source/encoder/search.cpp:
2780 mvfield: remove unnecessary depth arguments to set functions
2782 mv and refidx are CU level data, not TU level, so there is never any
2783 need to set the values for a depth other than 0. Remove support for
2784 NxN parts from the switch statement, made the template function
2788 * source/encoder/search.cpp:
2792 * source/Lib/TLibCommon/TComMotionInfo.cpp,
2793 source/Lib/TLibCommon/TComMotionInfo.h, source/encoder/analysis.cpp,
2794 source/encoder/search.cpp:
2795 mvfield: remove setAllMvField wrapper
2797 When you see how the code unwound, certain optimizations may become
2801 * source/Lib/TLibCommon/TComMotionInfo.h, source/common/cudata.cpp:
2802 mvfield: remove setMvField() method
2805 * source/Lib/TLibCommon/TComMotionInfo.cpp,
2806 source/Lib/TLibCommon/TComMotionInfo.h, source/common/cudata.cpp,
2807 source/common/cudata.h, source/common/framedata.cpp,
2808 source/encoder/analysis.cpp:
2809 mvfield: pass objects by reference, const when possible
2812 * source/Lib/TLibCommon/TComMotionInfo.cpp,
2813 source/Lib/TLibCommon/TComMotionInfo.h, source/common/cudata.cpp:
2814 cudata: replace clearMvField() with m_partSet calls
2817 * source/common/cudata.cpp:
2818 cudata: copy mvfield data from CTU in copyFromPic (more --rd 0
2822 * source/encoder/entropy.cpp:
2823 entropy: remove only reference to TComCUMvField outside of cudata.h
2826 * source/encoder/search.cpp:
2827 search: avoid unnecessary memcopies in inter prediction
2829 Calling setAllMvField() twice is wasteful. At least one, perhaps
2830 both, of them will be overwritten by the final prediction. Better to
2831 set the REF_NOT_VALID manually for uni-predition on the 'other'
2835 * source/Lib/TLibCommon/CommonDef.h,
2836 source/Lib/TLibCommon/TComMotionInfo.cpp,
2837 source/Lib/TLibCommon/TComMotionInfo.h, source/common/cudata.cpp,
2838 source/encoder/search.cpp:
2839 defs: remove last traces of REF_PIC_LIST enums, NOT_VALID ->
2843 * source/Lib/TLibCommon/TComMotionInfo.h, source/common/cudata.cpp:
2844 mvfield: remove getRefIdx and getMvd access methods
2847 * source/Lib/TLibCommon/TComMotionInfo.h, source/common/cudata.cpp,
2848 source/common/deblock.cpp, source/common/predict.cpp:
2849 mvfield: remove getMv access method
2852 * source/Lib/TLibCommon/TComMotionInfo.cpp,
2853 source/Lib/TLibCommon/TComMotionInfo.h, source/encoder/analysis.cpp:
2854 mvfield: remove default arguments, use consistent variable names,
2858 * source/Lib/TLibCommon/TComMotionInfo.cpp,
2859 source/Lib/TLibCommon/TComMotionInfo.h, source/encoder/entropy.cpp,
2860 source/encoder/search.cpp:
2861 mvfield: class to struct, remove setMvd method
2865 docs: improve documentation for tskip options
2868 * source/encoder/search.cpp:
2869 search: fix --rdpenalty 2, make logic explicit (closes #71)
2872 2014-10-21 Murugan Vairavel <murugan@multicorewareinc.com>
2874 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
2875 util.h, source/common/x86/pixel-util8.asm:
2876 asm: avx2 asm code for 8bpp and 16bpp vesion of scale1D_128to64
2880 2014-10-21 Praveen Tiwari <Praveen Tiwari>
2882 * source/common/x86/pixel-util8.asm:
2883 weight_sp: sse version of asm code optimization
2886 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
2887 util.h, source/common/x86/pixel-util8.asm:
2888 weight_pp: avx2 asm code as per new interface
2891 2014-10-21 Steve Borho <steve@borho.org>
2893 * source/encoder/analysis.cpp, source/encoder/search.cpp:
2894 fix checked build errors
2897 * source/common/picyuv.cpp, source/common/picyuv.h,
2898 source/encoder/encoder.cpp, source/encoder/encoder.h:
2899 picyuv: cache offset arrays in the top-level encoder
2901 All PicYuv generated for a given encoder would generate the same
2902 offset arrays, so they might as well all point to the same memory
2905 * source/common/cudata.cpp, source/common/cudata.h,
2906 source/encoder/analysis.cpp:
2907 cudata: add a helper function for not-present CUs
2910 * source/common/cudata.h:
2911 cudata: comment nits
2914 * source/encoder/search.cpp:
2915 search: move auto var initialization to avoid goto warning
2918 * source/common/cudata.cpp, source/common/cudata.h,
2919 source/common/deblock.cpp, source/common/quant.cpp,
2920 source/encoder/analysis.cpp, source/encoder/entropy.cpp,
2921 source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp,
2922 source/encoder/search.cpp:
2923 cudata: consistent naming rules for part data (singular, no b prefix
2927 * source/common/cudata.cpp:
2928 cudata: cleanup copy methods, fill in missing copies in
2932 * source/common/cudata.h:
2933 cudata: reorder and white-space nits
2936 * source/common/cudata.cpp, source/common/cudata.h:
2937 cudata: inline single caller of getPartPosition
2940 * source/common/cudata.h:
2941 cudata: consistent use of absPartIdx
2944 * source/common/cudata.cpp, source/common/cudata.h,
2945 source/encoder/analysis.cpp:
2946 cudata: remove unused setCUTransquantBypassSubParts
2949 * source/common/cudata.cpp, source/common/cudata.h,
2950 source/encoder/analysis.cpp, source/encoder/framefilter.cpp:
2951 cudata: m_cuTransquantBypass will not be set without lossless being
2955 * source/common/cudata.cpp:
2959 * source/common/cudata.cpp, source/common/cudata.h,
2960 source/encoder/analysis.cpp, source/encoder/search.cpp:
2961 cudata: define copy and broadcast set methods
2963 Pruned a couple of functions which were only called once and were
2964 redundant or could have been done more simply.
2967 * source/common/cudata.cpp, source/common/cudata.h,
2968 source/encoder/analysis.cpp, source/encoder/search.cpp:
2969 cudata: simplify setPartSizeSubParts and friends
2971 These fields are always broadast-set to all sub-parts of the CU
2974 * source/Lib/TLibCommon/TComDataCU.cpp,
2975 source/Lib/TLibCommon/TComDataCU.h, source/common/CMakeLists.txt,
2976 source/common/cudata.cpp, source/common/cudata.h,
2977 source/common/deblock.cpp, source/common/deblock.h,
2978 source/common/framedata.cpp, source/common/framedata.h,
2979 source/common/predict.cpp, source/common/predict.h,
2980 source/common/quant.cpp, source/common/quant.h,
2981 source/encoder/analysis.cpp, source/encoder/analysis.h,
2982 source/encoder/entropy.cpp, source/encoder/entropy.h,
2983 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
2984 source/encoder/framefilter.cpp, source/encoder/sao.cpp,
2985 source/encoder/search.cpp, source/encoder/search.h:
2986 bring TComDataCU into common/ as CUData
2989 * source/Lib/TLibCommon/TComDataCU.cpp,
2990 source/Lib/TLibCommon/TComDataCU.h, source/common/predict.cpp,
2991 source/common/predict.h, source/encoder/analysis.cpp,
2992 source/encoder/analysis.h, source/encoder/entropy.cpp,
2993 source/encoder/entropy.h, source/encoder/frameencoder.cpp,
2994 source/encoder/frameencoder.h, source/encoder/framefilter.cpp,
2995 source/encoder/search.cpp, source/encoder/search.h:
2996 rebrand CU/cuData as CUGeom/cuGeom
2999 * source/encoder/encoder.cpp:
3000 encoder: improve comment, frame encoders to not use the worker pool
3003 * source/Lib/TLibCommon/TComDataCU.cpp,
3004 source/Lib/TLibCommon/TComDataCU.h, source/encoder/encoder.cpp,
3005 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
3006 frameencoder: pre-calculate the set of unique geoms for the picture
3009 Now the geom sets only need to be calculated once, and they occupy a
3010 minimum amount of memory.
3013 * source/encoder/frameencoder.h:
3014 frameencoder: group pointer members together for better alignment
3017 * source/Lib/TLibCommon/TComDataCU.cpp:
3021 * source/Lib/TLibCommon/TComDataCU.cpp:
3022 cu: use memset in setQPSubParts()
3025 * source/Lib/TLibCommon/TComDataCU.cpp,
3026 source/Lib/TLibCommon/TComDataCU.h:
3027 cu: inline single use of setSubPart into setInterDirSubParts
3030 * source/Lib/TLibCommon/TComDataCU.h:
3031 cu: remove unused enum NDBFBlockBorderTag
3034 * source/Lib/TLibCommon/TComDataCU.cpp:
3035 cu: repair original intent of getLastCodedQP(), fix 73c6c9086577
3038 * source/Lib/TLibCommon/TComDataCU.cpp,
3039 source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp,
3040 source/encoder/analysis.h, source/encoder/entropy.cpp,
3041 source/encoder/entropy.h, source/encoder/frameencoder.cpp:
3042 cu: remove m_cuLocalData from CU, use child offsets instead of
3045 This commit also removes a redundant
3046 'tld.analysis.m_quant.setQPforQuant()' from frameencoder.cpp. This
3047 belonged in compressCTU() and was actually one of the first things
3051 * source/Lib/TLibCommon/TComDataCU.cpp,
3052 source/Lib/TLibCommon/TComDataCU.h, source/encoder/frameencoder.cpp:
3053 cu: pass m_cuLocalData to loadCTUData()
3055 This is prep-work for removing m_cuLocalData from TComDataCU and
3056 having only a few instances of the array.
3059 * source/Lib/TLibCommon/TComDataCU.cpp:
3060 cu: style nits, no behavior change
3063 * source/encoder/search.cpp, source/encoder/search.h:
3064 search: m_qtTempCoeff[ttype][qtLayer] ->
3065 m_rqt[qtLayer].tmpCoeff[ttype]
3068 * source/encoder/search.cpp, source/encoder/search.h:
3069 search: m_qtTempShortYuv[qtlayer] -> m_rqt[layer].tmpShortYuv
3071 one less malloc to fail
3074 * source/encoder/search.cpp, source/encoder/search.h:
3075 search: move inter search temp Yuv buffers into RQTData
3077 This makes their allocation (and stride) per depth, which is
3078 hopefully a little more cache friendly
3081 * source/encoder/analysis.cpp, source/encoder/search.cpp,
3082 source/encoder/search.h:
3083 search: rename m_rdContexts to m_rqt since its purpose has expanded
3086 2014-10-21 gopi jayaraman <gopi@multicorewareinc.com>
3088 * source/encoder/search.cpp:
3089 search: --pme bug fixes with slave threads tie up case
3092 2014-10-20 Steve Borho <steve@borho.org>
3094 * source/encoder/search.cpp:
3095 search: move the destroy() method to after initSearch()
3098 * source/common/frame.cpp:
3099 frame: initialize m_reconPicYuv pointer
3102 2014-10-21 Deepthi Nandakumar <deepthi@multicorewareinc.com>
3104 * source/encoder/search.cpp:
3105 search: make split choice logic cleaner
3108 * source/encoder/search.cpp:
3109 search: rename variables to mightSplit and mightNotSplit
3112 2014-10-20 Steve Borho <steve@borho.org>
3114 * source/encoder/analysis.cpp, source/encoder/search.cpp,
3115 source/encoder/search.h:
3116 search: use small struct to accumulate costs
3119 * source/encoder/search.cpp:
3120 search: remove shadow variable
3123 * source/encoder/search.cpp:
3124 search: improve comments
3127 * source/encoder/search.cpp:
3128 search: avoid redundant work in typical path
3131 * source/encoder/search.cpp, source/encoder/search.h:
3132 search: inline single caller of xGetIntraBitsLuma, avoid extra
3136 * source/encoder/search.cpp, source/encoder/search.h:
3137 search: inline single call of calcIntraLumaRecon
3139 This allows some much needed clarity and to avoid some redundant
3143 * source/encoder/analysis.cpp, source/encoder/search.cpp,
3144 source/encoder/search.h:
3145 search: rename xRecurIntraCodingQT to codeIntraLumaQT, save a bit of
3149 * source/encoder/search.cpp:
3150 search: combine xRecurIntraCodingQT() bCheckFull sections
3153 * source/encoder/search.cpp:
3154 search: add tmpBits to xRecurIntraCodingQT
3157 * source/encoder/search.cpp:
3158 search: remove remnants of tqbypass from xRecurIntraCodingQT,
3162 * source/encoder/search.cpp, source/encoder/search.h:
3163 search: create a per-depth temp buffer for temporary recon blocks
3166 * source/encoder/search.cpp:
3167 search: fix --rdpenalty=2 at --rd 0,1
3169 It needed the same fix for not skipping 32x32 if TU recursion is too
3173 * source/encoder/search.cpp:
3174 search: use member variable access to current slice and frame, not
3178 * doc/reST/cli.rst, source/encoder/search.cpp:
3179 search: clarify --rdpenalty
3182 * source/encoder/search.cpp:
3183 search: simplify checkTransformSkip logic
3185 drop !!qp condition, this doesn't appear necessary. we already check
3189 * source/encoder/encoder.cpp:
3190 encoder: make assignments to Frame::m_intraData and m_interData
3193 The check doesn't help anyone. If pic_in->analysisData.intraData was
3194 NULL, the Frame fields are entirely uninitialized.
3197 * source/encoder/search.cpp:
3198 search: remove redundant clearCbf call
3200 The logic would not get here if cu->getQtRootCbf(0) didn't return
3201 zero, which implies all three CBF flags are already zero
3204 * source/encoder/analysis.cpp, source/encoder/analysis.h,
3205 source/encoder/search.cpp, source/encoder/search.h:
3206 search: move checkIntra from Analysis to Search
3208 This function didn't belong in Analysis
3211 * source/encoder/search.cpp, source/encoder/search.h:
3212 search: rename xSetResidualQTData to saveResidualQTData and simplify
3215 * source/encoder/search.cpp, source/encoder/search.h:
3216 search: do not return CBF=0 distortion from xEstimateResidualQT()
3218 it can be calculated easily if needed
3221 * source/encoder/analysis.cpp:
3226 doc: update description of --cu-lossless
3229 * source/encoder/analysis.cpp:
3230 analysis: do not try lossless if best mode had no distortion
3233 * source/encoder/analysis.cpp:
3234 analysis: copy inter prediction when evaluating lossless
3237 2014-10-20 Aarthi Thirumalai <Aarthi Thirumalai>
3239 * source/encoder/ratecontrol.cpp:
3240 rc: fix error in vbv due to access of unreferenced refFrame data
3243 2014-10-20 Praveen Tiwari <Praveen Tiwari>
3245 * source/common/pixel.cpp, source/common/primitives.h,
3246 source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm,
3247 source/encoder/reference.cpp, source/encoder/slicetype.cpp,
3248 source/encoder/weightPrediction.cpp, source/test/pixelharness.cpp:
3249 weighted prediction pixel, interface simplification
3252 2014-10-20 Gopu Govindaswamy <gopu@multicorewareinc.com>
3254 * source/encoder/analysis.cpp:
3255 analysis: share the depth, best modes and partitions based on cuAddr
3259 2014-10-20 Steve Borho <steve@borho.org>
3261 * source/Lib/TLibCommon/TComDataCU.cpp:
3262 cu: clear transform skip flags in lossless CU copy
3265 * source/Lib/TLibCommon/TComDataCU.h:
3266 cu: re-order part data defines to match allocation order (nit)
3269 * source/Lib/TLibCommon/TComDataCU.cpp,
3270 source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp,
3271 source/encoder/analysis.h, source/encoder/search.cpp:
3272 analysis: try lossless encode of only the best mode for each CU
3274 This involved some subtle changes in behavior. TComDataCU::initCTU
3275 and initSubCU now initialize m_cuTransquantBypass to the global
3276 --lossless flag, so in the first pass of analysis it will always be
3277 all non-lossless (typical) or all lossless (when --lossless is
3280 Before this change, when "--cu-lossless and !--lossless" the encoder
3281 would try both lossless and non-losseless coding of every option
3282 evaluated for RDO. This roughly doubled the work performed by the
3283 encoder, and because the same TComDataCU instance was being used for
3284 both, it was fragile
3286 After this change, the encoder will only try lossless once per CU
3287 using the best mode found during non-lossless RDO, using a seperate
3288 TComDataCU instance.
3291 * source/encoder/analysis.cpp, source/encoder/search.cpp,
3292 source/encoder/search.h:
3293 search: --pme needs master instance to be passed to slave function
3295 The slave was read its own m_listSelBits instead of those pre-
3296 computed by the master, and then even worse it was updating its own
3297 m_bestME (holding its own output lock) instead of the master's.
3300 * source/encoder/analysis.cpp:
3304 * source/encoder/analysis.cpp:
3305 analysis: only call checkDQP once per CU, use a consistent reconPic
3309 2014-10-20 Deepthi Nandakumar <deepthi@multicorewareinc.com>
3311 * source/encoder/search.cpp:
3315 2014-10-20 Steve Borho <steve@borho.org>
3317 * source/common/framedata.cpp, source/common/framedata.h:
3318 framedata: add pointer to active param structure for that picture
3320 today, this is always the single global param. in the future it may
3324 2014-10-19 Steve Borho <steve@borho.org>
3326 * source/Lib/TLibCommon/TComDataCU.cpp,
3327 source/Lib/TLibCommon/TComDataCU.h, source/common/framedata.h,
3328 source/encoder/analysis.cpp, source/encoder/frameencoder.cpp:
3329 cu: move more statistics into FrameData
3332 * source/encoder/search.cpp:
3336 * source/encoder/analysis.cpp:
3337 analysis: fix for --rd 0, always generate chroma prediction for best
3341 2014-10-20 Deepthi Nandakumar <deepthi@multicorewareinc.com>
3343 * source/common/common.h, source/common/pixel.cpp:
3344 pixel: add signed accumulators, these were causing errors in new
3348 * source/encoder/analysis.cpp:
3349 analysis: split flag cost is added only if the depth is less than
3352 removes (some) CHECKED_BUILD errors.
3355 2014-10-19 Steve Borho <steve@borho.org>
3357 * source/encoder/analysis.cpp:
3358 analysis: add emergency intra check for --pmode
3360 if all other choices somehow fail, we should always be able to code
3364 * source/encoder/frameencoder.cpp:
3365 frameencoder: handle non-present CUs correctly when collecting stats
3368 * source/encoder/analysis.cpp:
3369 analysis: handle no-valid-merge more cleanly, simplify
3370 compressInterCU_rd0_4
3372 checkMerge2Nx2N_rd0_4() will set md.bestMode if any of them were
3373 valid, else it will be left NULL. Fixes some rare decoder asserts
3374 when no valid modes is coded
3377 2014-10-18 Steve Borho <steve@borho.org>
3379 * source/encoder/ratecontrol.cpp:
3380 rc: fix error message
3383 * source/encoder/ratecontrol.cpp:
3384 rc: use curEncData.m_numCUsInFrame
3386 Note that the CU count was wrongly calculated before as height *
3387 height, broken by me a couple days ago in 14d5345e257a
3390 * source/common/framedata.cpp, source/common/framedata.h,
3391 source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp,
3392 source/encoder/slicetype.cpp:
3393 framedata: change 'structure of arrays' to 'array of structures' for
3396 This uses fewer mallocs, fewer memsets, and generally better data
3397 locality. It doesn't hurt that the code is more readable.
3400 * source/common/frame.cpp, source/common/frame.h,
3401 source/common/framedata.cpp, source/common/framedata.h,
3402 source/encoder/encoder.cpp, source/encoder/frameencoder.cpp,
3403 source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp:
3404 frame: move rate control data to FrameData, cleanup variable names
3407 * source/common/framedata.cpp:
3408 framedata: fix license header
3411 * source/encoder/framefilter.cpp, source/encoder/sao.cpp,
3412 source/encoder/sao.h:
3413 sao: move lossless sample restoration functions to framefilter.cpp
3415 These are only called by the framefilter code, and are not directly
3416 related to SAO itself.
3419 2014-10-15 Satoshi Nakagawa <nakagawa424@oki.com>
3421 * source/common/common.h, source/encoder/frameencoder.cpp,
3422 source/encoder/sao.cpp, source/encoder/sao.h:
3423 sao: refine sao merge mode
3426 2014-10-17 Ashok Kumar Mishra <ashok@multicorewareinc.com>
3428 * source/encoder/search.cpp:
3429 search: removed redundant context store
3432 * source/encoder/entropy.cpp, source/encoder/entropy.h,
3433 source/encoder/search.cpp:
3434 search: removed redundant getAllowedChromaDir function call
3437 2014-10-18 Steve Borho <steve@borho.org>
3439 * doc/reST/cli.rst, source/common/param.cpp,
3440 source/encoder/analysis.cpp:
3441 analysis: allow --b-intra to work with RD levels < 5 (no behavior
3444 This changes no existing presets. This flag used to default to be
3445 on, but it was ignored at RD levels 0..4. Now it defaults to off,
3446 but is enabled by all the presets that use RD 5 and 6. This commit
3447 re-orders the tools log line to place similar options near each
3451 * source/encoder/CMakeLists.txt:
3452 cmake: use -Wno-uninitialized, to avoid confusing clang or older GCC
3455 2014-10-17 Steve Borho <steve@borho.org>
3457 * source/common/param.cpp:
3458 param: do not enable fast CBF at faster presets (no behavior change)
3460 This flag has never had any effect at the RD levels these presets
3461 use, so this never had any effect, except showing 'cfm' in the
3465 * source/encoder/analysis.cpp:
3466 analysis: fix --pmode crash, do not look at intra results if not
3470 * doc/reST/cli.rst, source/encoder/analysis.cpp,
3471 source/encoder/analysis.h:
3472 analysis: allow --amp to actually work with RD levels < 5
3474 This changes none of the presets or defaults, it just allows
3475 --preset medium --rect --amp to perform as the user would expect
3478 * source/encoder/analysis.cpp, source/encoder/analysis.h,
3479 source/encoder/encoder.cpp:
3480 analysis: don't pass global variables to create methods
3483 * source/encoder/analysis.cpp:
3487 * source/encoder/analysis.cpp:
3488 analysis: consistent use of subPartIdx
3491 * source/encoder/analysis.cpp:
3492 analysis: streamline parallelModeAnalysis
3495 * source/common/predict.cpp, source/common/predict.h:
3496 predict: keep ref indices, rather than mvField pointers
3499 * source/common/CMakeLists.txt:
3500 cmake: remove source group for TLibCommon/ in MSVC
3502 Allow the remaining files to be grouped with the rest of common/ for
3506 * source/test/CMakeLists.txt, source/test/testharness.h:
3507 cmake: newer GCC/MinGW define __rdtsc and do not like our
3511 * source/encoder/CMakeLists.txt:
3512 cmake: quiet -Wmaybe-uninitialized warnings in encoder/
3514 gcc >= 4.8 is catching false positives from Clip3
3515 (std::min<>(std::max<>)) when the arguments are all known at compile
3516 time. Just shut-up, please.
3519 * source/Lib/TLibCommon/TComDataCU.cpp,
3520 source/Lib/TLibCommon/TComPicSym.cpp,
3521 source/Lib/TLibCommon/TComPicSym.h, source/common/CMakeLists.txt,
3522 source/common/deblock.cpp, source/common/frame.cpp,
3523 source/common/frame.h, source/common/framedata.cpp,
3524 source/common/framedata.h, source/common/piclist.cpp,
3525 source/common/predict.cpp, source/common/slice.cpp,
3526 source/encoder/analysis.cpp, source/encoder/dpb.cpp,
3527 source/encoder/dpb.h, source/encoder/encoder.cpp,
3528 source/encoder/entropy.cpp, source/encoder/frameencoder.cpp,
3529 source/encoder/frameencoder.h, source/encoder/framefilter.cpp,
3530 source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h,
3531 source/encoder/sao.cpp, source/encoder/search.cpp,
3532 source/encoder/slicetype.cpp, source/encoder/weightPrediction.cpp:
3533 pull TComPicSym into common/ as FrameData
3535 Document the nature in how these are reused by multiple pictures.
3536 Frame::m_picSym was renamed to Frame::m_encData to make the
3537 relationship more clear.
3540 * source/Lib/TLibCommon/TComDataCU.cpp,
3541 source/Lib/TLibCommon/TComPicSym.cpp,
3542 source/Lib/TLibCommon/TComPicSym.h, source/common/deblock.cpp,
3543 source/common/lowres.h, source/common/picyuv.cpp,
3544 source/common/picyuv.h, source/common/pixel.cpp,
3545 source/common/predict.cpp, source/common/predict.h,
3546 source/common/primitives.h, source/common/slice.cpp,
3547 source/encoder/analysis.cpp, source/encoder/encoder.cpp,
3548 source/encoder/entropy.cpp, source/encoder/frameencoder.cpp,
3549 source/encoder/framefilter.cpp, source/encoder/ratecontrol.cpp,
3550 source/encoder/sao.cpp, source/encoder/slicetype.cpp,
3551 source/encoder/weightPrediction.cpp:
3552 picsym: remove trivial access methods, cleanup
3554 Remove redundant data, use intptr_t more consistently for picture
3555 strides. Yuv stride can stay as int, the strides are never more than
3556 64 bytes. Use uint32_t for block counters
3558 Rename getCU() as getPicCTU() for clarity
3561 * source/common/picyuv.cpp:
3562 picyuv: fix 16bpp warning
3565 2014-10-17 Murugan Vairavel <murugan@multicorewareinc.com>
3567 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
3569 asm: avx2 assembly code for 16bpp version of transpose(8, 16, 32 and
3573 2014-10-17 Steve Borho <steve@borho.org>
3575 * source/encoder/analysis.cpp:
3576 analysis: actually count numRefs, combine depth counters
3579 * source/encoder/analysis.cpp:
3580 analysis: further simplify top-skip math
3582 By multiplying both sides by (cuData.numPartitions >> 2) the dynamic
3583 range of the algorithm is increased by up to 8 bits. Removing the
3584 intermediate value allow the combination of the two conditional
3588 * source/encoder/analysis.cpp:
3589 analysis: fix msvc warnings
3592 * source/encoder/analysis.cpp:
3593 analysis: prevent redundant recon work for --rd 3 and 4
3596 * source/Lib/TLibCommon/TComDataCU.cpp:
3597 cu: cleanup getPartIndexAndSize()
3600 2014-10-16 Steve Borho <steve@borho.org>
3602 * source/encoder/analysis.cpp:
3603 analysis: fix for --rd 0, it does not generate recon (just
3607 * source/encoder/analysis.cpp, source/encoder/analysis.h:
3608 analysis: split --pmode into its own recursive analysis function
3610 This simplifies compressInterCU_rd0_4() and allows us to limit
3611 --pmode to sane rd levels 2, 3, and 4.
3614 * source/encoder/analysis.cpp:
3615 analysis: it should only be necessary to copy recon when not split
3618 * source/encoder/analysis.cpp:
3619 analysis: combine stat collections at the end of CU analysis
3622 * source/encoder/analysis.cpp, source/encoder/analysis.h:
3623 analysis: move recursion early-out logic to a helper function
3626 * source/encoder/analysis.cpp, source/encoder/analysis.h:
3627 analysis: move topSkip into a helper function
3629 This will allow us to break up compressInterCU_rd0_4
3632 * source/encoder/analysis.cpp:
3633 analysis: simplify addSplitFlagCost slightly
3636 * source/encoder/analysis.cpp:
3637 analysis: fix typo in addSplitFlagCost
3640 * source/Lib/TLibCommon/TComDataCU.h, source/encoder/entropy.cpp:
3641 cu: remove trivial getCtxInterDir()
3644 * source/Lib/TLibCommon/TComDataCU.cpp,
3645 source/Lib/TLibCommon/TComDataCU.h:
3646 cu: cleanup more copy and init methods
3649 * source/Lib/TLibCommon/TComDataCU.cpp,
3650 source/Lib/TLibCommon/TComDataCU.h, source/encoder/frameencoder.cpp:
3651 cu: streamline initCTU and initSubCU
3654 * source/Lib/TLibCommon/TComDataCU.cpp,
3655 source/Lib/TLibCommon/TComDataCU.h, source/encoder/frameencoder.cpp:
3656 cu: rename initCU() to initCTU()
3659 * source/Lib/TLibCommon/TComDataCU.cpp,
3660 source/Lib/TLibCommon/TComDataCU.h, source/encoder/frameencoder.cpp:
3661 cu: pass initial QP to initCU
3664 * source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp,
3665 source/encoder/entropy.cpp, source/encoder/search.cpp:
3666 cu: remove merge index wrappers, document how mvp idx is reused
3669 * source/Lib/TLibCommon/TComDataCU.cpp,
3670 source/Lib/TLibCommon/TComDataCU.h:
3671 cu: remove unused isFirstAbsZorderIdxInDepth
3674 * source/Lib/TLibCommon/TComDataCU.cpp,
3675 source/Lib/TLibCommon/TComDataCU.h, source/encoder/entropy.cpp,
3676 source/encoder/search.cpp:
3677 cu: remove m_mvpIdx access methods
3680 * source/Lib/TLibCommon/TComDataCU.cpp,
3681 source/Lib/TLibCommon/TComDataCU.h:
3682 cu: store each CU's data sequentially in memory
3684 This should be more cache friendly
3687 * source/encoder/analysis.cpp, source/encoder/search.cpp,
3688 source/encoder/search.h:
3689 search: use consistent absPartIdx for PU offset
3692 * source/Lib/TLibCommon/TComDataCU.cpp,
3693 source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp,
3694 source/encoder/entropy.cpp, source/encoder/frameencoder.cpp,
3695 source/encoder/search.cpp:
3696 cu: remove m_lumaIntraDir access methods
3699 * source/Lib/TLibCommon/TComDataCU.cpp,
3700 source/Lib/TLibCommon/TComDataCU.h, source/encoder/entropy.cpp,
3701 source/encoder/search.cpp:
3702 cu: remove m_chromaIntraDir access methods
3705 * source/Lib/TLibCommon/TComDataCU.cpp,
3706 source/Lib/TLibCommon/TComDataCU.h, source/encoder/entropy.cpp:
3707 cu: remove interDir access methods
3710 * source/Lib/TLibCommon/TComDataCU.h:
3711 cu: white-space cleanups
3714 * source/Lib/TLibCommon/TComDataCU.h:
3715 cu: make setSubPart protected, group getSCUAddr() with encode helper
3719 * source/Lib/TLibCommon/TComDataCU.cpp,
3720 source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp,
3721 source/encoder/entropy.cpp, source/encoder/search.cpp:
3722 cu: remove m_bMergeFlags access methods
3725 * source/Lib/TLibCommon/TComDataCU.cpp,
3726 source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp,
3727 source/encoder/search.cpp:
3728 cu: remove m_cbf access methods
3731 * source/Lib/TLibCommon/TComDataCU.cpp,
3732 source/Lib/TLibCommon/TComDataCU.h, source/common/deblock.cpp,
3733 source/common/quant.cpp, source/encoder/entropy.cpp,
3734 source/encoder/search.cpp:
3735 cu: remove m_trIdx access methods
3738 * source/Lib/TLibCommon/TComDataCU.cpp,
3739 source/Lib/TLibCommon/TComDataCU.h, source/common/deblock.cpp,
3740 source/common/predict.cpp, source/encoder/analysis.cpp,
3741 source/encoder/entropy.cpp, source/encoder/search.cpp:
3742 cu: remove m_log2CUSize access methods
3745 * source/Lib/TLibCommon/TComDataCU.cpp,
3746 source/Lib/TLibCommon/TComDataCU.h, source/common/quant.cpp,
3747 source/encoder/analysis.cpp, source/encoder/entropy.cpp,
3748 source/encoder/frameencoder.cpp, source/encoder/search.cpp:
3749 cu: remove m_predModes access methods
3752 * source/Lib/TLibCommon/TComDataCU.cpp,
3753 source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp:
3754 cu: remove m_skipFlag access methods
3757 * source/Lib/TLibCommon/TComDataCU.cpp,
3758 source/Lib/TLibCommon/TComDataCU.h, source/encoder/entropy.cpp,
3759 source/encoder/search.cpp:
3760 cu: remove m_transformSkip access methods
3763 * source/Lib/TLibCommon/TComDataCU.cpp,
3764 source/Lib/TLibCommon/TComDataCU.h, source/common/deblock.cpp,
3765 source/common/quant.cpp, source/encoder/analysis.cpp,
3766 source/encoder/entropy.cpp, source/encoder/search.cpp:
3767 cu: remove m_cuTransquantBypass access methods
3770 * source/Lib/TLibCommon/TComDataCU.cpp,
3771 source/Lib/TLibCommon/TComDataCU.h, source/common/deblock.cpp,
3772 source/encoder/analysis.cpp, source/encoder/entropy.cpp,
3773 source/encoder/frameencoder.cpp, source/encoder/search.cpp:
3774 cu: remove m_partSizes access methods, rename copyCodedToPic() to
3778 * source/Lib/TLibCommon/TComDataCU.h:
3779 cu: remove wrong or useless comments
3782 * source/Lib/TLibCommon/TComDataCU.cpp,
3783 source/Lib/TLibCommon/TComDataCU.h:
3784 cu: remove x prefixes
3787 * source/Lib/TLibCommon/TComDataCU.cpp,
3788 source/Lib/TLibCommon/TComDataCU.h, source/common/deblock.cpp,
3789 source/common/quant.cpp, source/encoder/analysis.cpp,
3790 source/encoder/entropy.cpp, source/encoder/search.cpp:
3791 cu: remove m_qp access methods
3794 * source/Lib/TLibCommon/TComDataCU.cpp,
3795 source/Lib/TLibCommon/TComDataCU.h, source/common/deblock.cpp,
3796 source/encoder/analysis.cpp, source/encoder/entropy.cpp,
3797 source/encoder/frameencoder.cpp, source/encoder/sao.cpp,
3798 source/encoder/search.cpp:
3799 cu: remove m_depth access methods
3802 * source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp,
3803 source/encoder/search.cpp:
3804 cu: remove getCUMvField
3807 * source/Lib/TLibCommon/TComDataCU.cpp,
3808 source/Lib/TLibCommon/TComDataCU.h, source/encoder/search.cpp:
3809 cu: remove trivial access methods for m_trCoeff
3812 * source/Lib/TLibCommon/TComDataCU.cpp,
3813 source/Lib/TLibCommon/TComDataCU.h, source/common/deblock.cpp,
3814 source/encoder/search.cpp:
3815 cu: unify array data types to uint8_t, group like methods together
3818 * source/encoder/search.cpp:
3819 search: use pre-calculated partSize
3822 * source/encoder/rdcost.h, source/encoder/search.cpp,
3823 source/encoder/search.h:
3827 * source/encoder/analysis.cpp, source/encoder/search.cpp,
3828 source/encoder/search.h:
3829 search: add sa8dBits field to avoid conflict with RDO's totalBits
3832 * source/encoder/frameencoder.cpp:
3833 frameEncoder: fix eoln
3836 * source/encoder/search.cpp, source/encoder/search.h:
3837 search: getBlkBits uses no data members, could be a static method
3840 * source/encoder/search.cpp:
3841 analysis: rename variables for consistency
3844 * source/encoder/analysis.cpp:
3845 analysis: fix cut-paste bug in early-out code
3848 * source/common/frame.cpp:
3849 frame: m_totalBitsPerCTU must be allocated even if AQ is disabled
3852 * source/encoder/analysis.cpp:
3853 analysis: fix for --rd 0 check failure
3856 2014-10-15 Steve Borho <steve@borho.org>
3858 * source/encoder/encoder.cpp:
3862 * source/encoder/analysis.cpp:
3863 analysis: minimal documentation for RD levels
3866 * source/encoder/analysis.cpp:
3867 analysis: --rd 1 needs reconYuv to be copied from sub-cu
3870 * source/encoder/analysis.cpp:
3871 analysis: --rd 1 needs reconYuv to be copied to reconPic
3874 * source/encoder/analysis.cpp:
3875 analysis: move temp array out of conditional
3877 Keeping a pointer to a stack array is not well defined behavior.
3878 Renamed buf_trans to bufTrans, also
3881 * source/encoder/analysis.cpp:
3882 analysis: only --rd 0 should use encodeResidue()
3885 * source/encoder/analysis.cpp:
3886 analysis: at --rd 1, split and best modes only have sa8d cost
3889 * source/encoder/analysis.cpp:
3890 analysis: do not call checkDQP() for --rd 0, the CU is not encoded
3893 * source/encoder/analysis.cpp:
3894 analysis: fix hash mistakes at --rd 2
3896 Do not re-encode merge blocks, as we learned with --rd 6 this does
3897 not work without re-initializing skip flags. But since the CU was
3898 already coded once there is no need to repeat the work.
3901 * source/common/shortyuv.h, source/common/yuv.h:
3902 yuv: short descriptions
3905 * source/common/yuv.cpp, source/common/yuv.h:
3906 yuv: consistent variable naming for clarity
3908 absPartIdx is always the part index (in zorder) of a CU/PU/TU within
3912 * source/common/yuv.cpp, source/common/yuv.h:
3913 yuv: inline addClip sub-functions
3916 * source/common/yuv.h:
3920 * source/common/shortyuv.h:
3921 shortyuv: remove width argument to getChromaAddrOffset
3924 * source/common/predict.cpp, source/common/shortyuv.cpp,
3925 source/common/shortyuv.h, source/common/yuv.cpp,
3926 source/encoder/analysis.cpp, source/encoder/search.cpp:
3927 shortyuv: take only a single size (width == height)
3930 * source/common/shortyuv.cpp, source/common/shortyuv.h:
3931 shortyuv: remove m_height and m_cheight
3934 * source/common/yuv.h:
3938 * source/common/yuv.cpp, source/common/yuv.h:
3939 yuv: remove width argument to getChromaAddrOffset
3942 * source/common/predict.cpp, source/common/shortyuv.cpp,
3943 source/common/yuv.cpp, source/common/yuv.h,
3944 source/encoder/analysis.cpp, source/encoder/search.cpp:
3945 yuv: take only single size (width == height)
3948 * source/encoder/encoder.cpp:
3949 encoder: ensure TLD.nr is initialized
3952 * source/common/yuv.cpp, source/common/yuv.h:
3953 yuv: remove m_height and m_cheight
3956 * source/common/yuv.cpp, source/common/yuv.h:
3957 yuv: remove unused clear() method
3960 * source/common/frame.cpp, source/common/frame.h,
3961 source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp:
3962 rc: fix for ABR behavior - we need frame->m_totalBitsPerCTU to
3965 m_totalBitsPerCTU always needs to be allocated and filled in with
3966 the total bit size of each CU, for VBV and non-VBV modes to function
3970 * source/common/common.h, source/common/frame.cpp,
3971 source/common/frame.h, source/common/quant.cpp,
3972 source/encoder/analysis.cpp, source/encoder/analysis.h,
3973 source/encoder/encoder.cpp, source/encoder/frameencoder.cpp,
3974 source/encoder/frameencoder.h, source/encoder/search.cpp,
3975 source/encoder/search.h:
3979 2014-10-13 Murugan Vairavel <murugan@multicorewareinc.com>
3981 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
3982 util.h, source/common/x86/pixel-util8.asm:
3983 asm: avx2 assembly code for 8bpp version of transpose(8, 16, 32 and
3987 2014-10-14 Steve Borho <steve@borho.org>
3989 * source/encoder/search.cpp:
3990 search: add a couple TODO comments
3993 * source/encoder/search.cpp:
3994 search: make encodeResAndCalcRdInterCU() a bit more readable
3997 * source/encoder/search.cpp:
3998 search: fix one obviously wrong psy-rd check
4000 If measuring psy cost of CBF=0, you measure fenc against pred, not
4004 * source/encoder/search.cpp:
4005 search: remove I slice checks from encodeResAndCalcRdInterCU
4007 We do not call this function for I slices, and it already checks for
4011 * source/encoder/search.cpp:
4012 search: fix initial value of bCodeDQP in encodeResAndCalcRdInterCU
4015 * source/encoder/search.cpp, source/encoder/search.h:
4016 search: inline single caller of getInterSymbolBits()
4018 the code now uses temp vars instead of modifying the mode costs
4019 directly, since the final mode costs are set at the end of this
4023 * source/encoder/search.cpp, source/encoder/search.h:
4024 search: inline single caller of xLoadIntraResultChromaQT
4027 * source/encoder/search.cpp, source/encoder/search.h:
4028 search: inline single caller of xLoadIntraResultQT
4031 * source/encoder/search.cpp, source/encoder/search.h:
4032 search: inline single caller of xEncIntraHeaderLuma
4035 * source/encoder/search.cpp, source/encoder/search.h:
4036 search: inline single caller of xEncIntraHeaderChroma
4039 * source/encoder/search.cpp:
4040 search: reorder xRecurIntraChromaCodingQT() for clarity
4043 * source/encoder/search.cpp, source/encoder/search.h:
4044 search: inline single callers of xGetIntraBitsChroma and
4045 xGetIntraBitsQTChroma
4048 * source/encoder/sao.cpp:
4052 * source/common/common.h:
4053 common: fix eoln, fix merge bug
4059 2014-10-14 Deepthi Nandakumar <deepthi@multicorewareinc.com>
4061 * source/Lib/TLibCommon/TComRom.h, source/common/common.h,
4062 source/encoder/frameencoder.cpp:
4063 noiseReduction: replace magic values with readable names
4066 2014-10-13 Deepthi Nandakumar <deepthi@multicorewareinc.com>
4068 * source/Lib/TLibCommon/TComDataCU.cpp,
4069 source/Lib/TLibCommon/TComDataCU.h,
4070 source/Lib/TLibCommon/TComPicSym.cpp, source/encoder/analysis.cpp,
4071 source/encoder/sao.cpp, source/encoder/search.cpp,
4072 source/encoder/search.h:
4073 cu-lossless: remove redundant lossless buffer
4075 The pixel values in lossless mode can be obtained from the original
4079 2014-10-14 Steve Borho <steve@borho.org>
4081 * source/encoder/analysis.cpp:
4082 analysis: match old merge analysis behavior at --rd 5,6
4085 * source/encoder/analysis.h:
4086 analysis: reorder prediction modes for easier initialization at RD
4090 * source/Lib/TLibCommon/TComDataCU.h, source/common/deblock.cpp,
4091 source/encoder/analysis.cpp, source/encoder/analysis.h,
4092 source/encoder/frameencoder.cpp:
4093 cu: make CU's frame pointer const, so it's clearly read-only to CU
4096 Required passing a non-const Frame pointer to compressCTU, which is
4097 fine since the frame encoder by definition owns the non-const
4101 * source/Lib/TLibCommon/TComDataCU.h, source/common/deblock.cpp,
4102 source/common/predict.cpp, source/common/predict.h,
4103 source/encoder/entropy.cpp, source/encoder/search.cpp:
4104 cu: make CU's slice pointer const, so its clearly read-only to CU
4108 * source/Lib/TLibCommon/TComDataCU.cpp,
4109 source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp,
4110 source/encoder/search.cpp:
4111 cu: return merge candidate count from getInterMergeCandidates()
4113 do not set by reference
4116 * source/encoder/analysis.cpp:
4117 analysis: fix --rd 6 hash mistakes, clear skip flags between merge
4121 * source/encoder/analysis.cpp, source/encoder/analysis.h:
4122 analysis: inline deriveTestModeAMP
4125 * source/encoder/analysis.cpp:
4126 analysis: uhm, try that again
4129 * source/encoder/analysis.cpp:
4130 analysis: checkIntra() is used by all slice types now
4133 * source/encoder/search.cpp:
4134 search: minor cleanups
4137 2014-10-13 Steve Borho <steve@borho.org>
4139 * source/encoder/analysis.cpp:
4140 analysis: simplify addSplitFlagCost(), encode split flag with mode's
4144 * source/encoder/analysis.cpp:
4145 analsys: add split flag cost to the split prediction (--rd 5/6)
4148 * source/encoder/search.cpp:
4149 search: nits, remove debug memsets
4152 * source/encoder/analysis.cpp, source/encoder/search.cpp:
4156 * source/encoder/analysis.cpp:
4157 analysis: split out more logic for rdlevel 0 & 1
4159 Eventually rdlevels 0 and 1 would have a different compress function
4160 from rdlevels 2, 3 and 4 since they have much different logic around
4161 split and cost decisions. But the first step should be to pull the
4162 topSkip and avgCost into helper functions that could be used by both
4163 functions (to avoid duplicating those features, which I expect will
4164 get lots of attention in the comming weeks)
4167 * source/encoder/analysis.cpp:
4168 analysis: re-introduce RD level 0 intra hack
4170 It didn't have a comment before, so I didn't understand its purpose.
4171 Placing up a level and adding a comment makes it more clear
4174 2014-10-11 Steve Borho <steve@borho.org>
4176 * source/encoder/analysis.cpp, source/encoder/analysis.h:
4177 analysis: add a helper function to deal with split flag bits
4179 we can reasonably do something smart based on RD level in a
4181 * for high RD levels, we can account for split flag context states
4182 * For low RD levels, we just increment bit counters
4184 this fixes the fact that the skip flag must be considered in the
4185 mvBits stat since all other bits are considered coeff bits. This
4186 should help 2-pass slightly
4189 * source/encoder/analysis.h:
4190 analysis: remove unused m_initialContexts
4193 * source/encoder/analysis.h, source/encoder/frameencoder.h:
4194 analysis: move StatisticLog to frameencoder.h
4197 * source/encoder/analysis.cpp, source/encoder/analysis.h:
4198 analysis: add attributions for myself
4201 * source/encoder/analysis.cpp:
4202 analysis: remove redundant pointer check
4205 * source/encoder/search.cpp:
4206 search: fix variable name shadow warnings
4209 * source/common/slice.h, source/encoder/entropy.cpp,
4210 source/encoder/entropy.h, source/encoder/sao.cpp,
4211 source/encoder/sao.h, source/encoder/search.h:
4215 * source/encoder/analysis.cpp, source/encoder/analysis.h,
4216 source/encoder/encoder.cpp, source/encoder/frameencoder.cpp,
4217 source/encoder/frameencoder.h:
4218 analysis: clarify and fix CTU stats logging, move to frame encoders
4221 * source/encoder/analysis.cpp:
4222 analysis: if avoiding skip analysis for lossless encodes, set max
4226 * source/encoder/analysis.cpp:
4227 analysis: consistent naming of MC PU part index, try not to use temp
4230 Pointers to 'bestCU' tend to cause bugs; best to dereference
4231 md.bestMode->cu directly in case the pointer moves. The compiler is
4232 good about caching derefs
4235 * source/encoder/analysis.cpp:
4236 analysis: merge only ever has one part, within checkMerge2Nx2N_rd0_4
4239 * source/Lib/TLibCommon/TComDataCU.cpp,
4240 source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp,
4241 source/encoder/analysis.h:
4242 cu: fix sub-cu pel positioning
4244 The cuData.encodeIdx already included the sub-part offset during
4245 splits (there is one cuData instance per sub-part, not per depth).
4246 So it was wrong to pass the partUnitIdx to the next recursion depth.
4248 It was only being used at the next depth to pass to initSubCU()
4249 which used it to calculate the relative pixel offsets from the
4250 parent CU. But in the new code the parent CU is now the parent CTU,
4251 and so the pel offsets must be calculated relative from the CTU pel
4252 positions. This is what the g_zscanToPel? tables are for.
4255 * source/encoder/analysis.cpp:
4256 analysis: remove a temp variables used in only one place
4259 * source/Lib/TLibCommon/TComDataCU.cpp:
4260 cu: remove useless numPartition variable from copyPartFrom()
4263 * source/encoder/analysis.cpp:
4264 analysis: simplify handling of not-present sub-cus
4267 * source/encoder/analysis.cpp, source/encoder/analysis.h:
4268 analysis: m_bEncodeDQP should never have been a member variable
4270 The value should always be initialized to m_slice->m_pps->bUseDQP
4271 prior to calling m_entropyCoder.codeCoeff(), and then allow that
4272 function to modify it as it recurses.
4275 * source/common/frame.cpp:
4276 frame: fix uninitialized pointer
4279 * source/Lib/TLibCommon/TComDataCU.cpp,
4280 source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp:
4281 cu: make TComDataCU::copyPartFrom() take a const ref, cleanup
4283 this function did not need to copy m_cuAbove and friends
4286 * source/Lib/TLibCommon/TComDataCU.cpp,
4287 source/Lib/TLibCommon/TComDataCU.h, source/encoder/sao.cpp:
4288 cu: remove getLumaOrigYuv() access methods
4291 * source/encoder/analysis.cpp, source/encoder/analysis.h,
4292 source/encoder/search.cpp, source/encoder/search.h:
4293 analysis: more ref religion
4296 * source/encoder/analysis.cpp:
4297 analysis: use m_slice consistently, not the pointer in the CU
4300 * source/encoder/analysis.cpp:
4301 analysis: simplify encodeIntraInInter
4304 * source/encoder/search.cpp:
4305 search: minor cleanups and comment improvements
4308 * source/Lib/TLibCommon/TComDataCU.cpp:
4309 cu: white space and comment nits, initSubCU() no longer inits CTU
4313 * source/encoder/analysis.cpp:
4314 analysis: give the splitCU the correct partition index (0..3)
4316 this doesn't currently affect outputs, but it is definitely more
4320 * source/Lib/TLibCommon/TComDataCU.cpp,
4321 source/Lib/TLibCommon/TComDataCU.h, source/common/frame.cpp,
4322 source/common/frame.h, source/encoder/analysis.cpp,
4323 source/encoder/analysis.h, source/encoder/frameencoder.cpp,
4324 source/encoder/ratecontrol.cpp, source/encoder/search.cpp,
4325 source/encoder/search.h:
4326 cu: move cost variables from TComDataCU to Mode
4328 we use md.bestMode != NULL to determine if no best mode has been
4329 found yet, so we do not have to initialize costs to MAX_INT64 to
4330 simulate that condition. Hopefully this is more robust.
4332 this changes outputs, in a very good way, so I think this fixed a
4336 * source/common/yuv.h:
4340 * source/encoder/analysis.cpp, source/encoder/analysis.h,
4341 source/encoder/search.cpp, source/encoder/search.h:
4342 analysis: settle on fencYuv for 'frame being encoded' or 'original
4345 there was no point in analysis and search having different names for
4346 the same pixels. this patch moves responsibility of filling fencYuv
4347 to the caller in a consistent basis
4350 * source/Lib/TLibCommon/TComDataCU.cpp,
4351 source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp:
4352 cu: remove access methods for neighbor CTUs
4355 * source/encoder/analysis.cpp:
4356 analysis: fixes for --pmode and --rect with --rd 0..4
4359 * source/encoder/analysis.cpp:
4360 analysis: initCU() is only necessary for picSym CTUs, not analysis
4364 2014-10-10 Steve Borho <steve@borho.org>
4366 * source/encoder/analysis.cpp, source/encoder/analysis.h,
4367 source/encoder/search.cpp, source/encoder/search.h:
4368 analysis: move fillOrigYUVBuffer to Search
4370 it is not really an analysis functions, it is a coding function
4373 * source/encoder/analysis.cpp:
4374 analysis: fixes for merge/skip behavior at --rd 6, improve clarity
4377 * source/encoder/analysis.cpp:
4378 analysis: fix precendence problem in split logic
4381 * source/encoder/analysis.cpp:
4382 analysis: fix a couple of obvious --rd 6 bugs
4385 * source/encoder/analysis.cpp:
4386 analysis: fix --rd 2 crash, only check intra for P slices
4389 * source/encoder/analysis.cpp, source/encoder/analysis.h:
4390 analysis: greatly simplify checkMerge2Nx2N_rd5_6
4393 * source/Lib/TLibCommon/TComDataCU.h:
4397 * source/encoder/analysis.cpp, source/encoder/analysis.h:
4398 analysis: pass merge and skip modes to merge analysis functions
4400 It was a layering violation for these functions to access md.pred[]
4404 * source/encoder/analysis.h:
4405 analysis: PRED_NxN is no more
4408 * source/encoder/analysis.cpp, source/encoder/analysis.h:
4409 analysis: nit rename
4412 * source/encoder/analysis.cpp, source/encoder/analysis.h:
4413 analysis: most merge shared intra path into the main path
4415 The overhead for the nominal I frame path is one NULL pointer check
4419 * source/encoder/analysis.cpp, source/encoder/analysis.h:
4420 analysis: remove checkIntraInInter_rd5_6(), it is the same as
4424 * source/encoder/analysis.cpp, source/encoder/analysis.h,
4425 source/encoder/search.cpp, source/encoder/search.h:
4426 analysis: move parallel ME from Analysis to Search
4429 2014-10-09 Steve Borho <steve@borho.org>
4431 * source/encoder/search.cpp, source/encoder/search.h:
4432 search: pass mode to xIntraCodingLumaBlk
4435 * source/common/CMakeLists.txt, source/common/predict.cpp,
4436 source/common/predict.h, source/encoder/CMakeLists.txt,
4437 source/encoder/predict.cpp, source/encoder/predict.h:
4438 move predict.cpp and predict.h to common/
4440 they don't need any encoder structures
4443 * source/encoder/search.cpp, source/encoder/search.h:
4444 search: reorder arguments to xIntraCodingChromaBlk for clarity
4447 * source/encoder/search.cpp, source/encoder/search.h:
4448 search: pass mode to getBestIntraModeChroma
4451 * source/encoder/search.cpp, source/encoder/search.h:
4452 search: do not pass fencYuv to residualTransformQuantIntra
4455 * source/encoder/search.cpp, source/encoder/search.h:
4456 search: do not pass fencYuv to xIntraCodingChromaBlk
4459 * source/encoder/search.cpp, source/encoder/search.h:
4460 search: do not pass fencYuv to xRecurIntraChromaCodingQT
4463 * source/encoder/search.cpp, source/encoder/search.h:
4464 search: do not pass fencYuv to xEstimateResidualQT()
4467 * source/Lib/TLibCommon/TComDataCU.h,
4468 source/Lib/TLibCommon/TComPattern.cpp,
4469 source/Lib/TLibCommon/TComPattern.h,
4470 source/Lib/TLibCommon/TComRom.h, source/common/CMakeLists.txt,
4471 source/encoder/analysis.cpp, source/encoder/predict.cpp,
4472 source/encoder/predict.h, source/encoder/search.cpp,
4473 source/encoder/search.h, source/test/intrapredharness.cpp:
4474 predict: merge intra prediction helper routines into Predict
4477 * source/encoder/analysis.cpp, source/encoder/search.cpp,
4478 source/encoder/search.h:
4479 search: do not pass fencYuv to xRecurIntraCodingQT()
4482 * source/encoder/analysis.cpp, source/encoder/search.cpp,
4483 source/encoder/search.h:
4484 search: return distortion from main intra coding functions
4486 This is much cleaner than magically incrementing the CU variables
4487 within these functions. Leave some comments for future work
4490 * source/Lib/TLibCommon/TComDataCU.h:
4494 * source/encoder/search.cpp:
4495 search: use absPartIndex for sub-CU indexing
4498 * source/encoder/analysis.cpp:
4502 * source/encoder/analysis.cpp, source/encoder/search.cpp,
4503 source/encoder/search.h:
4504 search: merge sharedEstIntraPredQT with estIntraPredQT
4507 * source/encoder/analysis.cpp, source/encoder/search.cpp,
4508 source/encoder/search.h:
4509 search: do not pass fencYuv to sharedEstIntraPredQT() and
4510 estIntraPredChromaQT()
4513 * source/encoder/analysis.cpp, source/encoder/search.cpp,
4514 source/encoder/search.h:
4515 search: do not pass fencYuv to estIntraPredQT()
4518 * source/encoder/analysis.cpp, source/encoder/search.cpp,
4519 source/encoder/search.h:
4520 search: do not pass fencYuv to encodeResAndCalcRdSkipCU()
4523 * source/encoder/analysis.cpp, source/encoder/search.cpp,
4524 source/encoder/search.h:
4525 search: do not pass fencYuv to encodeResAndCalcRdInterCU()
4528 * source/encoder/analysis.cpp, source/encoder/search.cpp,
4529 source/encoder/search.h:
4530 search: do not pass fencYuv to generateCoeffRecon()
4533 * source/encoder/analysis.cpp, source/encoder/search.cpp,
4534 source/encoder/search.h:
4535 search: do not pass fencYuv to residualTransformQuantInter
4538 * source/encoder/search.cpp, source/encoder/search.h:
4539 search: make fencYuv pointers const
4541 in preparation of using mode.origYuv directly. this requires using
4542 const_cast when getting pixel pointers since our performance
4543 primitives do not have const declarations for pointers which are
4547 * source/encoder/analysis.cpp, source/encoder/analysis.h,
4548 source/encoder/search.cpp, source/encoder/search.h:
4549 analysis: move temp residual buffer into Search structure
4551 It is only used by Search methods; the analysis functions do not
4552 need to be aware of it
4555 * source/encoder/analysis.cpp, source/encoder/search.h:
4556 analysis: give each Mode a const pointer to its origYuv
4558 This is for convenience, and to save in function parameter overhead
4561 * source/encoder/analysis.cpp, source/encoder/entropy.cpp,
4562 source/encoder/ratecontrol.cpp:
4566 2014-10-09 Deepthi Nandakumar <deepthi@multicorewareinc.com>
4568 * source/encoder/analysis.cpp, source/encoder/entropy.cpp:
4569 analysis: remove Inter Part_NxN analysis and encode. This condition
4572 Also remove check for intra slice in compressInterCUrd5_6
4575 2014-10-08 Aarthi Thirumalai <Aarthi Thirumalai>
4577 * source/encoder/ratecontrol.cpp:
4578 rc: vbv fix for scene changes
4580 Also, some spacing nits
4583 2014-10-09 Steve Borho <steve@borho.org>
4585 * source/encoder/analysis.cpp:
4586 analysis: parentCTU is now always a reference to the output picSym
4590 2014-10-08 Steve Borho <steve@borho.org>
4592 * source/Lib/TLibCommon/TComDataCU.cpp,
4593 source/Lib/TLibCommon/TComDataCU.h, source/common/quant.cpp,
4594 source/common/quant.h, source/encoder/analysis.cpp,
4595 source/encoder/analysis.h, source/encoder/frameencoder.cpp,
4596 source/encoder/rdcost.h, source/encoder/search.cpp,
4597 source/encoder/search.h:
4598 analysis: pass parentCTU as const reference
4601 2014-10-07 Steve Borho <steve@borho.org>
4603 * source/Lib/TLibCommon/TComDataCU.cpp,
4604 source/Lib/TLibCommon/TComPattern.cpp, source/common/deblock.cpp,
4605 source/common/frame.cpp, source/common/frame.h,
4606 source/common/piclist.cpp, source/common/slice.cpp,
4607 source/common/slice.h, source/encoder/analysis.cpp,
4608 source/encoder/dpb.cpp, source/encoder/encoder.cpp,
4609 source/encoder/entropy.cpp, source/encoder/frameencoder.cpp,
4610 source/encoder/framefilter.cpp, source/encoder/predict.cpp,
4611 source/encoder/ratecontrol.cpp, source/encoder/sao.cpp,
4612 source/encoder/search.cpp, source/encoder/slicetype.cpp,
4613 source/encoder/weightPrediction.cpp:
4614 frame: remove trivial access methods, major cleanups
4617 * source/Lib/TLibCommon/TComDataCU.cpp,
4618 source/Lib/TLibCommon/TComDataCU.h,
4619 source/Lib/TLibCommon/TComPattern.cpp,
4620 source/Lib/TLibCommon/TComPicSym.cpp,
4621 source/Lib/TLibCommon/TComPicSym.h,
4622 source/Lib/TLibCommon/TComPicYuv.cpp,
4623 source/Lib/TLibCommon/TComPicYuv.h,
4624 source/Lib/TLibCommon/TComPicYuvMD5.cpp,
4625 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
4626 source/common/CMakeLists.txt, source/common/deblock.cpp,
4627 source/common/frame.cpp, source/common/frame.h,
4628 source/common/lowres.cpp, source/common/lowres.h,
4629 source/common/picyuv.cpp, source/common/picyuv.h,
4630 source/common/quant.cpp, source/common/shortyuv.cpp,
4631 source/common/shortyuv.h, source/common/yuv.cpp,
4632 source/common/yuv.h, source/encoder/analysis.cpp,
4633 source/encoder/analysis.h, source/encoder/encoder.cpp,
4634 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
4635 source/encoder/framefilter.cpp, source/encoder/predict.cpp,
4636 source/encoder/predict.h, source/encoder/ratecontrol.cpp,
4637 source/encoder/ratecontrol.h, source/encoder/reference.cpp,
4638 source/encoder/reference.h, source/encoder/sao.cpp,
4639 source/encoder/sao.h, source/encoder/search.cpp,
4640 source/encoder/search.h, source/encoder/slicetype.cpp,
4641 source/encoder/weightPrediction.cpp:
4642 yuv: bring Yuv, PicYuv classes into common/
4644 Standardized variable naming scheme
4646 pixel *foo Yuv *fooYuv PicYuv *fooPic Frame *fooFrame
4649 * source/Lib/TLibCommon/TComDataCU.cpp,
4650 source/Lib/TLibCommon/TComDataCU.h,
4651 source/Lib/TLibCommon/TComPattern.cpp,
4652 source/Lib/TLibCommon/TComPattern.h,
4653 source/Lib/TLibCommon/TComYuv.h, source/common/scalinglist.cpp,
4654 source/common/scalinglist.h, source/common/slice.cpp,
4655 source/common/slice.h, source/encoder/analysis.cpp,
4656 source/encoder/analysis.h, source/encoder/encoder.cpp,
4657 source/encoder/entropy.cpp, source/encoder/entropy.h,
4658 source/encoder/frameencoder.cpp, source/encoder/predict.cpp,
4659 source/encoder/predict.h, source/encoder/sao.cpp,
4660 source/encoder/search.cpp, source/encoder/search.h:
4661 encoder: pass cu and cudata by const reference when they are not
4664 This is the beginning round of a sweeping refactor to enforce some
4665 const discipline. The goal is to always pass objects as const
4666 references when a NULL pointer is never allowed and when the object
4667 is unharmed. un-const refs should be used when NULL is not allowed
4668 but the object is modified by the function.
4670 As we add more and more parallelism, we need to enlist the
4671 compiler's help in figuring out which functions are safe to call
4672 without side-effects
4675 2014-10-06 Steve Borho <steve@borho.org>
4677 * source/encoder/analysis.cpp, source/encoder/search.cpp,
4678 source/encoder/search.h:
4679 search: pass mode to more methods, write directly to mode.contexts
4681 rename RDContexts.temp to rqtTemp; only used RQT analysis now
4683 There were a number of cut-paste bugs fixed by removing this extra
4684 step after calling encodeResAndCalcRdInterCU. Nearly half of them
4688 2014-10-08 Steve Borho <steve@borho.org>
4690 * source/Lib/TLibCommon/TComDataCU.cpp:
4691 cu: use memset to initialize
4694 2014-10-06 Steve Borho <steve@borho.org>
4696 * source/Lib/TLibCommon/TComDataCU.cpp,
4697 source/Lib/TLibCommon/TComDataCU.h,
4698 source/Lib/TLibCommon/TComMotionInfo.cpp,
4699 source/Lib/TLibCommon/TComMotionInfo.h,
4700 source/Lib/TLibCommon/TComPicSym.cpp,
4701 source/Lib/TLibCommon/TComPicSym.h, source/encoder/analysis.cpp,
4702 source/encoder/analysis.h:
4703 cu: break pool objects out of TComDataCU
4706 2014-10-08 Steve Borho <steve@borho.org>
4708 * source/encoder/analysis.cpp, source/encoder/analysis.h:
4709 analysis: revisit the minDepth logic, outputs much closer to
4712 Bitrates are actually a bit lower than the old version, with
4716 2014-10-06 Steve Borho <steve@borho.org>
4718 * source/Lib/TLibCommon/TComDataCU.cpp,
4719 source/Lib/TLibCommon/TComDataCU.h:
4720 cu: remove m_ prefix from tqBypassYuvMemBlock
4723 * source/encoder/analysis.cpp:
4724 analysis: use md auto-var in parallelAnalysisJob()
4727 2014-10-08 Steve Borho <steve@borho.org>
4729 * source/encoder/analysis.cpp:
4730 analysis: use correct 'nextContext' from split iterations for split
4734 * source/encoder/analysis.cpp:
4735 analysis: fixes for recursion from Min Chen
4737 When a part is not present, we must call
4738 splitCU->copyPartFrom(splitCU, ... just to setup the appropriate
4739 depth fields in splitCU, which is horrid but it works for now. This
4740 hack fixes DQP behavior.
4742 The rest of the changes ensure we always pass a valid CABAC context
4743 to the next coded CU (important in the presence of uncoded blocks on
4746 With these fixes, I slices match the behavior of the previous
4750 * source/encoder/predict.cpp, source/encoder/predict.h:
4751 pred: rename Prediction::m_slice to Prediction::m_predSlice
4753 to avoid conflict with Analysis::m_slice
4756 * source/encoder/analysis.cpp, source/encoder/analysis.h:
4757 analysis: pass partUnitIdx to intra functions for initSubCU
4760 * source/encoder/analysis.cpp, source/encoder/analysis.h,
4761 source/encoder/frameencoder.cpp:
4762 analysis: remove m_log member variable; an auto-var is sufficient
4765 * source/encoder/analysis.cpp:
4766 analysis: implement bidir MVP refine for --pme
4768 This was the last deliberate difference in output between --pme and
4772 * source/encoder/analysis.cpp:
4773 analysis: handle situation in compressInterCU_rd0_4() where only
4777 * source/encoder/analysis.cpp:
4778 analysis: bring compressInterCU_rd5_6() up to date
4781 * source/encoder/analysis.cpp, source/encoder/analysis.h:
4782 analysis: update split logic in compressInterCU_rd0_4(), simplify
4785 2014-10-07 Steve Borho <steve@borho.org>
4787 * source/encoder/analysis.cpp:
4788 analysis: continue to optimize split logic
4791 * source/Lib/TLibCommon/TComDataCU.cpp,
4792 source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp,
4793 source/encoder/analysis.h:
4794 analysis: pass depth via cuData, add support for split CU in
4798 * source/encoder/entropy.cpp:
4802 2014-10-06 Steve Borho <steve@borho.org>
4804 * source/Lib/TLibCommon/TComDataCU.cpp,
4805 source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp:
4806 cu: don't pass cuData to copyPartFrom(), it only needs numPartitions
4808 This change came from Min
4811 * source/Lib/TLibCommon/TComDataCU.cpp:
4815 * source/encoder/analysis.cpp, source/encoder/analysis.h:
4816 analysis: add obviously missing logic
4819 * source/encoder/analysis.cpp:
4820 analysis: remove best mode logic from checkMerge2Nx2N_rd0_4()
4822 It is always done by the caller based on rd level
4825 2014-10-06 gopi jayaraman <gopi@multicorewareinc.com>
4827 * source/encoder/analysis.cpp, source/encoder/search.cpp,
4828 source/encoder/search.h:
4829 search: bring mode structure from analysis for intra functions
4832 * source/encoder/analysis.cpp, source/encoder/analysis.h,
4833 source/encoder/search.cpp, source/encoder/search.h:
4834 search: bring mode structure from analysis
4837 2014-10-04 Steve Borho <steve@borho.org>
4839 * source/encoder/analysis.cpp, source/encoder/analysis.h,
4840 source/encoder/search.cpp, source/encoder/search.h:
4841 analysis: major refactor of analysis data structures; prep for
4845 2014-10-16 Deepthi Nandakumar <deepthi@multicorewareinc.com>
4847 * source/common/pixel.cpp, source/encoder/rdcost.h:
4848 pixel: resolve build errors at high bit depth
4851 * source/encoder/search.cpp, source/encoder/search.h:
4852 psy-rd: modify psy-rd cost decisions in search::xEstimateResidualQT
4854 This function looks to minimizing rate/distortion in the "residual".
4855 Rate is bits taken to encode residual, and distortion is
4856 ssd(original residual, reconstructed residual). It is wrong to
4857 calculate psyCost with psy-energy = E(src, recon) here. psyCost is
4858 now modified as E(orig residual, recon residual).
4861 * source/common/pixel.cpp, source/common/primitives.h,
4862 source/encoder/rdcost.h:
4863 primitives: add support for 16-bit psyCost calculations
4866 2014-10-15 Steve Borho <steve@borho.org>
4868 * source/encoder/encoder.cpp:
4869 encoder: ensure nr pointer is initialized
4872 * source/encoder/analysis.h, source/encoder/encoder.cpp,
4873 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
4877 2014-10-15 Deepthi Nandakumar <deepthi@multicorewareinc.com>
4879 * source/encoder/search.cpp, source/encoder/search.h:
4880 search: rename intra functions that generate recon
4882 Remove wrong comments
4885 2014-10-14 Deepthi Nandakumar <deepthi@multicorewareinc.com>
4887 * source/common/common.h, source/common/frame.cpp,
4888 source/common/frame.h, source/common/quant.cpp,
4889 source/encoder/analysis.cpp, source/encoder/analysis.h,
4890 source/encoder/encoder.cpp, source/encoder/encoder.h,
4891 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
4892 noiseReduction: make noiseReduction deterministic for a given number
4896 2014-10-13 Murugan Vairavel <murugan@multicorewareinc.com>
4898 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
4899 util.h, source/common/x86/pixel-util8.asm:
4900 asm: avx2 assembly code for 8bpp version of transpose(8, 16, 32 and
4904 2014-10-14 Deepthi Nandakumar <deepthi@multicorewareinc.com>
4906 * source/Lib/TLibCommon/TComRom.h, source/common/common.h,
4907 source/encoder/frameencoder.cpp:
4908 noiseReduction: replace magic values with readable names
4911 2014-10-13 Deepthi Nandakumar <deepthi@multicorewareinc.com>
4913 * source/Lib/TLibCommon/TComDataCU.cpp,
4914 source/Lib/TLibCommon/TComDataCU.h,
4915 source/Lib/TLibCommon/TComPicSym.cpp, source/encoder/analysis.cpp:
4916 TComDataCU: remove redundant arguments
4919 * source/Lib/TLibCommon/TComDataCU.cpp,
4920 source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp,
4921 source/encoder/analysis.h, source/encoder/sao.cpp:
4922 cu-lossless: remove redundant lossless buffer
4924 The pixel values in lossless mode can be obtained from the original
4928 2014-10-10 Satoshi Nakagawa <nakagawa424@oki.com>
4930 * doc/reST/cli.rst, source/common/slice.h, source/encoder/entropy.cpp,
4931 source/encoder/level.cpp:
4935 2014-10-09 Satoshi Nakagawa <nakagawa424@oki.com>
4937 * source/common/common.h, source/encoder/entropy.cpp,
4938 source/encoder/entropy.h, source/encoder/sao.cpp,
4939 source/encoder/sao.h:
4940 sao: refine, fix sao-non-deblock [CHANGES OUTPUT (RExt, sao-non-
4944 2014-10-09 Deepthi Nandakumar <deepthi@multicorewareinc.com>
4946 * source/encoder/analysis.cpp:
4947 Backed out changeset: f231820645fe
4950 * source/encoder/analysis.cpp, source/encoder/entropy.cpp:
4951 analysis: remove Inter Part_NxN analysis and encode. This condition
4954 Also remove check for intra slice in compressInterCUrd5_6
4957 2014-10-08 Aarthi Thirumalai <Aarthi Thirumalai>
4959 * source/encoder/ratecontrol.cpp:
4960 rc: vbv fix for scene changes
4962 Also, some spacing nits
4965 2014-10-08 Steve Borho <steve@borho.org>
4967 * doc/reST/cli.rst, doc/reST/threading.rst:
4968 docs: try to explain behavior of related thread pool options
4971 2014-10-08 Gopu Govindaswamy <gopu@multicorewareinc.com>
4973 * source/encoder/analysis.cpp:
4974 analysis: fix for csp:444 decoder crash - CABAC context state
4978 2014-10-08 Steve Borho <steve@borho.org>
4980 * source/common/param.cpp:
4981 param: combine CTU size and RQT depth log lines (just saves space)
4984 * source/common/param.cpp, source/common/threadpool.cpp,
4985 source/encoder/api.cpp, source/encoder/encoder.cpp:
4986 encoder: move thread pool initialization to create(), handle pool
4989 Previously WPP essentially owned the thread pool and the two
4990 configurations were tied together (disabling WPP disabled the thread
4991 pool and vice-versa). Now we have three features which use the
4992 thread pool and they can be enabled or disabled independently of
4995 After this commit, if all the pool features (WPP, PMODE, PME) are
4996 disabled then the thread pool is not created. If --threads 1 is
4997 specified, then no pool is created. When no pool is present, all
4998 pool options are disabled.
5000 Reporting for all the pool options has been moved into the one log
5001 line: x265 [info]: WPP streams / frame threads / pool : 8 / 2 / 4 /
5004 They didn't really belong on the 'tools' log line since they are not
5005 coding tools like SAO or AMP.
5007 This commit also fixes CTU stats logging in the absence of WPP
5010 * source/common/wavefront.cpp, source/encoder/frameencoder.cpp:
5011 frameencoder: fix handling of no thread pool being present
5013 The encoder should run properly without a thread pool instance
5016 2014-10-08 Gopu Govindaswamy <gopu@multicorewareinc.com>
5018 * source/encoder/frameencoder.cpp:
5019 frameencoder: allocate memory for SEIPictureTiming when
5020 interlaceMode is enabled
5023 2014-10-06 Steve Borho <steve@borho.org>
5025 * source/encoder/analysis.cpp, source/encoder/predict.cpp,
5026 source/encoder/predict.h, source/encoder/search.cpp,
5027 source/encoder/search.h:
5028 analysis: make CU object used in --pme a const object
5031 2014-10-07 Steve Borho <steve@borho.org>
5033 * source/encoder/encoder.cpp, source/encoder/frameencoder.cpp:
5034 encoder: fix handling of --no-wpp and either --pmode or --pme
5036 in --no-wpp mode, we need to allocate TLD for workers and frame
5040 2014-10-06 Steve Borho <steve@borho.org>
5043 doc: make it clear fast cbf only affects rdlevel 5 and 6
5046 2014-10-05 Aarthi Thirumalai <Aarthi Thirumalai>
5048 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
5049 rc: use a sliding window to calculate moving avg SatdCost for ABR
5052 contains improvements for detection of scene changes within Rate
5053 Control to stabilize qp and prevent extreme spikes in bitrate.
5054 Removes the blockiness or distortions in the frames that a streak of
5055 low-detailed frames and prevents vbv from overreacting at the points
5059 2014-10-05 Steve Borho <steve@borho.org>
5061 * source/Lib/TLibCommon/TComDataCU.h:
5065 * source/Lib/TLibCommon/TComDataCU.cpp,
5066 source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp,
5067 source/encoder/search.cpp:
5068 cu: drop m_totalPsyCost, just use m_totalRDCost whether or not psy
5072 * source/encoder/analysis.cpp:
5073 analysis: fix CABAC context state handling after splits [CHANGES
5076 In RDlevel<=4, if split is chosen then copy depth+1 next to depth
5079 This fixes a long standing bug in presets slow and above, and
5080 improves compression efficiency.
5083 * source/encoder/analysis.cpp, source/encoder/entropy.cpp,
5084 source/encoder/entropy.h, source/encoder/search.cpp,
5085 source/encoder/search.h:
5086 entropy: add a mechanism to detect reads without writes in checked
5090 * source/Lib/TLibCommon/TypeDef.h, source/encoder/analysis.cpp,
5091 source/encoder/analysis.h, source/encoder/frameencoder.cpp,
5092 source/encoder/frameencoder.h, source/encoder/framefilter.cpp,
5093 source/encoder/sao.cpp, source/encoder/sao.h,
5094 source/encoder/search.cpp, source/encoder/search.h:
5095 entropy: give each Search instance its own set of RD contexts
5097 This gives each ThreadLocalData a complete set of working contexts
5098 so each thread can measure RD cost (for the same row) independent of
5099 one other. There were content problems with the 'temp' and 'rqtRoot'
5100 and 'rqtTest' contexts.
5102 For this to work we have to sync the 'cur' context to the slave
5103 prior to it performing any RD measurements.
5105 This commit finally removes the CI_IDX enums and uses a simple
5106 struct to hold the contexts per depth; and the member variables were
5107 renamed from "m_rdEntropyCoders" to "m_rdContexts" since these
5108 coders are only ever used to save and restore CABAC state (never to
5111 This change exposed a bug. The next patch adds some tools to catch
5112 this class of bug and the patch after that fixes it.
5115 * source/common/threadpool.cpp:
5119 * source/common/threading.cpp:
5123 * source/CMakeLists.txt:
5127 * source/encoder/entropy.cpp, source/encoder/entropy.h:
5128 entropy: make copy methods properly const
5131 * source/CMakeLists.txt:
5132 cmake: bump X265_BUILD for new parallelism params
5135 2014-10-04 Steve Borho <steve@borho.org>
5137 * source/encoder/encoder.cpp:
5138 encoder: prevent broken combinations of options
5140 with --no-wpp; something in the slave state is not being initialized
5141 correctly causing crashes in motion estimation
5144 * source/encoder/analysis.cpp, source/encoder/analysis.h:
5145 analysis: encodeIntraInInter() must write directly to given cabac
5148 writing to m_rdEntropyCoders[depth][CI_TEMP_BEST] was not thread
5149 save since the slave thread is using the same m_rdEntropyCoders
5150 objects as the master thread
5153 2014-10-03 Steve Borho <steve@borho.org>
5155 * source/encoder/analysis.cpp, source/encoder/analysis.h:
5156 analysis: use enums to enumerate prediction buffers
5158 value 4 was never used, so this reduces the buffer count by one
5161 * source/encoder/analysis.cpp:
5162 analysis: add a hack to try and match --pmode with --no-pmode
5165 * source/encoder/analysis.cpp, source/encoder/analysis.h:
5169 * source/encoder/analysis.cpp, source/encoder/analysis.h:
5170 analysis: measure best pmode intra RD cost in worker thread
5172 it required adding storage for the best intra recon and entropy
5173 state includes prep work for supporting --pmode with --rdlevel > 4
5176 * source/encoder/analysis.cpp, source/encoder/analysis.h:
5177 analysis: do not pass member vars to checkMerge2Nx2N_rd0_4 as
5181 * source/common/param.cpp:
5182 param: show when pmode and pme are enabled
5185 * source/encoder/analysis.cpp, source/encoder/analysis.h:
5186 analysis: remove default argument for compressInterCU_rd5_6
5189 * source/Lib/TLibCommon/TComDataCU.cpp,
5190 source/Lib/TLibCommon/TComDataCU.h,
5191 source/Lib/TLibCommon/TComPattern.cpp,
5192 source/Lib/TLibCommon/TComYuv.h, source/common/deblock.cpp,
5193 source/common/quant.cpp, source/common/quant.h,
5194 source/common/shortyuv.h, source/encoder/analysis.cpp,
5195 source/encoder/entropy.cpp, source/encoder/predict.cpp,
5196 source/encoder/sao.cpp, source/encoder/search.cpp:
5197 TComDataCU: make most get methods const, remove some trivial access
5201 * source/encoder/analysis.cpp:
5202 analysis: use slave instance for MVP eval for --pme
5204 this avoids a race hazard with Predict::m_immedVals
5207 * source/encoder/analysis.cpp:
5208 analysis: replace prepMotionCompensation() calls in
5209 parallelInterSearch()
5212 * source/encoder/analysis.cpp:
5213 analysis: --pme workers do not need m_origYuv in slave instance
5216 * source/encoder/analysis.cpp:
5217 analysis: cleanup variable names
5220 2014-10-02 Steve Borho <steve@borho.org>
5222 * source/encoder/analysis.cpp:
5223 analysis: prevent race hazard in parallel ME state variables
5225 the inserted comment should explain the risk, which manifested in a
5229 * source/encoder/analysis.cpp, source/encoder/analysis.h:
5230 analysis: parallel ME can get partsize and depth from ME CU
5233 * source/encoder/analysis.cpp, source/encoder/analysis.h:
5234 analysis: support --pme for all rd levels
5237 * source/common/param.cpp, source/encoder/analysis.cpp,
5238 source/x265.cpp, source/x265.h:
5239 api: add --pme to enable parallel motion estimation
5242 * source/encoder/analysis.cpp, source/encoder/analysis.h:
5243 analysis: further parallelME progress
5246 2014-10-01 Steve Borho <steve@borho.org>
5248 * source/common/param.cpp, source/encoder/analysis.cpp,
5249 source/x265.cpp, source/x265.h:
5250 api: add --pmode to enable parallel mode decision
5253 2014-10-02 Steve Borho <steve@borho.org>
5255 * source/encoder/encoder.cpp:
5256 encoder: correct logging of number of WPP streams
5259 * source/encoder/search.cpp:
5260 search: remove redundant calls to prepMotionCompensation()
5263 * source/encoder/search.cpp:
5264 search: use sad cost directly to pick MVP
5266 there's no point in use SAD RD cost if all the candidates have the
5267 same estimated bit cost.
5270 * source/encoder/rdcost.h, source/encoder/search.cpp,
5271 source/encoder/search.h:
5272 search: make some helper methods const
5275 2014-10-01 Steve Borho <steve@borho.org>
5277 * source/encoder/analysis.cpp:
5278 analysis: remove unused variables, fixes warnings
5281 2014-10-02 Aarthi Thirumalai <Aarthi Thirumalai>
5283 * source/encoder/ratecontrol.cpp:
5284 rc: correct the threshold for resetABR function
5287 * source/encoder/ratecontrol.cpp:
5288 rc : correct max AU size for first frame
5291 2014-10-02 Satoshi Nakagawa <nakagawa424@oki.com>
5293 * source/Lib/TLibCommon/TComDataCU.cpp,
5294 source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp,
5295 source/encoder/analysis.h, source/encoder/entropy.cpp,
5296 source/encoder/entropy.h:
5297 fix bug in 73c6c9086577 for rdLevel=0
5300 2014-10-01 Steve Borho <steve@borho.org>
5302 * source/encoder/analysis.cpp:
5303 analysis: further work on parallel ME
5306 * source/encoder/analysis.cpp:
5307 analysis: nit, remove obviously wrong comment
5310 * source/encoder/analysis.cpp:
5311 analysis: use source buffer for source stride
5313 it was always a coincidence that the output stride matched
5316 * source/encoder/analysis.cpp:
5317 analysis: initialize job counters
5320 * source/encoder/analysis.cpp, source/encoder/analysis.h:
5321 analysis: remove bMergeOnly argument to checkInter_rd0_4, always
5325 * source/encoder/analysis.cpp, source/encoder/analysis.h:
5326 analysis: remove PartSize argument to checkIntraInInter_rd0_4
5329 2014-10-01 Deepthi Nandakumar <deepthi@multicorewareinc.com>
5331 * source/encoder/ratecontrol.cpp:
5332 ratecontrol: fix float absolute check
5335 * source/encoder/ratecontrol.cpp:
5336 ratecontrol: replace an imprecise comparison with a more precise
5337 check to ensure consistency.
5340 * source/common/slice.h:
5341 slice: better structure packing
5344 2014-09-30 Steve Borho <steve@borho.org>
5346 * source/encoder/analysis.cpp:
5350 * source/encoder/analysis.cpp:
5351 analysis: move non-distributed path into else clause
5353 this is done in a second patch since it touches a lot of code
5357 2014-09-27 Steve Borho <steve@borho.org>
5359 * source/encoder/analysis.cpp, source/encoder/analysis.h,
5360 source/encoder/encoder.cpp, source/encoder/frameencoder.h:
5361 stub in framework for parallel mode analysis and parallel ME
5364 2014-09-30 Steve Borho <steve@borho.org>
5366 * source/encoder/analysis.cpp, source/encoder/analysis.h:
5367 analysis: remove default arguments to checkInter_rd5_6 and
5372 cli: display param->bSaoNonDeblocked as bool in CLI help
5375 * source/encoder/analysis.cpp:
5379 * source/Lib/TLibCommon/TComDataCU.cpp,
5380 source/Lib/TLibCommon/TComDataCU.h, source/common/deblock.cpp,
5381 source/common/loopfilter.cpp, source/common/primitives.h,
5382 source/encoder/analysis.h, source/encoder/sao.cpp:
5383 replace lcu with ctu in variable names
5386 * source/Lib/TLibCommon/TComDataCU.cpp,
5387 source/Lib/TLibCommon/TComRom.h, source/encoder/entropy.cpp,
5388 source/encoder/frameencoder.cpp, source/encoder/sao.h:
5389 replace LCU with CTU globally in comments
5392 * source/encoder/sao.h:
5396 * source/encoder/sao.cpp, source/encoder/sao.h:
5397 sao: rename resetLcuPart to resetCtuPart
5400 * source/common/common.h, source/encoder/frameencoder.cpp,
5401 source/encoder/framefilter.cpp, source/encoder/sao.cpp:
5402 sao: rename saoLcuParam to ctuParam
5405 * source/common/common.h, source/encoder/entropy.cpp,
5406 source/encoder/entropy.h, source/encoder/sao.cpp,
5407 source/encoder/sao.h:
5408 sao: rename SaoLcuParam to SaoCtuParam
5411 * doc/reST/cli.rst, source/CMakeLists.txt, source/common/common.h,
5412 source/common/param.cpp, source/encoder/frameencoder.cpp,
5413 source/encoder/sao.cpp, source/x265.cpp, source/x265.h:
5414 api: rename --sao-lcu-bounds to --sao-non-deblock
5416 The acronym LCU doesn't appear anywhere else in our param interface
5419 * source/encoder/search.cpp, source/encoder/search.h:
5420 search: make bidir temp YUVs Search members
5422 I can't believe we've been allocing them every predInterSearch()
5423 call for the last 2 months.
5426 * source/Lib/TLibCommon/TComDataCU.cpp,
5427 source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp,
5428 source/encoder/entropy.cpp:
5429 datacu: coding style rename of m_DataCUMemPool and m_CULocalData
5432 * source/Lib/TLibCommon/TComMotionInfo.cpp,
5433 source/Lib/TLibCommon/TComMotionInfo.h:
5434 motioninfo: coding style rename of m_MVFieldMemPool
5437 * source/common/common.h:
5438 common: break into debugger when check fails in debug build
5441 * source/Lib/TLibCommon/TComDataCU.cpp:
5442 TComData: do not leave m_tqBypassOrigYuv uninitialized
5445 2014-09-30 Murugan Vairavel <murugan@multicorewareinc.com>
5447 * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm,
5448 source/common/x86/dct8.h:
5449 asm: avx2 assembly code for idct4x4
5452 2014-09-30 Praveen Tiwari <Praveen Tiwari>
5454 * source/common/x86/asm-primitives.cpp,
5455 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
5456 blockfill_s_32x32 avx2 asm code: performance improved from 1354.05
5457 cycles to 705.81 cycles, over sse version of asm code
5460 * source/common/x86/asm-primitives.cpp,
5461 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
5462 blockfill_s_16x16 avx2 asm code: performance improved from 389.21
5463 cycles to 204.38 cycles, over sse version of asm code
5466 2014-09-29 Aarthi Thirumalai <Aarthi Thirumalai>
5468 * source/common/slice.h, source/encoder/level.cpp,
5469 source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
5470 rc: apply maxAU size restrictions while encoding each frame
5473 2014-09-30 Santhoshini Sekar <santhoshini@multicorewareinc.com>
5475 * source/Lib/TLibCommon/TComDataCU.cpp,
5476 source/Lib/TLibCommon/TComDataCU.h, source/encoder/analysis.cpp,
5477 source/encoder/search.cpp, source/encoder/search.h:
5478 TComDataCU: replace getTotalNumPart() with CU structure details
5481 * source/Lib/TLibCommon/TComDataCU.cpp,
5482 source/Lib/TLibCommon/TComDataCU.h,
5483 source/Lib/TLibCommon/TComPattern.cpp,
5484 source/Lib/TLibCommon/TComPattern.h, source/encoder/analysis.cpp,
5485 source/encoder/analysis.h, source/encoder/predict.cpp,
5486 source/encoder/predict.h, source/encoder/search.cpp,
5487 source/encoder/search.h:
5488 TComDataCU: replace getZorderIdxInCU() with encodeIdx of CU
5492 2014-09-30 Steve Borho <steve@borho.org>
5494 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
5495 source/encoder/rdcost.h, source/encoder/search.cpp,
5496 source/encoder/search.h:
5497 rd: move lambda and analysis qp init to rdcost.h
5499 This will make it possible for Search instances to copy QP data
5503 2014-09-30 Satoshi Nakagawa <nakagawa424@oki.com>
5505 * doc/reST/cli.rst, doc/reST/threading.rst, source/common/common.h,
5506 source/common/param.cpp, source/encoder/encoder.cpp,
5507 source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp,
5508 source/encoder/sao.cpp, source/encoder/sao.h, source/x265.cpp,
5510 sao: remove frame-based SAO
5513 2014-09-29 Steve Borho <steve@borho.org>
5515 * source/Lib/TLibCommon/TComMotionInfo.h:
5516 TComMvField: class to struct, white-space cleanups
5519 2014-09-25 Steve Borho <steve@borho.org>
5521 * source/encoder/search.cpp:
5522 search: reorder nits, no effect
5524 do allocations after simple configurations
5527 * source/common/quant.cpp, source/common/quant.h,
5528 source/encoder/search.cpp:
5529 quant: pass entropy instance through init function
5532 * source/encoder/search.cpp:
5533 search: white-space nits
5536 * source/encoder/analysis.cpp, source/encoder/frameencoder.cpp,
5537 source/encoder/frameencoder.h, source/encoder/search.cpp,
5538 source/encoder/search.h:
5539 search: give each Search instance an Entropy encoder (no output
5542 This essentially relocates the "active" entropy coder used during
5543 all analysis from CTURow to ThreadLocalData. This actually reduces
5544 the number of Entropy instances in the encoder, and solves the
5545 problem of sharing the entropy coder between worker threads
5546 cooperating on the same CTU.
5549 2014-09-26 David T Yuen <dtyx265@gmail.com>
5551 * source/Lib/TLibCommon/TComDataCU.cpp,
5552 source/Lib/TLibCommon/TComDataCU.h,
5553 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
5554 source/encoder/analysis.cpp, source/encoder/analysis.h,
5555 source/encoder/frameencoder.cpp:
5556 Changes for loadCTUData
5558 Replaced getDepthScanIdx() with table g_depthScanIdx Moved
5559 Analysis::loadCTUData to TComDataCU::loadCTUData since it only works
5560 with TComDataCU fields Replaced CU.offsets[2] with local variables
5561 in loadCTUData since that is the only place it was set and used
5562 minor changes to reduce the number of local variables in loadCTUData
5565 2014-09-26 Steve Borho <steve@borho.org>
5567 * source/encoder/analysis.cpp, source/encoder/encoder.cpp:
5571 2014-09-26 Murugan Vairavel <murugan@multicorewareinc.com>
5573 * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm,
5574 source/common/x86/dct8.h:
5575 asm: avx2 assembly code for idct32x32
5578 2014-09-25 David T Yuen <dtyx265@gmail.com>
5580 * source/encoder/frameencoder.cpp:
5581 Removed unnecessary call to loadCTUData
5584 2014-09-25 Steve Borho <steve@borho.org>
5586 * source/encoder/analysis.cpp:
5587 analysis: more style nits, code simplifications. no behavior change
5590 * source/encoder/analysis.cpp:
5591 analysis: remove #define conditionals for control flow
5593 The non-default paths are not being tested (or even compiled) and
5594 are thus assumed broken. The defines simply make the code harder to
5598 * source/encoder/analysis.cpp:
5599 analysis: coding style and comment nits
5602 * source/encoder/analysis.cpp:
5603 analysis: remove unused LAMBDA_PARTITION_SELECT
5606 * source/encoder/analysis.cpp:
5607 analysis: hoist local function into anonymous namespace (file local)
5610 2014-09-25 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
5612 * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm,
5613 source/common/x86/dct8.h:
5614 asm: avx2 assembly code for idct8x8
5617 2014-09-25 Santhoshini Sekar <santhoshini@multicorewareinc.com>
5619 * source/Lib/TLibCommon/TComDataCU.cpp, source/common/deblock.cpp,
5620 source/common/frame.h, source/common/slice.cpp,
5621 source/encoder/analysis.cpp, source/encoder/encoder.cpp,
5622 source/encoder/entropy.cpp, source/encoder/frameencoder.cpp,
5623 source/encoder/sao.cpp, source/encoder/search.cpp:
5624 remove getNumPartInCU() and replace it with macro
5627 2014-09-26 Satoshi Nakagawa <nakagawa424@oki.com>
5629 * source/Lib/TLibCommon/TComPicYuv.h,
5630 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
5631 source/common/deblock.cpp, source/common/deblock.h,
5632 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
5633 source/encoder/framefilter.cpp, source/encoder/framefilter.h:
5634 refine deblocking filter
5637 2014-09-24 Steve Borho <steve@borho.org>
5639 * source/common/slice.h, source/encoder/predict.cpp,
5640 source/encoder/predict.h:
5641 predict: split weighted prediction values from WeightParam
5643 The arguments passed to addWeightBi() and addWeightUni() are just
5644 the "w, o, offset, shift, round" integers. They don't need the
5645 fields which were signaled in the slice header or vice-versa.
5648 * source/encoder/predict.cpp, source/encoder/predict.h,
5649 source/encoder/search.cpp:
5650 predict: combine and check allocations and return failures
5653 * source/encoder/predict.cpp, source/encoder/predict.h,
5654 source/encoder/search.cpp:
5655 predict: remove check for reallocations, comment nits
5657 we don't do this anywhere else; there would be huge leaks if the
5658 Search object were initialized multiple times. there's no reason to
5662 * source/encoder/analysis.cpp, source/encoder/predict.cpp,
5663 source/encoder/predict.h, source/encoder/search.cpp:
5664 predict: inline predInterUni(), getWpScaling() and simplify
5665 motionCompensation()
5667 After this refactor, motionCompensation no longer needs the cu
5668 parameter. It was only used to pass to another member function to
5669 gain access to cu->m_slice which is now a member variable.
5671 This refactor removed a number of arguments to addWeightBi and
5672 addWeightUni which were always member variables.
5675 * source/encoder/predict.cpp, source/encoder/predict.h:
5676 predict: inline single call of predInterBi()
5679 * source/encoder/encoder.cpp, source/encoder/frameencoder.cpp,
5680 source/encoder/frameencoder.h:
5681 encoder: rename cuCoder to analysis for better clarity
5683 the data type of cuCoder changed from TEncCu to Analysis weeks ago
5686 2014-09-25 Deepthi Nandakumar <deepthi@multicorewareinc.com>
5688 * source/Lib/TLibCommon/TComPicYuv.h, source/common/deblock.cpp,
5689 source/common/deblock.h:
5690 Backed out changeset: 940cec3bf0b4
5692 This commit causes hash mismatches in vc11 x86_64 Release mode
5693 consistently, when lft is enabled. Stack/heap corruption likely.
5696 2014-09-24 Steve Borho <steve@borho.org>
5698 * source/common/vec/dct-sse3.cpp:
5699 Backed out changeset: eb011fa1d2d8
5702 2014-09-24 David T Yuen <dtyx265@gmail.com>
5704 * source/encoder/encoder.cpp, source/encoder/frameencoder.cpp,
5705 source/encoder/frameencoder.h:
5706 Changed FrameEncoder::m_tld to a pointer and set it to one of
5707 Encoder's ThreadLocalData instances.
5709 This uses less memory since m_tld isn't used in --wpp and Encoder's
5710 ThreadLocalData instances are not used in --no-wpp Also there was a
5711 small performance increase on my system
5714 2014-09-24 Steve Borho <steve@borho.org>
5716 * source/common/vec/dct-sse3.cpp, source/common/vec/dct-ssse3.cpp:
5717 vec: make a note for why we keep some of the remaining vector
5721 * source/common/vec/dct-sse3.cpp:
5722 vec: remove idct8, we have SSSE3 assembly for it
5725 * source/common/CMakeLists.txt, source/common/vec/blockcopy-sse3.cpp,
5726 source/common/vec/vec-primitives.cpp:
5727 cmake: remove blockcopy-sse3.cpp
5730 * source/common/pixel.cpp, source/common/primitives.h,
5731 source/test/pixelharness.cpp, source/test/pixelharness.h:
5732 primitives: remove unused block copy primitives
5735 2014-09-24 Praveen Tiwari <Praveen Tiwari>
5737 * source/common/x86/asm-primitives.cpp,
5738 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
5739 bloccopy_pp avx asm code: 32x32, 32x48, 32x64 improved by 803.69 ->
5740 514.90, 1126.36 -> 655.24, 1454.09 -> 835.76 cycles
5743 * source/common/x86/asm-primitives.cpp,
5744 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
5745 blockcopy_pp_32x24: avx asm code, improved 621.84 cycles -> 371.94
5748 * source/common/x86/asm-primitives.cpp,
5749 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
5750 blockcopy_pp_32x16: avx asm code, improved 477.74 cycles -> 309.99
5753 * source/common/x86/asm-primitives.cpp,
5754 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
5755 blockcopy_pp_32x8: avx asm code, improved 281.20 cycles -> 165.47
5758 2014-09-24 Satoshi Nakagawa <nakagawa424@oki.com>
5760 * source/Lib/TLibCommon/TComPicYuv.h, source/common/deblock.cpp,
5761 source/common/deblock.h:
5762 refine deblocking filter
5765 2014-09-20 Steve Borho <steve@borho.org>
5767 * source/encoder/predict.cpp, source/encoder/predict.h:
5768 predict: remove checkIdenticalMotion()
5770 We will not insert the same reference picture into L1 and L0 at the
5771 same time, so this check is utterly redundant.
5774 * source/encoder/analysis.cpp, source/encoder/predict.cpp,
5775 source/encoder/predict.h, source/encoder/search.cpp:
5776 predict: remove list argument from motionCompensation(), always
5780 * source/encoder/predict.cpp:
5781 predict: streamline getWpScaling()
5784 * source/encoder/predict.cpp:
5785 predict: use faster unidir prediction for B frames when weighting
5789 * source/encoder/predict.cpp, source/encoder/predict.h:
5790 predict: combine redundant logic paths in predInterBi()
5792 removes weightedPredictionBi(), which is no longer called
5795 2014-09-24 Deepthi Nandakumar <deepthi@multicorewareinc.com>
5797 * source/test/testbench.cpp:
5798 Backed out changeset: fa2f1aa1456e
5800 This commit allocated the harness instances on the heap, thus no
5801 longer respecting __declspec(align) directives for the member
5802 fields. We could probably circumvent this by overloading operator
5803 new with aligned_malloc, but I'm not sure this is good practice.
5806 2014-09-23 Sagar Kotecha <Sagar Kotecha>
5808 * source/common/x86/asm-primitives.cpp,
5809 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
5810 blockcopy_ss: 64x16, 64x32, 64x48, 64x64 AVX version of asm code,
5811 approx double speedup comapre to SSE
5814 2014-09-23 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
5816 * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm,
5817 source/common/x86/dct8.h:
5818 asm: avx2 code for dct8x8
5821 2014-09-23 Min Chen <chenm003@163.com>
5823 * source/common/x86/dct8.asm:
5824 asm: replace mova by movu to avoid AVX2 testbench crash in dct16,
5825 dct32, denoise_dct, its same speed on Haswell
5828 2014-09-23 Sagar Kotecha <Sagar Kotecha>
5830 * source/common/x86/asm-primitives.cpp,
5831 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
5832 add avx version for chroma_copy_ss 16x4, 16x8, 16x12, 16x16, 16x24,
5833 16x32, 16x64 based on csp, approx 1.5x-2x speedup over SSE
5836 2014-09-22 Satoshi Nakagawa <nakagawa424@oki.com>
5838 * source/Lib/TLibCommon/TComPattern.cpp,
5839 source/Lib/TLibCommon/TComPattern.h, source/encoder/predict.cpp:
5840 simplify intra filter (with fix for da61cf406f16)
5843 2014-09-22 Deepthi Nandakumar <deepthi@multicorewareinc.com>
5845 * source/encoder/ratecontrol.cpp:
5846 Backed out changeset: 25dde1ffab66
5848 This commit needs more investigation, with specific VBV use cases
5852 * source/Lib/TLibCommon/TComDataCU.cpp,
5853 source/Lib/TLibCommon/TComPicSym.cpp,
5854 source/Lib/TLibCommon/TComPicYuv.cpp,
5855 source/Lib/TLibCommon/TComPicYuv.h,
5856 source/Lib/TLibCommon/TComPicYuvMD5.cpp,
5857 source/Lib/TLibCommon/TComRom.cpp, source/common/deblock.h,
5858 source/common/quant.cpp, source/encoder/api.cpp,
5859 source/encoder/entropy.cpp, source/encoder/sao.cpp,
5860 source/encoder/search.cpp:
5861 nits: use parantheses to improve readability in shifts
5864 2014-09-20 Steve Borho <steve@borho.org>
5866 * source/encoder/predict.cpp:
5867 predict: don't bother keeping refidx as an array
5869 it is always indexed explicitly
5872 * source/Lib/TLibCommon/TComWeightPrediction.cpp,
5873 source/Lib/TLibCommon/TComWeightPrediction.h,
5874 source/common/CMakeLists.txt, source/encoder/predict.cpp,
5875 source/encoder/predict.h:
5876 predict: merge TComWeightPrediction functions into Predict
5878 * TComWeightPrediction had no member vars, the constructor was
5880 * half of the functions were not used, they were dropped
5881 * default arguments were removed, none were actually required
5882 * x prefixes removed from method names
5883 * comments were cleaned up
5886 * source/Lib/TLibCommon/TComWeightPrediction.cpp:
5887 TComWeightPrediction: combine duplicate inline functions (refs #80)
5890 * source/encoder/encoder.cpp:
5891 encoder: use %u to sprintf unsigned ints (refs #80)
5894 * source/encoder/entropy.cpp:
5895 entropy: fix SAO enable detection (refs #80)
5897 Apparently our analysis never toggles luma separately from chroma
5898 because this bug has not resulted in any bad bitstreams, that I know
5899 of. This bug was found via static analysis
5902 * source/common/bitstream.cpp:
5903 bitstream: add paren to avoid ambiguous precedence in X265_CHECK
5906 * source/Lib/TLibCommon/TComPicSym.cpp, source/common/frame.cpp,
5907 source/encoder/api.cpp, source/encoder/encoder.cpp:
5908 nits: do not check for NULL from new operations
5910 By the C++ spec, new is incapable of returning NULL. If an
5911 allocation failure actually occurs, an exception is issued (which we
5912 do not catch) Long term, all of these new operations need to be
5913 replaced by malloc and explicit initialization and destruction. In
5914 the short term, these return value checks are redundant.
5917 * source/encoder/bitcost.h:
5918 bitcost: use enums for special constants rather than static const
5921 enums require no storage
5924 * source/encoder/motion.cpp:
5925 motion: avoid extra iterations when no subpel motion found
5927 subsequent iterations would have also returned zero, which would be
5928 pointless. this is an adaption of a patch by Sheva Xu.
5931 2014-09-22 Deepthi Nandakumar <deepthi@multicorewareinc.com>
5933 * source/encoder/search.cpp, source/encoder/search.h:
5934 search: clean xRecurIntraCodingQT
5937 * source/encoder/analysis.cpp:
5941 * source/encoder/analysis.cpp, source/encoder/search.cpp,
5942 source/encoder/search.h:
5943 psy-rd: fix bug in chroma psyEnergy for intra 4x4
5945 Also add TODO, for all psyCost calculations
5948 2014-09-21 Deepthi Nandakumar <deepthi@multicorewareinc.com>
5950 * source/encoder/analysis.cpp, source/encoder/analysis.h:
5951 analysis: remove CheckBestMode from CheckIntra
5954 * source/encoder/analysis.cpp, source/encoder/analysis.h:
5955 analysis: remove redundant variables, cleanup variable names
5958 2014-09-20 Steve Borho <steve@borho.org>
5960 * source/common/param.cpp:
5961 param: do not allow VBV without WPP
5963 VBV row restarts cannot function correctly without WPP (per-row
5967 2014-09-18 Gopu Govindaswamy <gopu@multicorewareinc.com>
5969 * source/encoder/search.cpp:
5970 search: simplify and remove redundant variables in
5971 getBestIntraModeChroma
5974 * source/encoder/search.cpp:
5975 search: remove redundant loacal variables in
5976 encodeResAndCalcRdSkipCU
5979 * source/encoder/search.cpp:
5980 search: cleanup and remove redundant variable in checkintra
5983 2014-09-19 Satoshi Nakagawa <nakagawa424@oki.com>
5985 * source/Lib/TLibCommon/TComPattern.cpp,
5986 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
5987 source/common/intrapred.cpp, source/common/primitives.h,
5988 source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
5989 source/encoder/analysis.cpp, source/encoder/predict.cpp,
5990 source/encoder/search.cpp, source/encoder/slicetype.cpp,
5991 source/test/intrapredharness.cpp, source/test/intrapredharness.h:
5992 primitives: intra_pred[4][35] => intra_pred[35][4] (avoid *35)
5995 * source/Lib/TLibCommon/TComDataCU.cpp,
5996 source/Lib/TLibCommon/TComDataCU.h,
5997 source/Lib/TLibCommon/TComPicYuv.cpp,
5998 source/Lib/TLibCommon/TComPicYuv.h, source/common/deblock.cpp,
5999 source/common/frame.cpp, source/common/frame.h,
6000 source/encoder/analysis.cpp, source/encoder/analysis.h,
6001 source/encoder/encoder.cpp, source/encoder/encoder.h,
6002 source/encoder/entropy.cpp, source/encoder/entropy.h,
6003 source/encoder/motion.h, source/encoder/predict.cpp,
6004 source/encoder/predict.h, source/encoder/search.cpp:
6005 inline simple functions
6008 2014-09-17 Steve Borho <steve@borho.org>
6010 * source/test/testbench.cpp:
6011 testbench: allocate test harnesses on heap, for better valgrind
6015 2014-09-18 Praveen Tiwari <Praveen Tiwari>
6017 * source/test/mbdstharness.cpp:
6018 denoiseDct: align performance data while reporting speedup
6021 * source/common/x86/asm-primitives.cpp,
6022 source/common/x86/blockcopy8.asm:
6023 copy_cnt_32: avx2 asm code, improved 1521.17 cycles -> 934.46 cycles
6026 * source/common/x86/asm-primitives.cpp,
6027 source/common/x86/blockcopy8.asm, source/common/x86/const-a.asm:
6028 copy_cnt_16: avx2 asm code, improved 514.32 cycles -> 313.66 cycles
6031 * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm:
6032 denoise_dct: avx2 asm code
6035 * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm,
6036 source/common/x86/dct8.h:
6037 denoise_dct asm code: SSE version
6040 2014-09-18 Murugan Vairavel <murugan@multicorewareinc.com>
6042 * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm,
6043 source/common/x86/dct8.h:
6044 asm: avx2 assembly code for idct16x16
6047 2014-09-18 Aarthi Thirumalai <Aarthi Thirumalai>
6049 * source/encoder/ratecontrol.cpp:
6050 rc: improvements for cbr
6053 2014-09-17 Praveen Tiwari <Praveen Tiwari>
6055 * source/common/x86/dct8.h:
6056 denoiseDct: nit unused asm function declarations
6059 * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm:
6060 denoiseDct asm code: nit faulty code, need a new SSE version
6063 * source/test/mbdstharness.cpp:
6064 denoiseDct unit test code: fixed bound value problem
6067 2014-09-11 Praveen Tiwari <Praveen Tiwari>
6069 * source/common/x86/asm-primitives.cpp,
6070 source/common/x86/blockcopy8.asm:
6071 copy_cnt_4 avx2 asm code: nit, same speedup by sse version
6074 2014-09-17 Aarthi Thirumalai <Aarthi Thirumalai>
6076 * source/encoder/analysis.cpp:
6077 rc: fix bugs in using boundary condition for cu while encoding each
6080 fixes the binary mismatch in 2 pass completely.
6083 2014-09-17 Steve Borho <steve@borho.org>
6085 * source/encoder/frameencoder.cpp:
6086 frameencoder: fix VBV row resets when SAO is disabled
6088 When SAO is disabled, the row bitstream is generated as CTU analysis
6089 progresses. We must reset the row bitstream after a restart to avoid
6090 coding errors. The CAABAC state is already reset correctly when CTU
6094 2014-09-16 Sagar Kotecha <sagar@multicorewareinc.com>
6096 * source/common/param.cpp, source/common/param.h, source/x265.cpp:
6097 add fanout validation module to check param compatibility
6100 2014-09-16 Gopu Govindaswamy <gopu@multicorewareinc.com>
6102 * source/encoder/api.cpp:
6103 api: do not reuse the analysisData buffer for more then one picture,
6107 2014-09-16 Santhoshini Sekar <santhoshini@multicorewareinc.com>
6109 * source/encoder/analysis.cpp, source/encoder/entropy.cpp,
6110 source/encoder/entropy.h, source/encoder/frameencoder.cpp:
6111 analysis: add CU specific details to encodeCU()
6114 2014-09-16 Steve Borho <steve@borho.org>
6116 * source/encoder/analysis.cpp:
6120 2014-09-16 Gopu Govindaswamy <gopu@multicorewareinc.com>
6122 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
6123 source/encoder/analysis.cpp, source/encoder/analysis.h,
6124 source/encoder/search.cpp, source/encoder/search.h:
6125 analysis: intra picture estimation (mode and split
6126 decision)information sharing
6128 when --analysis-mode=save - the encoder runs a full encode and dump
6129 the best split and mode decisions into x265_analysis.dat(default
6130 file name if file name is not provided) file when --analysis-
6131 mode=load - the encoder reads the best split and mode decisions from
6132 x265_analysis.dat and bypass the actual split and mode decisions,
6133 and therefore perform a much faster encode
6136 2014-09-16 Praveen Tiwari <Praveen Tiwari>
6138 * source/test/mbdstharness.cpp, source/test/mbdstharness.h,
6139 source/test/testharness.h:
6140 denoiseDct: test bench code
6143 2014-09-15 Steve Borho <steve@borho.org>
6145 * source/encoder/search.cpp:
6146 search: save a few cycles
6149 2014-09-15 Aarthi Thirumalai <Aarthi Thirumalai>
6151 * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp:
6152 rc: fixes for 2 pass + vbv to calculate frameSizePlanned accurately.
6155 2014-09-15 Steve Borho <steve@borho.org>
6157 * doc/reST/presets.rst, source/common/param.cpp:
6158 param: preset tuning changes
6160 1. disable SAO in superfast
6162 Recent changes have made --no-sao substantially faster than SAO,
6163 which has made ultrafast preset much much faster than superfast. By
6164 disabling SAO in superfast, it is now roughly half-way between
6165 ultrafast and veryfast again.
6167 2. Enable weighted prediction for B slices in slower, veryslow, and
6170 Weighted prediction for B can sometimes be beneficial, so turn it on
6174 * doc/reST/threading.rst:
6175 doc: describe performance impact of SAO
6178 * doc/reST/threading.rst:
6179 doc: fix typo and nit in threading page
6182 2014-09-12 Satoshi Nakagawa <nakagawa424@oki.com>
6184 * source/common/common.h, source/common/x86/loopfilter.asm,
6185 source/encoder/entropy.cpp, source/encoder/sao.cpp,
6186 source/encoder/sao.h:
6190 2014-09-15 Steve Borho <steve@borho.org>
6192 * source/Lib/TLibCommon/CommonDef.h, source/encoder/search.h:
6193 search: header cleanups, no functional change
6196 2014-09-10 Steve Borho <steve@borho.org>
6198 * source/encoder/search.cpp, source/encoder/search.h:
6199 search: measure RDO of intra modes within 12% of least cost [CHANGES
6202 This version adaps the number of RD measured modes by param.rdLevel
6203 (aka preset) and by depth. This gives a non-trivial speedup to the
6204 very fast presets which use frequent keyframes and helps improve
6205 compression in slower presets.
6207 all presets use this function to encode I slices, so every encode is
6210 Previous behavior: RD measure top N least sa8d cost intra modes and
6211 all most probable modes where N was depth-based: intraModeNumFast[]
6212 = { 8, 8, 3, 3, 3 }; // 4x4, 8x8, etc
6214 New behavior: RD measure up to N modes that are within 12% of best
6215 sa8d cost or are most probable. where N if a function of rd-level
6218 The new behavior may measure fewer modes than before may skip some
6219 most-probable modes if there are plenty of other modes which are
6220 near the best cost. Since mode signal cost is included already, this
6223 The general idea is that if 1-2 modes have much better sa8d cost
6224 than all the others, then we are likely wasting our time RD
6225 measuring 8-11 modes. We're betting that sa8d cost is a somewhat
6226 decent predictor of RD cost.
6228 Note that I initially tried without a limit (measure all within 12%
6229 or MPM) but for some clips this was a horrible perf trade-off. In
6230 some situations all the intra modes might measure close together
6231 (flat source block) and we would end up measuring most or all of the
6232 intra modes for very little gain. So this version re-introduces a
6233 "top N candidate list" but does not bother trying to keep the list
6234 sorted since it is small
6237 2014-09-15 Steve Borho <steve@borho.org>
6239 * source/encoder/search.cpp:
6240 search: comment nits
6243 * source/encoder/ratecontrol.cpp:
6247 2014-09-15 Aarthi Thirumalai <Aarthi Thirumalai>
6249 * source/encoder/ratecontrol.cpp:
6250 rc: bug fix for 2 pass when bframes = 0. fixes Issue #77
6251 [e6a80fb007e8] <stable>
6253 * source/encoder/ratecontrol.cpp:
6254 rc: check for changes in scenecut input between multiple passes.
6256 wpp/no-wpp doesn't affect slice type decisions. they can differ
6257 between the passes in multipass encode.
6260 * source/encoder/ratecontrol.cpp:
6261 rc: bug fix for 2 pass when bframes = 0. fixes Issue #77
6264 2014-09-10 Ashok Kumar Mishra <ashok@multicorewareinc.com>
6266 * source/encoder/analysis.cpp, source/encoder/search.cpp,
6267 source/encoder/search.h:
6268 Search: remove redundant encode coefficients in intra for
6272 2014-09-15 Murugan Vairavel <murugan@multicorewareinc.com>
6274 * source/common/x86/dct8.asm:
6275 asm: fix mismatch due to dct32 avx2 assembly code
6278 2014-09-12 Murugan Vairavel <murugan@multicorewareinc.com>
6280 * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm,
6281 source/common/x86/dct8.h:
6282 asm: avx2 assembly code for dct32x32
6285 2014-09-13 Deepthi Nandakumar <deepthi@multicorewareinc.com>
6288 x265: add missing typedefs
6291 2014-09-11 David T Yuen <dtyx265@gmail.com>
6294 Resolved gcc compiler error of mismatched type
6297 2014-09-12 Deepthi Nandakumar <deepthi@multicorewareinc.com>
6299 * source/common/x86/asm-primitives.cpp:
6303 * source/common/x86/asm-primitives.cpp:
6304 asm: disable buggy denoise primitives until the bugs are fixed
6305 [d522e7662111] <stable>
6307 2014-09-11 Sagar Kotecha <sagar@multicorewareinc.com>
6309 * doc/reST/cli.rst, source/common/common.h, source/common/param.cpp,
6311 cli: add cli options analysis-mode and analysis-file
6313 analysis-mode: save|1 - Dump analysis buffers into file, load|2 -
6314 read analysis buffers from the file analysis-file: Specify file name
6315 used for either dumping or reading analysis data
6318 * source/common/frame.cpp, source/common/frame.h,
6319 source/encoder/analysis.cpp, source/encoder/encoder.cpp:
6320 store analysis information in buffers
6323 * doc/reST/api.rst, source/CMakeLists.txt, source/encoder/api.cpp,
6324 source/x265.def.in, source/x265.h:
6325 api: introduce methods to allocate and free analysis buffers
6329 api: add analysis data structures and param options
6332 2014-09-11 Steve Borho <steve@borho.org>
6334 * source/encoder/analysis.cpp:
6335 analysis: minor comment and code cleanups, no behavior change
6338 * source/encoder/search.cpp, source/encoder/search.h:
6339 search: remove x prefixes from ME helper functions
6342 * source/encoder/dpb.cpp:
6343 dpb: does not need to include frameencoder.h
6346 2014-09-10 Steve Borho <steve@borho.org>
6348 * source/encoder/analysis.h:
6352 * source/encoder/analysis.h, source/encoder/encoder.cpp,
6353 source/encoder/encoder.h, source/encoder/frameencoder.cpp,
6354 source/encoder/frameencoder.h, source/encoder/search.cpp,
6355 source/encoder/search.h:
6356 search: don't pass top-level encoder to initSearch()
6358 removes three Encoder members that were only used to communicate
6359 data to initSearch()
6362 * source/encoder/search.cpp:
6363 search: store rd costs in first pass through intra modes
6365 no behavior change, this is prep work for further refactors
6368 * source/encoder/dpb.cpp, source/encoder/dpb.h,
6369 source/encoder/framefilter.h:
6370 cleanup header dependencies; dpb should not need encoder.h
6373 2014-09-11 Deepthi Nandakumar <deepthi@multicorewareinc.com>
6375 * source/common/x86/asm-primitives.cpp:
6376 asm: enable copy_cnt8
6379 2014-09-10 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
6381 * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm,
6382 source/common/x86/dct8.h:
6383 asm: avx2 assembly code for dct16
6386 2014-09-10 Praveen Tiwari <Praveen Tiwari>
6388 * source/common/x86/blockcopy8.asm:
6389 copy_cnt_8, AVX2 asm code as per new interface, performance improved
6390 from 5.13x to 7.59x on HASWELL-I5
6393 2014-09-10 Steve Borho <steve@borho.org>
6395 * source/encoder/encoder.cpp:
6399 2014-09-09 Steve Borho <steve@borho.org>
6401 * source/encoder/search.cpp:
6402 search: re-enable chroma tskip
6404 this passed regression testing
6407 2014-09-09 Aarthi Thirumalai <Aarthi Thirumalai>
6409 * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp:
6410 rc: use m_frameDuration instead of rce->frameDuration to derive
6411 complexity for each frame in 2nd pass.
6413 don't store and use frameDuration from stats file per frame - losing
6417 2014-09-10 Deepthi Nandakumar <deepthi@multicorewareinc.com>
6419 * source/common/param.cpp, source/x265.h:
6420 param: apply missing default values to param, mostly zero and
6424 2014-09-09 Steve Borho <steve@borho.org>
6426 * source/encoder/search.cpp, source/encoder/search.h:
6427 search: reverse meaning of bCheckFirst to bAllowRQTSplit
6429 I find this much more readable
6432 * source/encoder/analysis.cpp, source/encoder/search.cpp:
6433 search: !a ? b : c; -> a ? c : b;
6436 * source/encoder/analysis.cpp, source/encoder/search.cpp,
6437 source/encoder/search.h:
6438 search: rename some helper functions without x prefixes
6441 * source/common/x86/blockcopy8.asm:
6442 backout 0dc2cbc36ee5 to 331ef5121676
6445 2014-09-09 Ashok Kumar Mishra <ashok@multicorewareinc.com>
6447 * source/encoder/analysis.cpp, source/encoder/analysis.h:
6448 analysis: modified compressInterCU_rd0_4() with CU-specific
6452 2014-09-09 Steve Borho <steve@borho.org>
6454 * source/encoder/search.cpp, source/encoder/search.h:
6455 search: fix camel case of residualQTIntraChroma
6458 * source/encoder/search.cpp:
6459 search: don't pass a zeroDistortion pointer if you don't want the
6463 * source/encoder/search.cpp, source/encoder/search.h:
6464 search: return distortion from xEstimateResidualQT
6467 * source/encoder/search.cpp, source/encoder/search.h:
6468 search: pass depthRange uniformly as uint32_t depthRange[2]
6470 effectively the same as uint32_t but compilers and debuggers can
6471 often do more with the length info. plus it just makes the code more
6475 * source/encoder/analysis.cpp, source/encoder/search.cpp,
6476 source/encoder/search.h:
6477 search: return distortion from xRecurIntraCodingQT
6480 * source/encoder/search.cpp, source/encoder/search.h:
6481 search: return distortion from xIntraCodingChromaBlk, do not pass by
6485 * source/encoder/search.cpp, source/encoder/search.h:
6486 search: return distortion from xRecurIntraChromaCodingQT, do not
6490 * source/encoder/search.cpp, source/encoder/search.h:
6491 search: return distortion from xIntraCodingLumaBlk, do not pass by
6495 2014-09-09 Praveen Tiwari <Praveen Tiwari>
6497 * source/common/x86/blockcopy8.asm:
6498 copy_cnt_8 AVX2 asm code, as per new interface
6501 * source/common/x86/blockcopy8.asm:
6502 copy_cnt_4: faster AVX2 code
6505 * source/common/x86/blockcopy8.asm:
6506 copy_cnt_4: combine mova and paddb to reduce code size, same speedup
6509 * source/common/x86/blockcopy8.asm:
6510 copy_cnt_4: enable fast non zero coefficient count path
6513 2014-09-09 Steve Borho <steve@borho.org>
6515 * source/encoder/frameencoder.cpp:
6516 frameencoder: use simple shifts to scale 2-pass CU type counters
6518 the cu type counters are summed at the end and turned into
6519 percentages, so it doesn't matter what base unit is used, only that
6520 each depth has 4x the value as depth+1
6523 * source/encoder/frameencoder.cpp:
6524 frameencoder: use x265_emms() prior to double QP clipping for VBV
6527 2014-09-09 Deepthi Nandakumar <deepthi@multicorewareinc.com>
6529 * source/encoder/search.cpp:
6530 search: remove warning from MS compiler
6533 2014-09-08 Min Chen <chenm003@163.com>
6535 * source/common/dct.cpp, source/common/x86/asm-primitives.cpp,
6536 source/common/x86/const-a.asm, source/common/x86/pixel-util.h,
6537 source/common/x86/pixel-util8.asm:
6538 asm: avx2 version of quant, improve 16.6k cycles -> 8.4k cycles
6541 * source/common/x86/pixel-util8.asm:
6542 asm: improve quant by replace variant shift to fixed shift, 19k
6543 cycles -> 16.6k cycles
6546 * source/common/dct.cpp, source/test/mbdstharness.cpp:
6547 testbench(quant): the qBits value must be more than or equal to 8
6550 * source/test/mbdstharness.cpp:
6551 testbench(quant): the Round value must be less than (2 ^ qbits)
6554 2014-09-08 Steve Borho <steve@borho.org>
6556 * source/encoder/search.cpp:
6557 search: prune more unnecessary work from estIntraPredQT()
6560 * source/encoder/search.cpp:
6561 search: remove some redundant work from estIntraPredQT
6564 * source/encoder/search.cpp, source/encoder/search.h:
6565 search: remove m_qtTempTrIdx
6568 * source/Lib/TLibEncoder/TEncSearch.cpp,
6569 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/CMakeLists.txt,
6570 source/encoder/analysis.h, source/encoder/search.cpp,
6571 source/encoder/search.h:
6572 pull search class into encoder/ (TLibEncoder is no more)
6574 TEncSearch -> Search use consistent comment style and argument lists
6575 make destructor no longer virtual (no more vtable) moving
6576 StatisticLog into x265 namespace came for free
6579 * source/encoder/api.cpp:
6580 api: remove include of frameencoder
6583 * source/Lib/TLibCommon/TComMotionInfo.h, source/encoder/analysis.h:
6587 2014-09-08 Ashok Kumar Mishra <ashok@multicorewareinc.com>
6589 * source/encoder/analysis.cpp, source/encoder/analysis.h:
6590 analysis: modified compressInterCU_rd5_6() with CU-specific
6594 * source/encoder/analysis.cpp, source/encoder/analysis.h:
6595 Analysis: compressIntraCU clean up
6598 2014-09-08 Steve Borho <steve@borho.org>
6600 * source/encoder/framefilter.cpp, source/encoder/sao.cpp,
6601 source/encoder/sao.h:
6602 sao: move frame/slice initialization into SAO::startSlice
6605 * source/encoder/sao.cpp:
6606 sao: minor cleanups, no behavior change
6609 * source/encoder/frameencoder.cpp:
6610 frameencoder: avoid another call to resetEntropy(), they are
6614 * source/encoder/frameencoder.cpp:
6615 frameencoder: combine some conditional expressions
6618 * source/encoder/frameencoder.h, source/encoder/ratecontrol.cpp,
6619 source/encoder/ratecontrol.h:
6620 rc: move FrameStats to ratecontrol.h
6622 rate control shouldn't need to include frameencoder.h
6625 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
6626 source/encoder/ratecontrol.cpp:
6627 frameencoder: rename percent fields for clarity
6630 * source/encoder/frameencoder.cpp:
6631 frameencoder: do more CU stat math as integer
6634 * source/encoder/entropy.cpp, source/encoder/entropy.h,
6635 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
6636 frameencoder: merge more of encodeSlice() into processCU
6638 this commit fixes no-WPP after the previous change. the per-row or
6639 per-frame (+- WPP) bistreams are flushed as they are finished (and
6640 cache hot) and the per CU stats are summed per row and then
6641 summarized all in one place.
6644 2014-09-05 Steve Borho <steve@borho.org>
6646 * source/encoder/frameencoder.cpp:
6647 frameencoder: remove second encodeCU() pass over CTUs when SAO is
6650 This is a performance optimization, it allows the encoder to
6651 generate the final bitstream of each CTU as it is compressed and
6654 When SAO is enabled, SAO analysis must be performed and coded at the
6655 start of the CTU but SAO analysis currently requires surrounding
6656 CTUs to be encoded making the second pass unavoidable.
6658 Note that this commit changes the way non-WPP encodes are performed,
6659 for the better. Now it always uses row 0's CI_CURR_BEST entropy
6660 coder instance to communicate entropy state between all CTUs and
6661 between rows. This better models how encodeSlice() works and makes
6665 2014-09-08 Steve Borho <steve@borho.org>
6667 * source/encoder/frameencoder.cpp:
6668 frameencoder: remove redundant clear of frame stats
6670 they were being zero'd in the constructor, init(), and in
6671 compressCTURows. techincally only the last is truly necessary, but
6672 I'm leaving the memset in the contructor.
6675 * source/encoder/entropy.h, source/encoder/frameencoder.cpp:
6679 * source/common/x86/x86inc.asm:
6680 Merge with correct x86inc.asm patch
6683 2014-09-05 Min Chen <chenm003@163.com>
6685 * source/common/x86/x86inc.asm:
6686 x86inc.asm: fix vpbroadcastd bug on Mac platform
6689 2014-09-08 Deepthi Nandakumar <deepthi@multicorewareinc.com>
6691 * source/encoder/entropy.cpp, source/encoder/entropy.h,
6692 source/encoder/frameencoder.cpp:
6693 entropy: change top-level encode to encodeCTU
6696 2014-09-07 Satoshi Nakagawa <nakagawa424@oki.com>
6698 * source/encoder/sao.cpp:
6702 * source/common/dct.cpp, source/encoder/analysis.cpp:
6706 2014-09-05 Min Chen <chenm003@163.com>
6708 * source/common/x86/asm-primitives.cpp, source/common/x86/const-a.asm,
6709 source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm:
6710 asm: AVX2 version of dequant_normal, improve 9.3k Cycles -> 4.2k
6714 * source/common/dct.cpp, source/common/x86/pixel-util8.asm:
6715 asm: reduce number of movd in dequant_normal
6718 * source/common/x86/x86inc.asm:
6719 x86inc.asm: fix vpbroadcastd bug on Mac platform
6722 2014-09-05 Steve Borho <steve@borho.org>
6724 * source/encoder/frameencoder.cpp:
6725 frameencoder: remove unnecessary call to resetBits(), improve
6729 * source/encoder/frameencoder.h:
6730 frameencoder: cleanup CTURow::init
6732 According to my understanding, only rdEntropyCoders[0][CI_CURR_BEST}
6733 really needs to be initialized, but this changes outputs if I do
6734 this. It tells me there is likely a bug in the entropy state
6738 * source/encoder/encoder.cpp, source/encoder/frameencoder.cpp,
6739 source/encoder/frameencoder.h:
6740 frameencoder: CTURow class -> struct, remove m_ prefixes
6742 Still no output changes in this patch series
6745 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
6746 source/encoder/framefilter.cpp:
6747 tld: remove m_ prefixes from struct members
6750 * source/encoder/CMakeLists.txt, source/encoder/cturow.cpp,
6751 source/encoder/cturow.h, source/encoder/encoder.cpp,
6752 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
6753 cturow: merge CTURow and TLD objects into frameencoder.h
6756 * source/encoder/frameencoder.cpp:
6757 frameencoder: remove unused variable, nit
6760 * source/encoder/cturow.cpp, source/encoder/cturow.h,
6761 source/encoder/frameencoder.cpp:
6762 cturow: inline processCU()
6764 The function is no longer complicated enough to justify having a
6765 separate function, given that the arguments mainly dealt with the
6766 wavefront cabac propogation. The CTU class is about to be further
6770 * source/CMakeLists.txt:
6771 cmake: enable MACOSX_RPATH on Mac shared libraries
6773 http://www.cmake.org/cmake/help/v3.0/prop_tgt/MACOSX_RPATH.html
6775 Setting the policy CMP0042 to NEW makes MACOSX_RPATH=1 the default,
6776 but we go ahead and set it manually anyway so cmake versions older
6777 than 3.1 behave the same way
6780 2014-09-05 Praveen Tiwari <Praveen Tiwari>
6782 * source/common/x86/blockcopy8.asm:
6783 copy_cnt 4x4 AVX2 asm code, as per new interface
6786 2014-09-04 Min Chen <chenm003@163.com>
6788 * source/common/x86/x86util.asm:
6789 asm: reenable IACA support, it remove by 'inappropriate
6790 instruction...' patch
6793 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
6794 util.h, source/common/x86/pixel-util8.asm:
6795 asm: avx2 version of nquant(), improve 9.8k cycles -> 5.3k cycles
6798 * source/common/dct.cpp, source/common/x86/pixel-util8.asm:
6799 asm: optimize nquant by PSIGND, improve 11k cycles -> 9.8k cycles
6802 2014-09-05 Praveen Tiwari <Praveen Tiwari>
6804 * source/common/x86/pixel-util8.asm:
6805 count_nonzero asm code, reduceded code size by combining mova and
6809 * source/common/x86/blockcopy8.asm:
6813 * source/common/x86/blockcopy8.asm:
6814 copy_cnt 4x4, eliminated move instructions, +1x improvement
6817 2014-09-05 Satoshi Nakagawa <nakagawa424@oki.com>
6819 * source/Lib/TLibCommon/TComDataCU.cpp:
6820 fix getQuadtreeTULog2MinSizeInCU()
6823 2014-09-04 Min Chen <chenm003@163.com>
6825 * source/common/x86/asm-primitives.cpp:
6826 asm: enable SSE2 version of pixel_ssd_ss[]
6829 * source/common/x86/ssd-a.asm:
6830 asm: fix output mistake in pixel_ssd_ss_4xN
6833 2014-09-05 Satoshi Nakagawa <nakagawa424@oki.com>
6835 * source/Lib/TLibCommon/ContextTables.h:
6839 2014-09-04 Min Chen <chenm003@163.com>
6841 * source/common/x86/ssd-a.asm:
6842 asm: replace ssse3 instruction in pixel_ssd_ss_*_sse2
6845 2014-09-04 Steve Borho <steve@borho.org>
6847 * source/common/x86/pixel-a.asm:
6848 asm: fix SSSE3 in SSE2 build warning in unused primitive
6850 Bug fix back-ported from x264. The function was not connected to any
6851 primitive pointer in x264 or x265, so this is really just quieting
6855 * source/common/quant.cpp:
6856 quant: fix check macro
6859 * source/common/quant.cpp:
6863 2014-09-02 Praveen Tiwari <Praveen Tiwari>
6865 * source/common/common.h, source/common/dct.cpp,
6866 source/common/primitives.h, source/common/quant.cpp,
6867 source/common/quant.h, source/encoder/entropy.cpp:
6871 * source/common/dct.cpp, source/common/primitives.h,
6872 source/common/quant.cpp, source/common/x86/pixel-util.h,
6873 source/common/x86/pixel-util8.asm, source/test/mbdstharness.cpp:
6874 quant_c optimization, downscaling qCoef from int32_t* to int16_t*
6877 * source/common/quant.cpp:
6878 optimize cvt32to16_shl by replacing copy_shl
6881 * source/common/pixel.cpp, source/common/primitives.h,
6882 source/common/x86/asm-primitives.cpp,
6883 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h,
6884 source/test/pixelharness.cpp, source/test/pixelharness.h:
6885 added copy_shl primitive
6888 * source/common/pixel.cpp, source/common/primitives.h,
6889 source/common/x86/asm-primitives.cpp,
6890 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h,
6891 source/test/pixelharness.cpp, source/test/pixelharness.h:
6892 added copy_shr primitive
6895 * source/common/x86/asm-primitives.cpp:
6896 temporarily disable avx2 version of copy_cnt primitive, need to
6897 update as per new interface
6900 * source/common/dct.cpp, source/common/primitives.h,
6901 source/common/quant.cpp, source/common/x86/asm-primitives.cpp,
6902 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h,
6903 source/test/pixelharness.cpp, source/test/pixelharness.h:
6904 conv16to32_count renamed to copy_count as per new interface
6907 * source/common/dct.cpp, source/common/primitives.h,
6908 source/common/quant.cpp, source/common/x86/blockcopy8.h,
6909 source/test/pixelharness.cpp:
6910 conv16to32_count C interface modification, downscaling coeff from
6911 int32_t* to int16_t*
6914 2014-09-01 Praveen Tiwari <Praveen Tiwari>
6916 * source/common/dct.cpp, source/common/x86/blockcopy8.asm,
6917 source/common/x86/const-a.asm, source/test/pixelharness.cpp:
6918 cvt16to32_cnt optimization
6921 2014-08-25 Praveen Tiwari <Praveen Tiwari>
6923 * source/common/quant.cpp, source/common/quant.h:
6924 signBitHidingHDQ optimization, downscaling coeff from int32_t* to
6928 * source/common/quant.cpp, source/common/quant.h:
6929 rdoQuant optimization, downscaling dstCoeff fron int32_t* to
6933 2014-09-02 Praveen Tiwari <Praveen Tiwari>
6935 * source/common/dct.cpp, source/common/primitives.h,
6936 source/common/quant.cpp, source/common/x86/pixel-util.h,
6937 source/common/x86/pixel-util8.asm, source/test/mbdstharness.cpp:
6938 nquant optimization, downscaling qCoef from int32_t* to int16_t*
6941 2014-08-25 Praveen Tiwari <Praveen Tiwari>
6943 * source/common/quant.cpp:
6944 quant.cpp, cleaned redundant code
6947 2014-09-02 Praveen Tiwari <Praveen Tiwari>
6949 * source/common/dct.cpp, source/common/primitives.h,
6950 source/common/quant.cpp, source/common/vec/dct-sse41.cpp,
6951 source/test/mbdstharness.cpp:
6952 dequant_scaling optimization, downscaling quantCoef from int32_t* to
6956 * source/common/x86/pixel-util8.asm:
6957 dequant_normal asm code optimization as per new interface
6960 * source/common/dct.cpp, source/common/primitives.h,
6961 source/common/quant.cpp, source/common/x86/pixel-util.h,
6962 source/test/mbdstharness.cpp:
6963 dequant_normal optimization, downscaling quantCoef from int32_t* to
6967 2014-08-25 Praveen Tiwari <Praveen Tiwari>
6969 * source/common/dct.cpp, source/common/primitives.h,
6970 source/common/quant.cpp, source/common/x86/pixel-util.h,
6971 source/common/x86/pixel-util8.asm, source/encoder/entropy.cpp,
6972 source/test/mbdstharness.cpp:
6973 count_nonzero primitive optimization, downscaling quantCoef from
6974 int32_t* to int16_t*
6977 2014-09-04 Anton Mitrofanov <BugMaster@narod.ru>
6979 * source/common/x86/x86inc.asm:
6980 x86asm: warn when inappropriate instruction used in function with
6984 2014-09-02 Ashok Kumar Mishra <ashok@multicorewareinc.com>
6986 * source/Lib/TLibCommon/TComDataCU.cpp,
6987 source/Lib/TLibCommon/TComDataCU.h,
6988 source/Lib/TLibEncoder/TEncSearch.cpp,
6989 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/analysis.cpp,
6990 source/encoder/entropy.cpp, source/encoder/entropy.h:
6991 TComDataCU: Reduced repeated function call to calculate depth range
6994 2014-09-03 Satoshi Nakagawa <nakagawa424@oki.com>
6996 * source/Lib/TLibCommon/TComPicYuv.cpp,
6997 source/Lib/TLibCommon/TComPicYuv.h:
6998 change index of m_buOffsetY[] from raster to zscan
7001 2014-09-03 David T Yuen <dtyx265@gmail.com>
7003 * source/Lib/TLibCommon/TComDataCU.cpp:
7004 Cleaned up TComDataCU::getQuadtreeTULog2MinSizeInCU for clarity and
7005 a bit of performance
7008 2014-09-01 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
7010 * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm,
7011 source/common/x86/dct8.h:
7012 asm: avx2 asm code for dct4
7015 2014-09-04 Deepthi Nandakumar <deepthi@multicorewareinc.com>
7020 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/entropy.cpp,
7021 source/encoder/entropy.h:
7022 entropy: cleanup codeQtRootCbf
7025 * source/Lib/TLibCommon/TComDataCU.h, source/common/quant.cpp:
7026 quant: use table for ctxCbf
7029 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp,
7030 source/encoder/entropy.cpp, source/encoder/entropy.h:
7031 entropy: cleanup codePredMode
7034 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp,
7035 source/encoder/entropy.cpp, source/encoder/entropy.h:
7036 entropy: cleanup codeCUTransQuantBypassFlag
7039 2014-09-01 Ashok Kumar Mishra <ashok@multicorewareinc.com>
7041 * source/Lib/TLibCommon/ContextTables.h,
7042 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/entropy.cpp,
7043 source/encoder/entropy.h:
7044 Entropy: Replaced getCtxQtCbf() with table
7047 2014-09-04 Steve Borho <steve@borho.org>
7052 * source/common/version.cpp:
7053 version: detect OpenBSD for version string (closes #76)
7056 [821c2eef4d52] <stable>
7058 * source/CMakeLists.txt:
7059 cmake: fix BSD link, only link with librt if it exists (closes #75)
7060 [139d6b2a1b19] <stable>
7062 2014-09-03 Murugan Vairavel <murugan@multicorewareinc.com>
7064 * source/common/x86/asm-primitives.cpp:
7065 asm: enable 16bpp primitives of cvt32to16 and cvt16to32 for all
7069 2014-09-03 Min Chen <chenm003@163.com>
7071 * source/test/mbdstharness.cpp:
7072 testbench(nquant): the Round value must be less than (2 ^ qbits)
7075 2014-09-03 David T Yuen <dtyx265@gmail.com>
7077 * source/common/common.h, source/encoder/analysis.cpp:
7078 Resolve gcc warnings
7080 * more parenthesis for macro
7081 * changed signed to unsigned int
7084 2014-09-03 Ashok Kumar Mishra <ashok@multicorewareinc.com>
7086 * source/encoder/analysis.cpp:
7087 fix: hash/binary mismatch for new CU structure holds CU-specific
7091 2014-08-28 Ashok Kumar Mishra <ashok@multicorewareinc.com>
7093 * source/Lib/TLibCommon/TComDataCU.h, source/common/common.h,
7094 source/encoder/analysis.cpp, source/encoder/analysis.h:
7095 analysis: CU structure now holds CU-specific information,
7097 Member fields include location inside CTU, boundary flags, offsets
7098 from CTU origin. This will help replace the soon-to-be-gone initCU
7099 and initSubCU functions.
7102 2014-09-01 Deepthi Nandakumar <deepthi@multicorewareinc.com>
7104 * source/encoder/ratecontrol.cpp:
7108 * source/encoder/ratecontrol.cpp:
7109 Backed out changeset: 35b2d9e774c8
7111 This patch disrupted CBR runs where we were unable to hit the target
7112 bitrate. It is logically correct, but likely incomplete.
7113 [dde992b96623] <stable>
7115 2014-08-30 Steve Borho <steve@borho.org>
7117 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/x86/pixel-
7118 util8.asm, source/encoder/encoder.cpp:
7122 2014-08-25 Steve Borho <steve@borho.org>
7124 * source/encoder/encoder.cpp:
7125 encoder: re-enable --cu-lossless
7126 [269ba0a6ce8c] <stable>
7128 2014-08-25 Min Chen <chenm003@163.com>
7130 * source/Lib/TLibEncoder/TEncSearch.cpp:
7131 search: fix decoder intra crash with --cu-lossless
7132 [572988a922a1] <stable>
7134 2014-08-26 Deepthi Nandakumar <deepthi@multicorewareinc.com>
7136 * source/Lib/TLibEncoder/TEncSearch.cpp:
7137 cu-lossless: fix inter hash mistake
7139 The CU needs to be re-encoded if lossless is chosen as the best
7141 [5a9e01a195a0] <stable>
7143 2014-08-30 Satoshi Nakagawa <nakagawa424@oki.com>
7145 * source/common/dct.cpp, source/common/x86/pixel-util8.asm:
7146 asm: fix dequant_normal
7147 [3c309e5d9c8f] <stable>
7149 2014-08-29 Steve Borho <steve@borho.org>
7151 * source/encoder/sao.cpp:
7152 sao: fix signed loop bounds bug
7155 2014-08-25 Steve Borho <steve@borho.org>
7157 * source/encoder/encoder.cpp:
7158 encoder: re-enable --cu-lossless
7161 2014-08-26 Deepthi Nandakumar <deepthi@multicorewareinc.com>
7163 * source/Lib/TLibEncoder/TEncSearch.cpp:
7164 cu-lossless: fix inter hash mistake
7166 The CU needs to be re-encoded if lossless is chosen as the best
7170 2014-08-27 Steve Borho <steve@borho.org>
7172 * source/test/mbdstharness.cpp:
7173 mbdst: cleanup dequant test
7176 * source/test/mbdstharness.h:
7177 mbdst: make buffers nice even size
7180 * source/test/ipfilterharness.cpp, source/test/testharness.h:
7181 test: fix MSVC warnings
7184 * source/test/mbdstharness.h:
7185 mbdst: align buffers to 32byte boundary
7188 * source/test/mbdstharness.cpp, source/test/mbdstharness.h:
7189 mbdst: fix memset lengths, change MEM_CMP_SIZE to MAX_TU_SIZE
7192 * source/test/mbdstharness.cpp, source/test/mbdstharness.h:
7193 mbdst: reshuffle varnames
7196 * source/test/mbdstharness.cpp, source/test/mbdstharness.h:
7197 mbdst: remove redundant mintbuf buffers
7200 * source/test/mbdstharness.cpp, source/test/mbdstharness.h:
7201 mbdst: remove unused mbuf4, rename other short output buffers
7204 * source/test/mbdstharness.cpp, source/test/mbdstharness.h:
7205 mbdstharness: remove completely unused arrays
7208 * source/test/pixelharness.cpp, source/test/pixelharness.h:
7209 pixel: use fixed buffer allocations
7212 * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h:
7213 ipfilter: use fixed buffer allocations
7216 * source/test/testbench.cpp:
7217 testbench: move test benches from stack allocations to global
7220 * source/test/intrapredharness.cpp, source/test/intrapredharness.h:
7221 intra: use fixed buffer allocations
7224 * source/encoder/ratecontrol.cpp:
7230 [ce614aebb395] <stable>
7232 * source/test/mbdstharness.cpp:
7233 mbdst: add missing test of dequant_scaling
7236 * source/test/mbdstharness.cpp, source/test/mbdstharness.h:
7237 mbdst: use fixed buffer allocations, cleanup some tests
7240 2014-08-27 Ashok Kumar Mishra <ashok@multicorewareinc.com>
7242 * source/Lib/TLibEncoder/TEncSearch.cpp:
7243 TEncSearch: remove redundant function call
7246 2014-08-27 Aarthi Thirumalai <Aarthi Thirumalai>
7248 * source/encoder/ratecontrol.cpp:
7249 rc: fix bug in predicting B frame bits in vbv
7250 [35b2d9e774c8] <stable>
7252 2014-08-27 Deepthi Nandakumar <deepthi@multicorewareinc.com>
7254 * source/encoder/ratecontrol.cpp:
7258 2014-08-27 Aarthi Thirumalai <Aarthi Thirumalai>
7260 * source/encoder/ratecontrol.cpp:
7261 rc: fix bitrate accuracy for vbv in fast presets.
7262 [a6c318bd69ce] <stable>
7264 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
7265 rc: rename m_bframes to m_leadingBframes
7266 [c34b059dff1c] <stable>
7268 2014-08-26 Steve Borho <steve@borho.org>
7270 * source/Lib/TLibCommon/CommonDef.h,
7271 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
7272 source/common/common.h, source/common/deblock.cpp,
7273 source/common/param.cpp, source/encoder/frameencoder.cpp,
7274 source/encoder/framefilter.cpp, source/encoder/ratecontrol.cpp:
7275 common: rename QP range macros to be consistent with x264
7277 I find QP_MAX_SPEC to be a lot more self-explanatory than MAX_QP
7280 * source/Lib/TLibCommon/TypeDef.h:
7281 types: remove generic TEXT_CHROMA enum, no longer used
7284 * source/Lib/TLibCommon/TComPattern.cpp,
7285 source/Lib/TLibCommon/TComPattern.h:
7286 pattern: use isLuma instead of restricted TextType range
7289 2014-08-25 Steve Borho <steve@borho.org>
7291 * source/encoder/sao.cpp, source/encoder/sao.h:
7292 sao: don't pass member variables to functions
7295 2014-08-26 Steve Borho <steve@borho.org>
7297 * source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp,
7298 source/encoder/framefilter.h:
7299 framefilter: move SAO init logic into the frame filter
7302 2014-08-26 Min Chen <chenm003@163.com>
7304 * source/common/x86/x86inc.asm:
7305 x86inc: Make INIT_CPUFLAGS support an arbitrary number of cpuflags
7307 Ported from Henrik Gramner's recent commit to x264
7310 * source/common/x86/pixel-util8.asm:
7311 asm: Minor pixel_ssim_end4 improvements
7313 Reduce the number of vector registers used from 7 to 5. Eliminate
7314 some moves in the AVX implementation. Avoid bypass delays for
7315 transitioning between int and float domains.
7317 Ported from Henrik Gramner's recent commit to x264
7320 2014-08-26 Satoshi Nakagawa <nakagawa424@oki.com>
7322 * source/encoder/frameencoder.cpp:
7323 fix m_initSliceContext (uninitialised m_sliceQp)
7326 2014-08-25 Min Chen <chenm003@163.com>
7328 * source/Lib/TLibEncoder/TEncSearch.cpp:
7329 search: fix decoder intra crash with --cu-lossless
7332 2014-08-25 Satoshi Nakagawa <nakagawa424@oki.com>
7334 * source/Lib/TLibCommon/TComDataCU.cpp,
7335 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
7336 source/Lib/TLibCommon/TComYuv.h, source/common/deblock.cpp,
7337 source/common/param.cpp, source/common/shortyuv.h,
7338 source/common/slice.cpp, source/common/slice.h,
7339 source/encoder/analysis.cpp, source/encoder/encoder.cpp,
7340 source/encoder/entropy.cpp, source/encoder/sao.cpp:
7341 replace g_rasterToPelX[g_zscanToRaster[idx]] by g_zscanToPelX[idx]
7344 2014-08-25 Steve Borho <steve@borho.org>
7346 * source/common/quant.cpp:
7350 2014-08-25 Aarthi Thirumalai <Aarthi Thirumalai>
7353 rc: don't read slicetypes from qpfile in 2nd pass.
7355 slicetype has to be taken from the stats file from prev pass.
7356 [5fe473327183] <stable>
7358 * source/encoder/ratecontrol.cpp:
7359 rc: write I/i slice in stats file based on whether openGop is
7361 [f0de8275ed4d] <stable>
7363 2014-08-23 Satoshi Nakagawa <nakagawa424@oki.com>
7365 * source/common/quant.cpp:
7367 [ad31cbb8c754] <stable>
7369 2014-08-23 Steve Borho <steve@borho.org>
7371 * source/encoder/sao.cpp:
7375 2014-08-22 Steve Borho <steve@borho.org>
7377 * source/encoder/sao.h:
7378 sao: remove unused m_qp member
7381 * source/encoder/sao.cpp:
7385 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
7386 source/encoder/framefilter.cpp, source/encoder/framefilter.h,
7387 source/encoder/sao.cpp, source/encoder/sao.h:
7388 sao: simplify entropy coder initialization [CHANGES OUTPUTS]
7390 Remove the hack from the HM that preserves fract_bits from the first
7391 row to all rows; it never made any sense and we don't pretend to be
7392 anywhere near close to bit accurate with the HM anymore.
7394 This commit removes the Entrppy coder in FrameFilter since it was
7395 only used by SAO and moves it into the SAO class. The startSaoEnc()
7396 method is removed entirely and another call to resetEntropy() (an
7397 expensive method) is replaced with a load of the frame encoder's
7401 * source/encoder/sao.cpp:
7402 sao: fix inf loop bounds
7405 * source/encoder/framefilter.cpp, source/encoder/sao.cpp:
7406 sao: fix MSVC warnings
7409 2014-08-21 Steve Borho <steve@borho.org>
7411 * source/encoder/sao.cpp:
7412 sao: minor logic simplifications and cleanups
7415 * source/encoder/sao.cpp, source/encoder/sao.h:
7416 sao: use typedefs to simplify multi-dimensional mallocs
7419 * source/encoder/sao.cpp:
7420 sao: sChroma should have been isChroma
7423 * source/encoder/sao.cpp:
7424 sao: handle malloc failures more cleanly
7427 * source/encoder/sao.cpp, source/encoder/sao.h:
7428 sao: rename shared table to m_tableBo
7431 * source/encoder/sao.cpp, source/encoder/sao.h:
7432 sao: share m_lumaTableBo with chroma
7435 * source/encoder/framefilter.cpp, source/encoder/sao.cpp,
7436 source/encoder/sao.h:
7437 sao: use checked mallocs, disable SAO if any mallocs fail
7440 * source/common/common.h:
7441 common: define a CHECKED_MALLOC_ZERO method to auto-reset allocated
7444 This is mostly useful when allocating buffers containing pointers,
7445 to ensure the pointers are safe to free regardless of later malloc
7449 * source/Lib/TLibCommon/TComPicYuv.h, source/encoder/sao.cpp,
7450 source/encoder/sao.h:
7451 sao: move getPicYuvAddr() to TComPicYuv and simplify
7454 * source/encoder/sao.h:
7455 sao: remove unused m_tmpYuv and an obsolete comment
7458 * source/encoder/sao.cpp, source/encoder/sao.h:
7459 sao: luma and chroma can share a clip table
7462 * source/encoder/sao.cpp:
7466 * source/encoder/sao.cpp, source/encoder/sao.h:
7467 sao: use more compile-time values
7470 * source/encoder/sao.cpp, source/encoder/sao.h:
7471 sao: we don't support different bit depths between luma and chroma
7474 * source/encoder/sao.cpp, source/encoder/sao.h:
7475 sao: remove vars which are dups of params
7478 * source/encoder/sao.cpp, source/encoder/sao.h:
7482 * source/encoder/encoder.cpp:
7486 * source/Lib/TLibEncoder/TEncSearch.cpp:
7490 * source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp:
7494 * source/encoder/sao.cpp, source/encoder/sao.h:
7495 sao: convertLevelRowCol2Idx did not need to be a member function
7498 * source/encoder/framefilter.cpp, source/encoder/sao.cpp,
7499 source/encoder/sao.h:
7500 sao: merge create/destroy methods
7503 * source/encoder/framefilter.cpp, source/encoder/framefilter.h,
7504 source/encoder/sao.cpp, source/encoder/sao.h:
7505 sao: use m_param directly for user-configurables
7508 * source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp,
7509 source/encoder/sao.cpp, source/encoder/sao.h:
7510 sao: cleanup member prefixes, remove createPicSaoInfo and endSaoEnc
7513 * source/Lib/TLibCommon/TComPicSym.cpp,
7514 source/Lib/TLibCommon/TComPicSym.h,
7515 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
7516 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
7517 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
7518 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
7519 source/common/CMakeLists.txt, source/common/common.h,
7520 source/encoder/CMakeLists.txt, source/encoder/dpb.cpp,
7521 source/encoder/entropy.cpp, source/encoder/frameencoder.cpp,
7522 source/encoder/frameencoder.h, source/encoder/framefilter.cpp,
7523 source/encoder/framefilter.h, source/encoder/sao.cpp,
7524 source/encoder/sao.h:
7525 pull SAO code into encoder/ and begin cleanup
7529 Added tag 1.3 for changeset c1e4fc0162c1
7530 [2e7d1569845e] <stable>
7532 * source/encoder/encoder.cpp:
7533 encoder: disable --cu-lossless until coding errors can be fixed
7535 [c1e4fc0162c1] [1.3] <stable>
7537 2014-08-21 Satoshi Nakagawa <nakagawa424@oki.com>
7539 * source/Lib/TLibCommon/CommonDef.h,
7540 source/Lib/TLibCommon/TComDataCU.cpp,
7541 source/Lib/TLibCommon/TComDataCU.h,
7542 source/Lib/TLibCommon/TComMotionInfo.h,
7543 source/Lib/TLibEncoder/TEncSearch.cpp,
7544 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/bitcost.h:
7545 simplify AMVPInfo to MV[2]
7548 2014-08-20 Steve Borho <steve@borho.org>
7550 * source/encoder/encoder.cpp:
7551 encoder: nit, remove obsolete comment
7554 * source/encoder/encoder.cpp:
7558 * source/encoder/encoder.cpp:
7559 encoder: do not allow scaling lists to be used with 4:4:4 color
7562 It causes hash mistakes
7563 [3badda1ceda6] <stable>
7565 * source/Lib/TLibEncoder/TEncSearch.cpp:
7569 * source/Lib/TLibEncoder/TEncSearch.cpp:
7573 * source/Lib/TLibEncoder/TEncSearch.cpp:
7574 search: do not skip intra tu 32x32 unless TU intra depth is deep
7577 This may not be the best workaround for the bug, and needs a proper
7579 [203c87c55bb3] <stable>
7581 2014-08-19 David T Yuen <dtyx265@gmail.com>
7583 * source/Lib/TLibEncoder/TEncSearch.cpp:
7584 Removed code that will never be executed.
7587 2014-08-19 Min Chen <chenm003@163.com>
7589 * source/encoder/frameencoder.cpp:
7590 fix single thread encode issue
7593 * source/encoder/entropy.cpp:
7594 cleanup: remove reduce condition check
7597 2014-08-19 Steve Borho <steve@borho.org>
7599 * source/encoder/frameencoder.cpp:
7603 * source/encoder/frameencoder.cpp:
7604 frameencoder: do not allocate noise reduction struct unless NR is
7607 This fixes output mismatch between asm / no-asm for 4:4:4 encodes.
7608 Why? I am not entirely sure yet, but this is an obvious bug fix.
7609 [c97a9a62bce8] <stable>
7611 2014-08-19 Deepthi Nandakumar <deepthi@multicorewareinc.com>
7613 * source/Lib/TLibEncoder/TEncSearch.cpp:
7617 * source/Lib/TLibEncoder/TEncSearch.cpp:
7618 search: cleanup variable names and lossless comments
7621 * source/encoder/encoder.cpp:
7625 * source/encoder/encoder.cpp:
7626 psy-rdoq: eliminate dependency between psy-rd, psy-rdoq and rdoq.
7628 RDOQ is turned on by default in rdLevels 4 and above. Psy-rdoq can
7629 be turned on if rdoq is enabled at that preset. Psy-rd can be turned
7630 on with or without rdoq/ psy-rdoq.
7631 [549c61d0436f] <stable>
7633 2014-08-18 Steve Borho <steve@borho.org>
7635 * source/encoder/encoder.cpp:
7636 param: correctly detect adaptive quant usage when checking --psnr
7637 [dca792ce9786] <stable>
7639 * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
7640 source/encoder/encoder.cpp, source/encoder/frameencoder.cpp:
7644 2014-08-18 Min Chen <chenm003@163.com>
7646 * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
7647 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
7648 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp:
7649 sao: move m_upBuff* to stack, fixes (#69)
7650 [c979b32c8b51] <stable>
7652 * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
7653 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h:
7654 cleanup: remove unused m_upBuff2
7655 [8320283a7fe0] <stable>
7657 2014-08-18 Steve Borho <steve@borho.org>
7659 * source/encoder/encoder.cpp, source/encoder/frameencoder.cpp:
7660 encoder: fix deadlocks/crashes when picture is a single CTU row
7662 1. if only one row per frame, disable WPP it is pointless 2. if only
7663 one row per frame, frame parallelism is (mostly) impossible 3. clamp
7664 rateControlUpdateStats() to be within row count range
7665 [eb2b3e34ea0d] <stable>
7667 * source/common/param.cpp:
7671 * source/common/param.cpp:
7673 [b8356365135e] <stable>
7675 2014-08-17 Steve Borho <steve@borho.org>
7677 * source/common/quant.cpp:
7678 quant: combine psy-rdoq scale and lambda into one variable
7680 Reduces the number of 64bit multiplies required per psy-value
7684 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/entropy.cpp,
7685 source/encoder/entropy.h:
7686 entropy: pass bIsLuma to estBit() instead of limited TextType range
7688 if the only options were TEXT_LUMA or TEXT_CHROMA, it is better to
7689 use a bool argument and avoid ambiguity about TEXT_CHROMA_U or
7693 * source/common/quant.cpp, source/encoder/entropy.cpp,
7694 source/encoder/entropy.h:
7695 entropy: simplify EstBitsSbac
7697 There was no reason for significantBits to be a different type than
7698 all the other fix15 bit costs. And NUM_QT_ROOT_CBF_CTX is 1
7701 2014-08-18 Steve Borho <steve@borho.org>
7703 * source/common/param.cpp:
7707 * source/encoder/encoder.cpp, source/encoder/encoder.h:
7708 encoder: remove m_maxCuDQPDepth, simplify dqp logic
7711 2014-08-18 Satoshi Nakagawa <nakagawa424@oki.com>
7713 * source/Lib/TLibCommon/TComDataCU.cpp,
7714 source/Lib/TLibCommon/TComDataCU.h,
7715 source/Lib/TLibCommon/TComPattern.cpp,
7716 source/Lib/TLibCommon/TComPicSym.cpp,
7717 source/Lib/TLibCommon/TComPicSym.h,
7718 source/Lib/TLibCommon/TComPicYuv.cpp,
7719 source/Lib/TLibCommon/TComPicYuv.h,
7720 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
7721 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
7722 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/deblock.cpp,
7723 source/common/deblock.h, source/common/frame.cpp,
7724 source/common/frame.h, source/common/param.cpp,
7725 source/common/slice.h, source/encoder/analysis.cpp,
7726 source/encoder/analysis.h, source/encoder/cturow.cpp,
7727 source/encoder/cturow.h, source/encoder/encoder.cpp,
7728 source/encoder/entropy.cpp, source/encoder/frameencoder.cpp:
7729 refine depth related.
7731 maxCUDepth: CU depth maxFullDepth: CU+TU or CU+PU depth unitSize:
7735 2014-08-18 Steve Borho <steve@borho.org>
7738 cli: fix help syntax
7739 [6a1b41049f71] <stable>
7741 * source/common/param.cpp:
7742 param: add psy-rd and psy-rdoq to param2string (for info SEI and
7744 [0e4558e42ccc] <stable>
7747 cli: update psy-rdoq rangw in CLI help
7748 [cda8e5c21a9b] <stable>
7750 2014-08-16 Steve Borho <steve@borho.org>
7752 * source/encoder/cturow.h, source/encoder/entropy.h,
7753 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
7754 ctu: optimize away per-row bitstream coders, no output changes
7756 They were really only being used to hold the proper initial state
7757 for each row. This avoids an entropy load/save per CU in
7758 encodeSlice() and while I was in the area I removed another pile of
7759 resetEntropy() calls. The initial slice entropy state is calculated
7760 once and then kept in the frame encoder for all future uses.
7763 * source/encoder/analysis.cpp, source/encoder/analysis.h,
7764 source/encoder/cturow.cpp, source/encoder/entropy.cpp,
7765 source/encoder/entropy.h, source/encoder/frameencoder.cpp:
7766 analysis: move encodeCU() methods and friends to Entropy
7768 This function only encodes a fully finished CTU; it is performing no
7769 analysis and it needs none of the features or members of the
7770 Analysis class. It is much more clear as a member of the Entropy
7773 Note: the way bEncodeDQP is communicated is a huge mess and needs to
7774 be cleaned up soon. And finishCU() can also likely be hugely
7778 2014-08-18 Deepthi Nandakumar <deepthi@multicorewareinc.com>
7783 * source/encoder/analysis.cpp:
7784 analysis: missing braces caused a bug in CABAC context save for rd=2
7785 [5d5a4c09182d] <stable>
7787 2014-08-18 Tom Vaughan <tom.vaughan@multicorewareinc.com>
7789 * doc/reST/introduction.rst:
7790 introduction.rst edited online with Bitbucket
7793 * doc/reST/introduction.rst:
7794 introduction.rst edited online with Bitbucket - added link to MPEG-
7798 2014-08-16 Steve Borho <steve@borho.org>
7801 rest: fix typo, document default psy-rdoq value
7802 [87400d5c90aa] <stable>
7804 * build/regression/01build-and-smoke-test.bat,
7805 build/regression/02perftest.bat, build/regression/commandlines-
7806 example.txt, build/regression/config-example.txt, build/regression
7807 /email-csv.py, build/regression/run.bat,
7808 source/Lib/TLibCommon/TComLoopFilter.cpp,
7809 source/Lib/TLibCommon/TComLoopFilter.h,
7810 source/Lib/TLibCommon/TComPrediction.cpp,
7811 source/Lib/TLibCommon/TComPrediction.h,
7812 source/Lib/TLibCommon/TComSlice.cpp,
7813 source/Lib/TLibCommon/TComSlice.h,
7814 source/Lib/TLibCommon/TComTrQuant.cpp,
7815 source/Lib/TLibCommon/TComTrQuant.h,
7816 source/Lib/TLibEncoder/SyntaxElementWriter.cpp,
7817 source/Lib/TLibEncoder/SyntaxElementWriter.h,
7818 source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp,
7819 source/Lib/TLibEncoder/TEncBinCoderCABAC.h,
7820 source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
7821 source/Lib/TLibEncoder/TEncEntropy.cpp,
7822 source/Lib/TLibEncoder/TEncEntropy.h,
7823 source/Lib/TLibEncoder/TEncSbac.cpp,
7824 source/Lib/TLibEncoder/TEncSbac.h, source/encoder/compress.cpp:
7825 merge with default, feature freeze for 1.3
7826 [24a79f4d6f72] <stable>
7828 * doc/reST/cli.rst, doc/reST/presets.rst, source/common/param.cpp,
7830 param: enable --fast-intra for all fast modes and turbo first-pass,
7834 * source/encoder/slicetype.cpp:
7835 slicetype: use fast intra scan unconditionally in lookahead
7837 We don't want the lookahead output to be variable depending on
7838 --fast-intra since this would make two-pass turbo mode more
7842 2014-08-15 Steve Borho <steve@borho.org>
7845 rest: improve documentation for psycho-visual options
7848 2014-08-16 Steve Borho <steve@borho.org>
7850 * source/encoder/analysis.cpp:
7854 * source/common/quant.cpp, source/common/quant.h,
7855 source/encoder/cturow.cpp, source/encoder/frameencoder.cpp:
7856 quant: set lambdas at the same time quant QP is configured
7859 2014-08-15 Steve Borho <steve@borho.org>
7861 * source/common/param.cpp:
7862 param: re-enable psy-rdoq range check for [0..10], print with two
7866 * source/encoder/rdcost.h:
7867 rdcost: add arbitray scale to make --psy-rd 0..2 range give
7871 * source/common/quant.cpp, source/common/quant.h,
7872 source/encoder/frameencoder.cpp:
7873 quant: scale psy-rdoq by lambda
7875 Using L1 lambda in RDO is unorthodox, but we already do the same
7876 thing with psy-rd energy and it seems to work decently well here
7877 weighting the reconstructed DCT coeff against the RD cost in psy-
7880 The goal is for psy-rdoq 1 to be a safe and sane default
7883 2014-08-14 Steve Borho <steve@borho.org>
7885 * source/encoder/analysis.cpp:
7886 analysis: avoid MSVC uninitialized variable warning
7889 * source/common/quant.cpp:
7890 quant: use optimized primitive for transquant bypass in
7894 * doc/reST/cli.rst, source/common/param.cpp:
7895 param: don't allow turbo mode to increase rd-level, improve docs
7898 * source/encoder/analysis.cpp:
7899 analysis: use macro and for-loop to simplify fast-intra
7901 this changes behavior a bit; it's trying both +/-1 offsets instead
7902 of just one. and it has to do one extra check at the end since mode
7903 34 isn't reached by the other previous loops
7906 2014-08-14 David T Yuen <dtyx265@gmail.com>
7908 * source/encoder/analysis.cpp:
7909 Added fast intra search option to Analysis::checkIntraInInter_rd0_4
7912 2014-08-14 Steve Borho <steve@borho.org>
7914 * source/encoder/analysis.cpp:
7918 * source/common/x86/asm-primitives.cpp:
7919 asm: fix HIGH_BIT_DEPTH build again
7922 * source/encoder/analysis.cpp:
7923 analysis: white-space nits, possibly exposing a logic bug
7926 * source/Lib/TLibCommon/TComWeightPrediction.cpp,
7927 source/Lib/TLibCommon/TComYuv.cpp:
7928 remove predict.h includes from TLibCommon/
7931 * source/common/quant.cpp:
7932 quant: + has higher precedence than ?; use parens to fix
7936 2014-08-14 Satoshi Nakagawa <nakagawa424@oki.com>
7938 * source/Lib/TLibCommon/TComPattern.cpp,
7939 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
7940 source/common/common.h, source/common/intrapred.cpp,
7941 source/common/x86/asm-primitives.cpp, source/encoder/predict.cpp:
7942 replace IntraFilterType[][] to IntraFilterFlags[] (aboid *35)
7945 2014-08-14 Deepthi Nandakumar <deepthi@multicorewareinc.com>
7947 * source/encoder/slicetype.cpp:
7948 slicetype: initialise lowmode to 4.
7951 2014-08-13 Steve Borho <steve@borho.org>
7953 * source/common/common.h, source/common/x86/asm-primitives.cpp,
7954 source/common/x86/pixel-util.h, source/encoder/predict.h:
7955 fix HIGH_BIT_DEPTH compile on Windows
7957 something included by predict.h breaks pixel-util.h for MSVC; so
7958 move the filter table to common.h. It wasn't quite proper for asm-
7959 primitives.cpp to include a header from encoder/ anyway.
7962 * source/common/quant.cpp:
7966 * source/common/quant.cpp:
7967 quant: update comment for UNQUANT macro
7970 * source/common/quant.cpp:
7971 quant: simplify UNQUANT() variables
7974 2014-08-13 Deepthi Nandakumar <deepthi@multicorewareinc.com>
7976 * source/common/quant.cpp, source/common/scalinglist.cpp:
7977 quant: remove extra upshift by 4 in s_invQuantScales
7979 Adding 4 to unQuantPer was a bug, since unQuantScale was already
7983 2014-08-13 Min Chen <chenm003@163.com>
7985 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/quant.cpp,
7986 source/common/quant.h, source/encoder/cturow.cpp,
7987 source/encoder/entropy.h, source/encoder/frameencoder.cpp:
7988 move m_estBitsSbac from Quant to Entropy
7991 * source/common/common.h, source/common/dct.cpp,
7992 source/common/primitives.h, source/common/quant.cpp,
7993 source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm,
7994 source/common/x86/dct8.h, source/encoder/frameencoder.cpp,
7995 source/encoder/frameencoder.h:
7996 asm: integrate denoise_dct, malloc NoiseReduction for alignment
7999 2014-08-13 Steve Borho <steve@borho.org>
8001 * source/common/scalinglist.cpp, source/common/scalinglist.h:
8002 scaling: remove array of rarely used trivially calculated values
8005 * source/common/scalinglist.cpp, source/common/scalinglist.h,
8006 source/encoder/entropy.cpp:
8007 scaling: remove s_numListsAtSize[], it is 6 at every size
8010 * source/encoder/predict.cpp, source/encoder/predict.h:
8014 * source/encoder/predict.cpp:
8015 predict: prevent MSVC warning about int to bool conversion
8018 2014-08-13 Aarthi Thirumalai <Aarthi Thirumalai>
8020 * source/Lib/TLibEncoder/TEncSearch.cpp,
8021 source/Lib/TLibEncoder/TEncSearch.h,
8022 source/encoder/frameencoder.cpp:
8023 refactor: cleanup setting up of lambda
8025 move initialising qp and lambda manipulations in one place. remove
8026 TEncSearch::setQP - misleading function name.
8029 * doc/reST/cli.rst, source/x265.cpp:
8033 * source/encoder/frameencoder.cpp:
8034 rc: bug fix - m_avgQpAq can be from 0-69.
8036 It is already set within RateControl
8039 2014-08-13 Steve Borho <steve@borho.org>
8042 cli: free param structures on early-outs
8045 * source/common/x86/asm-primitives.cpp:
8046 asm: fix HIGH_BIT_DEPTH link problems
8049 * source/encoder/slicetype.cpp:
8050 slicetype: adjust variable scoping to avoid GCC warnings
8053 * source/encoder/slicetype.cpp:
8057 * source/CMakeLists.txt:
8058 cmake: bump build number
8061 2014-08-12 David T Yuen <dtyx265@gmail.com>
8063 * source/common/param.cpp, source/encoder/slicetype.cpp,
8064 source/encoder/slicetype.h, source/x265.cpp, source/x265.h:
8065 Added fast intra search option
8067 This version calls intra_pred_allangs to create the predictions then
8068 the faster search with satd
8071 * source/Lib/TLibCommon/TComPattern.cpp, source/common/intrapred.cpp,
8072 source/encoder/predict.cpp, source/encoder/predict.h:
8073 Moved IntraFilterType from intrapred.cpp to predict.h to make it
8076 and replace Predict::filteringIntraReferenceSamples
8079 2014-08-12 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
8081 * source/encoder/analysis.cpp:
8082 analysis: check for proper cost
8084 Throws error when psyrd is enabled since cost is stored in
8085 m_totalPsyCost and m_totalRDCost has MAX_INT64
8088 2014-08-12 Steve Borho <steve@borho.org>
8090 * source/common/quant.h:
8091 quant: initialize qp to impossible value so first set always works
8093 A bug spotted by valgrind
8096 2014-08-12 Satoshi Nakagawa <nakagawa424@oki.com>
8098 * source/Lib/TLibCommon/TComDataCU.cpp,
8099 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
8100 source/common/param.cpp, source/encoder/encoder.cpp:
8101 replace g_convertToBit[] to g_log2Size[] const table
8104 2014-08-11 Min Chen <chenm003@163.com>
8106 * source/common/x86/asm-primitives.cpp,
8107 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
8108 asm: AVX2 version cvt32to16_shl
8111 2014-08-10 Satoshi Nakagawa <nakagawa424@oki.com>
8113 * source/common/dct.cpp, source/common/primitives.h,
8114 source/common/quant.cpp, source/common/x86/pixel-util.h,
8115 source/common/x86/pixel-util8.asm, source/test/mbdstharness.cpp:
8116 quant: remove scaledCoeff from nquant()
8119 2014-08-10 Aarthi Thirumalai <Aarthi Thirumalai>
8121 * source/encoder/ratecontrol.cpp:
8122 rc: nits; add LF in frame stats of 2 pass
8125 2014-08-10 Steve Borho <steve@borho.org>
8127 * source/encoder/level.cpp:
8128 level: signal profile/level NONE if non-compliant configuration is
8131 Once you get above a certain resolution, the CTU size must be at
8132 least 32. There is no level that supports a smaller CTU, so signal
8133 level NONE. It's my understanding that you cannot signal a profile
8134 if the level is NONE, so we reset profile to NONE as well.
8136 The same is true if NumPocTotalCurr is greater than 8; there are no
8137 levels which support values that high. Instead of signaling the
8138 closest level, we should signal profile/level NONE
8141 2014-08-09 Steve Borho <steve@borho.org>
8143 * source/common/quant.cpp:
8144 quant: improve flow and comments for last non-zero refinement
8147 * source/common/quant.cpp:
8148 quant: comment improvements
8151 * source/common/quant.cpp, source/common/quant.h:
8152 quant: remove floating point operations from RDOQ [CHANGES OUTPUTS]
8154 The output changes are minor. On modern CPUs the performance benefit
8155 of this change is negligable since SSE double operations are similar
8156 in performance to int64 operations. As a future optimization, we
8157 need to figure out how to multiply lambda2 (FIX8 24bits) by signal
8158 cost (FIX15 24bits) using 32-bit integers since 32bit multiply is
8159 significantly cheaper than 64bit integer multiply.
8161 Similarly, unquantAbsLevel can be larger than 16bits so multiplation
8162 is done with int64. Note that we use signed int64 because with psy-
8163 rdoq the costs could go negative.
8166 * source/common/quant.cpp, source/common/quant.h:
8167 quant: cleanup chroma QP function
8169 With a unique function name, protected access, and only called from
8170 one location, the ttype check could be removed.
8173 * source/common/quant.h:
8174 quant: header cleanups, no functional change
8177 * source/common/quant.cpp:
8178 quant: use standard rd cost formula for sign-hiding [CHANGES
8181 The previous RD formula was simply inexplicable, though it did work
8184 Old approach: deltaU[blkPos] = (scaledCoeff[blkPos] - ((int)level <<
8185 qbits)) >> (qbits - 8); int64_t invQuant =
8186 ScalingList::s_invQuantScales[rem] << per; int64_t rdFactor =
8187 (int64_t)((invQuant * invQuant) / (lambda2 * 16) + 0.5); costUp =
8188 rdFactor * (-deltaU[blkPos]) + rateIncUp[blkPos];
8191 New approach: int d = abs(signCoef) - UNQUANT(absLevel + 1); costUp
8192 = (((uint64_t)(d * d)) << scaleBits) + lambda2 * rateIncUp[blkPos];
8194 Using this approach the results are nearly the same (they appear to
8195 be slightly better) but now we can probably add psycho-visual
8196 tunings to the sign hiding feature
8199 * source/common/quant.cpp:
8200 quant: do not check CG bitmap for implied-present coeff groups
8203 * source/common/quant.cpp:
8204 quant: reduce conditional expression depths (mostly for readability)
8207 2014-08-08 Steve Borho <steve@borho.org>
8209 * source/common/quant.cpp:
8210 quant: avoid an extra shift by adjusting the unquant coeff shift
8213 * source/common/quant.cpp:
8214 quant: improve variable names and comments (no behavior change)
8217 * source/encoder/entropy.cpp:
8218 entropy: simplify sign hide flag
8221 2014-08-07 Min Chen <chenm003@163.com>
8223 * source/common/pixel.cpp, source/common/primitives.h,
8224 source/common/quant.cpp, source/common/x86/asm-primitives.cpp,
8225 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h,
8226 source/test/pixelharness.cpp, source/test/pixelharness.h:
8227 asm: cvt32to16_shl[*] for TSkip
8230 * source/common/pixel.cpp, source/common/primitives.h,
8231 source/common/quant.cpp, source/common/x86/asm-primitives.cpp,
8232 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h,
8233 source/test/pixelharness.cpp, source/test/pixelharness.h:
8234 asm: cvt16to32_shr[*] for TSkip
8237 2014-08-08 Satoshi Nakagawa <nakagawa424@oki.com>
8239 * source/common/quant.cpp:
8240 denoise: fix numCoeff (bug from 42b1d7c17510)
8243 2014-08-07 Steve Borho <steve@borho.org>
8245 * source/common/x86/asm-primitives.cpp, source/test/testbench.cpp:
8246 main10: create a hybrid all-angs primitve for 16bpp compiles
8248 The all-angs primitive is highly optimized assembly code that avoids
8249 a lot of redundant work. The all-angs C ref is horribly slow, doing
8250 redundant work to mimic the output of the all-angs assembly code.
8251 Since we have no high bit depth assembly for these functions, we'll
8252 use a shim C function that works very similar to the C ref but it at
8253 least uses optimized primitives.
8255 intra_allangs4x4 3.64x 6619.54 24097.30 intra_allangs8x8 5.66x
8256 13722.49 77694.97 intra_allangs32x32 4.57x 246943.81 1129159.50
8258 before: encoded 1253 frames in 104.37s (12.01 fps), 366.08 kb/s,
8259 SSIM Mean Y: 0.9889624 (19.571 dB)
8261 after: encoded 1253 frames in 95.62s (13.10 fps), 366.08 kb/s, SSIM
8262 Mean Y: 0.9889624 (19.571 dB)
8265 * source/encoder/entropy.cpp:
8266 entropy: remove implicit memset from constructor
8268 Before we do further refactors, we want Entropy instances allocated
8269 on the stack to not perform any needless initialization work
8272 * source/encoder/entropy.cpp, source/encoder/entropy.h:
8273 entropy: pad size of context array to 32 * 5 bytes
8276 * source/Lib/TLibCommon/ContextTables.h, source/encoder/entropy.cpp,
8277 source/encoder/entropy.h:
8278 entropy: remove ContextModel structure, use uint8_t directly
8281 * source/Lib/TLibCommon/ContextTables.h, source/encoder/entropy.cpp:
8282 entropy: remove bBinsCoded from ContextModel (no more users)
8285 * source/common/slice.h, source/encoder/encoder.cpp,
8286 source/encoder/entropy.cpp, source/encoder/entropy.h,
8287 source/encoder/frameencoder.cpp:
8288 entropy: disable signaling of CABAC init state
8290 This flag, which was already disabled when frame parallelism is in
8291 use (which is nearly always) was of limited utility. It did not
8292 improve compression efficiency by any measurable amount, and it was
8293 expensive to compute. But the quality which made it expendable was
8294 that it was the only user of the bBinsCoded flag in the
8295 ContextModel; forcing us to copy twice as much data every time we
8298 With this feature removed, the context model can be reduced to a
8299 single uint8_t state variable.
8302 * source/encoder/frameencoder.cpp:
8306 * source/encoder/frameencoder.cpp:
8307 frameencoder: avoid redundant calls to resetEntropy()
8309 All of the entropy coders need to be reset to the same state at the
8310 start of the frame's analysis. There is no point in re-calculating
8311 this initial state repeatedly for each row
8314 * source/common/quant.cpp:
8315 quant: avoid runtime check of transform shift size
8318 2014-08-07 Ashok Kumar Mishra <ashok@multicorewareinc.com>
8320 * source/encoder/analysis.cpp:
8324 2014-08-07 Aarthi Thirumalai <Aarthi Thirumalai>
8326 * source/common/param.cpp:
8327 rc: set rdlevel to 2 in fast first pass for multipass encode.
8329 increases speed of the first pass by over 70% in the slower presets
8330 with almost the same quality in the final pass.
8333 2014-08-07 Satoshi Nakagawa <nakagawa424@oki.com>
8335 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
8336 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp,
8337 source/common/primitives.cpp, source/common/primitives.h,
8338 source/common/shortyuv.cpp, source/common/x86/asm-primitives.cpp,
8339 source/common/x86/ipfilter16.asm, source/common/x86/pixel-util.h,
8340 source/common/x86/pixel-util8.asm, source/common/x86/pixeladd8.asm,
8341 source/common/x86/x86util.asm, source/encoder/analysis.cpp,
8342 source/test/pixelharness.cpp:
8343 asm: cleanup unused sub_ps and add_ps
8345 sub_ps and add_ps are used by CU or TU level, not PU level.
8348 2014-08-07 Steve Borho <steve@borho.org>
8350 * source/Lib/TLibCommon/ContextTables.h, source/encoder/entropy.cpp:
8351 entropy: remove m_ prefix from ContextModel.state, other nits
8354 2014-08-06 Steve Borho <steve@borho.org>
8356 * source/common/param.cpp:
8357 param: log noise reduction use/strength
8360 * source/Lib/TLibEncoder/TEncSearch.cpp,
8361 source/Lib/TLibEncoder/TEncSearch.h, source/common/slice.h,
8362 source/encoder/frameencoder.cpp:
8363 refactor: move motion reference pointers from TEncSearch to Slice
8365 The actual storage for the MotionReference instances lives in the
8366 FrameEncoder, to save memory, but we don't want the analysis code to
8367 be aware of the FE so we give it a pointer to this array. Having
8368 that pointer live in TEncSearch forces us to update this pointer
8369 each time a worker thread starts a new job.
8371 Having the pointer in Slice means we only have to set it once, when
8372 the slice first starts to be encoded. And having this pointer next
8373 to the RPS data in the slice header makes this more coherent.
8376 * source/common/common.h, source/common/quant.cpp,
8377 source/encoder/frameencoder.cpp:
8378 denoise: further cleanups
8380 x264 used buffer pointers so that they could swap between normal
8381 denoise and "emergency denoise" when the QP became very high. We do
8382 not have an emergency denoise and thus we don't need these pointers
8383 at this time. This simplifies initialization and update logic.
8386 2014-08-06 Praveen Tiwari <Praveen Tiwari>
8388 * source/common/common.h, source/encoder/frameencoder.cpp:
8389 noise reduction, cleaned unused buffer space
8392 * source/common/quant.cpp, source/encoder/frameencoder.cpp:
8393 noise reduction, use all eight categories of transform for inter
8397 2014-08-06 Aarthi Thirumalai <Aarthi Thirumalai>
8399 * source/encoder/ratecontrol.cpp:
8403 2014-08-05 Min Chen <chenm003@163.com>
8405 * source/common/x86/asm-primitives.cpp,
8406 source/common/x86/blockcopy8.asm, source/common/x86/const-a.asm:
8407 asm: cvt16to32_cnt[32x32] for TSkip
8410 2014-08-05 Satoshi Nakagawa <nakagawa424@oki.com>
8412 * source/common/pixel.cpp, source/common/primitives.h,
8413 source/common/x86/asm-primitives.cpp,
8414 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h,
8415 source/common/x86/ipfilter16.asm, source/common/x86/ipfilter8.asm,
8416 source/common/x86/ipfilter8.h, source/common/x86/mc-a.asm,
8417 source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm,
8418 source/common/x86/pixel.h, source/common/x86/pixeladd8.asm,
8419 source/test/ipfilterharness.cpp, source/test/pixelharness.cpp,
8420 source/test/testbench.cpp, source/test/testharness.h:
8424 2014-08-05 Santhoshini Sekar <santhoshini@multicorewareinc.com>
8426 * source/Lib/TLibCommon/TComPattern.cpp,
8427 source/Lib/TLibCommon/TComPattern.h:
8428 TComPattern: remove redundant functions used for CIP
8431 2014-08-05 Steve Borho <steve@borho.org>
8433 * source/Lib/TLibEncoder/TEncSearch.cpp:
8434 me: clip motion search area to signaled motion vector length limits
8437 2014-08-04 Steve Borho <steve@borho.org>
8439 * source/common/cpu.cpp, source/common/x86/const-a.asm,
8440 source/common/x86/cpu-a.asm, source/common/x86/mc-a.asm,
8441 source/common/x86/mc-a2.asm, source/common/x86/pixel-a.asm,
8442 source/common/x86/pixel.h, source/common/x86/sad-a.asm,
8443 source/common/x86/ssd-a.asm, source/common/x86/x86inc.asm:
8444 asm: asm header updates
8447 2014-08-04 Min Chen <chenm003@163.com>
8449 * source/common/x86/asm-primitives.cpp,
8450 source/common/x86/blockcopy8.asm, source/common/x86/const-a.asm:
8451 asm: cvt16to32_cnt[16x16] for TSkip
8454 2014-08-04 Steve Borho <steve@borho.org>
8456 * source/common/quant.cpp, source/common/scalinglist.cpp,
8457 source/common/scalinglist.h:
8458 quant: change how RDOQ measures distortion [CHANGES OUTPUTS]
8460 RDOQ, as it was written in the HM, expects scaled level values to be
8461 output by quant; these are the output levels multiplied by the
8462 quantizing coeffificient but without the rounding factor and without
8463 the downshift. It would then measure distortion as the difference
8464 between this scaled level and level << qbits (a rough unquant). To
8465 make this math work, it was pre-calculating an error scale factor
8466 (per block position, since the quantization coefficients can vary)
8467 which divided the result by the squared scale factor and upshifting
8468 to simultaneously account for the FIX15 nature of the signaling
8469 costs and the uniform scaling of the forward transform. To roughly
8472 errScale = (1 << (15 - 2 * transformShift)) / (quantCoeff[i] *
8473 quantCoeff[i]) levelScaled = level * quantCoeff[i] distortion =
8474 levelScaled - (level << qbits); cost = distortion * distortion *
8475 errScale + lambda2 * bitsFix15
8477 It was forced to use floating point math for the errScale and
8478 distortion calculations, and thus did not bother with fixed point
8481 This commit changes the distortion measurement to be the difference
8482 between the original (pre-quantization) DCT coefficient and the
8485 unquantAbsLevel = (level * quantCoeff[i] + pad) >> shift;
8486 distortion = unquantAbsLevel - abs(signCoef); distScale = 1 << (15 -
8487 2 * transformShift); cost = distortion * distortion << distScale +
8490 Note that the same scale factor is still required to account for the
8491 FIX15 bit cost and the forward DCT scale but now it is a simple
8494 This commit does not change the data types; that will be a later
8495 commit once the dynamic ranges have been properly evaluated. And
8496 deltaU[], used by sign hiding, is left using the scaled level cost
8500 * source/common/quant.cpp:
8501 psy-rdoq: fix unquant shift factors
8503 dequant coefficients are made with s_invQuantScales[rem] << 4, so to
8504 perform an unquant we must remove those four bits from dequantCoeff
8507 * source/common/quant.cpp:
8508 quant: remove TODO comment
8510 Yes, there is a reason to check maxAbsLevel < 3 here, diffLevel
8511 below can only be 0, 1, or 2.
8514 2014-08-01 Aarthi Thirumalai <Aarthi Thirumalai>
8516 * doc/reST/cli.rst, source/CMakeLists.txt, source/common/param.cpp,
8517 source/common/param.h, source/encoder/api.cpp, source/x265.cpp,
8519 rc: add slow first pass as option. set turbo first pass as default
8523 2014-08-04 Santhoshini Sekar <santhoshini@multicorewareinc.com>
8525 * source/encoder/encoder.cpp:
8526 bugfix: disable aq only when both aq-strength and cu-tree is off
8528 AQ can be on when cutree is on even if aq-strength is 0.Do not force
8529 aq to be off whenever aq strength is 0.
8532 2014-08-04 Steve Borho <steve@borho.org>
8534 * source/common/quant.cpp:
8535 psy-rdoq: include psy-cost in uncoded coefficient distortion
8537 Without this adjustment, uncoded coefficients were possibly being
8538 penalized over coded ones with less psy value.
8541 2014-08-03 Steve Borho <steve@borho.org>
8543 * source/test/pixelharness.cpp:
8544 pixelharness: fix MSVC warning about intptr_t conversion to int
8547 * source/common/quant.cpp:
8551 * source/encoder/entropy.cpp:
8552 entropy: cleanup calcCost, add EMMS for float safety
8555 * source/common/quant.cpp:
8556 quant: assign a signal cost of zero to zero coeff after lastNZ
8558 This stack variable was uninitialized otherwised, and could have
8559 been used during the optimization of lastNZ
8562 * source/common/quant.cpp:
8563 quant: rdStats -> cgRdStats
8566 * source/common/quant.cpp:
8567 quant: cleanup coeff group zero-check code
8570 * source/common/quant.cpp:
8571 quant: sign hide nits
8574 * source/common/quant.cpp:
8578 * source/common/quant.cpp, source/common/quant.h:
8579 quant: don't pass member variable to class method
8582 * source/common/quant.cpp, source/common/quant.h:
8583 quant: inline the quant method, only called from transformNxN
8586 * source/common/quant.cpp, source/common/quant.h:
8587 quant: disallow psy-rdoq if transformSkip was used
8589 psy-rdoq is not possible without a transform. Or said another way,
8590 we would need a different psy-rdoq approach for transform skip
8593 * source/common/quant.cpp:
8597 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/quant.cpp,
8598 source/common/quant.h:
8599 quant: remove curUseRDOQ argument from transformNxN, always true
8602 * source/Lib/TLibEncoder/TEncSearch.cpp,
8603 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/analysis.cpp:
8604 search: remove curUseRDOQ arguments from two more methods
8606 residualTransformQuantInter and xEstimateResidualQT were always
8607 called with curUseRDOQ = true, and the flag was never changed
8610 * source/Lib/TLibEncoder/TEncSearch.cpp:
8611 search: hard-code curUseRDOQ
8614 * source/Lib/TLibEncoder/TEncSearch.cpp,
8615 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/analysis.cpp:
8616 search: remove curUseRDOQ argument from encodeResAndCalcRdInterCU,
8620 * source/common/quant.cpp, source/common/quant.h:
8621 quant: hoist IEP_RATE out of getICRateCost
8624 2014-08-01 Min Chen <chenm003@163.com>
8626 * source/common/x86/asm-primitives.cpp,
8627 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h,
8628 source/common/x86/const-a.asm:
8629 asm: cvt16to32_cnt[8x8] for TSkip
8632 * source/common/dct.cpp, source/common/primitives.h,
8633 source/common/quant.cpp, source/common/x86/asm-primitives.cpp,
8634 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h,
8635 source/test/pixelharness.cpp, source/test/pixelharness.h:
8636 asm: cvt16to32_cnt[4x4] for TSkip
8639 * source/common/x86/x86inc.asm:
8640 update header and support Intel IACA marker
8643 2014-08-02 Steve Borho <steve@borho.org>
8645 * source/common/quant.cpp:
8646 quant: change lastCG into a bool, use isOne flag to avoid abs()
8650 * source/common/quant.cpp:
8651 quant: consistent comment style, improve comments
8654 * source/common/quant.cpp:
8655 quant: levelDouble -> levelScaled
8657 This always confused the heck out of me. The level was not doubled,
8658 it was not a double, and it wasn't squared. It was just the level
8659 scaled by the quant scale factor
8662 * source/common/quant.cpp:
8663 quant: rename sigCost to codedSigBits, comment nit
8666 * source/common/quant.cpp:
8667 quant: RDO_CODED_LEVEL macro can now be inlined for easier debugging
8670 * source/common/quant.cpp:
8671 quant: re-order rdoq logic so only one RDO_CODED_LEVEL() call is
8675 2014-08-01 Steve Borho <steve@borho.org>
8677 * source/common/quant.cpp:
8678 quant: more readability nits - no output changes
8681 * source/common/quant.cpp:
8682 quant: improve comments for trailing zero coeff
8685 * source/common/quant.cpp:
8686 quant: remove redundant level intialization
8689 * source/common/quant.cpp:
8690 quant: blockUncodedCost -> totalUncodedCost, improve comments
8693 * source/common/quant.cpp:
8694 quant: correct rounding factor for unquant
8697 * source/common/quant.cpp:
8698 quant: clarify last-nz optimization loop
8701 * source/common/quant.cpp:
8702 quant: rename costCoeff0 to costUncoded, add docs
8705 * source/common/quant.cpp:
8706 quant: support scaling lists in psy-rdoq
8709 * source/common/quant.h:
8710 quant: make IEP_RATE an anonymous enum, it doesn't need storage
8713 * source/common/quant.cpp, source/common/quant.h:
8714 quant: m_lambda2 no longer needs to be a member variable
8716 it is only used in rdoQuant() and can be declared on the stack
8719 * source/common/quant.cpp, source/common/quant.h:
8720 quant: convert getCodedLevel() into a macro, remove m_transformShift
8724 * source/common/quant.cpp:
8725 quant: simplify minAbsLevel
8728 * source/common/quant.cpp:
8729 quant: hoist some calculations out of the loop
8732 * source/common/quant.cpp:
8733 quant: delay err3, err4 calculation until/if necessary
8736 * source/common/quant.cpp:
8737 quant: apply scale factor in just one place
8740 * source/encoder/dpb.cpp:
8741 dpb: cleanup decodingRefreshMarking()
8744 * source/common/slice.h, source/encoder/dpb.cpp:
8745 dpb: remove checks for slice types we do not emit
8748 * source/encoder/dpb.cpp:
8752 * source/encoder/dpb.cpp:
8753 dpb: getNalUnitType() cannot return NAL_UNIT_CODED_SLICE_IDR_N_LP
8756 * source/encoder/dpb.cpp:
8757 dpb: remove redundant call to getNalUnitType(), output will not
8761 2014-08-01 Aarthi Thirumalai <Aarthi Thirumalai>
8763 * source/encoder/ratecontrol.cpp:
8764 rc: enable abr reset in the first pass of two pass encode.
8766 observe this improves second pass results in ultrafast presets for
8770 2014-08-01 Santhoshini Sekar <santhoshini@multicorewareinc.com>
8772 * source/Lib/TLibEncoder/TEncSearch.cpp,
8773 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/predict.cpp,
8774 source/encoder/predict.h:
8775 cleanup: move m_predYuv and m_predTempYuv from predict to TEncSearch
8778 2014-08-01 Deepthi Nandakumar <deepthi@multicorewareinc.com>
8780 * source/encoder/predict.h:
8781 predict: whitespace nits
8784 2014-07-31 Santhoshini Sekar <santhoshini@multicorewareinc.com>
8786 * source/common/lowres.cpp, source/common/lowres.h,
8787 source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp:
8788 rc: update vbv for all b frames
8790 HEVC is complex (and slow) enough that we can afford to update/plan
8791 the VBV buffer states for all frames, not just I and P. The leads to
8792 smoother rate control, particularly when there are large stretches
8793 of B frames, and less (over) compensation is necessary for P frames.
8796 2014-07-31 Deepthi Nandakumar <deepthi@multicorewareinc.com>
8798 * source/encoder/predict.h:
8799 predict: nits, cleanup, add TODO comments
8802 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/predict.cpp,
8803 source/encoder/predict.h:
8804 predict: save clipped MVs
8807 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp,
8808 source/encoder/predict.cpp, source/encoder/predict.h:
8809 predict: prepare motionCompensation sets base class fields
8812 2014-07-31 Steve Borho <steve@borho.org>
8814 * source/encoder/dpb.cpp:
8815 dpb: fix picture re-use bug introduced in bc53f6dcda7f
8818 2014-07-30 Steve Borho <steve@borho.org>
8820 * source/encoder/entropy.cpp, source/encoder/entropy.h:
8821 entropy: remove unused flush function
8824 * source/encoder/entropy.cpp:
8825 entropy: remove redundant !isIntra() check
8828 * source/common/quant.cpp:
8832 * source/common/quant.cpp, source/common/quant.h:
8833 quant: use x264 style lambda naming scheme
8836 2014-07-31 Steve Borho <steve@borho.org>
8838 * source/encoder/dpb.cpp, source/encoder/dpb.h:
8839 dpb: cleanup prepareEncode()
8842 2014-07-30 Steve Borho <steve@borho.org>
8844 * source/encoder/rdcost.h:
8845 rdcost: settle on x264 style lambda naming scheme
8848 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/rdcost.h:
8849 rdcost: change input type of setC*DistortionWeight to uint16_t
8851 the inputs were shorts, converted to doubles, passed to the
8852 function, then floor() and casted to uint64_t
8855 * source/Lib/TLibEncoder/TEncSearch.cpp,
8856 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/rdcost.h:
8857 rdcost: move zeroPel buffer to TEncSearch, its only user
8860 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp,
8861 source/encoder/rdcost.h:
8862 rdcost: keep psy-rd scale factor as an int (0..512), remove
8866 2014-07-31 Steve Borho <steve@borho.org>
8868 * source/common/common.h:
8869 common: remove unused SCALING_LIST_PARAMETER enum
8872 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h:
8876 2014-07-30 Steve Borho <steve@borho.org>
8878 * source/encoder/entropy.cpp:
8882 * source/encoder/entropy.cpp:
8883 entropy: use bIsLuma in codeCoeffNxN()
8886 * source/common/slice.h, source/encoder/entropy.cpp:
8887 slice: allow loop filter boundary flag to be analyzed
8890 * source/common/quant.cpp, source/common/quant.h,
8891 source/encoder/entropy.cpp, source/encoder/entropy.h:
8892 quant: use bIsLuma args instead of using a subset of TextType
8895 * source/Lib/TLibCommon/TComDataCU.cpp,
8896 source/Lib/TLibCommon/TComDataCU.h,
8897 source/Lib/TLibCommon/TComTrQuant.cpp,
8898 source/Lib/TLibCommon/TComTrQuant.h,
8899 source/Lib/TLibEncoder/TEncSearch.cpp,
8900 source/Lib/TLibEncoder/TEncSearch.h, source/common/CMakeLists.txt,
8901 source/common/quant.cpp, source/common/quant.h,
8902 source/encoder/analysis.cpp, source/encoder/analysis.h,
8903 source/encoder/entropy.cpp, source/encoder/frameencoder.cpp,
8904 source/encoder/predict.h:
8905 TComTrQuant to Quant
8908 * source/common/scalinglist.h, source/encoder/entropy.cpp:
8909 scaling: use anonymous enums for class constants
8911 these didn't need to be integers, they didn't need storage. They're
8912 only used to declare arrays and enforce loop bounds. This fixes a
8913 link error in debug compiles on Linux. While I was at it I improved
8914 the comments and moved one definition to entropy.cpp since that was
8915 the only place it was used.
8918 2014-07-30 Deepthi Nandakumar <deepthi@multicorewareinc.com>
8920 * source/Lib/TLibCommon/TComPattern.cpp,
8921 source/Lib/TLibCommon/TComPrediction.cpp,
8922 source/Lib/TLibCommon/TComPrediction.h,
8923 source/Lib/TLibCommon/TComWeightPrediction.cpp,
8924 source/Lib/TLibCommon/TComYuv.cpp,
8925 source/Lib/TLibEncoder/TEncSearch.cpp,
8926 source/Lib/TLibEncoder/TEncSearch.h, source/common/CMakeLists.txt,
8927 source/common/intrapred.cpp, source/encoder/CMakeLists.txt,
8928 source/encoder/analysis.h, source/encoder/predict.cpp,
8929 source/encoder/predict.h:
8930 predict: predict.cpp/.h defined, hungarian function names cleaned
8931 up, warnings removed
8934 2014-07-30 Steve Borho <steve@borho.org>
8936 * source/common/param.cpp:
8937 param: disable range checks for psy-rdoq while we tune it
8940 * source/Lib/TLibCommon/CommonDef.h,
8941 source/Lib/TLibCommon/TComTrQuant.cpp,
8942 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
8943 source/common/scalinglist.cpp:
8944 defs: remove DISTORTION_PRECISION_ADJUSTMENT, fix bug in
8947 FULL_NBIT was disabling this macro for even 16bpp builds, but I
8948 accidentally enabled it. Since it was previously disabled for every
8949 build, and is only even present in SAO and quant, it is best to just
8950 remove it completely.
8953 2014-07-25 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
8955 * source/Lib/TLibCommon/TComTrQuant.cpp,
8956 source/Lib/TLibCommon/TComTrQuant.h,
8957 source/Lib/TLibEncoder/TEncSearch.cpp,
8958 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/analysis.cpp,
8959 source/encoder/encoder.cpp:
8960 psy-rdoq: implementation of psy-rdoq (highly experimental)
8962 This initial version is storing a temp variable in TComTrQuant to
8963 avoid adding even more parameters to getCodedLevel() and it is
8964 ignoring scaling lists in the unquant operation. Currently, you may
8965 need large psy-rdoq scale values to have any real effect. It needs
8969 2014-07-30 Steve Borho <steve@borho.org>
8971 * source/Lib/TLibCommon/TComTrQuant.cpp:
8972 quant: minor cleanups
8975 * source/Lib/TLibCommon/TComTrQuant.cpp:
8976 quant: rename absLevel to level, remove diffLevel
8979 * source/Lib/TLibCommon/TComTrQuant.cpp:
8980 quant: readability nit
8983 * source/Lib/TLibCommon/TComTrQuant.cpp,
8984 source/Lib/TLibCommon/TComTrQuant.h:
8985 quant: pass curCostSig to getCodedLevel as an integer
8988 * source/Lib/TLibCommon/TComTrQuant.cpp,
8989 source/Lib/TLibCommon/TComTrQuant.h:
8990 quant: return signal cost from getRateLast(), do not include lambda
8993 * source/Lib/TLibCommon/TComTrQuant.cpp:
8994 quant: don't bother with extra temp variables
8997 2014-07-29 Min Chen <chenm003@163.com>
8999 * source/Lib/TLibEncoder/TEncSearch.cpp:
9000 TEncSearch: fix output non-determination bug
9002 When temporal candidates end up as MVP candidates, they can reach
9003 beyond the available region of valid pixels in the reference
9004 picture. In that case, we should not try to measure distortion
9005 there, it only introduces non-determinism. Just take the other MVP
9006 without contest. If both MVP were out of range, we default to mvpIdx
9009 Note that there was never any risk of a decode error since when ME
9010 runs it clamps all motion vectors to the range of available pixels.
9011 The setting of this mvmin/mvmax range is assigned just after picking
9012 the best of the two MVP candidates.
9015 2014-07-29 Steve Borho <steve@borho.org>
9017 * source/Lib/TLibCommon/TComTrQuant.cpp,
9018 source/Lib/TLibCommon/TComTrQuant.h:
9019 quant: getICRate() and getICRateCost() do not need to be class
9023 * source/Lib/TLibCommon/TComTrQuant.cpp,
9024 source/Lib/TLibCommon/TComTrQuant.h:
9025 quant: hoist lambda multiplication out of getICRateCost()
9028 * source/Lib/TLibCommon/TComTrQuant.cpp,
9029 source/Lib/TLibCommon/TComTrQuant.h:
9030 quant: inline getRateSigCoef(), getRateSigCoeffGroup() and
9034 * source/Lib/TLibCommon/TComTrQuant.cpp,
9035 source/Lib/TLibCommon/TComTrQuant.h:
9036 quant: improve documentation and code clarity, no logic change
9039 * source/common/scalinglist.cpp:
9040 scaling: factor prec into scalingBits
9042 This makes errScale clearly function to remove quantCoeff^2, and add
9043 this cost scale factor (which is just a bit shift). By factoring it
9044 this way, we can probably remove the need for doubles in the near
9045 future by not using the scaled coefficients in the stupid first
9049 * source/common/scalinglist.cpp:
9053 * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TComRom.h:
9054 move quant defines from TComRom.h to CommonDef.h; they are not table
9058 * source/Lib/TLibCommon/CommonDef.h,
9059 source/Lib/TLibCommon/TComDataCU.cpp,
9060 source/Lib/TLibCommon/TComPrediction.cpp,
9061 source/Lib/TLibCommon/TComTrQuant.cpp,
9062 source/Lib/TLibCommon/TypeDef.h,
9063 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/deblock.cpp,
9064 source/encoder/entropy.cpp:
9065 typedef: remove redundant ChromaFormat enums
9068 * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/TypeDef.h,
9069 source/encoder/entropy.cpp:
9070 defs: cleanup CommonDef.h and TypeDef.h again
9072 TypeDef.h only defines enums, CommonDef.h only defines constants
9073 (grouped together logically). Remove doxygenness
9076 * source/common/scalinglist.cpp:
9077 scaling: further simplify scaling list calculation
9079 It does more operations with ints, but mainly I just find this more
9083 * source/Lib/TLibCommon/CommonDef.h:
9084 defs: remove FULL_NBIT, no change to logic
9087 * source/common/scalinglist.cpp:
9088 scaling: replace pow(2.0, -2.0 * transformShift) with shift
9094 * source/Lib/TLibCommon/TComDataCU.cpp,
9095 source/Lib/TLibCommon/TComDataCU.h,
9096 source/Lib/TLibCommon/TComTrQuant.cpp,
9097 source/Lib/TLibCommon/TComTrQuant.h, source/encoder/entropy.cpp:
9098 quant: use ScanType enum as type for scanType, other cleanups
9101 * source/Lib/TLibCommon/TComRom.h,
9102 source/Lib/TLibCommon/TComTrQuant.h,
9103 source/Lib/TLibCommon/TypeDef.h, source/encoder/entropy.cpp:
9104 quant: move enums for scan order to TComRom together with the tables
9107 2014-07-29 Aarthi Thirumalai <Aarthi Thirumalai>
9109 * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp:
9110 rc: fix crash in 2 pass for faster preset (ultrafast - faster)
9113 2014-07-29 Steve Borho <steve@borho.org>
9115 * source/encoder/encoder.cpp, source/encoder/sei.h:
9116 hrd: add a comment about when an APS is required, update SEI
9119 * source/encoder/encoder.cpp, source/encoder/frameencoder.cpp:
9120 sei: fix byte alignment following HRD SEI
9123 * source/Lib/TLibEncoder/TEncSearch.cpp,
9124 source/encoder/CMakeLists.txt, source/encoder/motion.cpp,
9125 source/encoder/motion.h:
9126 cmake: enable full warnings for remaining TLibEncoder files
9129 2014-07-28 Steve Borho <steve@borho.org>
9131 * source/Lib/TLibCommon/TComTrQuant.cpp:
9132 quant: delay getTUEntropyCodingParameters() until known necessary
9135 2014-07-29 Albert Wang <Albert Wang>
9137 * source/encoder/frameencoder.cpp:
9138 frameencoder: fix for crash in frameencoder when AccessUnitDelimiter
9141 The m_entropyCoder need to set the bitstream first before calling
9142 codeAUD, otherwise a crash will happen.
9145 2014-07-29 Steve Borho <steve@borho.org>
9147 * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
9148 source/Lib/TLibEncoder/TEncSearch.cpp,
9149 source/encoder/CMakeLists.txt:
9150 remove sign compare warnings from TLibEncoder, cleanup SAO
9153 * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp,
9154 source/encoder/slicetype.cpp, source/encoder/weightPrediction.cpp:
9158 2014-07-28 Steve Borho <steve@borho.org>
9160 * source/encoder/encoder.cpp, source/encoder/frameencoder.cpp,
9161 source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h,
9162 source/encoder/slicetype.cpp, source/encoder/slicetype.h:
9163 rc: call getEstimatedPictureCost() from API thread, prevent race
9167 * source/encoder/dpb.cpp:
9171 * source/Lib/TLibCommon/TComPicSym.h, source/common/slice.h,
9172 source/encoder/dpb.cpp, source/encoder/encoder.cpp,
9173 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
9174 source/encoder/ratecontrol.cpp:
9175 slice: move m_bReferenced to picsym and rename for clarity
9177 This flag was being used for two purposes and introducing race
9180 1. determining if a picture in the DPB must be signaled in an RPS 2.
9181 determining if the slice type is referenced (non-b)
9183 The m_bHasReferences variable on the picsym is used for the first
9184 purpose. The macro IS_REFERENCED(slice) is used for the second
9187 The m_isReferenced member variable on the frame encoder was removed
9188 and it just checks the slice type directly.
9191 * source/encoder/frameencoder.cpp:
9195 * source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp,
9196 source/encoder/ratecontrol.h:
9197 frameencoder: re-order compressFrame() to avoid dependency problem
9200 1. if --hrd is enabled, the buffer period SEI needs data set by
9201 rateControlStart 2. rateControlStart may block, so get compute heavy
9202 tasks done first, like weighted prediction analysis 3. hoist
9203 rateControlStart and QP setup back out of compressCTURows() and move
9204 other code into it that belonged there in the first place 4. move
9205 framefilter setup logic together 5. don't measure rateControlEnd()
9209 2014-07-28 Satoshi Nakagawa <nakagawa424@oki.com>
9211 * source/Lib/TLibEncoder/TEncSearch.cpp,
9212 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/analysis.cpp:
9213 search: separate bSkipRes == true path
9216 2014-07-28 Aarthi Thirumalai <Aarthi Thirumalai>
9218 * source/encoder/slicetype.cpp:
9219 slicetype: compute frame satd cost for zero latency
9222 2014-07-28 Steve Borho <steve@borho.org>
9224 * source/common/scalinglist.cpp, source/common/scalinglist.h,
9225 source/encoder/entropy.cpp:
9226 scaling: remove m_refMatrixId; it was only used to return an int
9228 Only one value of the matrix was ever used at a time, so we can
9229 return thtat index directly from checkPredMode
9232 * source/common/scalinglist.cpp, source/common/scalinglist.h,
9233 source/encoder/entropy.cpp:
9234 scaling: use simple ints for small counters and int32_t for scales
9237 This fixes a gcc warning and mostly makes the code more readable and
9238 avoids some (int) casts
9241 * source/common/CMakeLists.txt:
9242 cmake: ignore msvc warnings about forcing value to bool 'true' or
9246 2014-07-27 Steve Borho <steve@borho.org>
9248 * source/Lib/TLibCommon/TComTrQuant.cpp:
9249 quant: fix for tskip
9252 * source/Lib/TLibCommon/TComTrQuant.cpp:
9256 * source/Lib/TLibCommon/TComTrQuant.cpp,
9257 source/Lib/TLibCommon/TComTrQuant.h:
9258 quant: inline transformSkip
9261 * source/Lib/TLibCommon/TComTrQuant.cpp,
9262 source/Lib/TLibCommon/TComTrQuant.h:
9263 quant: inline invTransformSkip
9266 * source/Lib/TLibCommon/TComTrQuant.cpp:
9267 quant: simplify dequant, remove redundant invQuantScales array
9270 * source/encoder/level.cpp:
9271 level: signal level None if lossless coding - we have no bitrate
9275 * source/common/scalinglist.cpp, source/common/scalinglist.h,
9276 source/encoder/entropy.cpp:
9277 scaling: remove duplicate square-block size enums
9280 * source/Lib/TLibCommon/TComTrQuant.cpp,
9281 source/common/scalinglist.cpp, source/common/scalinglist.h,
9282 source/encoder/entropy.cpp:
9283 scaling: move global arrays into class statics, rename
9286 * source/Lib/TLibCommon/TComTrQuant.cpp,
9287 source/Lib/TLibCommon/TComTrQuant.h,
9288 source/Lib/TLibEncoder/TEncSearch.cpp,
9289 source/common/scalinglist.cpp, source/common/scalinglist.h,
9290 source/encoder/encoder.cpp:
9291 quant: move quant/dequant/errScale buffer maintenance to scaling
9294 This was a wasteful duplication of compute and memory. It was always
9295 strange that TComTrQuant had so many internal references to the
9296 ScalingList class, just to build these arrays itself.
9298 As part of this refactor, ScalingList now has checked mallocs.
9301 * source/Lib/TLibCommon/TComTrQuant.cpp,
9302 source/Lib/TLibCommon/TComTrQuant.h:
9303 quant: remove x prefixes from remaining methods; no logic change
9306 * source/Lib/TLibCommon/TComTrQuant.cpp,
9307 source/Lib/TLibCommon/TComTrQuant.h:
9308 quant: replace xGetIEPRate() with a constant
9311 * source/Lib/TLibCommon/TComTrQuant.cpp,
9312 source/Lib/TLibCommon/TComTrQuant.h:
9313 quant: remove x prefixes from scaling list methods
9316 * source/Lib/TLibCommon/TComTrQuant.cpp,
9317 source/Lib/TLibCommon/TComTrQuant.h:
9318 quant: use rem consistently for variables holding qp % 6
9321 * source/Lib/TLibCommon/TComTrQuant.h,
9322 source/Lib/TLibEncoder/TEncSearch.cpp:
9323 quant: remove default curUseRDOQ argument value
9326 * source/Lib/TLibCommon/TComTrQuant.h:
9327 quant: remove default useTransformSkip argument value
9330 * source/Lib/TLibCommon/TComTrQuant.cpp:
9331 quant: more coding style cleanup, update argument list in
9332 xGetCodedLevel comment
9335 * source/Lib/TLibCommon/TComTrQuant.cpp,
9336 source/Lib/TLibCommon/TComTrQuant.h:
9337 quant: QpParam class to struct
9340 * source/Lib/TLibCommon/TComTrQuant.h:
9341 quant: re-order header and improve comments
9344 * source/Lib/TLibCommon/TComTrQuant.cpp,
9345 source/Lib/TLibCommon/TComTrQuant.h,
9346 source/Lib/TLibEncoder/TEncSearch.cpp:
9347 quant: remove get/set methods for scaling list enable flag
9350 * source/Lib/TLibCommon/TComTrQuant.cpp,
9351 source/Lib/TLibCommon/TComTrQuant.h:
9352 quant: remove access methods for the class's own members
9355 * doc/reST/cli.rst, source/CMakeLists.txt,
9356 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
9357 source/common/param.cpp, source/common/scalinglist.cpp,
9358 source/common/scalinglist.h, source/encoder/encoder.cpp,
9359 source/x265.cpp, source/x265.h:
9360 api: expose scaling lists and psy-rdoq as a CLI/API options
9362 psy-rdoq is not yet functional - option is ignored move scaling list
9363 related globals to scalinglist.cpp from TComRom
9366 2014-07-26 Steve Borho <steve@borho.org>
9368 * source/Lib/TLibCommon/TComTrQuant.cpp,
9369 source/Lib/TLibCommon/TComTrQuant.h:
9370 quant: don't pass m_resiDctCoeff to member methods
9373 2014-07-25 Steve Borho <steve@borho.org>
9375 * source/common/param.cpp, source/encoder/encoder.cpp:
9376 param: move all consistency param tweaks into Encoder::configure()
9378 x265_check_params() shouldn't be modifying the param structure; it's
9379 role is to spot invalid configurations and prevent crashes in
9383 2014-07-26 Steve Borho <steve@borho.org>
9385 * source/Lib/TLibCommon/TComTrQuant.cpp,
9386 source/Lib/TLibCommon/TComTrQuant.h,
9387 source/Lib/TLibEncoder/TEncSearch.cpp:
9388 quant: cleanup initialization; catch malloc failures. rename
9392 * source/Lib/TLibCommon/TComTrQuant.cpp,
9393 source/Lib/TLibCommon/TComTrQuant.h:
9397 2014-07-25 Steve Borho <steve@borho.org>
9399 * source/Lib/TLibCommon/TComTrQuant.cpp,
9400 source/Lib/TLibCommon/TComTrQuant.h:
9404 * source/Lib/TLibCommon/TComTrQuant.cpp:
9405 quant: cleanup signBitHidingHDQ()
9408 * source/Lib/TLibCommon/TComTrQuant.cpp,
9409 source/Lib/TLibCommon/TComTrQuant.h:
9410 quant: simplify setQPforQuant
9413 * source/Lib/TLibCommon/TComTrQuant.cpp:
9414 quant: remove dead comment
9417 * source/Lib/TLibCommon/TComTrQuant.cpp,
9418 source/Lib/TLibCommon/TComTrQuant.h, source/encoder/entropy.cpp,
9419 source/encoder/entropy.h:
9420 quant: do not malloc the EstBitsSbac structure, pass by reference
9423 * source/Lib/TLibEncoder/TEncSearch.h,
9424 source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp:
9425 white-space and brace nits
9428 * source/Lib/TLibEncoder/TEncSearch.cpp:
9429 search: simplify verbage, fix white-space, no logic change
9432 * source/Lib/TLibEncoder/TEncSearch.cpp,
9433 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/analysis.cpp,
9434 source/encoder/analysis.h, source/encoder/cturow.cpp:
9435 search: move all init code into TEncSearch::initSearch()
9437 TEncSearch owns all the objects being initialized
9440 * source/encoder/framefilter.cpp:
9441 framefilter: initialize saoRowDelay just once
9444 * source/Lib/TLibCommon/TComPicSym.cpp, source/encoder/encoder.cpp,
9445 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
9446 source/encoder/framefilter.cpp:
9447 frameencoder: remove getSAO() access method; delay allocation of
9451 * source/encoder/dpb.cpp, source/encoder/encoder.cpp,
9452 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
9453 move slice setup together into one function, reorder functions for
9457 * source/common/slice.h, source/encoder/frameencoder.cpp:
9458 slice: remove redundant initSlice(), m_numRefIdx[] is set by DPB
9462 * source/common/slice.h, source/encoder/dpb.cpp:
9463 slice: move coloc/tmvp flag setting all to one place
9467 api: improve documentation of x265_encoder_encode
9470 2014-07-26 Steve Borho <steve@borho.org>
9472 * source/encoder/analysis.cpp:
9473 analysis: cleanup early-skip
9476 * source/Lib/TLibCommon/TComDataCU.cpp:
9480 * source/encoder/entropy.cpp:
9484 * source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
9485 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
9486 source/encoder/encoder.cpp, source/encoder/encoder.h,
9487 source/encoder/framefilter.cpp:
9488 encoder: remove unused m_maxRefPicNum and m_maxNumOffsetsPerPic
9491 2014-07-25 Steve Borho <steve@borho.org>
9494 rest: better document configuration options of --vbv-init
9497 2014-07-25 Aarthi Thirumalai <Aarthi Thirumalai>
9499 * source/encoder/ratecontrol.cpp:
9500 rc: fix crashes in vbv with 2 pass
9503 2014-07-25 Steve Borho <steve@borho.org>
9505 * source/Lib/TLibCommon/TComPicYuv.cpp,
9506 source/Lib/TLibCommon/TComPicYuv.h, source/encoder/encoder.cpp,
9507 source/encoder/encoder.h, source/encoder/framefilter.cpp:
9508 encoder: remove redundant m_pad array
9511 * source/encoder/encoder.cpp, source/encoder/encoder.h:
9512 encoder: fix uninitialized variable use reported by valgrind
9514 m_conformanceWindow was not initialized at all; and this was causing
9515 uninitialized values to be written to the SPS if padding was
9518 Remove unnecessary m_defaultDisplayWindow in the process
9521 * source/encoder/encoder.cpp, source/encoder/entropy.cpp:
9525 * source/common/param.cpp, source/common/slice.h,
9526 source/encoder/encoder.cpp, source/encoder/level.cpp:
9527 level: move all profile set/determine logic into one file, fixes for
9531 2014-07-24 Steve Borho <steve@borho.org>
9534 cli: call x265_param_apply_profile() after applying file-reader
9537 the Y4M headers could change param->internalCsp, so applying the
9538 profile before the reader makes changes allows bugs. The CLI was
9539 allowing an encode of:
9541 x265 foo_422.y4m o.bin --profile main
9543 Even though --profile main was trying to enforce 4:2:0; the color
9544 space change happened afterward the profile was enforced and thus
9545 invalidated the specified profile. After this fix the encode
9546 properly fails with:
9548 x265 [error]: Unsupported color space (2) on input aborted at input
9549 frame 1, output frame 0
9556 2014-07-24 Satoshi Nakagawa <nakagawa424@oki.com>
9558 * source/Lib/TLibEncoder/TEncSearch.cpp,
9559 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/analysis.cpp:
9560 qtLayer in reverse order
9563 2014-07-22 Satoshi Nakagawa <nakagawa424@oki.com>
9565 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
9566 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp,
9567 source/common/primitives.cpp, source/common/primitives.h,
9568 source/common/shortyuv.cpp, source/common/shortyuv.h,
9569 source/encoder/analysis.cpp, source/test/testbench.cpp:
9570 refine partition size related
9572 - reorder LumaPartitions to simplify partitionFromLog2Size()
9576 2014-07-24 Steve Borho <steve@borho.org>
9578 * source/common/param.cpp:
9579 param: log multi-pass state
9582 * source/encoder/ratecontrol.cpp:
9586 * source/encoder/ratecontrol.cpp:
9587 rc: instrument all error conditions in initPass2()
9589 it's not helpful to abort the encode with no hint as to why
9592 * source/encoder/bitcost.cpp:
9597 rest: better document that -I N -i N does not disable scenecut
9604 * source/encoder/bitcost.cpp, source/encoder/bitcost.h:
9605 bitcost: increase size of cost arrays, for pessimal situations
9607 MVD is MV minus MVP. MV could be BC_MAX_MV and MVP could be
9609 [a12920e08700] <stable>
9611 * source/encoder/bitcost.h:
9612 bitcost: fix bitcost() function, broken 13 months ago by
9615 when bitcost() was first introduced, we had two competing table
9616 formats for the s_bitsizes[] array. Eventually the x264 style array
9617 won out, but this function was not updated.
9619 This bug was almost harmless, bitcost() could still evaluate
9620 differences in bit costs correctly, but the upshift caused read
9621 bound exceptions when the motion vectors became close to the HEVC
9623 [49ea5391828c] <stable>
9626 cli: reorder argument help for clarity, add more sections
9629 2014-07-24 Aarthi Thirumalai <Aarthi Thirumalai>
9631 * source/common/param.cpp, source/x265.cpp:
9632 rc: add cli options for multi-pass rate control
9635 2014-07-24 Gopu Govindaswamy <gopu@multicorewareinc.com>
9637 * source/Lib/TLibCommon/TComLoopFilter.cpp,
9638 source/Lib/TLibCommon/TComLoopFilter.h,
9639 source/common/CMakeLists.txt, source/common/deblock.cpp,
9640 source/common/deblock.h, source/common/loopfilter.cpp,
9641 source/encoder/framefilter.cpp, source/encoder/framefilter.h:
9642 port TComLoopFilter Functions into /common/deblock
9644 1. Rename TComLoopFilter to Deblock 2. Remove hungarian notation
9645 function names and variables 3. Remove unused or empty functions
9648 2014-07-23 Steve Borho <steve@borho.org>
9650 * source/encoder/entropy.cpp:
9651 entropy: reorder methods in general encode order for clarity, no
9655 * source/common/slice.h, source/encoder/encoder.cpp,
9656 source/encoder/entropy.cpp:
9657 entropy: remove ambiguity about timing info signaling
9660 * source/encoder/entropy.cpp:
9664 * source/encoder/encoder.cpp, source/encoder/entropy.cpp,
9665 source/encoder/entropy.h:
9666 entropy: do not code a scaling list in PPS
9668 The scaling list in PPS is only necessary to override the scaling
9669 list in the SPS. We will only ever have at most one scaling list (at
9673 2014-07-24 Aarthi Thirumalai <Aarthi Thirumalai>
9675 * source/Lib/TLibEncoder/TEncSearch.cpp:
9676 rc: calculate mvBits, coefBits per Cu for 2 pass in skip mode as
9680 * source/encoder/ratecontrol.cpp:
9681 rc: compute average of qpaRc, qpAq per frame even in 2 pass
9684 2014-07-23 Steve Borho <steve@borho.org>
9686 * source/Lib/TLibCommon/TComPrediction.h, source/encoder/analysis.cpp:
9687 pred: remove default motionCompensation argument values
9689 bugs waiting to happen; they've bit us multiple times in the past
9692 * source/encoder/analysis.cpp:
9693 analysis: eoln fixup
9696 2014-07-23 Deepthi Nandakumar <deepthi@multicorewareinc.com>
9698 * source/encoder/analysis.cpp:
9699 TComPrediction: fix MC error caused by previous patch
9702 * source/Lib/TLibCommon/TComPrediction.cpp,
9703 source/Lib/TLibCommon/TComPrediction.h,
9704 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp:
9705 TComPrediction: remove unused parameter warning
9708 * source/encoder/analysis.cpp:
9709 analysis: whitespace nit
9712 2014-07-23 Steve Borho <steve@borho.org>
9719 rest: move profile, level, and tier into their own section
9721 They really didn't belong combined with the slice-decision options
9724 2014-07-23 Deepthi Nandakumar <deepthi@multicorewareinc.com>
9726 * source/encoder/analysis.cpp:
9727 analysis: add in extra X265_CHECK
9730 2014-07-23 Gopu Govindaswamy <gopu@multicorewareinc.com>
9732 * source/encoder/analysis.cpp:
9733 analysis: setQPforQuant in checkIntraInter to fix the hash mismatch
9737 2014-07-23 Deepthi Nandakumar <deepthi@multicorewareinc.com>
9739 * source/Lib/TLibCommon/TComPrediction.cpp,
9740 source/Lib/TLibCommon/TComPrediction.h:
9741 TComPrediction: white space nits, remove isPSlice (next series)
9744 2014-07-22 Deepthi Nandakumar <deepthi@multicorewareinc.com>
9746 * source/Lib/TLibCommon/TComPrediction.cpp,
9747 source/Lib/TLibCommon/TComPrediction.h,
9748 source/Lib/TLibEncoder/TEncSearch.cpp:
9749 TComPrediction: remove redundant colorspace information
9751 m_csp is sufficient inside the TEncSearch, TComPrediction structures
9754 * source/Lib/TLibCommon/TComPrediction.cpp,
9755 source/Lib/TLibCommon/TComPrediction.h,
9756 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp:
9757 TComPrediction: save CU data (partAddr, width, height) as member
9760 Before motion compensation, save CU related data inside the
9761 TComPrediction structure
9764 2014-07-21 Deepthi Nandakumar <deepthi@multicorewareinc.com>
9766 * source/Lib/TLibCommon/TComPrediction.cpp,
9767 source/Lib/TLibCommon/TComPrediction.h,
9768 source/Lib/TLibEncoder/TEncSearch.cpp:
9769 TComPrediction: remove TComDataCU as pointer to private functions
9772 2014-07-22 Steve Borho <steve@borho.org>
9774 * source/common/param.cpp:
9775 param: re-order code to avoid unreachable code warnings in 10bit
9779 * build/regression/01build-and-smoke-test.bat,
9780 build/regression/02perftest.bat, build/regression/commandlines-
9781 example.txt, build/regression/config-example.txt, build/regression
9782 /email-csv.py, build/regression/run.bat:
9783 remove very obsolete regression batch files
9786 * source/encoder/level.cpp:
9787 level: fix GCC signed/unsigned comparison
9790 2014-07-21 Steve Borho <steve@borho.org>
9793 rest: update --profile, --level, --high-tier docs
9796 * source/CMakeLists.txt, source/common/param.cpp,
9797 source/encoder/api.cpp, source/encoder/level.cpp,
9798 source/encoder/level.h, source/x265.cpp, source/x265.h:
9799 level: add --high-tier and auto-configure VBV if --crf N --level M
9802 This patch is a major overhaul of the level enforcement logic. The
9803 first obvious difference is that the user may specify the tier. The
9804 second difference is that x265 will no longer run any configuration
9805 that might generate non-compliant bitstreams.
9807 Any of these conditions will cause the encode to abort if a minimum
9808 decoder level was specified:
9810 * picture size is too large
9811 * frame rate is too high
9812 * constant QP rate control is configured
9813 * the specified level does not exist
9815 Further, if CRF was specified, we now configure VBV using the
9816 maximum CPB size and bitrate for their level/tier (and issue a
9817 warning that the output may now be non-deterministic).
9819 Note that the encoder will still encode the minimum decoder level
9820 which covers the encode parameters. So even if you specify --level
9821 5.1, we may signal the stream as level 4.0-High if the stream should
9822 be decodable at that level.
9824 This further fixes the CLI to allow --level-idc or the shortened
9825 --level, just as it now also supports --high-tier or the shortened
9829 2014-07-22 Aarthi Thirumalai <Aarthi Thirumalai>
9831 * source/encoder/ratecontrol.cpp:
9832 rc: bug fixes in 2 pass ABR
9834 ratecontrol - fix duplication of bits in calculating m_totalBits
9835 frameencoder - don't amortize totalBits in 2 pass ABR
9838 2014-07-21 Steve Borho <steve@borho.org>
9840 * source/encoder/ratecontrol.cpp:
9841 rc: prevent gcc shadow warning about int terminate and terminate()
9844 * source/encoder/analysis.cpp:
9845 analysis: don't initialize members of base class in constructor
9848 * source/common/param.cpp:
9849 param: fix profile warnings in x265_param_apply_profile()
9851 This function was likely never used since it was not supported by
9852 the CLI till now. When the user specifies --profile Main10, they
9853 intend that the output stream is decodable by a Main10 decoder. This
9854 is true of any Main encode.
9856 The reverse is not true for --profile Main and a Main10 encode. We
9857 must return an error and abort the encode if --profile Main is
9858 specified and the encoder was compiled for Main10 (HIGH_BIT_DEPTH).
9862 cli: expose x265_param_apply_profile() via --profile
9864 This is repairing an egregious oversight
9867 * source/encoder/level.cpp:
9871 * source/encoder/api.cpp, source/encoder/encoder.cpp,
9872 source/encoder/level.cpp, source/encoder/level.h:
9873 level: move m_vps.maxDecPicBuffering logic into one function
9875 This prevents duplicate logic from existing in two separate files
9878 * source/Lib/TLibCommon/TypeDef.h, source/common/slice.h:
9879 ptl: move enums from TypeDef.h to slice.h
9882 * source/common/slice.h, source/encoder/api.cpp,
9883 source/encoder/encoder.cpp, source/encoder/encoder.h,
9884 source/encoder/entropy.cpp, source/encoder/entropy.h,
9885 source/encoder/level.cpp, source/encoder/level.h:
9886 slice: add ProfileTierLevel instance to VPS
9888 The PTL data is coded in the VPS (first) and thus belongs with that
9889 data structure, as it allows us to simplify arguments to the level
9890 set and determination functions.
9893 * source/encoder/level.cpp:
9897 2014-07-17 Steve Borho <steve@borho.org>
9899 * source/encoder/level.cpp:
9900 fix for GCC warning about loop bounds
9903 2014-07-21 Steve Borho <steve@borho.org>
9905 * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
9906 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
9907 source/Lib/TLibEncoder/TEncSearch.cpp,
9908 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/analysis.cpp,
9909 source/encoder/analysis.h, source/encoder/api.cpp,
9910 source/encoder/cturow.cpp, source/encoder/cturow.h,
9911 source/encoder/encoder.cpp, source/encoder/encoder.h,
9912 source/encoder/entropy.cpp, source/encoder/entropy.h,
9913 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
9914 source/encoder/framefilter.cpp, source/encoder/framefilter.h:
9915 entropy: settle on Entropy class name and member names
9917 Through all these various refactors the SBAC/CABAC/entropy classes
9918 have all merged together and the member variables were a scattered
9922 * source/CMakeLists.txt:
9923 cmake: tabs to spaces
9926 * source/CMakeLists.txt:
9927 cmake: only create SONAME shared lib on POSIX systems (closes #62)
9930 * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp,
9931 source/encoder/ratecontrol.h:
9932 rc: prevent deadlock on encoder flush or close
9934 1. add a terminate() function to unblock any blocked rate control
9935 methods 2. never block if the order ordinal is already above the
9936 required ordinal 3. simulate start events when encoder is flushing
9938 Without these changes, closing the encoder without flushing (CTRL+C
9939 in the CLI) or encoding fewer frames than frame encoders (-F8 -f4)
9940 could cause deadlocks
9943 2014-07-21 Aarthi Thirumalai <Aarthi Thirumalai>
9945 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
9946 rc: fix warnings in ratecontrol
9949 2014-07-18 Aarthi Thirumalai <Aarthi Thirumalai>
9951 * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp,
9952 source/encoder/ratecontrol.h:
9953 rc: generate cutree offsets for 2nd pass from stats
9956 * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp,
9957 source/encoder/ratecontrol.h, source/encoder/slicetype.cpp,
9958 source/encoder/slicetype.h:
9959 rc: fix sliceType of 2nd pass from prev pass stats
9961 avoid doing sliceAnalyse in lookahead for 2nd pass
9964 * source/encoder/encoder.cpp, source/encoder/encoder.h,
9965 source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
9966 rc: add 2 pass logic in rateEstimateQscale
9969 2014-07-21 Satoshi Nakagawa <nakagawa424@oki.com>
9971 * source/Lib/TLibCommon/TComLoopFilter.cpp,
9972 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
9973 source/Lib/TLibCommon/TComTrQuant.cpp,
9974 source/Lib/TLibCommon/TComTrQuant.h,
9975 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp:
9976 trquant: store QpParam for each component
9979 2014-07-19 Satoshi Nakagawa <nakagawa424@oki.com>
9981 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
9982 source/Lib/TLibCommon/TComTrQuant.h,
9983 source/Lib/TLibCommon/TypeDef.h, source/encoder/entropy.cpp:
9987 2014-07-21 Deepthi Nandakumar <deepthi@multicorewareinc.com>
9989 * source/Lib/TLibCommon/TComWeightPrediction.cpp:
9990 TComWeightPrediction: initialising pointers to NULL
9992 getWPScaling will assign appropriate weight pred tables to these.
9995 * source/Lib/TLibCommon/TComWeightPrediction.cpp:
9996 TComWeightPrediction: add braces to prevent errors for an optional
10000 2014-07-17 Michel Zou <xantares09@hotmail.com>
10002 * source/CMakeLists.txt:
10003 cmake: fix dll installation directory on Windows
10005 On Windows the shared library (.dll) is considered RUNTIME and the
10006 import library (.dll.a on MinGW or .lib on MSVC) as LIBRARY.
10009 2014-07-17 Min Chen <chenm003@163.com>
10011 * source/common/x86/ssd-a.asm:
10012 use macro HADDD to improve AMD performance
10015 2014-07-18 Ashok Kumar Mishra <ashok@multicorewareinc.com>
10017 * source/Lib/TLibCommon/TComDataCU.cpp,
10018 source/Lib/TLibCommon/TComDataCU.h:
10019 TComDataCU: replaced functions with tables
10022 * source/Lib/TLibCommon/TComDataCU.cpp,
10023 source/Lib/TLibCommon/TComDataCU.h:
10024 TComDataCU: remove redundant functions
10027 2014-07-18 Santhoshini Sekar <santhoshini@multicorewareinc.com>
10029 * source/encoder/analysis.cpp, source/encoder/encoder.cpp,
10030 source/encoder/encoder.h, source/encoder/frameencoder.cpp,
10031 source/encoder/frameencoder.h, source/encoder/ratecontrol.cpp,
10032 source/encoder/ratecontrol.h:
10033 rc: update ratecontrol stats in every frame, avoid frame parallelism
10036 RateControl statistics are updated for every frame when refLagRows
10037 number of rows are completed in processRowEncoder. With this updated
10038 data rateControl predicts more accurate QP
10040 This removes the previous hack which disabled frame parallelism for
10041 the first half-second of video and replaces it with a more fine-
10042 grained rate control call timing to achieve a similar ABR
10043 improvement with less effect to frame parallelism.
10046 2014-07-18 Steve Borho <steve@borho.org>
10048 * source/Lib/TLibCommon/TComTrQuant.h, source/common/CMakeLists.txt,
10049 source/common/scalinglist.cpp, source/common/scalinglist.h,
10050 source/common/slice.cpp, source/common/slice.h,
10051 source/encoder/encoder.h, source/encoder/entropy.cpp,
10052 source/encoder/entropy.h:
10053 split ScalingList class into its own header and source file
10055 The PPS and SPS headers no longer have scaling list pointers, so
10056 there is no need for it to be declared in the same header
10059 * source/encoder/dpb.cpp, source/encoder/ratecontrol.cpp:
10060 a copy of POC is cached in the Frame struct
10063 * source/Lib/TLibCommon/TComDataCU.cpp,
10064 source/Lib/TLibCommon/TComDataCU.h,
10065 source/Lib/TLibCommon/TComLoopFilter.cpp,
10066 source/Lib/TLibCommon/TComPattern.cpp,
10067 source/Lib/TLibCommon/TComPrediction.cpp,
10068 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
10069 source/Lib/TLibCommon/TComTrQuant.cpp,
10070 source/Lib/TLibCommon/TComWeightPrediction.cpp,
10071 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
10072 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/frame.h,
10073 source/encoder/analysis.cpp, source/encoder/dpb.cpp,
10074 source/encoder/encoder.cpp, source/encoder/entropy.cpp,
10075 source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp,
10076 source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp:
10077 frame,cu: remove getSlice()
10080 * source/Lib/TLibCommon/TComPicSym.h, source/common/frame.h,
10081 source/encoder/dpb.cpp:
10082 picsym: remove getSlice()
10085 * source/Lib/TLibCommon/TComDataCU.h,
10086 source/Lib/TLibCommon/TComLoopFilter.cpp,
10087 source/Lib/TLibCommon/TComPattern.cpp,
10088 source/Lib/TLibCommon/TComPicSym.cpp,
10089 source/Lib/TLibCommon/TComPicSym.h,
10090 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
10091 source/Lib/TLibCommon/TComSlice.cpp,
10092 source/Lib/TLibCommon/TComSlice.h,
10093 source/Lib/TLibCommon/TComTrQuant.cpp,
10094 source/Lib/TLibCommon/TComTrQuant.h,
10095 source/Lib/TLibCommon/TComWeightPrediction.cpp,
10096 source/common/CMakeLists.txt, source/common/common.cpp,
10097 source/common/frame.h, source/common/param.cpp,
10098 source/common/slice.cpp, source/common/slice.h,
10099 source/encoder/analysis.cpp, source/encoder/cturow.h,
10100 source/encoder/dpb.cpp, source/encoder/dpb.h,
10101 source/encoder/encoder.cpp, source/encoder/encoder.h,
10102 source/encoder/entropy.cpp, source/encoder/entropy.h,
10103 source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp,
10104 source/encoder/ratecontrol.h, source/encoder/reference.cpp,
10105 source/encoder/sei.cpp, source/encoder/sei.h,
10106 source/encoder/weightPrediction.cpp:
10107 move PPS, SPS, Slice and ScalingList to common/
10110 2014-07-17 Steve Borho <steve@borho.org>
10112 * source/Lib/TLibCommon/TComSlice.cpp,
10113 source/Lib/TLibCommon/TComSlice.h:
10114 slice: remove unused initWpScaling()
10117 * source/Lib/TLibCommon/TComSlice.cpp,
10118 source/Lib/TLibCommon/TComSlice.h,
10119 source/Lib/TLibCommon/TComWeightPrediction.cpp,
10120 source/encoder/entropy.cpp:
10121 slice: remove getWpScaling()
10124 * source/Lib/TLibCommon/TComSlice.cpp,
10125 source/Lib/TLibCommon/TComSlice.h, source/common/piclist.cpp,
10126 source/common/piclist.h:
10127 slice: make xGetRefPic a PicList method
10130 * source/Lib/TLibCommon/TComSlice.h:
10131 slice: do not initialize fields that are always written
10135 * source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp,
10136 source/encoder/frameencoder.cpp:
10137 encoder: do some slice initializations only once
10140 * source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp:
10141 entropy: slice->m_colFromL0Flag is a bool
10144 * source/encoder/dpb.cpp:
10145 dpb: simplify check for m_bCheckLDC; make note for future
10149 * source/encoder/dpb.cpp:
10150 dpb: remove check for B frame without L1
10152 our lookahead won't emit B frames without a leading P frame
10155 * source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp,
10156 source/encoder/entropy.cpp:
10157 slice: remove m_bLMvdL1Zero
10159 This feature, which signals L1 MVD is zero for an entire slice, was
10160 never enabled because we never use the same frame list in L0 and L1.
10163 * source/encoder/entropy.cpp:
10164 entropy: fix warning reported by llvm
10166 /Users/steve/repos/x265/source/encoder/entropy.cpp:321:44: warning:
10167 equality comparison with extraneous parentheses[-Wparentheses-
10168 equality] if ((cu->getSlice()->m_numRefIdx[list] == 1))
10169 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
10172 * source/encoder/entropy.cpp, source/encoder/entropy.h,
10173 source/encoder/frameencoder.cpp, source/encoder/nal.cpp,
10174 source/encoder/nal.h:
10175 wpp: generate stream size array as coded (in bytes) and pre-
10176 calculate max offset
10178 removes another per-frame alloc/free and redundant work
10181 * source/Lib/TLibCommon/TComSlice.cpp,
10182 source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp,
10183 source/encoder/entropy.h, source/encoder/frameencoder.cpp,
10184 source/encoder/frameencoder.h:
10185 slice: remove substream array, move to frame encoder
10187 \0/ the slice structure no longer allocates memory
10190 * source/Lib/TLibCommon/TComPrediction.cpp:
10194 * source/Lib/TLibCommon/TComDataCU.cpp,
10195 source/Lib/TLibCommon/TComPrediction.cpp, source/encoder/dpb.cpp:
10196 replace slice->m_refPicList[][]->getPOC() with
10197 slice->m_refPOCList[][]
10200 * source/Lib/TLibCommon/TComSlice.cpp,
10201 source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp:
10202 slice: merge setRefPOCList() into setRefPicList()
10204 Now both lists are always aligned so it is always safe to use the
10208 * source/Lib/TLibCommon/TComDataCU.cpp,
10209 source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp,
10210 source/encoder/encoder.cpp, source/encoder/slicetype.cpp:
10211 slice: remove getRefPOC
10214 * source/encoder/dpb.cpp:
10215 dpb: perform setRefPOCList() directly after setRefPicList()
10217 A precursor to combining the two functions
10220 * source/Lib/TLibCommon/TComDataCU.cpp,
10221 source/Lib/TLibCommon/TComLoopFilter.cpp,
10222 source/Lib/TLibCommon/TComPrediction.cpp,
10223 source/Lib/TLibCommon/TComSlice.h,
10224 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp,
10225 source/encoder/dpb.cpp, source/encoder/frameencoder.cpp,
10226 source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp,
10227 source/encoder/weightPrediction.cpp:
10228 slice: remove getRefPic(l,r)
10231 * source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp,
10232 source/encoder/entropy.cpp:
10233 slice: remove setNumRefIdx
10236 * source/Lib/TLibCommon/TComDataCU.cpp,
10237 source/Lib/TLibCommon/TComSlice.h, source/encoder/analysis.cpp,
10238 source/encoder/dpb.cpp, source/encoder/entropy.cpp,
10239 source/encoder/frameencoder.cpp:
10240 slice: remove set/get for m_colRefIdx and m_sliceCurEndCUAddr
10243 * source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp,
10244 source/encoder/entropy.cpp:
10245 slice: remove getMvdL1ZeroFlag/setMvdL1ZeroFlag
10248 * source/Lib/TLibCommon/TComDataCU.cpp,
10249 source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp,
10250 source/encoder/entropy.cpp:
10251 slice: remove getColFromL0Flag()
10254 * source/Lib/TLibCommon/TComDataCU.cpp,
10255 source/Lib/TLibCommon/TComPrediction.cpp,
10256 source/Lib/TLibCommon/TComSlice.cpp,
10257 source/Lib/TLibCommon/TComSlice.h,
10258 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp,
10259 source/encoder/dpb.cpp, source/encoder/encoder.cpp,
10260 source/encoder/entropy.cpp, source/encoder/frameencoder.cpp,
10261 source/encoder/weightPrediction.cpp:
10262 slice: remove getNumRefIdx() access method
10265 * source/Lib/TLibCommon/TComSlice.h:
10266 slice: removed unused setRefPic() and setRefPOC() methods
10269 * source/Lib/TLibCommon/TComSlice.cpp,
10270 source/Lib/TLibCommon/TComSlice.h:
10271 slice: remove unused getNumRpsCurrTempList() method
10274 * source/Lib/TLibCommon/TComDataCU.cpp,
10275 source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp,
10276 source/encoder/encoder.cpp, source/encoder/entropy.cpp,
10277 source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp:
10278 slice: remove get/set methods for slice QP and lastIDR
10281 * source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp,
10282 source/encoder/encoder.cpp, source/encoder/frameencoder.cpp,
10283 source/encoder/ratecontrol.cpp:
10284 slice: remove get/set methods for m_bReferenced
10287 * source/Lib/TLibCommon/TComDataCU.cpp,
10288 source/Lib/TLibCommon/TComSlice.h,
10289 source/Lib/TLibCommon/TComTrQuant.cpp,
10290 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp,
10291 source/encoder/dpb.cpp, source/encoder/encoder.cpp,
10292 source/encoder/entropy.cpp, source/encoder/frameencoder.cpp,
10293 source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp:
10294 slice: remove get/set methods for m_sliceType
10297 * source/Lib/TLibCommon/TComSlice.h:
10301 * source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp:
10302 slice: remove m_cabacInitFlag, it was write-only
10305 * source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp:
10306 slice: remove m_numEntryPointOffsets, it was write-only
10309 * source/Lib/TLibCommon/TComSlice.h, source/encoder/analysis.cpp,
10310 source/encoder/cturow.cpp, source/encoder/frameencoder.cpp:
10311 slice: remove slice bit counter
10314 * source/Lib/TLibCommon/TComDataCU.cpp,
10315 source/Lib/TLibCommon/TComSlice.cpp,
10316 source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp,
10317 source/encoder/encoder.cpp, source/encoder/entropy.cpp,
10318 source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp,
10319 source/encoder/slicetype.cpp, source/encoder/weightPrediction.cpp:
10320 slice: remove get/set methods for m_poc
10323 * source/Lib/TLibCommon/TComSlice.h:
10327 * source/Lib/TLibCommon/TComDataCU.cpp,
10328 source/Lib/TLibCommon/TComSlice.h, source/encoder/analysis.cpp,
10329 source/encoder/entropy.cpp, source/encoder/frameencoder.cpp:
10330 slice: remove m_sliceSegmentBits and get/set methods for max-merge
10333 * source/Lib/TLibCommon/TComSlice.cpp,
10334 source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp,
10335 source/encoder/frameencoder.cpp:
10336 slice: remove m_saoEnabledFlag, m_saoEnabledFlagChroma - use
10339 SBac::encodeSliceHeader() was already using saoParams for chroma but
10340 not for luma (inexplicably)
10343 * source/encoder/frameencoder.cpp:
10344 sao: combine if(){} expressions
10347 * source/encoder/frameencoder.cpp:
10348 sao: (bool == 1? ? true : false -> wat?
10351 * source/encoder/ratecontrol.cpp:
10352 rc: fix vbvBufferSize calculation
10355 * source/Lib/TLibCommon/TComSlice.h:
10359 * source/Lib/TLibCommon/TComSlice.cpp,
10360 source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp,
10361 source/encoder/frameencoder.cpp:
10362 slice: cleanup m_nalUnitType and helper methods
10365 * source/Lib/TLibCommon/TComDataCU.cpp,
10366 source/Lib/TLibCommon/TComDataCU.h,
10367 source/Lib/TLibCommon/TComLoopFilter.cpp,
10368 source/Lib/TLibCommon/TComLoopFilter.h,
10369 source/Lib/TLibCommon/TComPattern.cpp,
10370 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
10371 source/Lib/TLibCommon/TComSlice.h,
10372 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp,
10373 source/encoder/entropy.cpp, source/encoder/frameencoder.cpp,
10374 source/encoder/weightPrediction.cpp:
10375 slice: remove get/set methods for m_pic
10377 This cleaned up TComDataCU::getPic() as a side-effect.
10380 * source/Lib/TLibCommon/TComDataCU.cpp,
10381 source/Lib/TLibCommon/TComSlice.cpp,
10382 source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp,
10383 source/encoder/entropy.cpp:
10384 slice: temporal MVP was never disabled
10387 * source/encoder/encoder.cpp:
10388 rc: HRD must be initialized prior to calling init()
10391 * source/Lib/TLibCommon/TComLoopFilter.cpp,
10392 source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp:
10393 slice: remove unused deblock data, directly use status/offsets from
10396 nits: reorder TComSlice for better clarity and remove initializer
10397 list from constructor
10400 * source/Lib/TLibCommon/TComSlice.cpp,
10401 source/Lib/TLibCommon/TComSlice.h,
10402 source/Lib/TLibEncoder/TEncSearch.cpp,
10403 source/encoder/frameencoder.cpp:
10404 slice: remove unused slice QP deltas
10407 * source/encoder/dpb.cpp, source/encoder/entropy.cpp:
10411 * source/Lib/TLibCommon/TComSlice.cpp,
10412 source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp,
10413 source/encoder/entropy.cpp:
10414 slice: we only use a slice-local RPS (none signaled in SPS)
10417 * source/Lib/TLibCommon/TComSlice.cpp,
10418 source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp,
10419 source/encoder/dpb.h, source/encoder/entropy.cpp,
10420 source/encoder/entropy.h:
10421 slice: TComReferencePictureSet -> RPS
10424 * source/Lib/TLibCommon/TComSlice.cpp,
10425 source/Lib/TLibCommon/TComSlice.h:
10426 slice: hoist constructor to header (it will be removed in later
10430 * source/Lib/TLibCommon/TComDataCU.cpp,
10431 source/Lib/TLibCommon/TComLoopFilter.cpp,
10432 source/Lib/TLibCommon/TComPattern.cpp,
10433 source/Lib/TLibCommon/TComPrediction.cpp,
10434 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
10435 source/Lib/TLibCommon/TComSlice.h,
10436 source/Lib/TLibCommon/TComTrQuant.cpp,
10437 source/Lib/TLibCommon/TComWeightPrediction.cpp,
10438 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp,
10439 source/encoder/dpb.cpp, source/encoder/encoder.cpp,
10440 source/encoder/entropy.cpp, source/encoder/entropy.h,
10441 source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp,
10442 source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h,
10443 source/encoder/sei.cpp, source/encoder/sei.h:
10444 slice: remove get/set methods for SPS and PPS, make pointers const
10446 Nearly everywhere, SPS and PPS are used read-only, so making the
10447 pointers const enforces this at compile time and allows the compiler
10448 to make some optimizations. The few places that initialize or change
10449 the headers are passed the original objects belonging to the top-
10453 * source/encoder/frameencoder.cpp:
10457 * source/Lib/TLibCommon/TComSlice.cpp,
10458 source/Lib/TLibCommon/TComSlice.h,
10459 source/Lib/TLibCommon/TComWeightPrediction.cpp,
10460 source/Lib/TLibCommon/TComWeightPrediction.h,
10461 source/encoder/entropy.cpp, source/encoder/frameencoder.cpp,
10462 source/encoder/reference.cpp, source/encoder/reference.h,
10463 source/encoder/slicetype.cpp, source/encoder/slicetype.h,
10464 source/encoder/weightPrediction.cpp:
10465 slice: rename wpScalingParam -> WeightParam
10468 * source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp,
10469 source/encoder/encoder.h, source/encoder/entropy.cpp,
10470 source/encoder/frameencoder.cpp:
10471 pps: simplify deblocking signaling, disable slice override
10473 Disable slice override of deblock-enable state and offsets - we do
10474 no such thing and attempts at using these in the past have not been
10478 * source/encoder/encoder.h:
10482 * source/encoder/api.cpp, source/encoder/encoder.cpp,
10483 source/encoder/encoder.h, source/encoder/frameencoder.cpp,
10484 source/encoder/frameencoder.h:
10485 encoder: make SPS and PPS top-level encoder singletons
10487 This fixes a subtle bug. If level requirements forced the max
10488 references to be lowered, VPS and SPS maxDecPicBuffering was never
10489 adjusted. Now, they are not configured until after level enforcement
10490 has set them to final values.
10493 2014-07-16 Steve Borho <steve@borho.org>
10495 * source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp,
10496 source/encoder/entropy.cpp:
10497 pps: we never very chroma QP per picture, so remove
10501 * source/encoder/encoder.cpp, source/encoder/entropy.cpp:
10502 pps: move deblocking logic together, fix a couple signaling bugs
10505 * source/Lib/TLibCommon/TComDataCU.cpp,
10506 source/Lib/TLibCommon/TComLoopFilter.cpp,
10507 source/Lib/TLibCommon/TComPattern.cpp,
10508 source/Lib/TLibCommon/TComPrediction.cpp,
10509 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
10510 source/Lib/TLibCommon/TComSlice.h,
10511 source/Lib/TLibCommon/TComTrQuant.cpp,
10512 source/Lib/TLibCommon/TComWeightPrediction.cpp,
10513 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp,
10514 source/encoder/encoder.cpp, source/encoder/entropy.cpp,
10515 source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp:
10516 pps: class to struct, remove m_ prefix, unify naming scheme
10519 * source/Lib/TLibCommon/TComDataCU.cpp,
10520 source/Lib/TLibCommon/TComLoopFilter.cpp,
10521 source/Lib/TLibCommon/TComPattern.cpp,
10522 source/Lib/TLibCommon/TComPrediction.cpp,
10523 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
10524 source/Lib/TLibCommon/TComSlice.cpp,
10525 source/Lib/TLibCommon/TComSlice.h,
10526 source/Lib/TLibCommon/TComTrQuant.cpp,
10527 source/Lib/TLibCommon/TComWeightPrediction.cpp,
10528 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp,
10529 source/encoder/encoder.cpp, source/encoder/entropy.cpp,
10530 source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp:
10531 pps: remove set/get methods and hard-coded members
10534 * source/Lib/TLibCommon/TComSlice.h:
10535 slice: white-space nits
10538 * source/Lib/TLibCommon/TComSlice.h:
10539 vps: remove constructor, those values are always initialized
10542 * source/Lib/TLibCommon/TComTrQuant.cpp:
10543 sps: fix check statement
10546 * source/Lib/TLibCommon/TComDataCU.cpp,
10547 source/Lib/TLibCommon/TComLoopFilter.cpp,
10548 source/Lib/TLibCommon/TComPattern.cpp,
10549 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
10550 source/Lib/TLibCommon/TComSlice.h,
10551 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp,
10552 source/encoder/dpb.cpp, source/encoder/encoder.cpp,
10553 source/encoder/entropy.cpp, source/encoder/frameencoder.cpp,
10554 source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h,
10555 source/encoder/sei.h:
10556 sps: class to struct, remove m_ prefixes
10559 * source/Lib/TLibCommon/TComDataCU.cpp,
10560 source/Lib/TLibCommon/TComLoopFilter.cpp,
10561 source/Lib/TLibCommon/TComPattern.cpp,
10562 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
10563 source/Lib/TLibCommon/TComSlice.cpp,
10564 source/Lib/TLibCommon/TComSlice.h,
10565 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
10566 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/common.h,
10567 source/encoder/analysis.cpp, source/encoder/dpb.cpp,
10568 source/encoder/encoder.cpp, source/encoder/entropy.cpp,
10569 source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp,
10570 source/encoder/sei.h:
10571 sps: remove set/get methods, remove members with hard-coded values
10573 Note all the SPS members that could be replaced by direct access to
10574 param. Removes m_vps pointer from slice, it was never set or
10578 * source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp,
10579 source/encoder/entropy.cpp:
10580 vps: class to struct and other nits
10583 * source/Lib/TLibCommon/TComDataCU.cpp,
10584 source/Lib/TLibCommon/TComSlice.h,
10585 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/analysis.cpp,
10586 source/encoder/encoder.cpp, source/encoder/encoder.h,
10587 source/encoder/entropy.cpp, source/encoder/frameencoder.cpp:
10588 pps: remove hard-coded getLog2ParallelMergeLevelMinus2(0)
10590 and snuck in some other nits
10593 * source/Lib/TLibCommon/TComSlice.cpp,
10594 source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp:
10595 remove hard-coded pps->getSliceHeaderExtensionPresentFlag()
10598 * source/Lib/TLibCommon/TComSlice.h, source/encoder/frameencoder.cpp:
10602 * source/Lib/TLibCommon/TComSlice.cpp,
10603 source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp,
10604 source/encoder/entropy.cpp, source/encoder/frameencoder.cpp:
10605 slice: remove redundant/unused scaling lists from SPS, PPS, and
10608 The SPS and PPS were allocating their own scaling list instances and
10609 never using them; with the recent refactors only their status flags
10610 were coded. TComSlice had a pointer to the top-level scaling list,
10613 "There can be only one!"
10616 * source/Lib/TLibCommon/TComSlice.cpp:
10620 * source/Lib/TLibCommon/TComSlice.cpp,
10621 source/Lib/TLibCommon/TComSlice.h,
10622 source/Lib/TLibCommon/TComTrQuant.cpp, source/common/common.h,
10623 source/encoder/encoder.cpp, source/encoder/encoder.h,
10624 source/encoder/entropy.cpp, source/encoder/frameencoder.cpp:
10625 slice: remove trivial set/get methods, move all relavent functions
10629 * source/Lib/TLibCommon/TComSlice.cpp,
10630 source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp:
10631 slice: remove unsignaled m_temporalLayerNonReferenceFlag
10634 * doc/reST/cli.rst:
10635 rest: fix crf min/max option names
10638 * source/Lib/TLibCommon/TComSlice.h:
10639 slice: start to clean up scaling list struct
10642 * source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp,
10643 source/encoder/entropy.cpp:
10644 slice: convert Window to struct, simplify names
10647 * doc/reST/cli.rst:
10648 rest: fix documented default AQ mode
10650 As noted by Alex Ramsey
10653 * source/Lib/TLibCommon/TComSlice.h, source/common/bitstream.h,
10654 source/encoder/entropy.cpp, source/encoder/sei.h:
10655 bitstream: change writeFlag() to take a bool to avoid int
10659 * source/Lib/TLibCommon/TComSlice.cpp,
10660 source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp,
10661 source/encoder/encoder.h, source/encoder/entropy.cpp,
10662 source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp,
10663 source/encoder/sei.h:
10664 vui: prune set/get methods and unsignaled fields
10667 * source/Lib/TLibCommon/TComSlice.cpp,
10668 source/Lib/TLibCommon/TComSlice.h:
10669 slice: finish cleanup of TComReferencePictureSet
10672 * source/Lib/TLibCommon/TComSlice.cpp,
10673 source/Lib/TLibCommon/TComSlice.h:
10674 slice: remove unused PPS ID
10677 * source/Lib/TLibCommon/TComDataCU.cpp,
10678 source/Lib/TLibCommon/TComSlice.cpp, source/encoder/dpb.cpp:
10682 * source/Lib/TLibCommon/TComDataCU.cpp,
10683 source/Lib/TLibCommon/TComSlice.cpp,
10684 source/Lib/TLibCommon/TComSlice.h, source/common/frame.cpp,
10685 source/common/frame.h, source/encoder/dpb.cpp, source/encoder/dpb.h,
10686 source/encoder/entropy.cpp, source/encoder/entropy.h,
10687 source/encoder/frameencoder.cpp:
10688 slice: Cleanup TComReferencePictureSet, prune the notion of long-
10692 2014-07-15 Steve Borho <steve@borho.org>
10694 * source/encoder/entropy.cpp:
10698 2014-07-15 Deepthi Nandakumar <deepthi@multicorewareinc.com>
10700 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
10701 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/CMakeLists.txt,
10702 source/encoder/analysis.cpp, source/encoder/analysis.h,
10703 source/encoder/compress.cpp, source/encoder/cturow.h,
10704 source/encoder/frameencoder.h:
10705 port TEncCU functions into analysis structure
10707 1. Rename TEncCU to Analysis 2. Remove warnings (/wd4244 /wd4389
10708 /wd4018) from TEncCU 3. Roll over compress.cpp into analysis.cpp 4.
10709 Rename TEncCU to Analysis 5. Remove hungarian notation function
10713 2014-07-15 Steve Borho <steve@borho.org>
10715 * source/Lib/TLibEncoder/TEncSearch.cpp:
10716 search: assert to X265_CHECK
10719 2014-07-15 Min Chen <chenm003@163.com>
10721 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp,
10722 source/common/primitives.h, source/common/x86/asm-primitives.cpp,
10723 source/common/x86/pixel.h, source/common/x86/ssd-a.asm,
10724 source/test/pixelharness.cpp, source/test/pixelharness.h:
10725 replace sse_sp(residual, ZERO) by ssd_s(residual)
10728 2014-07-15 Santhoshini Sekar <santhoshini@multicorewareinc.com>
10730 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
10731 rc: define function for updating rate control statistics in
10734 Rate control updates its statistics like bits in RateControlEnd.
10735 With frame parallelsim enabled and N parallel frames running, the
10736 feedback given to rate control is delayed until rateControlStart of
10737 N frames are called. To avoid this delay, update rate control
10738 statistics for every frame after encode of few frames are done in
10739 processRowEncoder. By updating statistics for every frame we make
10740 ABR to function more accurately (predicts more accurate QP) making
10741 use of latest data rather than stale values.
10743 Frame parallelism lag (the wait for reconstructed pixels) already
10744 forces this delay between frames, this change will simply take
10745 advantage of the progress made by referenced frames before each
10746 frame is allowed to begin coding by having more accurate rate
10750 2014-07-15 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
10752 * source/Lib/TLibCommon/TComSlice.cpp,
10753 source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp,
10754 source/encoder/encoder.h:
10755 fix for crash when scalingList feature is enabled
10758 2014-07-15 Steve Borho <steve@borho.org>
10760 * source/encoder/entropy.cpp:
10761 entropy: remove obsolete check macro
10764 * source/Lib/TLibCommon/TComSlice.h:
10768 * source/Lib/TLibCommon/TComSlice.h:
10769 slice: remove unused m_useDF
10772 * source/Lib/TLibCommon/TComSlice.cpp,
10773 source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp,
10774 source/encoder/entropy.cpp, source/encoder/frameencoder.cpp:
10775 slice: remove more hard-coded fields
10778 * source/Lib/TLibCommon/CommonDef.h,
10779 source/Lib/TLibCommon/TComMotionInfo.h, source/encoder/encoder.cpp:
10780 defs: remove more dead definitions
10783 * source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp,
10784 source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp,
10785 source/encoder/sei.h:
10786 hrd: remove *Minus1 from member names and semantics, remove m_
10789 Note that hrd->cpbSizeValue stored a "minus 1" value but was not
10792 This commit also fixed a math bug (late up-conversion) in cpbSize
10793 calculation in ratecontrol.cpp
10796 * source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp,
10797 source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp,
10798 source/encoder/sei.h:
10799 hrd: remove set/get methods of TComHRD, remove unused members
10802 * source/Lib/TLibCommon/TComSlice.h:
10803 hrd: remove four unused fields
10806 * source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp,
10807 source/encoder/ratecontrol.cpp, source/encoder/sei.h:
10808 hrd: CPB count is always 1
10811 * source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp,
10812 source/encoder/ratecontrol.cpp:
10813 hrd: inline HrdLayerInfo, remove second array dimension (was for
10817 * source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp,
10818 source/encoder/entropy.cpp, source/encoder/frameencoder.cpp,
10819 source/encoder/ratecontrol.cpp, source/encoder/sei.h:
10820 hrd: we always signal NAL HRD but not VCL and not sub-pic
10822 Remove redundant fields and methods
10825 * source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp,
10826 source/encoder/encoder.h, source/encoder/entropy.cpp,
10827 source/encoder/ratecontrol.cpp:
10828 slice: simplify TimingInfo to a struct
10831 * source/Lib/TLibCommon/TComSlice.h:
10835 * source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp,
10836 source/encoder/entropy.cpp:
10837 change ProfileTierLevel to a struct, no m_ prefixes
10840 * source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp:
10841 ptl: remove hard-coded m_profileSpace
10844 * source/encoder/entropy.cpp:
10845 entropy: de-hungarian codePredWeightTable(), fix comments (remove
10849 * source/encoder/entropy.cpp:
10853 * source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp:
10854 vps: remove m_maxLatencyIncrease, it was always 0
10857 * source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp,
10858 source/encoder/entropy.cpp:
10859 vps: remove remaining set/get methods
10862 * source/Lib/TLibCommon/TComSlice.h:
10863 vps: remove now unused m_layerIdIncludedFlag
10866 * source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp:
10867 vps: remove unused m_maxNuhReservedZeroLayerId, m_numOpSets
10869 The values were all hard-coded
10872 * source/Lib/TLibCommon/TComSlice.cpp,
10873 source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp,
10874 source/encoder/frameencoder.cpp:
10875 sps: hard-code an SPS ID of 0, we only ever use one SPS
10878 * source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp,
10879 source/encoder/frameencoder.cpp:
10880 vps: remove m_VPSId, signal hard-coded 0
10883 * source/encoder/entropy.cpp:
10884 entropy: remove broken X265_CHECK
10887 * source/encoder/frameencoder.cpp:
10891 * source/Lib/TLibCommon/CommonDef.h,
10892 source/Lib/TLibCommon/TComSlice.cpp,
10893 source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp,
10894 source/encoder/entropy.h:
10895 remove unused multiple HRD parameter sets from VPS class
10898 * source/Lib/TLibCommon/CommonDef.h:
10899 defs: remove some dead definitions, cleanup a comment
10902 * source/Lib/TLibCommon/TComSlice.cpp,
10903 source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp:
10904 slice: remove unused m_interRPSPrediction from
10905 TComReferencePictureSet
10908 * source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp:
10909 slice: simplify max AMP level determination
10912 * source/encoder/encoder.cpp, source/encoder/encoder.h:
10913 encoder: remove redundant member variables
10916 * source/Lib/TLibCommon/CommonDef.h,
10917 source/Lib/TLibCommon/TComSlice.cpp,
10918 source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp,
10919 source/encoder/encoder.cpp, source/encoder/encoder.h,
10920 source/encoder/entropy.cpp, source/encoder/entropy.h,
10921 source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp,
10922 source/encoder/sei.h:
10923 Remove MAX_TLAYER and stop pretending we can code multiple temporal
10926 This simplifies a great many things; enabling further simplications
10927 to come. This commit leaves a sprinkling of TODOs for further
10931 * source/encoder/entropy.cpp:
10935 2014-07-14 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
10937 * source/encoder/compress.cpp:
10938 compress: fix for sa8dcost storage in rdlevel 1, 0
10941 2014-07-15 Deepthi Nandakumar <deepthi@multicorewareinc.com>
10943 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
10944 TEncCU: remove useless field
10946 There's a global variable for this.
10949 2014-07-15 Steve Borho <steve@borho.org>
10951 * source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp,
10952 source/encoder/entropy.h:
10953 entropy: hoist a couple of trivial functions, brace nits
10956 * source/Lib/TLibCommon/TComSlice.cpp,
10957 source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp,
10958 source/encoder/encoder.h, source/encoder/entropy.cpp,
10959 source/encoder/entropy.h, source/encoder/frameencoder.cpp:
10960 encoder: keep ProfileTierLevel singleton in the top-level encoder
10962 Remove the copies in the SPS and VPS and remove the TComPTL object
10963 entirely, there is only one level.
10966 * source/encoder/entropy.cpp, source/encoder/entropy.h:
10967 entropy: simplify PTL coding, there is only one layer
10970 * source/encoder/entropy.cpp, source/encoder/entropy.h:
10971 entropy: remove profilePresentFlag argument from codePTL, always 1
10974 * source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp,
10975 source/encoder/entropy.cpp:
10976 slice: Remove get/set methods from TComPTL
10979 * source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp,
10980 source/encoder/encoder.h, source/encoder/entropy.cpp:
10981 slice: remove set/get methods from ProfileTierLevel, and dead
10985 * doc/reST/cli.rst, source/CMakeLists.txt, source/common/param.cpp,
10986 source/encoder/frameencoder.cpp, source/x265.cpp, source/x265.h:
10987 api: add an option to disable the informational SEI message
10989 For regression testing, or comparing outputs between compilers or
10990 platforms, this header is quite unhelpful, so make it optional.
10993 * source/Lib/TLibCommon/TComSlice.cpp,
10994 source/Lib/TLibCommon/TComSlice.h, source/encoder/entropy.cpp,
10995 source/encoder/entropy.h:
10996 slice: remove RPS list class and relevant SPS encoding logic
10998 x265 only codes a reference picture set in the slice header, none in
10999 the SPS and never an "inter-RPS"
11002 * source/common/param.cpp:
11003 param: fix cut-paste bug
11006 2014-07-14 Steve Borho <steve@borho.org>
11008 * source/Lib/TLibCommon/TComSlice.h, source/common/param.cpp,
11009 source/encoder/entropy.cpp:
11010 slice: white-space cleanups, remove dead funcdefs and forward defs
11013 * source/Lib/TLibCommon/TComSlice.h:
11014 slice: remove virtual destructors for slice classes
11016 we do not want or need vtables for any of these classes
11019 * source/common/param.cpp, source/x265.cpp:
11020 param: move --input-res parsing to x265_param_parse (closes #63)
11023 * source/CMakeLists.txt:
11024 cmake: set SONAME even if no revision number or tag is found (closes
11028 * source/Lib/TLibCommon/TComPicSym.cpp:
11029 picsym: check m_cuData before trying to destroy array instances
11032 2014-07-14 Satoshi Nakagawa <nakagawa424@oki.com>
11034 * source/Lib/TLibCommon/TComDataCU.cpp,
11035 source/Lib/TLibCommon/TComDataCU.h,
11036 source/Lib/TLibCommon/TComLoopFilter.cpp,
11037 source/Lib/TLibCommon/TComPattern.cpp,
11038 source/Lib/TLibCommon/TComPattern.h,
11039 source/Lib/TLibCommon/TComPicSym.cpp,
11040 source/Lib/TLibCommon/TComPrediction.cpp,
11041 source/Lib/TLibCommon/TComPrediction.h,
11042 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
11043 source/Lib/TLibCommon/TComSlice.h,
11044 source/Lib/TLibCommon/TComTrQuant.cpp,
11045 source/Lib/TLibEncoder/TEncCu.cpp,
11046 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/frame.cpp,
11047 source/common/intrapred.cpp, source/common/param.cpp,
11048 source/common/primitives.h, source/common/shortyuv.cpp,
11049 source/common/shortyuv.h, source/encoder/compress.cpp,
11050 source/encoder/cturow.h, source/encoder/encoder.cpp,
11051 source/encoder/entropy.cpp, source/encoder/entropy.h,
11052 source/encoder/slicetype.cpp:
11053 refine block size related, use more log2 domain.
11056 2014-07-14 Praveen Tiwari <Praveen Tiwari>
11058 * source/encoder/encoder.cpp:
11059 encoder.cpp, clean-up
11062 2014-07-14 Steve Borho <steve@borho.org>
11064 * source/Lib/TLibEncoder/TEncCu.cpp:
11065 cu: white-space cleanups
11068 * doc/reST/cli.rst:
11069 rest: fix lossless white-space, improve --sign-hide
11072 2014-07-14 Deepthi Nandakumar <deepthi@multicorewareinc.com>
11074 * source/encoder/compress.cpp:
11075 compress: fix sa8dCost comparisons.
11077 After this patch, all sa8d costs are stored in m_sa8dCost, and RD
11078 costs in m_totalRDCost
11081 * source/encoder/encoder.cpp:
11082 encoder: insert missing comma
11085 2014-07-13 Steve Borho <steve@borho.org>
11087 * doc/reST/cli.rst, doc/reST/index.rst, doc/reST/lossless.rst,
11088 doc/reST/presets.rst:
11089 rest: document lossless coding theory and behavior
11092 2014-07-13 Deepthi Nandakumar <deepthi@multicorewareinc.com>
11094 * source/encoder/compress.cpp:
11095 compress: save intra costs in rd <= 2 also in m_sa8dCost.
11097 Basically, all sa8d costs are always saved in m_sa8dCost.
11100 * source/encoder/compress.cpp:
11101 compress: save inter sa8d costs also in m_sa8dCost
11104 * source/encoder/compress.cpp:
11105 compress: Fixes fudging in merge costs, stores sa8d costs for
11106 bestMergeCU in m_sa8dCost
11109 2014-07-14 Deepthi Nandakumar <deepthi@multicorewareinc.com>
11111 * source/Lib/TLibEncoder/SyntaxElementWriter.cpp,
11112 source/Lib/TLibEncoder/SyntaxElementWriter.h,
11113 source/Lib/TLibEncoder/TEncCu.h,
11114 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/cturow.cpp,
11115 source/encoder/cturow.h, source/encoder/entropy.cpp,
11116 source/encoder/entropy.h, source/encoder/frameencoder.cpp,
11117 source/encoder/frameencoder.h, source/encoder/framefilter.cpp,
11118 source/encoder/framefilter.h:
11119 Merge, discard accidental push
11122 * source/Lib/TLibEncoder/TEncCu.h,
11123 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
11124 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
11125 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/cturow.cpp,
11126 source/encoder/cturow.h, source/encoder/entropy.cpp,
11127 source/encoder/entropy.h, source/encoder/frameencoder.cpp,
11128 source/encoder/frameencoder.h, source/encoder/framefilter.cpp,
11129 source/encoder/framefilter.h:
11130 Backed out changeset: cff4f6482385
11132 This head was accidentally created.
11135 2014-07-13 Steve Borho <steve@borho.org>
11137 * source/encoder/frameencoder.cpp:
11138 frameencoder: explicit size conversion to avoid MSVC warning
11141 2014-07-10 Steve Borho <steve@borho.org>
11143 * source/Lib/TLibEncoder/TEncCu.h,
11144 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
11145 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
11146 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/cturow.cpp,
11147 source/encoder/cturow.h, source/encoder/entropy.cpp,
11148 source/encoder/entropy.h, source/encoder/frameencoder.cpp,
11149 source/encoder/frameencoder.h, source/encoder/framefilter.cpp,
11150 source/encoder/framefilter.h:
11151 entropy: rename combined CABAC/SBac class to Entropy
11154 2014-07-12 Steve Borho <steve@borho.org>
11156 * source/encoder/encoder.cpp:
11160 * source/encoder/encoder.h:
11161 encoder: remove unused variables
11164 2014-07-11 Steve Borho <steve@borho.org>
11166 * source/encoder/frameencoder.cpp, source/encoder/sei.cpp,
11167 source/encoder/sei.h:
11168 sei: emit SEI describing the encoder and encode options
11170 example: % x265 ../sintel_trailer_2k_480p24.y4m o.bin % strings
11171 o.bin | head x265 (build 26) - 1.2+74-a5024bfc0b50:[Mac OS X][clang
11172 5.1.0][64 bit] 8bpp - H.265/HEVC codec - Copyright 2013-2014 (c)
11173 Multicoreware Inc - http://x265.org
11174 - options: 856x480 fps=24/1 bitdepth=8 wpp ctu=64 tu-intra-depth=1 tu-
11175 inter-depth=1 me=1 subme=2 merange=57 no-rect no-amp max-merge=2 no-
11176 early-skip no-fast-cbf rdpenalty=0 no-tskip no-tskip-fast strong-
11177 intra-smoothing no-lossless no-cu-lossless no-constrained-intra
11178 open-gop interlace=0 keyint=250 min-keyint=24 scenecut=40 rc-
11179 lookahead=20 bframes=4 bframe-bias=0 b-adapt=2 ref=3 weightp no-
11180 weightb aq-mode=2 aq-strength=1.00 cbqpoffs=0 crqpoffs=0 rd=3
11181 signhide lft sao sao-lcu-bounds=0 sao-lcu-opt=1 b-pyramid cutree
11182 rc=crf crf=28.0 qcomp=0.60 qpmin=0 qpmax=51 qpstep=4 ipratio=1.40
11186 * source/encoder/frameencoder.cpp:
11190 * source/common/param.cpp:
11191 param: fix typo in d1d5b377294e
11194 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
11198 * source/CMakeLists.txt:
11199 cmake: nit - about target arch strings
11202 2014-07-11 Santhoshini Sekar <santhoshini@multicorewareinc.com>
11204 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
11205 frameencoder: store reflagrows as a member variable
11208 2014-07-11 Aarthi Thirumalai <Aarthi Thirumalai>
11210 * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp,
11211 source/encoder/ratecontrol.h:
11212 rc: init RC data for second pass in a multi pass encode
11215 * source/CMakeLists.txt, source/x265.cpp, source/x265.h:
11216 param: keep the total frame count of the input video in param.
11218 to be used in 2 pass. In case this is not available, the value can
11222 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
11223 rc: store final cu counts in frameStats as a percentage of total #
11226 there exists a mismatch in the total no. of 16x16 blocks calculated
11227 between encoder and RC. rate control counts no. of 16x16 blocks
11228 without considering the border extension of source pic. keeping cu
11229 stats as percentage avoid this problem when used later in RC's 2nd
11233 2014-07-11 Steve Borho <steve@borho.org>
11235 * source/common/param.cpp:
11236 param: use dashes consistently in param2string
11239 2014-07-11 Aarthi Thirumalai <Aarthi Thirumalai>
11241 * source/common/param.cpp:
11242 param: add more param options to print as string
11245 * source/common/common.cpp, source/common/common.h:
11246 common: introduce x265_slurp_file, reads data from file to string
11250 2014-07-11 Steve Borho <steve@borho.org>
11252 * source/encoder/level.cpp:
11253 level: in CRF/CQP encodes, allow user specifed level to increase
11259 2014-07-11 Deepthi Nandakumar <deepthi@multicorewareinc.com>
11261 * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp:
11262 cu: fixing int-to-bool compile warnings
11265 2014-07-11 Steve Borho <steve@borho.org>
11267 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
11268 source/encoder/compress.cpp, source/encoder/encoder.cpp,
11269 source/encoder/encoder.h:
11270 cu: directly use param fields for lossless coding options
11272 Remove m_CUTransquantBypass, m_TransquantBypassEnableFlag
11275 * source/Lib/TLibEncoder/TEncCu.cpp,
11276 source/Lib/TLibEncoder/TEncSearch.cpp:
11281 cli: retrieve params from the encoder, in case logging flags have
11284 For instance, if the user asked for --lossless --ssim, the encoder
11285 will disable SSIM for lossless encodes and we don't want the CLI to
11286 report SSIM stats that were never measured.
11289 2014-07-11 Satoshi Nakagawa <nakagawa424@oki.com>
11291 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/rdcost.h:
11292 zero stride for zeroPel[]
11295 2014-07-10 Steve Borho <steve@borho.org>
11297 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
11298 source/Lib/TLibEncoder/TEncSearch.cpp,
11299 source/Lib/TLibEncoder/TEncSearch.h, source/common/common.h,
11300 source/encoder/compress.cpp, source/encoder/cturow.cpp,
11301 source/encoder/cturow.h, source/encoder/frameencoder.cpp,
11302 source/encoder/frameencoder.h:
11303 search: make RDCost and TComTrQuant member instances of TEncSearch
11305 Both of these structs are required by TEncSearch, it cannot operate
11306 without them There is always a 1::1 correlation with each. There is
11307 no reason at all to allocated them separately in TLD and then link
11308 them all together. Much simpler for them to be members of the
11312 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
11313 source/Lib/TLibEncoder/TEncSearch.cpp,
11314 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp,
11315 source/encoder/cturow.cpp, source/encoder/cturow.h,
11316 source/encoder/frameencoder.cpp:
11317 derive TEncCu from TEncSearch
11319 TEncSearch methods are only callable from TEncCu methods. and there
11320 is much duplication in their data members. This removes a lot of
11321 redundancy and removes a lot of pointer dereferences
11324 2014-07-11 Deepthi Nandakumar <deepthi@multicorewareinc.com>
11326 * source/encoder/compress.cpp:
11327 compress: save CABAC context for rd = 2 after inter/intra encodes
11330 * source/encoder/compress.cpp:
11331 compress: save CABAC context after intra decision.
11333 Since CABAC encode happens only for rd > 2
11336 * source/encoder/compress.cpp:
11337 compress: save CABAC context after inter/merge decision
11340 * source/encoder/compress.cpp:
11341 compress: save CABAC context in merge modes for lower RD levels.
11344 2014-07-10 Steve Borho <steve@borho.org>
11346 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
11347 source/encoder/cturow.cpp, source/encoder/cturow.h,
11348 source/encoder/entropy.cpp, source/encoder/entropy.h,
11349 source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp,
11350 source/encoder/framefilter.h:
11351 entropy: clarify the SBac's bit counting mode
11353 The SBac class has always had the ability to be a bit counter
11354 without any other external data structures. With this change, the
11355 SBac defaults to being a bit counting SBac until it is given a
11356 Bitstream object to write into. The class no longer accepts a
11357 BitCounter object, since it would only add more overhead to the bit
11360 TEncCu no longer needs o be told whether it is writing into a bit
11361 counting SBac or not, it can ask the SBac to find out.
11363 The BitCounting class is only used for SEI writing, and may
11364 disappear in order to remove the vtable from the critical path of
11368 * source/encoder/framefilter.cpp, source/encoder/framefilter.h:
11369 framefilter: rename row0 coder
11372 * source/encoder/cturow.cpp, source/encoder/cturow.h,
11373 source/encoder/frameencoder.cpp:
11374 cturow: rename m_rdGoOnSbacCoder to m_sbacCoder; there is only one
11377 * source/encoder/frameencoder.h:
11378 frameencoder: remove unnecessary include of TEncSearch.h
11381 * source/Lib/TLibEncoder/TEncCu.cpp,
11382 source/Lib/TLibEncoder/TEncSearch.cpp, source/PPA/ppaCPUEvents.h,
11383 source/output/y4m.cpp, source/output/yuv.cpp:
11384 ppa: cleanup event names and remove uninteresting events
11387 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
11388 source/Lib/TLibEncoder/TEncSearch.cpp,
11389 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp,
11390 source/encoder/cturow.cpp:
11391 cu, search: remove redundant m_rdGoOnSbacCoder pointer
11393 m_rdGoOnSbacCoder was always either pointing to the same SBac as
11394 m_sbacCoder (for calls to compressCU()) or it was supposed to be
11395 unused (for calls to encodeCU)
11398 * source/common/bitstream.cpp, source/common/bitstream.h:
11399 bitstream: hoist trivial methods to the header so they may be easier
11403 * source/common/bitstream.h:
11404 bitstream: convert macros into inline members for better compile-
11408 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
11409 source/Lib/TLibEncoder/SyntaxElementWriter.cpp,
11410 source/Lib/TLibEncoder/SyntaxElementWriter.h,
11411 source/common/bitstream.cpp, source/common/bitstream.h,
11412 source/encoder/CMakeLists.txt, source/encoder/encoder.cpp,
11413 source/encoder/entropy.cpp, source/encoder/frameencoder.cpp,
11414 source/encoder/sei.cpp, source/encoder/sei.h:
11415 bring SyntaxElementWriter into common/, remove trace file macros
11417 File tracing has been essentially broken since frame parallelism was
11418 introduced (not to mention multiple encoder instances in a process)
11419 and is going to be soon even more impossible when the second
11420 encodeCU() pass is removed. It's best to remove this old HM feature
11421 so people don't get stuck trying to use it.
11423 Stream analyzers like Parabola and Elecard are now mature enough
11424 that these trace files are not very helpful. If you *really* want
11425 the old style trace file, enable tracing in the HM decoder and
11426 decode your bitstream with it.
11428 I left the strings in the WRITE_* macros in place because they make
11429 those calls reasonably self-documenting. The compiler will throw
11430 them away harmlessly.
11433 * source/encoder/entropy.cpp:
11437 * source/encoder/entropy.h:
11438 entropy: re-order methods again for better clarity, make many
11442 * source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
11443 source/encoder/entropy.h:
11444 entropy: remove include of TComSampleAdaptiveOffset.h
11447 * source/Lib/TLibCommon/TComTrQuant.cpp,
11448 source/Lib/TLibCommon/TComTrQuant.h, source/encoder/entropy.cpp,
11449 source/encoder/entropy.h:
11450 TComTrQuant: rename estBitsSbacStruct to EstBitsSbac
11453 * source/encoder/entropy.cpp:
11457 * source/encoder/entropy.cpp, source/encoder/entropy.h:
11458 entropy: hoist trivial functions for later optimizations
11461 * source/encoder/cturow.h, source/encoder/entropy.cpp,
11462 source/encoder/entropy.h, source/encoder/framefilter.cpp:
11463 merge CABAC into SBac class
11466 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/entropy.cpp,
11467 source/encoder/entropy.h:
11468 entropy: convert initSection into a constructor, since it was used
11472 * source/Lib/TLibEncoder/TEncSearch.cpp:
11476 * source/Lib/TLibEncoder/TEncSearch.cpp,
11477 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/entropy.cpp,
11478 source/encoder/entropy.h:
11479 entropy: replace SBac and TEncSearch methods with TURecurse methods
11481 Both classes had nearly the exact same methods for managing this
11482 external structure. how wierd?
11485 2014-07-09 Steve Borho <steve@borho.org>
11487 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/entropy.cpp,
11488 source/encoder/entropy.h:
11489 entropy: remove m_ prefix from struct TURecurse members
11492 2014-07-09 Satoshi Nakagawa <nakagawa424@oki.com>
11494 * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
11495 source/Lib/TLibEncoder/TEncCu.cpp,
11496 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
11497 source/encoder/compress.cpp, source/encoder/framefilter.cpp:
11498 use std::swap() for readability
11501 2014-07-09 Steve Borho <steve@borho.org>
11503 * source/Lib/TLibEncoder/TEncSearch.cpp:
11504 search: remove braces around single line expressions, improve code
11508 * Merge with stable
11512 Added tag 1.2 for changeset d6257335c537
11513 [7ea0ba364367] <stable>
11515 2014-07-03 Steve Borho <steve@borho.org>
11517 * source/encoder/encoder.cpp, source/encoder/encoder.h:
11518 csv: add slice-type stats to encode summary, avoid dup copies of
11522 2014-07-09 Steve Borho <steve@borho.org>
11524 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/entropy.h:
11525 entropy: remove temporary helper function
11528 * source/encoder/entropy.cpp:
11532 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
11533 source/encoder/compress.cpp:
11534 cu: remove get/set methods for its own member variable
11537 * source/Lib/TLibEncoder/TEncCu.h, source/encoder/cturow.cpp:
11538 cu: remove more set methods
11541 * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/cturow.cpp:
11545 * source/Lib/TLibEncoder/TEncCu.h,
11546 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/cturow.cpp:
11547 cu: assign m_rdGoOnSbacCoder without helper methods
11550 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
11551 source/encoder/cturow.cpp, source/encoder/frameencoder.cpp:
11552 cu: pass bit counting flag as argument to encodeCU
11555 * source/encoder/cturow.cpp, source/encoder/cturow.h,
11556 source/encoder/frameencoder.cpp:
11557 ctu: inline setThreadLocalData() for better clarity
11560 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
11561 frameencoder: remove rarely used getRowCoder() and getBufferSBac()
11564 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
11565 frameencoder: remove barely use helper function getRDGoOnSbacCoder
11568 * source/encoder/cturow.h, source/encoder/frameencoder.cpp,
11569 source/encoder/frameencoder.h:
11570 ctu: rename m_sbacCoder to m_rowEntropyCoder
11573 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
11574 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
11575 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
11576 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp,
11577 source/encoder/cturow.cpp, source/encoder/cturow.h,
11578 source/encoder/entropy.cpp, source/encoder/entropy.h,
11579 source/encoder/frameencoder.cpp:
11580 entropy: allocate RDO coders as dual-dimensioned array
11582 In order to make this change even less intrusive as it was going to
11583 be, I simultaneously changed the load/store functions to take
11584 references instead of pointers (since NULL pointers are not
11587 This further simplified setup/tear-down code and should improve data
11591 * source/encoder/framefilter.cpp, source/encoder/framefilter.h:
11592 framefilter: rename m_rdGoOnSbacCoder to m_sbacCoder - there is only
11596 * source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp,
11597 source/Lib/TLibEncoder/TEncBinCoderCABAC.h,
11598 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
11599 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
11600 source/encoder/CMakeLists.txt, source/encoder/cturow.cpp,
11601 source/encoder/cturow.h, source/encoder/entropy.cpp,
11602 source/encoder/entropy.h, source/encoder/frameencoder.cpp,
11603 source/encoder/frameencoder.h, source/encoder/framefilter.cpp,
11604 source/encoder/framefilter.h:
11605 entropy: make m_cabac member of SBac class a non-pointer instance
11607 This forces a 1::1 correspondence between SBac and CABAC instances,
11608 which cleans up a mess of confusing allocations and assignments.
11610 This moves the CABAC class into entropy.h and it is no longer
11611 referenced outside of this header and entropy.cpp, allowing us to
11612 further combine them.
11615 * source/encoder/entropy.h:
11616 entropy: remove now unused Entropy class
11619 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
11620 source/Lib/TLibEncoder/TEncSearch.cpp,
11621 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp,
11622 source/encoder/cturow.cpp, source/encoder/cturow.h,
11623 source/encoder/frameencoder.cpp:
11624 remove Entropy from TEncCu, TEncSearch, and CTURow
11626 Instead, give each an SBac pointer that they are supposed to use to
11627 code the bitstream.
11630 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
11631 frameencoder: remove most traces of the Encoder class
11634 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
11635 frameencoder: do not pass member variable to its own function
11637 We were still passing an array of Bitstream objects to encodeSlice()
11638 even though the array was made a member of the class so it was
11639 available via m_outStreams. Within the function is was using both
11640 pointers, unhelfpully.
11643 * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
11644 source/encoder/cturow.cpp, source/encoder/cturow.h,
11645 source/encoder/entropy.cpp, source/encoder/entropy.h,
11646 source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp:
11647 entropy: remove m_slice member from SBac class
11649 The slice object was only needed in resetEntropy() and
11650 determineCabacInitIdx() and could be passed to those two methods
11653 It was also being used in two functions to gain access to the
11654 scaling list, but this was actually a problem for us because headers
11655 can be queuried before any slice objects are initialized so it was
11656 better to pass in the scaling lists directly from the top Encoder.
11657 Note this fixes a bug in scaling list support - we were previously
11658 incapable of signaling them properly in our stream headers.
11660 Removing this member variable lets us clean up a lot of redundant
11661 setSlice() calls and other cruft
11664 * source/encoder/frameencoder.cpp:
11665 frameencoder: do not use Entropy object to code stream headers
11668 * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp:
11669 sao: remove redundant braces and other nits
11672 * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
11673 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
11674 source/encoder/framefilter.cpp, source/encoder/framefilter.h:
11675 remove m_entropyCoder from FrameFilter and SAO code
11677 Lo and Behold! the SAO code suddenly makes a tad more sense when
11678 this useless redirection is removed
11681 * source/encoder/entropy.cpp, source/encoder/entropy.h:
11682 entropy: remove unnecessary API differences between Entropy and SBac
11684 These would only trip us up as we try to remove Entropy entirely
11687 2014-07-08 Steve Borho <steve@borho.org>
11689 * source/encoder/entropy.h:
11690 entropy: reorder SBac methods for more clarity
11693 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/entropy.h:
11694 entropy: remove default argument to encodeIntraDirModeLuma()
11697 * source/encoder/entropy.cpp:
11698 entropy: fix msvc warnings about signed/unsigned operations
11701 * source/encoder/entropy.cpp, source/encoder/entropy.h:
11702 entropy: hoist all non-trivial Entropy methods into SBac
11704 Now Entropy only exists in entropy.h, making further cleanups
11708 * source/encoder/entropy.cpp, source/encoder/entropy.h:
11709 entropy: remove all data members except m_entropyCoder
11711 The three variables were only used to maintain state through
11712 recursive calls to encodeTransform() and could be just as easily
11715 The class is now a pure reflector to the SBac class and can be merge
11716 into it piece-wise.
11719 * source/Lib/TLibCommon/ContextTables.h,
11720 source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCu.h,
11721 source/Lib/TLibEncoder/TEncEntropy.cpp,
11722 source/Lib/TLibEncoder/TEncEntropy.h,
11723 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
11724 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
11725 source/Lib/TLibEncoder/TEncSbac.cpp,
11726 source/Lib/TLibEncoder/TEncSbac.h,
11727 source/Lib/TLibEncoder/TEncSearch.cpp,
11728 source/Lib/TLibEncoder/TEncSearch.h, source/common/primitives.cpp,
11729 source/encoder/CMakeLists.txt, source/encoder/cturow.cpp,
11730 source/encoder/cturow.h, source/encoder/entropy.cpp,
11731 source/encoder/entropy.h, source/encoder/frameencoder.cpp,
11732 source/encoder/frameencoder.h, source/encoder/framefilter.cpp,
11733 source/encoder/framefilter.h:
11734 port TEncEntropy and TEncSbac into internal Entropy and SBac classes
11736 The Entropy class will be short-lived
11739 2014-07-09 Deepthi Nandakumar <deepthi@multicorewareinc.com>
11741 * Merge with stable
11744 * source/Lib/TLibEncoder/TEncCu.cpp:
11745 TEncCU: bug fix introduced in commit 8a5b02464813
11747 Remove the xCheckBestMode call, add in a ccontext save.
11748 [d6257335c537] [1.2] <stable>
11750 * source/Lib/TLibEncoder/TEncSearch.cpp:
11754 2014-07-09 Min Chen <chenm003@163.com>
11756 * source/Lib/TLibEncoder/TEncCu.cpp,
11757 source/Lib/TLibEncoder/TEncSearch.cpp:
11758 TEncCU: save CABAC context missing after merge
11760 Also removed an extra context save
11761 [8a5b02464813] <stable>
11763 * source/Lib/TLibEncoder/TEncCu.cpp,
11764 source/Lib/TLibEncoder/TEncSearch.cpp:
11765 TEncCU: save CABAC context missing after merge
11767 Also removed an extra context save
11770 2014-07-07 Satoshi Nakagawa <nakagawa424@oki.com>
11772 * source/Lib/TLibCommon/CommonDef.h,
11773 source/Lib/TLibCommon/TComSlice.cpp,
11774 source/Lib/TLibCommon/TComSlice.h,
11775 source/Lib/TLibCommon/TComTrQuant.cpp,
11776 source/Lib/TLibCommon/TComTrQuant.h,
11777 source/Lib/TLibEncoder/TEncSbac.cpp,
11778 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/dct.cpp,
11779 source/common/primitives.h, source/common/x86/pixel-util.h,
11780 source/common/x86/pixel-util8.asm, source/encoder/encoder.cpp,
11781 source/test/mbdstharness.cpp:
11782 quant: returns numSig instead of absSum and lastPos
11785 2014-07-07 Steve Borho <steve@borho.org>
11787 * source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/SEI.h,
11788 source/Lib/TLibCommon/TComBitCounter.h,
11789 source/Lib/TLibCommon/TComBitStream.cpp,
11790 source/Lib/TLibCommon/TComBitStream.h,
11791 source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
11792 source/Lib/TLibEncoder/NALwrite.cpp,
11793 source/Lib/TLibEncoder/NALwrite.h,
11794 source/Lib/TLibEncoder/SEIwrite.cpp,
11795 source/Lib/TLibEncoder/SEIwrite.h:
11796 Merge with default (prepare for 1.2)
11797 [6623f1195baa] <stable>
11799 * source/encoder/frameencoder.cpp:
11803 * source/Lib/TLibCommon/TComDataCU.cpp:
11804 cu: do not copy a QP buffer into itself - prevents valgrind warning
11807 * source/Lib/TLibCommon/TComDataCU.cpp:
11808 cu: cleanup and simplify initCU
11811 * source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp,
11812 source/encoder/ratecontrol.h, source/encoder/sei.h:
11813 rc: allocate HRD SEI structures on demand, fix RCE vtable/memset bug
11816 2014-07-03 Min Chen <chenm003@163.com>
11818 * source/encoder/frameencoder.cpp:
11819 avoid VS2008 and MinGW ambiguous pow() build warning
11822 2014-07-03 Deepthi Nandakumar <deepthi@multicorewareinc.com>
11824 * source/encoder/frameencoder.cpp:
11825 frameencoder: remove warning about ambiguous pow function
11828 * source/common/param.cpp:
11829 lambda-file: file close before return
11832 2014-07-03 Steve Borho <steve@borho.org>
11834 * source/input/y4m.cpp:
11835 y4m: avoid implicit size_t to int conversion, avoid more MSVC
11839 * source/encoder/encoder.h, source/encoder/frameencoder.cpp:
11840 encoder: avoid int64_t to int conversions, avoid more MSVC warnings
11843 * source/common/param.cpp:
11844 param: avoid spurious MSVC warning about buf being possibly
11848 * source/encoder/ratecontrol.cpp:
11849 ratecontrol: fix cast of cutree offset, avoids MSVC warning
11852 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
11853 frameencoder: match up integer argument types to avoid MSVC warning
11855 The prototype in the WaveFront base class was: virtual void
11856 processRow(int row, int threadId) = 0;
11858 Some versions of MSVC flag this as a warning
11861 * source/common/param.cpp:
11862 param: avoid spurious gcc warning about toksave possibly being
11866 2014-07-02 Steve Borho <steve@borho.org>
11868 * source/common/param.cpp, source/common/param.h,
11869 source/encoder/encoder.cpp:
11870 lamba-file: make improper number of constants a fatal error
11872 Having an invalid set of lambdas is likelty to be completely useless
11875 * source/common/param.cpp:
11876 lambda-file: detect and report if lamda file containts too many
11879 It seems likely that this is an unintended error the user would want
11880 to be made aware of.
11883 2014-07-02 Min Chen <chenm003@163.com>
11885 * source/Lib/TLibEncoder/TEncCu.cpp:
11886 simplify: getLumaIntraDir()[x] -> getLumaIntraDir(x)
11889 2014-07-02 Steve Borho <steve@borho.org>
11891 * doc/reST/cli.rst, source/CMakeLists.txt,
11892 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
11893 source/common/param.cpp, source/common/param.h,
11894 source/encoder/encoder.cpp, source/x265.cpp, source/x265.h:
11895 api: allow lambda tables to be user-specified via a text file
11897 This change allows easy experimentation with the lambda tables. One
11898 can cut-paste the existing tables from TComRom.cpp into a text file
11899 and hash(#) comment the C constructs (variable names and braces) and
11900 arrive at a functional lambda file, then edit to taste.
11903 * source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp,
11904 source/encoder/ratecontrol.h:
11905 rc: fix gcc warnings
11908 2014-06-30 Aarthi Thirumalai <aarthi@multicorewareinc.com>
11910 * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp,
11911 source/encoder/ratecontrol.h:
11912 rc: write frame stats and cu stats to file in first pass
11915 2014-06-26 Aarthi Thirumalai <Aarthi Thirumalai>
11917 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
11918 source/encoder/cturow.h, source/encoder/frameencoder.cpp,
11919 source/encoder/frameencoder.h:
11920 rc: compute inter, intra and skip cus per frame for the first pass
11923 2014-07-01 Aarthi Thirumalai <Aarthi Thirumalai>
11925 * source/common/frame.cpp, source/common/frame.h,
11926 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
11927 rc: move structure FrameStats to FrameEncoder class
11929 Stats are not needed post encode, moving it to FrameEncoder.
11932 2014-07-02 Satoshi Nakagawa <nakagawa424@oki.com>
11934 * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/dct.cpp,
11935 source/common/primitives.h, source/common/x86/asm-primitives.cpp,
11936 source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm,
11937 source/test/mbdstharness.cpp, source/test/mbdstharness.h:
11938 add primitives.nquant for RDOQ
11941 2014-07-02 Kavitha Sampath <kavitha@multicorewareinc.com>
11943 * source/common/frame.cpp:
11944 frame: initialize recon to avoid SAO read of uninitialized pixels
11948 2014-07-02 Steve Borho <steve@borho.org>
11950 * source/encoder/encoder.cpp, source/encoder/encoder.h,
11951 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
11952 source/encoder/framefilter.cpp, source/encoder/framefilter.h:
11953 encoder: fix --no-wpp behavior, keep TLD selection logic in one
11956 do not use static m_threadLocalData, this would break if multiple
11957 encoders were allocated in a single process
11959 pass the selected TLD to row processes, so they do not need to be
11960 aware of the WPP/NO-WPP details.
11962 Cleanup frameencoder.h, move non-trivial processRow() to the cpp
11966 2014-07-01 Steve Borho <steve@borho.org>
11968 * source/input/y4m.cpp, source/input/y4m.h, source/input/yuv.cpp,
11969 source/input/yuv.h:
11970 input: streamline control logic of threaded file readers
11972 These files were written before ThreadSafeInteger and this caused
11973 the control logic to be over-complicated. Now they can be greatly
11974 simplified and their control flows can be re-unified to be more like
11977 Also, drop PPA events. File reading is pretty uninteresting when
11981 2014-07-02 Steve Borho <steve@borho.org>
11983 * source/Lib/TLibEncoder/TEncEntropy.cpp,
11984 source/Lib/TLibEncoder/TEncEntropy.h:
11985 TEncEntropy: inline the only one caller of encodeInterDirPU
11988 * source/Lib/TLibEncoder/TEncCu.cpp,
11989 source/Lib/TLibEncoder/TEncEntropy.cpp,
11990 source/Lib/TLibEncoder/TEncEntropy.h,
11991 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp:
11992 TEncEntropy: hoist encodePredMode() after moving I-slice check to
11996 * source/Lib/TLibEncoder/TEncEntropy.h:
11997 TEncEntropy: reorder nit
12000 * source/Lib/TLibEncoder/TEncCu.cpp,
12001 source/Lib/TLibEncoder/TEncEntropy.cpp,
12002 source/Lib/TLibEncoder/TEncEntropy.h,
12003 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp:
12004 TEncEntropy: hoist encodeSkipFlag() after moving I-slice check to
12008 2014-07-01 Steve Borho <steve@borho.org>
12010 * source/Lib/TLibEncoder/TEncEntropy.cpp,
12011 source/Lib/TLibEncoder/TEncEntropy.h,
12012 source/encoder/frameencoder.cpp:
12013 TEncEntropy: hoist encodeSliceHeader() to header after simplifying
12016 * source/Lib/TLibEncoder/TEncEntropy.cpp:
12020 * source/Lib/TLibEncoder/TEncEntropy.cpp,
12021 source/Lib/TLibEncoder/TEncEntropy.h:
12022 TEncEntropy: hoist trivial functions to header for possible inlining
12024 And remove useless comments
12027 * source/Lib/TLibEncoder/TEncSearch.cpp:
12031 * source/Lib/TLibCommon/TComDataCU.cpp:
12032 TComDataCU: remove redundant refIdx check from fillMvpCand
12034 fillMvpCand is only called from one place and the refIdx will always
12038 * source/Lib/TLibEncoder/TEncSearch.cpp:
12042 * source/Lib/TLibEncoder/TEncSearch.cpp:
12043 TEncSearch: limit AMVP loop bounds in xCheckBestMVP
12045 entries in the table beyond m_num were not initialized
12046 [4f7be97ebb9d] <stable>
12048 2014-07-01 Ashok Kumar Mishra <ashok@multicorewareinc.com>
12050 * source/Lib/TLibCommon/TComDataCU.cpp,
12051 source/Lib/TLibCommon/TComDataCU.h,
12052 source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp:
12053 remove redundant memset
12056 2014-07-01 Satoshi Nakagawa <nakagawa424@oki.com>
12058 * source/Lib/TLibEncoder/TEncEntropy.cpp,
12059 source/Lib/TLibEncoder/TEncEntropy.h,
12060 source/Lib/TLibEncoder/TEncSbac.cpp,
12061 source/Lib/TLibEncoder/TEncSbac.h,
12062 source/Lib/TLibEncoder/TEncSearch.cpp,
12063 source/Lib/TLibEncoder/TEncSearch.h:
12064 split rate calculation functions to luma and chroma to simplify luma
12068 2014-06-27 Satoshi Nakagawa <nakagawa424@oki.com>
12070 * source/Lib/TLibCommon/TComTrQuant.cpp,
12071 source/Lib/TLibEncoder/TEncSearch.cpp:
12072 fix emms: move selectLambda() into xRateDistOptQuant() and issue
12076 2014-06-25 Aarthi Thirumalai <aarthi@multicorewareinc.com>
12078 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
12079 rc: rename texBits to coeffBits in RateControlEntry structure to
12080 maintain uniformity.
12083 2014-06-30 Steve Borho <steve@borho.org>
12085 * source/encoder/encoder.cpp:
12086 encoder: RDOQ is only applicable at rd levels 4, 5, and 6
12089 2014-06-27 Aarthi Thirumalai <aarthi@multicorewareinc.com>
12091 * source/Lib/TLibEncoder/TEncCu.cpp,
12092 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp,
12093 source/encoder/frameencoder.cpp:
12094 rc: accumulate mv bits, coeff bits per frame
12097 2014-06-30 Aarthi Thirumalai <aarthi@multicorewareinc.com>
12099 * source/Lib/TLibCommon/TComDataCU.cpp:
12100 TComDataCU: remove warnings for shadowed declaration
12103 2014-06-30 Albert Wang <Albert Wang>
12105 * source/encoder/frameencoder.cpp:
12106 frameencoder: fix for error in VPS when AccessUnitDelimeter is
12109 The bitstream needs to be reset before start encode VPS, since if
12110 AU_Delimeter is turned on, there is one byte of data left in the
12111 bitstream that will be written wrongly into the VPS.
12114 2014-06-30 Steve Borho <steve@borho.org>
12116 * doc/reST/cli.rst:
12117 rest: document ipratio and pbratio parameters
12120 2014-06-25 Satoshi Nakagawa <nakagawa424@oki.com>
12122 * source/common/param.cpp, source/x265.cpp:
12123 cli: add --ipratio and --pbratio
12126 2014-06-21 Steve Borho <steve@borho.org>
12129 cli: use consistent bool naming convention
12132 * source/Lib/TLibEncoder/TEncEntropy.cpp:
12136 2014-06-21 Satoshi Nakagawa <nakagawa424@oki.com>
12138 * source/input/y4m.cpp, source/input/yuv.cpp:
12139 input: fix race condition
12142 2014-06-26 Min Chen <chenm003@163.com>
12144 * source/Lib/TLibEncoder/TEncSbac.cpp:
12145 reduce condition jmp in codeCoeffNxN
12148 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
12149 util.h, source/common/x86/pixel-util8.asm:
12150 improve count_nonzero by SSSE3
12153 2014-06-27 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
12155 * source/Lib/TLibEncoder/TEncSearch.cpp:
12156 psyrd: fix for inconsistent output
12158 maximum buffer size for zeropel is MAX_CU_SIZExMAX_CU_SIZE. since
12159 stride was wrong, it was accessing out of boundary memory which was
12160 different for each run, so inconsistent output
12163 2014-06-27 Deepthi Nandakumar <deepthi@multicorewareinc.com>
12165 * source/encoder/framefilter.cpp:
12166 framefilter: disable warning
12169 2014-06-23 Min Chen <chenm003@163.com>
12171 * source/encoder/cturow.h, source/encoder/encoder.cpp,
12172 source/encoder/encoder.h, source/encoder/frameencoder.cpp,
12173 source/encoder/frameencoder.h, source/encoder/framefilter.cpp,
12174 source/encoder/framefilter.h:
12175 pass TLD into class FrameFilter
12178 2014-06-24 Satoshi Nakagawa <nakagawa424@oki.com>
12180 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
12181 source/Lib/TLibEncoder/TEncSearch.cpp,
12182 source/Lib/TLibEncoder/TEncSearch.h, source/common/shortyuv.cpp,
12183 source/common/shortyuv.h:
12184 refine intra tskip related.
12187 2014-06-25 Aarthi Thirumalai <aarthi@multicorewareinc.com>
12189 * source/Lib/TLibCommon/TComDataCU.cpp,
12190 source/Lib/TLibCommon/TComDataCU.h, source/common/frame.cpp,
12191 source/common/frame.h:
12192 rc: initalize states to hold frame statistics used in two pass
12194 frame stats includes mv bits,DC coeff bits and number of Intra,
12195 Inter and Skip Cus per frame.
12198 2014-06-25 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
12200 * source/encoder/compress.cpp, source/encoder/encoder.cpp:
12201 psy-rd: implement psy-rd in rdlevel=4,3 and 2
12204 2014-06-25 Ashok Kumar Mishra <ashok@multicorewareinc.com>
12206 * source/Lib/TLibCommon/TComDataCU.cpp,
12207 source/Lib/TLibCommon/TComDataCU.h,
12208 source/Lib/TLibCommon/TComLoopFilter.cpp,
12209 source/Lib/TLibCommon/TComPicSym.cpp,
12210 source/Lib/TLibCommon/TComPicSym.h,
12211 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
12212 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
12213 source/Lib/TLibCommon/TComSlice.cpp,
12214 source/Lib/TLibCommon/TComSlice.h,
12215 source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp,
12216 source/Lib/TLibEncoder/TEncBinCoderCABAC.h,
12217 source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
12218 source/Lib/TLibEncoder/TEncEntropy.cpp,
12219 source/Lib/TLibEncoder/TEncEntropy.h,
12220 source/Lib/TLibEncoder/TEncSbac.cpp,
12221 source/Lib/TLibEncoder/TEncSbac.h,
12222 source/Lib/TLibEncoder/TEncSearch.cpp,
12223 source/Lib/TLibEncoder/TEncSearch.h, source/common/frame.cpp,
12224 source/encoder/compress.cpp, source/encoder/encoder.cpp,
12225 source/encoder/encoder.h, source/encoder/frameencoder.cpp,
12226 source/encoder/framefilter.cpp:
12227 remove PCM mode support
12230 2014-06-24 Satoshi Nakagawa <nakagawa424@oki.com>
12232 * source/Lib/TLibEncoder/TEncSbac.cpp,
12233 source/Lib/TLibEncoder/TEncSearch.cpp:
12234 fix xGetIntraBitsQTChroma() for 4:2:2 [CHANGES OUTPUT 4:2:2 with
12238 2014-06-24 Deepthi Nandakumar <deepthi@multicorewareinc.com>
12240 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/rdcost.h:
12241 psy-rd chroma: Adjust chroma lambda based on QP offsets.
12243 This hurts PSNR but improves visual quality
12246 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
12247 source/common/common.h:
12248 psy-rd chroma: add chroma offset tables for lambda calculations
12251 * source/encoder/encoder.cpp:
12252 Chroma QP Offset: increase chroma QP when psy-rd is enabled.
12255 2014-06-23 Min Chen <chenm003@163.com>
12257 * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
12258 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
12259 source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp:
12260 move calcSaoStatsRowCus_BeforeDblk into encode loop
12263 2014-06-23 Ashok Kumar Mishra <ashok@multicorewareinc.com>
12265 * source/Lib/TLibCommon/TComDataCU.cpp,
12266 source/Lib/TLibCommon/TComDataCU.h,
12267 source/Lib/TLibCommon/TComMotionInfo.cpp,
12268 source/Lib/TLibCommon/TComMotionInfo.h,
12269 source/Lib/TLibCommon/TComPicSym.cpp,
12270 source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
12271 TEncCU:fix for memory leak
12274 2014-06-20 Praveen Tiwari <Praveen Tiwari>
12276 * source/encoder/compress.cpp:
12277 TEncCu: [CHANGES OUTPUT] xComputeCostIntraInInter, fix bug
12280 2014-06-21 Ashok Kumar Mishra <ashok@multicorewareinc.com>
12282 * source/Lib/TLibCommon/TComDataCU.cpp,
12283 source/Lib/TLibCommon/TComMotionInfo.cpp,
12284 source/Lib/TLibCommon/TComMotionInfo.h,
12285 source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
12286 TEncCU:fix for large memory consumption
12289 2014-06-20 Min Chen <chenm003@163.com>
12291 * source/Lib/TLibCommon/TComPicSym.cpp,
12292 source/Lib/TLibCommon/TComPicSym.h:
12293 alloc concatenation memory for m_cuData
12296 2014-06-20 Steve Borho <steve@borho.org>
12298 * source/Lib/TLibEncoder/TEncEntropy.cpp,
12299 source/Lib/TLibEncoder/TEncEntropy.h,
12300 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
12301 source/Lib/TLibEncoder/TEncSbac.cpp,
12302 source/Lib/TLibEncoder/TEncSbac.h, source/encoder/frameencoder.cpp,
12303 source/encoder/framefilter.cpp:
12304 entropy: remove TEncEntropyIf abstract class
12306 Only one class implemented the interface, so it served no purpose
12307 (except adding a vtable where we didn't need one). Renamed some
12308 member variables to make it all more explicit: m_entropyCoderIf ->
12309 m_entropyCoder, m_binIf -> m_cabac
12312 * source/Lib/TLibEncoder/TEncEntropy.cpp:
12316 * source/encoder/frameencoder.cpp:
12317 frameencoder: remove more redundant checks
12319 slice->getSaoEnabledFlag() is the same as saoParam->bSaoFlag[0]
12320 slice->getSaoEnabledFlagChroma() is the same as
12321 saoParam->bSaoFlag[1]
12324 * source/encoder/frameencoder.cpp:
12325 frameencoder: simplify cabac context save
12328 * source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
12329 source/encoder/frameencoder.cpp:
12330 frameencoder: simplify SAO reset when not enabled on slice
12333 * source/encoder/frameencoder.cpp:
12334 frameencoder: further simplify SAO coding
12337 * source/encoder/frameencoder.cpp:
12338 frameencoder: simplify SAO coding logic
12341 * source/encoder/frameencoder.cpp:
12342 frameencoder: simplify loop bounds
12345 * source/encoder/frameencoder.cpp:
12346 frameencoder: further simplify the logic which sync's CABAC with
12350 * source/encoder/frameencoder.cpp:
12351 frameencoder: remove redundant widthInCU variable
12354 * source/encoder/frameencoder.cpp:
12355 frameencoder: simplify logic slightly, numSubstreams can be > 1 only
12359 * source/encoder/frameencoder.cpp:
12363 * source/encoder/frameencoder.cpp:
12364 frameencoder: move trace code for clarity, remove dead
12368 * source/encoder/frameencoder.cpp:
12369 frameencoder: use m_param->bEnableWavefront directly
12372 * source/encoder/frameencoder.cpp:
12373 frameencoder: simplify setup for encodeSlice()
12376 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
12377 frameencoder: rename m_pic to m_frame
12380 * source/encoder/frameencoder.cpp:
12381 frameencoder: remove unread bitsOriginallyInSubstreams
12384 2014-06-20 Aarthi Thirumalai <aarthi@multicorewareinc.com>
12386 * doc/reST/cli.rst, source/CMakeLists.txt,
12387 source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
12388 source/common/param.cpp, source/encoder/encoder.cpp,
12389 source/encoder/frameencoder.cpp, source/x265.cpp, source/x265.h:
12390 make cu level stats logging run time configurable
12392 two-pass encodes will need these statistics, so they need to always
12393 be compiled into libx265.
12396 2014-06-20 Steve Borho <steve@borho.org>
12402 * source/Lib/TLibCommon/TComDataCU.cpp,
12403 source/Lib/TLibCommon/TComDataCU.h,
12404 source/Lib/TLibCommon/TComLoopFilter.cpp,
12405 source/Lib/TLibCommon/TComLoopFilter.h,
12406 source/Lib/TLibCommon/TComPattern.cpp,
12407 source/Lib/TLibCommon/TComPattern.h,
12408 source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
12409 source/Lib/TLibCommon/TComPrediction.h,
12410 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
12411 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
12412 source/Lib/TLibCommon/TComSlice.cpp,
12413 source/Lib/TLibCommon/TComSlice.h,
12414 source/Lib/TLibCommon/TComTrQuant.cpp,
12415 source/Lib/TLibCommon/TComWeightPrediction.h,
12416 source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
12417 source/Lib/TLibEncoder/TEncEntropy.h,
12418 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
12419 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
12420 source/common/CMakeLists.txt, source/common/frame.cpp,
12421 source/common/frame.h, source/common/lowres.cpp,
12422 source/common/param.cpp, source/common/piclist.cpp,
12423 source/common/piclist.h, source/encoder/compress.cpp,
12424 source/encoder/cturow.h, source/encoder/dpb.cpp,
12425 source/encoder/dpb.h, source/encoder/encoder.cpp,
12426 source/encoder/encoder.h, source/encoder/frameencoder.cpp,
12427 source/encoder/frameencoder.h, source/encoder/framefilter.cpp,
12428 source/encoder/framefilter.h, source/encoder/ratecontrol.cpp,
12429 source/encoder/ratecontrol.h, source/encoder/slicetype.cpp,
12430 source/encoder/slicetype.h, source/encoder/weightPrediction.cpp:
12431 replace TComPic with Frame class in common/frame.h
12433 The new class name clashes with old variables like pic or m_pic, but
12434 I would like to pull in TComPicYuv in the future as a Picture class,
12435 and TComYUV as Yuv class.
12438 * source/encoder/frameencoder.cpp:
12439 frameencoder: fix --no-wpp, broken since 854f5e3072a0
12442 2014-06-20 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
12444 * source/common/param.cpp, source/encoder/encoder.cpp:
12445 encoder: move psy-rd logic together
12448 2014-06-20 Steve Borho <steve@borho.org>
12450 * source/encoder/encoder.cpp:
12451 encoder: use free() to release strdup'd string
12454 2014-06-19 Steve Borho <steve@borho.org>
12456 * source/Lib/TLibEncoder/TEncSearch.cpp,
12457 source/Lib/TLibEncoder/TEncSearch.h,
12458 source/encoder/frameencoder.cpp:
12459 TEncSearch: change pointer type of m_mref, to avoid repeated pointer
12463 * source/Lib/TLibEncoder/TEncSearch.h, source/encoder/cturow.cpp,
12464 source/encoder/cturow.h, source/encoder/encoder.cpp,
12465 source/encoder/encoder.h, source/encoder/frameencoder.cpp,
12466 source/encoder/frameencoder.h:
12467 cturow: use thread local storage for TEncCU and TEncSearch
12469 This saves about 10% of memory by reducing redundancy, and lays the
12470 ground work for more fine grained work distribution.
12473 * source/Lib/TLibCommon/TComDataCU.cpp,
12474 source/Lib/TLibCommon/TComDataCU.h,
12475 source/Lib/TLibCommon/TComLoopFilter.cpp,
12476 source/Lib/TLibCommon/TComLoopFilter.h,
12477 source/Lib/TLibCommon/TComSlice.cpp,
12478 source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp,
12479 source/encoder/encoder.h, source/encoder/framefilter.cpp:
12480 cu: remove m_loopFilterAcrossTilesEnabledFlag and getPU* default
12484 2014-06-20 Steve Borho <steve@borho.org>
12486 * source/encoder/frameencoder.cpp:
12487 frameencoder: comment nits
12490 2014-06-20 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
12492 * source/encoder/encoder.cpp:
12493 encoder:[CHANGES OUTPUT] disable rdoq when psyrd is enabled
12496 2014-06-20 Steve Borho <steve@borho.org>
12498 * source/encoder/nal.cpp:
12499 nal: include the start code bytes in the bounds check
12502 * source/encoder/nal.cpp:
12506 * source/encoder/frameencoder.cpp, source/encoder/nal.cpp,
12507 source/encoder/nal.h:
12508 nal: allow the concatenated substream buffer to be re-used from
12511 this removes another malloc/free from the processing of every frame.
12512 This commit also moves the NALList constructor to nal.cpp since it
12513 is no longer quite so trivial. Lastly, it adds a check to prevent
12514 crashes in case one or more of the WPP substreams had a malloc
12518 * source/encoder/nal.cpp:
12519 fix checked build warning
12522 * source/common/bitstream.cpp, source/encoder/cturow.cpp:
12523 fix msvc build warnings
12526 2014-06-19 Steve Borho <steve@borho.org>
12528 * source/Lib/TLibCommon/TComBitStream.cpp,
12529 source/Lib/TLibCommon/TComBitStream.h,
12530 source/Lib/TLibEncoder/SyntaxElementWriter.h,
12531 source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp,
12532 source/Lib/TLibEncoder/TEncBinCoderCABAC.h,
12533 source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
12534 source/Lib/TLibEncoder/TEncEntropy.h,
12535 source/Lib/TLibEncoder/TEncSbac.cpp,
12536 source/Lib/TLibEncoder/TEncSbac.h, source/common/CMakeLists.txt,
12537 source/common/bitstream.cpp, source/common/bitstream.h,
12538 source/encoder/cturow.cpp, source/encoder/cturow.h,
12539 source/encoder/encoder.cpp, source/encoder/frameencoder.cpp,
12540 source/encoder/frameencoder.h, source/encoder/framefilter.h,
12541 source/encoder/nal.cpp, source/encoder/nal.h,
12542 source/encoder/sei.cpp, source/encoder/sei.h:
12543 move bitstream implementations into common
12546 * source/Lib/TLibCommon/TComBitStream.cpp,
12547 source/Lib/TLibCommon/TComBitStream.h,
12548 source/encoder/frameencoder.cpp:
12549 bitstream: unify resetBits() and clear() methods
12551 There's no point in having a virtual resetBits() method in the
12552 abstract class and then not implemeent in the derived class but make
12553 a second method with identical semantics. What the heck?
12556 * source/encoder/api.cpp, source/encoder/encoder.cpp,
12557 source/encoder/encoder.h:
12558 encoder: remove redundant flush argument
12561 * source/encoder/encoder.cpp, source/encoder/encoder.h:
12562 encoder: cleanup obsolete NAL data fields
12565 2014-06-20 Satoshi Nakagawa <nakagawa424@oki.com>
12567 * source/encoder/api.cpp, source/encoder/encoder.cpp,
12568 source/encoder/encoder.h, source/encoder/slicetype.cpp:
12569 x265_encoder_encode: don't return 0 while flushing.
12572 2014-06-18 Deepthi Nandakumar <deepthi@multicorewareinc.com>
12574 * source/Lib/TLibEncoder/TEncSearch.cpp,
12575 source/Lib/TLibEncoder/TEncSearch.h,
12576 source/encoder/frameencoder.cpp:
12577 lambda: [CHANGES OUTPUT] Change the distortion weights applied to
12580 Inside R-D, a single lambda is applied for both luma and chroma. To
12581 account for the different QPs, (as defined by the standard) the
12582 chroma distortion was weighted by a factor proportional to the
12583 difference in QPs. This patch eliminates the extra weighting given
12584 to the chroma distortion (since it is visually less perceptible).
12587 2014-06-19 Steve Borho <steve@borho.org>
12589 * source/encoder/ratecontrol.cpp:
12590 rc: disable MSVC warnings about using POSIX function names like
12594 2014-06-16 Ashok Kumar Mishra <ashok@multicorewareinc.com>
12596 * source/Lib/TLibCommon/TComDataCU.cpp,
12597 source/Lib/TLibCommon/TComDataCU.h,
12598 source/Lib/TLibCommon/TComMotionInfo.cpp,
12599 source/Lib/TLibCommon/TComMotionInfo.h,
12600 source/Lib/TLibCommon/TComPicSym.cpp,
12601 source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
12602 TComDataCU: refactor structure for better data locality
12605 2014-06-19 Steve Borho <steve@borho.org>
12607 * source/Lib/TLibCommon/TComDataCU.h:
12611 2014-06-19 Min Chen <chenm003@163.com>
12613 * source/Lib/TLibCommon/TComLoopFilter.cpp,
12614 source/Lib/TLibCommon/TComLoopFilter.h,
12615 source/encoder/framefilter.cpp:
12616 move m_blockingStrength to local
12619 * source/Lib/TLibCommon/TComLoopFilter.cpp,
12620 source/Lib/TLibCommon/TComLoopFilter.h:
12621 static m_bLFCrossTileBoundary since all of LCU use same value
12624 * source/Lib/TLibCommon/TComLoopFilter.cpp,
12625 source/Lib/TLibCommon/TComLoopFilter.h:
12626 remove reduce code since trHeight always equal to trWidth
12629 2014-06-17 Aarthi Thirumalai <aarthi@multicorewareinc.com>
12631 * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp,
12632 source/encoder/ratecontrol.h:
12633 rc: initialize the 2 pass states in rc
12636 * source/common/param.cpp:
12637 param: log rc states of m_param in x265_param2string
12640 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
12641 rc: add 2 pass states in RateControl
12644 * source/common/param.cpp, source/encoder/slicetype.cpp:
12645 rc: define default setting and validations for 2 pass states
12648 * source/CMakeLists.txt, source/x265.h:
12649 api: introduce param variables for two-pass encodes
12652 2014-06-19 Steve Borho <steve@borho.org>
12654 * source/encoder/encoder.h:
12655 encoder: remove useless comment
12658 * source/common/common.h, source/encoder/api.cpp,
12659 source/encoder/encoder.cpp, source/encoder/encoder.h,
12660 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
12661 source/encoder/nal.cpp, source/encoder/nal.h:
12662 nal: refactor nal code, marshall packets directly into output buffer
12664 This removes two malloc/free for every NAL unit and removes yet
12665 another set of memcopies at the end of the each frame encode. We're
12666 now writing the escaped NAL packets directly into the buffer handed
12669 We preserve the max size of this output buffer to prevent having to
12670 do any reallocations once the encoder is running.
12673 2014-06-19 Satoshi Nakagawa <nakagawa424@oki.com>
12675 * source/encoder/encoder.cpp, source/encoder/encoder.h:
12676 keep TComPic until next call if recpic is exported as pic_out
12678 We must prevent the recon YUV from being recycled until the next
12679 picture is encoded.
12682 2014-06-19 Gopu Govindaswamy <Gopu Govindaswamy>
12684 * source/encoder/encoder.h:
12685 encoder: remove m_freeList from encoder class, the m_freeList moved
12689 * source/encoder/dpb.cpp:
12690 dpb: destroy and delete m_reconPicYuv from picSymFreeList
12693 2014-06-19 Deepthi Nandakumar <deepthi@multicorewareinc.com>
12695 * source/Lib/TLibCommon/TComTrQuant.cpp:
12696 quant: correct QP range clipping for 10-bit input depths.
12698 Fixes a bad hash error and artifacts introduced by commit
12702 2014-06-18 Steve Borho <steve@borho.org>
12704 * source/common/pixel.cpp:
12705 pixel: fixup zeroBug stride for satd_4x4 in psyCost (spotted by
12708 This fixes a bug introduced in f3fb2d2b0ba6
12711 * source/Lib/TLibCommon/TComPic.cpp:
12712 pic: reorder initializations after moving m_reconPicYuv in
12715 Fixes a gcc warning
12718 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
12719 source/Lib/TLibCommon/TComPicSym.h, source/encoder/dpb.cpp,
12720 source/encoder/encoder.cpp:
12721 pic: keep the recon TComPicYuv in the pool with the TComPicSym -
12725 * source/encoder/encoder.cpp, source/encoder/frameencoder.h,
12726 source/encoder/framefilter.cpp:
12727 frameencoder: make m_ssimCnt an unsigned int
12730 * source/encoder/encoder.h:
12731 encoder: move EncStats into x265 namespace
12734 2014-06-17 Steve Borho <steve@borho.org>
12736 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
12737 source/Lib/TLibCommon/TComPicSym.cpp,
12738 source/Lib/TLibCommon/TComPicSym.h, source/encoder/dpb.cpp,
12739 source/encoder/dpb.h, source/encoder/encoder.cpp,
12740 source/encoder/encoder.h, source/encoder/slicetype.cpp:
12741 pic: keep a pool of TComPicSym, allocate only for encode process
12743 This commit moves the picture freelist to the DPB, it seemed to
12744 belong there. This change reduced memory in a medium encode by more
12748 * source/Lib/TLibCommon/TComPic.h:
12752 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
12753 source/encoder/encoder.cpp:
12754 pic: split picsym allocation from main create function, rename
12758 * source/Lib/TLibCommon/TComPic.h:
12759 pic: destroy() no longer needs to be virtual, compress white-space
12762 * source/Lib/TLibCommon/TComPic.h:
12763 pic: improve comments
12766 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
12767 source/Lib/TLibCommon/TComSlice.cpp:
12768 pic: remove unread m_bCheckLTMSB
12771 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
12772 source/encoder/dpb.cpp:
12773 pic: remove unread m_bUsedByCurr
12776 * source/Lib/TLibEncoder/TEncCu.cpp,
12777 source/Lib/TLibEncoder/TEncSearch.cpp,
12778 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp:
12779 TEncSearch: keep param pointer instead of top encoder pointer
12781 This required cacheing some top encoder fields in TEncSearch
12784 * source/Lib/TLibEncoder/TEncSearch.h:
12788 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
12789 source/encoder/framefilter.cpp, source/encoder/framefilter.h:
12790 framefilter: replace top pointer with param pointer
12793 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
12794 frameencoder: replace m_cfg with m_param pointer, use m_top for
12798 * source/encoder/frameencoder.h:
12799 frameencoder: remove unused bitcounter
12802 * source/Lib/TLibCommon/TComDataCU.cpp,
12803 source/Lib/TLibEncoder/TEncCu.cpp:
12804 TComDataCU: remove hungarian prefixes from CU vars
12807 * source/Lib/TLibCommon/TComPicSym.h:
12808 sym: do not return pointer reference from getCU()
12811 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
12812 source/encoder/encoder.cpp, source/encoder/frameencoder.cpp,
12813 source/encoder/frameencoder.h:
12814 pic: move m_elapsedCompressTime and m_frameTime to frame encoder
12816 This data only needs to exist when the picture is being encoded
12819 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
12820 source/encoder/encoder.cpp, source/encoder/frameencoder.cpp,
12821 source/encoder/frameencoder.h, source/encoder/framefilter.cpp,
12822 source/encoder/framefilter.h:
12823 pic: move SSIM, PSNR and hash to frame encoder
12825 This data only needs to exist when the picture is being encoded.
12826 This changes the SSIM scores slightly, even though the bitstream and
12827 recon does not change, because it is resetting the SSIM sum and
12828 counter each frame. When these fields were on the TComPic, they were
12832 * source/Lib/TLibCommon/TComPic.h, source/encoder/frameencoder.cpp,
12833 source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
12834 pic: move timing structures to RateControlEntry
12836 This saves a bit of memory, since this data only needs to exist when
12837 the picture is being encoded.
12840 * source/encoder/sei.h:
12841 sei: remove unused RESERVED hash method, avoid compiler warnings
12844 * source/Lib/TLibCommon/TComPic.h, source/encoder/frameencoder.cpp,
12845 source/encoder/ratecontrol.cpp:
12846 pic: better name for picture timing SEI member
12849 * source/Lib/TLibEncoder/SyntaxElementWriter.cpp,
12850 source/Lib/TLibEncoder/SyntaxElementWriter.h:
12851 writer: xConvertToUInt did not need to be a class member
12854 * source/encoder/sei.h:
12855 sei: allow SEI classes to implement write() directly to avoid two-
12859 * source/encoder/encoder.cpp, source/encoder/frameencoder.cpp,
12860 source/encoder/sei.h:
12861 sei: add m_ prefix to members of SEIDecodedPictureHash for
12865 * source/encoder/frameencoder.cpp:
12866 sei: repair decoded picture hash SEI
12869 * source/common/pixel.cpp:
12870 psyrd: use zero stride in psyCost C reference, minor optimization
12873 * source/Lib/TLibEncoder/TEncSearch.cpp:
12874 TEncSearch: simplify square block dim logic
12876 this works around a bizarre MSVC warning on those lines. '<<' :
12877 result of 32-bit shift implicitly converted to 64 bits (was 64-bit
12880 I have no idea why it was implicitly making the result 64bits.
12883 2014-06-16 Satoshi Nakagawa <nakagawa424@oki.com>
12885 * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp:
12886 fix: TOPSKIP refers outside of picture [OUTPUT CHANGE]
12889 2014-06-17 Deepthi Nandakumar <deepthi@multicorewareinc.com>
12891 * source/Lib/TLibCommon/TComTrQuant.cpp:
12892 quant: Enforce QP range after adding bit-depth offsets
12895 2014-06-17 Kavitha Sampath <kavitha@multicorewareinc.com>
12897 * source/encoder/ratecontrol.cpp:
12898 sei: disable HRD with warning when vbv is off
12901 2014-06-17 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
12903 * source/Lib/TLibEncoder/TEncSearch.cpp,
12904 source/Lib/TLibEncoder/TEncSearch.h:
12905 psyrd: use psyrdcost for PU/TU decision for inter and intra
12908 2014-06-17 Steve Borho <steve@borho.org>
12910 * source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComPic.cpp,
12911 source/Lib/TLibCommon/TComPic.h,
12912 source/Lib/TLibEncoder/SEIwrite.cpp,
12913 source/Lib/TLibEncoder/SEIwrite.h, source/common/CMakeLists.txt,
12914 source/encoder/CMakeLists.txt, source/encoder/frameencoder.cpp,
12915 source/encoder/frameencoder.h, source/encoder/ratecontrol.cpp,
12916 source/encoder/sei.cpp, source/encoder/sei.h:
12917 sei: first step towards simplifying SEI writing
12920 * source/Lib/TLibCommon/TComBitStream.h:
12921 bitstream: give bit counter a useful constructor
12924 2014-06-17 Deepthi Nandakumar <deepthi@multicorewareinc.com>
12926 * source/encoder/ratecontrol.cpp:
12927 ratecontrol: [CHANGES OUTPUT for 10-bit CRF] Remove QP_BD_OFFSET
12930 This offset is added inside Quant (setQPforQuant)
12933 * source/common/param.cpp, source/encoder/ratecontrol.cpp:
12934 ratecontrol: move validate of CRF params to x265_check_param
12937 2014-06-17 Steve Borho <steve@borho.org>
12939 * source/Lib/TLibEncoder/SyntaxElementWriter.h:
12943 2014-06-17 Min Chen <chenm003@163.com>
12945 * source/Lib/TLibCommon/TComLoopFilter.cpp,
12946 source/Lib/TLibCommon/TComLoopFilter.h:
12947 cleanup unused TComLoopFilter::loopFilterPic
12950 * source/Lib/TLibCommon/TComLoopFilter.cpp,
12951 source/Lib/TLibCommon/TComLoopFilter.h,
12952 source/encoder/framefilter.cpp:
12953 move m_bEdgeFilter to local
12956 * source/Lib/TLibCommon/TComLoopFilter.cpp,
12957 source/Lib/TLibCommon/TComLoopFilter.h:
12958 move lfcuParam to local
12961 2014-06-16 Steve Borho <steve@borho.org>
12963 * source/Lib/TLibCommon/TComBitStream.cpp,
12964 source/Lib/TLibCommon/TComBitStream.h,
12965 source/encoder/frameencoder.cpp, source/encoder/nal.cpp,
12966 source/encoder/nal.h:
12967 nal: concatenate and escape row data while building row-start array
12970 This way we only need to do a single pass over each slice NAL
12971 looking for start code emulations; and there is one less memcopy.
12972 countStartCodeEmulations() and appendSubstream() methods could be
12976 * source/common/pixel.cpp:
12977 pixel: prevent msvc warning
12980 2014-06-15 Satoshi Nakagawa <nakagawa424@oki.com>
12982 * source/Lib/TLibEncoder/TEncEntropy.cpp,
12983 source/Lib/TLibEncoder/TEncSearch.cpp,
12984 source/Lib/TLibEncoder/TEncSearch.h:
12985 refine tskip related
12988 2014-06-14 Satoshi Nakagawa <nakagawa424@oki.com>
12990 * source/Lib/TLibCommon/TComTrQuant.cpp,
12991 source/Lib/TLibCommon/TComTrQuant.h,
12992 source/Lib/TLibEncoder/TEncSearch.cpp,
12993 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/cturow.cpp,
12994 source/encoder/frameencoder.cpp:
12995 TComTrQuant: lambda for each Cb and Cr
12998 2014-06-16 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
13000 * source/common/pixel.cpp, source/common/primitives.cpp,
13001 source/common/primitives.h, source/encoder/rdcost.h:
13002 psyRd: Change psy-rd energy measurement
13004 psy-rd energy is measured by summing up the absolute differences of
13005 the AC energy in each 8x8 block in series
13008 2014-06-12 Steve Borho <steve@borho.org>
13010 * source/Lib/TLibCommon/TComBitStream.cpp:
13011 bitstream: simplify appendSubstream
13013 This function is only called from one place, and we can clearly see
13014 that both the source and dest bitstreams are byte-aligned.
13017 * source/Lib/TLibEncoder/TEncSbac.cpp:
13018 sbac: simplify codeSliceHeader, x265 never codes dependent slices
13021 * source/Lib/TLibCommon/TComSlice.cpp,
13022 source/Lib/TLibCommon/TComSlice.h,
13023 source/Lib/TLibEncoder/TEncSbac.cpp,
13024 source/encoder/frameencoder.cpp:
13025 slice: remove unused m_nextSlice and m_dependentSliceSegmentFlag
13028 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
13029 frameencoder: inline resetEntropy(), which was only called once
13032 * source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp,
13033 source/encoder/framefilter.h:
13034 framefilter: remove empty end method
13037 * source/encoder/frameencoder.cpp:
13038 frameencoder: use numSubstreams directly
13041 * source/encoder/frameencoder.cpp:
13042 frameencoder: remove useless setBitstream call
13045 * source/encoder/frameencoder.cpp:
13046 frameencoder: remove redundant function calls and obsolete comments
13049 * source/encoder/frameencoder.cpp:
13050 frameencoder: explain why SAO is being called after compression
13053 * source/Lib/TLibCommon/TComSlice.cpp,
13054 source/Lib/TLibCommon/TComSlice.h, source/encoder/frameencoder.cpp:
13055 slice: remove unused m_tileOffstForMultES
13058 * source/encoder/frameencoder.cpp:
13059 frameencoder: remove need for intermediate bitstreamRedirect
13062 * source/encoder/frameencoder.cpp:
13063 frameencoder: remove sliceSegment, it was always false
13066 * source/encoder/frameencoder.cpp:
13067 frameencoder: remove unnecessary set of nextSlice()
13069 This flag is only read in one place, when encoding the slice header.
13070 We do not support multiple slices, so there's no point in setting
13071 this multiple times.
13074 * source/encoder/encoder.cpp, source/encoder/encoder.h:
13075 encoder: remove unused m_bPCMInputBitDepthFlag
13078 * source/Lib/TLibCommon/SEI.h, source/Lib/TLibEncoder/SEIwrite.cpp,
13079 source/Lib/TLibEncoder/SEIwrite.h, source/encoder/encoder.cpp,
13080 source/encoder/encoder.h, source/encoder/frameencoder.cpp:
13081 remove unused display orientation SEI
13084 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
13085 frameencoder: make per-row output streams member variables
13087 Avoid repeated malloc/free and subsequent reallocs and frees each
13091 * source/encoder/frameencoder.cpp:
13092 frameencoder: nit, unify comment style in this function
13095 * source/encoder/frameencoder.cpp:
13096 frameencoder: remove redundant sets of SAO lambdas, reorder for
13100 * source/encoder/frameencoder.cpp:
13104 * source/encoder/frameencoder.cpp:
13105 frameencoder: move QP/lambda initialization together
13108 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
13109 frameencoder: inline slice bounds determination, do not perform
13113 * source/Lib/TLibCommon/TComSlice.cpp,
13114 source/Lib/TLibCommon/TComSlice.h, source/encoder/frameencoder.cpp:
13115 slice: remove unused finalized flag
13118 * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp:
13119 sao: remove unnecessary shim function
13122 * source/encoder/frameencoder.cpp:
13123 frameencoder: remove obsolete comment
13126 * source/encoder/dpb.cpp:
13127 dpb: no need to reset next slice in init function
13130 * source/encoder/frameencoder.cpp:
13131 frameencoder: declare bitstreamRedirect on stack, do not malloc.
13135 * source/Lib/TLibCommon/SEI.h, source/Lib/TLibEncoder/SEIwrite.cpp,
13136 source/Lib/TLibEncoder/SEIwrite.h, source/encoder/encoder.cpp,
13137 source/encoder/encoder.h, source/encoder/frameencoder.cpp:
13138 remove unused gradual decoding refresh info SEI
13141 * source/encoder/frameencoder.cpp:
13142 frameencoder: move prefix SEI generation all together, before
13146 * source/encoder/frameencoder.h:
13147 frameencoder: fix header case
13149 Reported by Elyonta
13152 2014-06-12 Aarthi Thirumalai <Aarthi Thirumalai>
13154 * source/encoder/ratecontrol.cpp:
13155 rc: set isCbr flag to true only in vbv mode and maxrate equals
13159 2014-06-12 Steve Borho <steve@borho.org>
13161 * source/encoder/compress.cpp:
13162 compress: add EMMS at return of xCompressInterCu
13164 Removed the EMMS from xComputeCostMerge2Nx2N since it is only called
13165 from the CU compress function and it is not using floats
13168 2014-06-05 Steve Borho <steve@borho.org>
13170 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
13171 frameencoder: re-use a single bitstream object for all NAL and SEI
13173 This saves on malloc/free/realloc/memcpy calls.
13176 2014-06-11 Steve Borho <steve@borho.org>
13178 * source/encoder/compress.cpp:
13179 compress: nit comment spacing
13182 * source/encoder/weightPrediction.cpp:
13183 weight: ensure weight table is initialized on failure, simplify
13187 * source/encoder/compress.cpp:
13188 compress: remove floating point math to avoid needing to use EMMS
13191 * source/Lib/TLibCommon/TComDataCU.h:
13195 * source/encoder/frameencoder.cpp:
13196 frameencoder: remove obsolete check
13199 * source/encoder/nal.cpp:
13200 nal: msvc and its integer conversion warnings
13203 * source/encoder/nal.cpp:
13204 nal: greatly simplify NAL header generation, do not use
13205 TComOutputBitstream
13207 This saves a malloc/free and a great deal of needless overhead
13210 2014-06-10 Steve Borho <steve@borho.org>
13212 * source/encoder/encoder.cpp:
13213 encoder: set m_totalFrameThreads at the same time as
13214 param->frameNumThreads
13217 * doc/reST/cli.rst, source/common/param.cpp,
13218 source/encoder/encoder.cpp:
13219 param: clip bframe bias range as x264 does
13222 2014-06-10 Kavitha Sampath <kavitha@multicorewareinc.com>
13224 * source/Lib/TLibCommon/TComRom.cpp:
13225 TComRom: fix fraction part variation in x265_lambda2_tab for higher
13229 2014-06-09 Deepthi Nandakumar <deepthi@multicorewareinc.com>
13231 * source/common/param.cpp:
13232 preset: improve the speed settings for fast preset.
13235 2014-06-05 Steve Borho <steve@borho.org>
13237 * source/encoder/ratecontrol.cpp:
13241 * source/encoder/ratecontrol.cpp:
13242 rc: fix potential build warning
13243 [7a3214c9622f] <stable>
13245 * source/common/common.h:
13246 common: include cctype for isdigit
13249 * source/Lib/TLibCommon/TComBitStream.cpp:
13250 bitstream: fast-path for appending bitstreams
13253 * source/encoder/nal.cpp:
13254 nal: add back comments now that member variables are gone
13257 * source/Lib/TLibCommon/TComBitStream.cpp,
13258 source/Lib/TLibCommon/TComBitStream.h, source/common/common.h,
13259 source/encoder/frameencoder.cpp, source/encoder/nal.cpp:
13260 bitstream: simplify TComBitStream interface and code
13263 * source/Lib/TLibCommon/TComSlice.cpp:
13264 TComSlice: remove layer violation include
13266 files in common/ shouldn't include encoder/ headers
13269 * source/Lib/TLibCommon/CommonDef.h,
13270 source/Lib/TLibCommon/TComBitStream.h,
13271 source/Lib/TLibCommon/TComDataCU.h,
13272 source/Lib/TLibCommon/TComLoopFilter.h,
13273 source/Lib/TLibCommon/TComMotionInfo.h,
13274 source/Lib/TLibCommon/TComPattern.h,
13275 source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicSym.h,
13276 source/Lib/TLibCommon/TComPicYuv.h,
13277 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
13278 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
13279 source/Lib/TLibCommon/TComSlice.cpp,
13280 source/Lib/TLibCommon/TComSlice.h,
13281 source/Lib/TLibCommon/TComTrQuant.h,
13282 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
13283 source/Lib/TLibEncoder/SyntaxElementWriter.cpp,
13284 source/Lib/TLibEncoder/SyntaxElementWriter.h,
13285 source/Lib/TLibEncoder/TEncCu.h, source/common/common.cpp,
13286 source/common/common.h, source/encoder/level.cpp,
13287 source/encoder/level.h, source/test/testharness.h:
13288 always include CommonDef.h via common.h, avoid include loops
13290 Remove some spurious stdlib includes not in common.h
13293 * source/Lib/TLibCommon/TComBitCounter.h,
13294 source/Lib/TLibCommon/TComBitStream.h,
13295 source/Lib/TLibEncoder/SEIwrite.cpp,
13296 source/Lib/TLibEncoder/TEncCu.h,
13297 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
13298 source/common/CMakeLists.txt, source/encoder/cturow.h,
13299 source/encoder/frameencoder.h:
13300 merge TComBitCounter into TComBitStream.h
13303 * source/encoder/nal.cpp:
13304 nal: add more padding for corner cases
13307 2014-06-05 Kavitha Sampath <kavitha@multicorewareinc.com>
13309 * source/encoder/frameencoder.cpp:
13310 weightb: reinitialize weight table when weightb is off
13313 2014-06-05 Deepthi Nandakumar <deepthi@multicorewareinc.com>
13315 * source/encoder/ratecontrol.h:
13316 ratecontrol: change type of m_bframeBits to int64_t
13319 2014-06-04 Steve Borho <steve@borho.org>
13321 * source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp:
13325 2014-06-04 Aarthi Thirumalai <Aarthi Thirumalai>
13327 * source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp:
13328 rc: fixes to improve quality in vbv
13329 [93921c0afac5] <stable>
13331 2014-06-05 Aarthi Thirumalai <Aarthi Thirumalai>
13333 * source/encoder/ratecontrol.cpp:
13334 rc: use actual bits to update vbv buffer
13335 [4df4e48d24a0] <stable>
13337 2014-06-04 Aarthi Thirumalai <Aarthi Thirumalai>
13339 * source/encoder/ratecontrol.cpp:
13340 rc: set pbFactor to default with cutree
13341 [a076f4fc8d36] <stable>
13343 2014-06-04 Steve Borho <steve@borho.org>
13345 * source/Lib/TLibCommon/NAL.h, source/Lib/TLibEncoder/NALwrite.cpp,
13346 source/Lib/TLibEncoder/NALwrite.h, source/common/CMakeLists.txt,
13347 source/encoder/CMakeLists.txt, source/encoder/api.cpp,
13348 source/encoder/encoder.cpp, source/encoder/encoder.h,
13349 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
13350 source/encoder/nal.cpp, source/encoder/nal.h:
13351 combine NAL output semantics into one clean(er) interface
13354 * source/Lib/TLibEncoder/NALwrite.cpp:
13355 nal: fix checked build
13358 * source/encoder/encoder.cpp:
13359 encoder: no longer needs NALwrite.h
13362 * source/Lib/TLibCommon/TComBitStream.h:
13363 TComBitstream: nits
13366 * source/Lib/TLibCommon/TComTrQuant.cpp,
13367 source/Lib/TLibCommon/TComTrQuant.h,
13368 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/cturow.cpp,
13369 source/encoder/encoder.cpp, source/encoder/encoder.h:
13370 remove Encoder::bEnableRDOQTS, we did not allow separate config for
13373 Either RDOQ and RDOQTS were enabled at once, or both were disabled,
13374 or TSKIP was disabled and it didn't matter how RDOQTS was set.
13376 Removed RDOQ_CHROMA as well, which allowed the removal of a warning
13380 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/cturow.cpp,
13381 source/encoder/encoder.cpp, source/encoder/encoder.h:
13382 encoder: bEnableRDOQ->m_bEnableRDOQ for consistency
13385 * source/Lib/TLibCommon/TComPic.cpp,
13386 source/Lib/TLibEncoder/TEncCu.cpp,
13387 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/api.cpp,
13388 source/encoder/cturow.cpp, source/encoder/dpb.h,
13389 source/encoder/encoder.cpp, source/encoder/encoder.h,
13390 source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp,
13391 source/encoder/slicetype.cpp:
13392 encoder: param->m_param for consistency
13395 * source/encoder/encoder.h:
13396 encoder: remove m_useLossless
13399 * source/encoder/encoder.cpp, source/encoder/encoder.h,
13400 source/encoder/ratecontrol.h, source/encoder/slicetype.cpp,
13401 source/encoder/slicetype.h:
13402 slicetype: convert lookahead "structs with methods" to classes
13405 * source/encoder/ratecontrol.cpp:
13409 * source/encoder/encoder.cpp, source/encoder/encoder.h,
13410 source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp,
13411 source/encoder/ratecontrol.h:
13412 rc: convert RateControl to a class
13414 The "struct with methods" metaphore was too stretched here. The
13415 methods are too complicated to keep track of which variables were
13416 members; variable shadowing was very common.
13419 * source/Lib/TLibEncoder/NALwrite.cpp:
13420 nal: check padded buffer size
13423 * source/encoder/api.cpp:
13424 api: must match X265_ALLOC with X265_FREE for m_nalUnitData
13426 This was only an issue on Windows
13429 * source/encoder/ratecontrol.cpp:
13430 rc: fix type of actualBits
13433 * source/Lib/TLibEncoder/NALwrite.cpp:
13434 nalwrite: simplify write method; single allocation with no reallocs
13437 * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp,
13438 source/encoder/ratecontrol.h:
13439 rc: only pass param to rc constructor
13442 * source/encoder/ratecontrol.cpp:
13443 rc: further improvements to code clarity
13446 * source/encoder/ratecontrol.cpp:
13450 * source/encoder/ratecontrol.cpp:
13451 rc: use member isCbr rather than making a shadow variable
13454 * source/encoder/ratecontrol.cpp:
13455 rc: move isCbr initialization to constructor, to avoid init() race
13458 * source/encoder/encoder.cpp:
13462 2014-06-04 Aarthi Thirumalai <Aarthi Thirumalai>
13464 * source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp:
13465 rc: fixes to improve quality in vbv
13468 * source/encoder/ratecontrol.cpp:
13469 rc: use actual bits to update vbv buffer
13472 * source/encoder/ratecontrol.cpp:
13473 rc: set pbFactor to default with cutree
13476 2014-06-04 Kavitha Sampath <kavitha@multicorewareinc.com>
13478 * source/Lib/TLibCommon/TComSlice.cpp, source/encoder/encoder.cpp,
13479 source/encoder/encoder.h, source/encoder/frameencoder.cpp,
13480 source/encoder/ratecontrol.cpp:
13481 SEI: fix bus error, cleanup m_decodingUnitInfoSEIEnabled
13483 Remove setHrdPaarameters function as all the necessary HRD
13484 parameters are already computed and set in the initHrd function.
13487 2014-06-04 Steve Borho <steve@borho.org>
13489 * source/Lib/TLibCommon/SEI.h:
13490 sei: white-space nits
13493 * source/Lib/TLibCommon/SEI.h, source/Lib/TLibEncoder/SEIwrite.cpp,
13494 source/encoder/frameencoder.cpp:
13495 sei: remove SEIPictureTiming fields we do not signal, cleanup
13497 Completely remove constructor and destructor
13500 2014-06-04 Satoshi Nakagawa <nakagawa424@oki.com>
13502 * source/Lib/TLibEncoder/NALwrite.cpp, source/encoder/encoder.cpp:
13503 fix: uninitialized read m_totalFrameThreads
13504 [63ac1a0aa81d] <stable>
13506 2014-06-04 Steve Borho <steve@borho.org>
13508 * doc/reST/cli.rst:
13509 rest: reorganize analysis options into their own section
13512 2014-06-04 Kavitha Sampath <kavitha@multicorewareinc.com>
13514 * source/encoder/ratecontrol.cpp:
13515 fix crash in hrd when init function is called with null pointer
13518 2014-06-04 Deepthi Nandakumar <deepthi@multicorewareinc.com>
13520 * Merge with stable
13523 * source/Lib/TLibEncoder/TEncCu.cpp:
13524 TEncCU: fix bug in no-intra, intra-analysis should still happen for
13526 [5cc4502256a7] <stable>
13528 * source/common/param.cpp:
13532 * source/common/param.cpp:
13533 preset: correct ultrafast settings (in line with doc) by disabling
13535 [9f59dad6eea6] <stable>
13537 2014-06-03 Steve Borho <steve@borho.org>
13539 * doc/reST/cli.rst, source/Lib/TLibCommon/TComSlice.h,
13540 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/param.cpp,
13541 source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp,
13547 Added tag 1.1 for changeset ae9609aeebdc
13548 [2650fdd1a7f6] <stable>
13550 * source/common/param.cpp:
13551 param: only log psy-rd if it is enabled
13552 [ae9609aeebdc] [1.1] <stable>
13554 * source/encoder/ratecontrol.cpp:
13555 lossless: do not allow CQP to adjust QP for I/B when encoding
13557 [07e7a54ae1cb] <stable>
13559 * source/encoder/encoder.cpp:
13560 lossless: report compression ratio, disable distortion metrics
13561 [d9facf9895f7] <stable>
13563 * doc/reST/cli.rst, source/encoder/encoder.cpp:
13564 lossless: disable rate control, force QP=4
13566 strangely enough, using QP=4 gives better lambda for lossless ME and
13568 [12d35ab8148d] <stable>
13570 2014-06-03 Praveen Tiwari <Praveen Tiwari>
13573 x265.h, data declaration alignment
13576 * source/Lib/TLibEncoder/TEncSearch.cpp, source/x265.h:
13577 whitespace clean-up
13580 2014-06-03 Steve Borho <steve@borho.org>
13582 * source/Lib/TLibCommon/TComSlice.h:
13583 TComSlice: nit - use bools to initialize bools
13586 * source/encoder/frameencoder.cpp:
13587 SEI: only setup SEIPictureTiming fields which will be coded
13590 2014-06-03 Kavitha Sampath <kavitha@multicorewareinc.com>
13592 * doc/reST/cli.rst, source/CMakeLists.txt,
13593 source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComPic.h,
13594 source/Lib/TLibCommon/TComSlice.h, source/common/param.cpp,
13595 source/encoder/encoder.cpp, source/encoder/encoder.h,
13596 source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp,
13597 source/encoder/ratecontrol.h, source/x265.cpp, source/x265.h:
13598 SEI: Insert buffering period and picture timing SEI messages
13600 The buffering period SEI message is inserted for every key frame and
13601 the picture timing SEI is inserted for every frame. The commit also
13602 computes the HRD parameters as well as HRD Timing parameters that
13603 are calculated using the delay components(cpb removal delay and dpb
13604 output delay) carried in these SEI messages. HRD parameters can be
13605 signalled by enabling --hrd.
13608 2014-06-03 Deepthi Nandakumar <deepthi@multicorewareinc.com>
13610 * source/Lib/TLibCommon/TComSlice.cpp,
13611 source/Lib/TLibCommon/TComSlice.h,
13612 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/encoder.cpp:
13613 qp: remove Encoder::m_useLossless.
13615 This patch removes confusion between Encoder::m_useLossless and
13616 x265_param::bUseLossless. m_useLossless was set whenever qp = 0, and
13617 used in TComSPS. qp = 0 is still a valid encoder option.
13618 [b4e87638e5cc] <stable>
13620 2014-06-03 Steve Borho <steve@borho.org>
13622 * source/common/winxp.cpp:
13623 xp: avoid compiler warning from GCC-MinGW
13625 MSVC gives a warning at link time if this file is empty, so I added
13626 a useless variable to the file. GCC-MinGW issues a compile time
13627 warning about this unused variable.
13628 [d315d1430f5c] <stable>
13631 cli: seperate new lossless options, make --lossless description more
13634 try to avoid having the --lossless line wrap
13635 [cfab9513e27c] <stable>
13637 2014-06-03 Deepthi Nandakumar <deepthi@multicorewareinc.com>
13639 * Merge with stable
13642 * doc/reST/presets.rst, source/x265.h:
13643 rest: correct documentation on AQ
13644 [f66ad1400874] <stable>
13646 * Merge with stable
13649 * source/common/param.cpp:
13650 param: initialise lossless/cu-lossless fields to zero
13651 [7153905d56e6] <stable>
13653 2014-06-02 Steve Borho <steve@borho.org>
13655 * source/Lib/TLibEncoder/TEncSearch.cpp:
13656 TEncSearch: rename variable to avoid shadowing an earlier 'part'
13659 * source/common/primitives.cpp, source/common/x86/asm-primitives.cpp:
13660 primitives: move more aliasing to Setup_Alias_Primitives
13663 2014-06-02 Satoshi Nakagawa <nakagawa424@oki.com>
13665 * source/Lib/TLibEncoder/TEncEntropy.cpp,
13666 source/Lib/TLibEncoder/TEncEntropy.h,
13667 source/Lib/TLibEncoder/TEncSbac.cpp,
13668 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/primitives.cpp,
13669 source/common/primitives.h, source/common/x86/asm-primitives.cpp:
13670 refine cbf==0 path: remove clearing coeff and resi
13673 2014-06-02 Steve Borho <steve@borho.org>
13675 * source/Lib/TLibEncoder/TEncSearch.cpp:
13676 TEncSearch: remove unnecessary pragma
13679 * source/Lib/TLibCommon/TComRdCost.h:
13680 Merge with default (prepare for 1.1)
13681 [108996798e78] <stable>
13683 * source/encoder/rdcost.h:
13684 psy: use m_lambdaSAD multiplier for psy cost, m_lambdaSSE for bits
13686 in x264, m_lambdaSSE = lambda2, m_lambdaSAD = lambda
13689 * COPYING, source/PPA/ppa.cpp, source/PPA/ppa.h, source/PPA/ppaApi.h,
13690 source/common/bitstream.h, source/common/common.cpp,
13691 source/common/common.h, source/common/cpu.cpp, source/common/cpu.h,
13692 source/common/dct.cpp, source/common/intrapred.cpp,
13693 source/common/ipfilter.cpp, source/common/loopfilter.cpp,
13694 source/common/lowres.cpp, source/common/lowres.h,
13695 source/common/mv.h, source/common/param.cpp, source/common/param.h,
13696 source/common/piclist.cpp, source/common/piclist.h,
13697 source/common/pixel.cpp, source/common/primitives.cpp,
13698 source/common/primitives.h, source/common/shortyuv.cpp,
13699 source/common/shortyuv.h, source/common/threading.cpp,
13700 source/common/threading.h, source/common/threadpool.cpp,
13701 source/common/threadpool.h, source/common/vec/blockcopy-sse3.cpp,
13702 source/common/vec/dct-sse3.cpp, source/common/vec/dct-sse41.cpp,
13703 source/common/vec/dct-ssse3.cpp, source/common/vec/vec-
13704 primitives.cpp, source/common/version.cpp,
13705 source/common/wavefront.cpp, source/common/wavefront.h,
13706 source/common/winxp.cpp, source/common/winxp.h, source/common/x86
13707 /asm-primitives.cpp, source/common/x86/blockcopy8.asm,
13708 source/common/x86/blockcopy8.h, source/common/x86/const-a.asm,
13709 source/common/x86/cpu-a.asm, source/common/x86/dct8.asm,
13710 source/common/x86/dct8.h, source/common/x86/intrapred.h,
13711 source/common/x86/intrapred16.asm, source/common/x86/intrapred8.asm,
13712 source/common/x86/ipfilter16.asm, source/common/x86/ipfilter8.asm,
13713 source/common/x86/ipfilter8.h, source/common/x86/loopfilter.asm,
13714 source/common/x86/loopfilter.h, source/common/x86/mc-a.asm,
13715 source/common/x86/mc-a2.asm, source/common/x86/mc.h,
13716 source/common/x86/pixel-32.asm, source/common/x86/pixel-a.asm,
13717 source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm,
13718 source/common/x86/pixel.h, source/common/x86/pixeladd8.asm,
13719 source/common/x86/sad-a.asm, source/common/x86/sad16-a.asm,
13720 source/common/x86/ssd-a.asm, source/common/x86/x86util.asm,
13721 source/encoder/api.cpp, source/encoder/bitcost.cpp,
13722 source/encoder/bitcost.h, source/encoder/compress.cpp,
13723 source/encoder/cturow.cpp, source/encoder/cturow.h,
13724 source/encoder/dpb.cpp, source/encoder/dpb.h,
13725 source/encoder/encoder.cpp, source/encoder/encoder.h,
13726 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
13727 source/encoder/framefilter.cpp, source/encoder/framefilter.h,
13728 source/encoder/level.cpp, source/encoder/level.h,
13729 source/encoder/motion.cpp, source/encoder/motion.h,
13730 source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h,
13731 source/encoder/rdcost.h, source/encoder/reference.cpp,
13732 source/encoder/reference.h, source/encoder/slicetype.cpp,
13733 source/encoder/slicetype.h, source/encoder/weightPrediction.cpp,
13734 source/filters/filters.cpp, source/filters/filters.h,
13735 source/input/input.cpp, source/input/input.h, source/input/y4m.cpp,
13736 source/input/y4m.h, source/input/yuv.cpp, source/input/yuv.h,
13737 source/output/output.cpp, source/output/output.h,
13738 source/output/y4m.cpp, source/output/y4m.h, source/output/yuv.cpp,
13739 source/output/yuv.h, source/test/checkasm-a.asm,
13740 source/test/intrapredharness.cpp, source/test/intrapredharness.h,
13741 source/test/ipfilterharness.cpp, source/test/ipfilterharness.h,
13742 source/test/mbdstharness.cpp, source/test/mbdstharness.h,
13743 source/test/pixelharness.cpp, source/test/pixelharness.h,
13744 source/test/testbench.cpp, source/test/testharness.h,
13745 source/test/testpool.cpp, source/x265.cpp, source/x265.h,
13746 source/x265_config.h.in:
13747 change license email globally
13750 2014-05-30 Ashok Kumar Mishra <ashok@multicorewareinc.com>
13752 * doc/reST/cli.rst, source/CMakeLists.txt,
13753 source/Lib/TLibEncoder/TEncCu.cpp,
13754 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/param.cpp,
13755 source/encoder/compress.cpp, source/encoder/encoder.cpp,
13756 source/x265.cpp, source/x265.h:
13757 add support for lossless encode
13759 --lossless forces full lossless coding of every frame and every CU.
13761 --cu-lossless forces the encoder to perform RD cost analysis between
13762 lossy and lossless modes and choose the least cost mode for each CU.
13765 2014-06-02 Steve Borho <steve@borho.org>
13767 * source/Lib/TLibEncoder/TEncCu.cpp:
13771 2014-05-30 Ashok Kumar Mishra <ashok@multicorewareinc.com>
13773 * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
13774 source/Lib/TLibEncoder/TEncCu.cpp:
13775 fix to support multiple color space format in
13776 TComSampleAdaptiveOffset and TEncCu structure
13779 2014-06-02 Aarthi Thirumalai <Aarthi Thirumalai>
13781 * source/encoder/ratecontrol.cpp:
13782 rc: improve visual quality in high bit depth encodes.
13785 2014-06-02 Steve Borho <steve@borho.org>
13787 * source/encoder/CMakeLists.txt:
13791 * source/encoder/CMakeLists.txt:
13792 cmake: encoder.cpp no longer needs -Wno-unused-parameter
13795 * source/CMakeLists.txt, source/common/CMakeLists.txt:
13796 cmake: move all "GCC-like" logic together, use consistent var names
13799 2014-05-30 Den Scherbin <dncodr at gmail.com> <dncodr at gmail.com>
13801 * source/CMakeLists.txt:
13802 Disable exceptions for all compilers which support fno-exceptions
13805 2014-05-30 Aarthi Thirumalai <Aarthi Thirumalai>
13807 * source/Lib/TLibEncoder/TEncCu.cpp,
13808 source/Lib/TLibEncoder/TEncSearch.cpp,
13809 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp,
13810 source/encoder/encoder.cpp, source/encoder/encoder.h:
13811 TEncSearch: use actual frame thread count to decide motion search
13815 2014-06-02 Deepthi Nandakumar <deepthi@multicorewareinc.com>
13817 * doc/reST/presets.rst, source/common/param.cpp:
13818 preset: set superfast, veryfast, faster and fast presets to rd 2.
13821 * doc/reST/presets.rst, source/common/param.cpp:
13822 preset: For ultrafast preset, turn off lft, change rdLevel from 3 to
13825 This adds about 20-25% more performance for ultrafast presets at
13826 little efficiency cost.
13829 2014-05-29 Den Scherbin <dncodr at gmail.com> <dncodr at gmail.com>
13831 * source/CMakeLists.txt:
13832 Disable exceptions. Fixes Clang linker errors.
13835 2014-05-29 Steve Borho <steve@borho.org>
13837 * source/encoder/ratecontrol.cpp:
13838 rc: cleanups for clarity
13841 2014-05-29 Aarthi Thirumalai <Aarthi Thirumalai>
13843 * source/encoder/encoder.cpp, source/encoder/encoder.h,
13844 source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
13845 ratecontrol: improve visual quality and bitrate savings in ABR.
13847 Try to prevent ABR over-compensation after I frames by amortizing
13848 the cost over the next few frames;
13850 Improve ABR quality with frame parallelism - enable frame
13851 parallelism only after first few P frames to prevent excessive qp
13854 Fix initial I frame qp. when cu tree is enabled, the qp decided
13855 arbitrarily is too low. This causes a huge qp spike in immediate P
13856 frames.Tuned cplxrSum for intial I frame so that a more appropriate
13860 2014-05-29 Steve Borho <steve@borho.org>
13862 * source/cmake/CMakeASM_YASMInformation.cmake:
13863 cmake: 32-bit macho compiles need _ prefixes on exported functions
13866 2014-05-28 Steve Borho <steve@borho.org>
13868 * doc/reST/cli.rst, doc/reST/presets.rst, source/common/param.cpp:
13869 preset: disable rectangular and AMP partitions at medium preset
13871 This gives a considerable speed-up (50-70%) at the default preset
13872 for not much loss in compression efficiency (2-3%). AMP is rarely
13873 useful, at non-RDO presets we were only considering AMP merge
13874 anyway, and rect can be approximated by a split and two merges.
13877 2014-05-28 Satoshi Nakagawa <nakagawa424@oki.com>
13879 * source/Lib/TLibCommon/TComDataCU.cpp,
13880 source/Lib/TLibCommon/TComDataCU.h,
13881 source/Lib/TLibCommon/TComPattern.cpp,
13882 source/Lib/TLibCommon/TComPattern.h,
13883 source/Lib/TLibCommon/TComPicYuv.cpp,
13884 source/Lib/TLibCommon/TComPicYuv.h,
13885 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
13886 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
13887 source/Lib/TLibEncoder/TEncEntropy.cpp,
13888 source/Lib/TLibEncoder/TEncSearch.cpp,
13889 source/Lib/TLibEncoder/TEncSearch.h, source/common/shortyuv.cpp,
13890 source/common/shortyuv.h, source/encoder/reference.cpp:
13891 refine YUV and coeff buffer
13894 2014-05-28 Steve Borho <steve@borho.org>
13896 * source/Lib/TLibEncoder/TEncSearch.cpp:
13900 * source/Lib/TLibEncoder/TEncSearch.cpp,
13901 source/encoder/frameencoder.cpp:
13905 * source/common/threadpool.cpp, source/common/threadpool.h,
13906 source/common/wavefront.cpp, source/common/wavefront.h,
13907 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
13908 source/encoder/slicetype.cpp, source/encoder/slicetype.h,
13909 source/test/testpool.cpp:
13910 pool: allow thread private data structures
13912 Pass worker's threadId to JobProvider::findJob() and allow job
13913 providers to use this ID as they see fit to keep thread local data.
13914 No behavior changes, this is just laying the plumbing for future
13918 * doc/reST/cli.rst:
13919 rest: add missing --no-repeat-headers option
13922 * source/Lib/TLibEncoder/TEncCu.cpp:
13926 2014-05-28 Deepthi Nandakumar <deepthi@multicorewareinc.com>
13928 * source/Lib/TLibEncoder/TEncCu.cpp:
13929 psy-rd: bug fix in merge mode, use psyCosts for all decisions
13930 whenever psy-rd is enabled
13933 * source/Lib/TLibEncoder/TEncCu.cpp:
13934 TEncCU: inserting runtime checking for m_totalPsyCost
13937 2014-05-27 Kavitha Sampath <kavitha@multicorewareinc.com>
13939 * source/encoder/frameencoder.cpp:
13940 SEI: fix bug in picture timing SEI when interlace encoding is
13943 When the interlace mode is 1(top field first), the picstruct is
13944 2(bottom field) for all frames. But the picStruct for frames in
13945 display order should be 1(top field), 2(bottom field), 1, 2,..etc
13948 2014-05-27 Deepthi Nandakumar <deepthi@multicorewareinc.com>
13950 * source/Lib/TLibEncoder/TEncCu.cpp,
13951 source/Lib/TLibEncoder/TEncSearch.cpp:
13952 psyRD: psyRD costs are saved into m_totalPsyCost.
13955 * source/Lib/TLibCommon/TComDataCU.cpp,
13956 source/Lib/TLibCommon/TComDataCU.h,
13957 source/Lib/TLibEncoder/TEncCu.cpp,
13958 source/Lib/TLibEncoder/TEncSearch.cpp:
13959 TComDataCU: introduce new variable m_psyEnergy
13962 * source/Lib/TLibCommon/TComDataCU.cpp,
13963 source/Lib/TLibCommon/TComDataCU.h:
13964 TComDataCU: introduce new variable m_totalPsyCost
13967 * source/Lib/TLibCommon/TComDataCU.cpp:
13968 TComDataCU: whitespace nits
13971 * source/Lib/TLibCommon/TComDataCU.cpp,
13972 source/Lib/TLibCommon/TComDataCU.h,
13973 source/Lib/TLibEncoder/TEncCu.cpp,
13974 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp:
13975 TComDataCU: renaming m_totalCost to m_totalRDCost
13978 2014-05-25 Satoshi Nakagawa <nakagawa424@oki.com>
13980 * source/CMakeLists.txt:
13981 add -D__STDC_LIMIT_MACROS=1
13984 2014-05-25 Steve Borho <steve@borho.org>
13986 * source/Lib/TLibCommon/TComPrediction.cpp,
13987 source/Lib/TLibEncoder/TEncSearch.cpp:
13991 2014-05-23 Steve Borho <steve@borho.org>
13993 * source/common/shortyuv.cpp:
13994 assert to optional runtime check
13997 2014-05-23 Satoshi Nakagawa <nakagawa424@oki.com>
13999 * source/Lib/TLibCommon/TComBitStream.cpp,
14000 source/Lib/TLibCommon/TComDataCU.cpp,
14001 source/Lib/TLibCommon/TComPrediction.cpp,
14002 source/Lib/TLibCommon/TComSlice.h,
14003 source/Lib/TLibCommon/TComYuv.cpp,
14004 source/Lib/TLibEncoder/TEncCu.cpp,
14005 source/Lib/TLibEncoder/TEncEntropy.cpp,
14006 source/Lib/TLibEncoder/TEncSbac.cpp,
14007 source/Lib/TLibEncoder/TEncSearch.cpp,
14008 source/Lib/TLibEncoder/TEncSearch.h, source/common/pixel.cpp,
14009 source/common/primitives.cpp, source/common/primitives.h,
14010 source/common/shortyuv.cpp, source/common/vec/blockcopy-sse3.cpp,
14011 source/encoder/compress.cpp, source/encoder/slicetype.cpp:
14012 refine block size related
14015 2014-05-24 Satoshi Nakagawa <nakagawa424@oki.com>
14017 * source/encoder/rdcost.h:
14018 rdcost: overflow check by integer
14021 2014-05-23 Steve Borho <steve@borho.org>
14023 * source/compat/msvc/stdint.h:
14024 vc9: define UINT64_MAX in our hacked stdint.h
14027 * source/common/CMakeLists.txt:
14028 cmake: re-split TLibCommon headers to fix VC9 builds
14031 2014-05-22 Steve Borho <steve@borho.org>
14033 * source/encoder/rdcost.h:
14034 rdcost: fix energy cost check, dc is already subtracted from the
14038 * source/encoder/rdcost.h:
14039 rdcost: use floating point math to calculate psy rd cost
14042 * source/encoder/rdcost.h:
14043 rdcost: fix dc portion of psy energy calculation
14045 now flat blocks have energy of 0, as expected
14048 2014-05-15 Steve Borho <steve@borho.org>
14050 * doc/reST/cli.rst, source/CMakeLists.txt, source/common/param.cpp,
14051 source/encoder/api.cpp, source/encoder/level.cpp,
14052 source/encoder/level.h, source/x265.cpp, source/x265.h:
14053 api: allow minimum decoder level to be specified
14056 2014-05-22 Steve Borho <steve@borho.org>
14058 * doc/reST/presets.rst, source/common/param.cpp:
14059 param: introduce warnings about measurements with psy-opts enabled
14061 Disable psy-rd when tuning for psnr or ssim, and validate various
14065 * source/Lib/TLibEncoder/TEncSearch.cpp:
14066 TEncSearch: readability nits
14069 2014-05-19 Satoshi Nakagawa <nakagawa424@oki.com>
14071 * source/Lib/TLibCommon/TComRom.h,
14072 source/Lib/TLibEncoder/TEncSearch.cpp,
14073 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp:
14074 cleanup bReusePred, unify absTUPartIdx to absPartIdx
14077 2014-05-22 Steve Borho <steve@borho.org>
14079 * source/encoder/encoder.cpp:
14080 rc: simplify updateVbvPlan()
14083 2014-05-22 Deepthi Nandakumar <deepthi@multicorewareinc.com>
14085 * doc/reST/cli.rst:
14086 rest: refine rdLevels description.
14089 * doc/reST/cli.rst, source/encoder/cturow.cpp:
14090 psyrd: is enabled only at rdLevels 5 and 6.
14092 Only rdLevels 5 and 6 use full-RDO based decisions. These are used
14093 in presets slower, veryslow and placebo.
14096 2014-05-22 Santhoshini Sekar <santhoshini@multicorewareinc.com>
14098 * source/encoder/encoder.cpp:
14099 rc: always use frameSizeEstimted for bits in updateVbvPlan
14102 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
14103 rc: rename variable vbvMinRate to isCbr
14106 2014-05-22 Satoshi Nakagawa <nakagawa424@oki.com>
14108 * source/encoder/slicetype.cpp:
14109 fix: segmentation fault --tune zerolatency
14112 2014-05-21 Steve Borho <steve@borho.org>
14114 * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
14115 source/Lib/TLibEncoder/TEncSearch.cpp,
14116 source/encoder/CMakeLists.txt:
14117 cmake: re-enable wd4800 for TLibEncoder
14120 * source/common/CMakeLists.txt:
14121 cmake: further cleanups
14124 * source/common/CMakeLists.txt:
14125 cmake: re-enable wd4244 and wd4127 in common/vec
14128 * source/Lib/TLibCommon/TComSlice.cpp,
14129 source/Lib/TLibCommon/TComSlice.h,
14130 source/Lib/TLibCommon/TComTrQuant.cpp,
14131 source/Lib/TLibCommon/TComTrQuant.h, source/common/CMakeLists.txt,
14132 source/encoder/cturow.cpp, source/encoder/encoder.h:
14133 cmake: re-enable wd4800 for TLibCommon, fix remaining warnings
14136 * source/encoder/frameencoder.cpp:
14137 frameencoder: fixup comment following variable rename
14140 * source/common/lowres.cpp, source/common/lowres.h,
14141 source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp,
14142 source/encoder/slicetype.cpp:
14143 lowres: use a better name for cuTree offset buffer
14146 * source/common/CMakeLists.txt:
14147 cmake: merge TLibCommon source groups
14150 * source/Lib/TLibCommon/TComDataCU.h,
14151 source/Lib/TLibCommon/TComRdCost.h,
14152 source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
14153 source/Lib/TLibEncoder/TEncSearch.cpp,
14154 source/Lib/TLibEncoder/TEncSearch.h, source/common/CMakeLists.txt,
14155 source/encoder/CMakeLists.txt, source/encoder/compress.cpp,
14156 source/encoder/cturow.h, source/encoder/rdcost.h:
14157 move TComRdCost.h to encoder/rdcost.h, cleanup refactor
14159 The RDCost class has no resemblance to the original TComRdCost
14163 2014-05-21 Praveen Tiwari <Praveen Tiwari>
14165 * source/Lib/TLibCommon/TComRom.h:
14166 TComRom.h, removed unused tables
14169 * doc/reST/cli.rst, doc/reST/threading.rst, source/CMakeLists.txt,
14170 source/Lib/TLibCommon/TComRom.h,
14171 source/Lib/TLibCommon/TComTrQuant.cpp,
14172 source/Lib/TLibCommon/TComTrQuant.h, source/common/common.h,
14173 source/common/param.cpp, source/encoder/frameencoder.cpp,
14174 source/encoder/frameencoder.h, source/x265.cpp, source/x265.h:
14175 noise reduction ported from x264
14178 2014-05-21 Steve Borho <steve@borho.org>
14180 * source/Lib/TLibCommon/TComTrQuant.h:
14184 2014-05-21 Santhoshini Sekar <santhoshini@multicorewareinc.com>
14186 * source/encoder/ratecontrol.cpp:
14187 aq: fine tune aq logic to distribute bits even better
14190 2014-05-21 Den Scherbin <dncodr at gmail.com> <dncodr at gmail.com>
14192 * source/cmake/version.cmake:
14193 cmake: detect mercurial source installs on Windows, fixes #56
14196 2014-05-20 Steve Borho <steve@borho.org>
14198 * doc/reST/cli.rst, source/x265.cpp:
14199 psy: mention the fact that psy-rd requires rdo
14202 * source/Lib/TLibCommon/TComTrQuant.cpp:
14206 * source/common/param.cpp:
14207 param: fix check of minimum picture dimensions
14210 * source/common/winxp.cpp:
14211 xp: hack to avoid linker warnings
14214 * doc/reST/presets.rst:
14215 rest: update fastdecode to mention no intra in B
14218 2014-05-20 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
14220 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
14221 asm: fix bug for invalid read in sa8d
14223 fix invalid read when different stride value given for two input
14224 buffer and enabled 16x16 and 8x8 sa8d primitives.
14227 2014-05-20 Steve Borho <steve@borho.org>
14229 * source/common/param.cpp:
14230 param: tabs to spaces
14233 2014-05-20 Deepthi Nandakumar <deepthi@multicorewareinc.com>
14235 * source/common/param.cpp, source/x265.cpp:
14236 param: initialise crf-max and crf-min values in the param structure.
14240 help: removing the default QP value in the help message
14242 Since CQP is not the default rate control mode, a default QP
14246 2014-05-19 Ashok Kumar Mishra <ashok@multicorewareinc.com>
14248 * source/Lib/TLibEncoder/TEncSearch.cpp:
14249 fix : square chroma transform expected error message
14252 2014-05-18 Satoshi Nakagawa <nakagawa424@oki.com>
14254 * source/Lib/TLibCommon/TComDataCU.cpp,
14255 source/Lib/TLibCommon/TComDataCU.h,
14256 source/Lib/TLibCommon/TComSlice.h,
14257 source/Lib/TLibEncoder/TEncCu.cpp,
14258 source/Lib/TLibEncoder/TEncSbac.cpp,
14259 source/Lib/TLibEncoder/TEncSearch.cpp,
14260 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp:
14261 refine merge related
14264 2014-05-16 Satoshi Nakagawa <nakagawa424@oki.com>
14266 * source/Lib/TLibEncoder/TEncEntropy.cpp,
14267 source/Lib/TLibEncoder/TEncEntropy.h,
14268 source/Lib/TLibEncoder/TEncSbac.cpp,
14269 source/Lib/TLibEncoder/TEncSbac.h,
14270 source/Lib/TLibEncoder/TEncSearch.cpp:
14271 encodeCoeffNxN(): call only if non-zero coeff exists
14274 * source/Lib/TLibCommon/TComDataCU.cpp,
14275 source/Lib/TLibCommon/TComDataCU.h,
14276 source/Lib/TLibEncoder/TEncCu.cpp,
14277 source/Lib/TLibEncoder/TEncEntropy.cpp,
14278 source/Lib/TLibEncoder/TEncEntropy.h,
14279 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp:
14283 2014-05-19 Steve Borho <steve@borho.org>
14285 * source/Lib/TLibCommon/TComRdCost.h:
14286 psyrd: use EMMS before checking calcPsyRdCost
14289 2014-05-16 Steve Borho <steve@borho.org>
14291 * source/Lib/TLibEncoder/TEncCu.cpp:
14292 psyrd: use actual recon pixels for intra predictions (bug spotted by
14296 * doc/reST/cli.rst:
14297 rest: improve --rd docs
14300 * source/encoder/ratecontrol.cpp:
14301 ratecontrol: initialize singleFrameVbv (bug spotted by valgrind)
14304 * source/encoder/slicetype.cpp:
14305 slicetype: initialize bReady (bug spotted by valgrind)
14308 2014-05-16 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
14310 * doc/reST/cli.rst, source/Lib/TLibEncoder/TEncCu.cpp,
14311 source/common/param.cpp, source/x265.cpp, source/x265.h:
14312 cli: introduce --[no]-b-intra which enables/disables intra modes in
14316 2014-05-16 Steve Borho <steve@borho.org>
14318 * source/Lib/TLibEncoder/TEncCu.cpp,
14319 source/Lib/TLibEncoder/TEncSearch.cpp:
14323 * source/CMakeLists.txt, source/Lib/TLibCommon/TComRdCost.h,
14324 source/common/common.h, source/encoder/CMakeLists.txt,
14325 source/encoder/encoder.cpp:
14326 common: make a global X265_LL macro for printing uint64_t
14329 * source/Lib/TLibCommon/TComRdCost.h, source/common/primitives.h,
14330 source/common/x86/asm-primitives.cpp:
14331 psy-rd: add sad_square primitive array to optimize psy-rd
14333 This fixes the DC component calculation at the same time making the
14334 calculation more efficient.
14337 * source/encoder/slicetype.cpp:
14338 slicetype: fix unintended assignment
14341 2014-05-08 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
14343 * doc/reST/cli.rst, source/CMakeLists.txt,
14344 source/Lib/TLibCommon/TComRdCost.h,
14345 source/Lib/TLibEncoder/TEncCu.cpp,
14346 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/param.cpp,
14347 source/encoder/cturow.cpp, source/x265.cpp, source/x265.h:
14348 adapt psy-rd from x264
14350 In this initial implementation, we only use sa8d to estimate the
14351 energy of the source and reconstructed blocks. psy-rd is disabled by
14352 default, to evaluate use
14353 --preset veryslow --psy-rd 1.0
14356 2014-05-15 Gopu Govindaswamy <Gopu Govindaswamy>
14358 * source/encoder/slicetype.cpp:
14359 cutree: removed logLevel check from if loop
14362 * source/encoder/slicetype.cpp:
14363 cutree: adjust the rowSatd with qpoffset only for reference frames
14366 2014-05-15 Steve Borho <steve@borho.org>
14368 * doc/reST/api.rst, source/encoder/api.cpp,
14369 source/encoder/encoder.cpp, source/x265.def.in, source/x265.h:
14370 api: introduce x265_encoder_parameters(), copy param earlier to
14373 in x265_encoder_open(), make a copy of the provided param structure
14374 much earlier to avoid making any changes to the param strucutre
14375 provided by the user, in case they want to use that same param again
14376 to allocate another encoder.
14379 * source/common/param.cpp, source/x265.cpp:
14380 cli: remove default strings for preset and tune, modify default AQ
14383 The cli has used --tune ssim as the default since we've had an ssim
14384 tune, but API users were getting the default aq-mode of 1 instead.
14385 This commit removes the default tune (and preset) strings and fixes
14386 the default param structure to match the previous CLI default
14387 behavior (aq-mode 2)
14390 * source/common/common.h:
14391 checked: enable check macros in debug builds
14394 * source/common/common.h:
14395 check: disable MSVC warnings about constant conditionals with
14399 * source/Lib/TLibCommon/TComRdCost.h:
14400 check: fix MSVC warnings and check behavior
14403 2014-05-14 Steve Borho <steve@borho.org>
14405 * source/Lib/TLibCommon/TComBitStream.cpp,
14406 source/Lib/TLibCommon/TComBitStream.h,
14407 source/Lib/TLibCommon/TComDataCU.cpp,
14408 source/Lib/TLibCommon/TComLoopFilter.cpp,
14409 source/Lib/TLibCommon/TComMotionInfo.cpp,
14410 source/Lib/TLibCommon/TComPrediction.cpp,
14411 source/Lib/TLibCommon/TComSlice.cpp,
14412 source/Lib/TLibCommon/TComSlice.h,
14413 source/Lib/TLibCommon/TComTrQuant.cpp,
14414 source/Lib/TLibCommon/TComTrQuant.h,
14415 source/Lib/TLibCommon/TComWeightPrediction.cpp,
14416 source/Lib/TLibCommon/TComYuv.cpp,
14417 source/Lib/TLibEncoder/SEIwrite.cpp,
14418 source/Lib/TLibEncoder/SyntaxElementWriter.cpp,
14419 source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp,
14420 source/Lib/TLibEncoder/TEncBinCoderCABAC.h,
14421 source/Lib/TLibEncoder/TEncCu.cpp,
14422 source/Lib/TLibEncoder/TEncEntropy.cpp,
14423 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
14424 source/Lib/TLibEncoder/TEncSbac.cpp:
14425 check: another pile of assert->X265_CHECK conversions
14428 2014-05-14 Satoshi Nakagawa <nakagawa424@oki.com>
14430 * source/Lib/TLibEncoder/TEncCu.cpp,
14431 source/Lib/TLibEncoder/TEncSearch.cpp:
14435 2014-05-14 Steve Borho <steve@borho.org>
14437 * source/Lib/TLibEncoder/TEncSearch.cpp:
14438 TEncSearch: remove unused (and shadowed) variable
14441 * source/Lib/TLibEncoder/TEncSbac.cpp,
14442 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/cpu.cpp,
14443 source/common/dct.cpp, source/common/piclist.cpp,
14444 source/common/pixel.cpp, source/common/primitives.h,
14445 source/common/threadpool.cpp, source/common/vec/dct-sse41.cpp,
14446 source/common/wavefront.cpp, source/encoder/compress.cpp,
14447 source/encoder/dpb.cpp, source/encoder/frameencoder.cpp,
14448 source/encoder/framefilter.cpp, source/encoder/motion.cpp,
14449 source/output/y4m.cpp, source/output/yuv.cpp:
14450 checked: convert a pile of asserts() into optional runtime checks
14453 2014-05-11 Satoshi Nakagawa <nakagawa424@oki.com>
14455 * source/Lib/TLibEncoder/TEncSearch.cpp:
14456 fix 4:2:2 coeff rate calc
14459 2014-05-10 Satoshi Nakagawa <nakagawa424@oki.com>
14461 * source/Lib/TLibCommon/CommonDef.h,
14462 source/Lib/TLibCommon/TComPattern.cpp,
14463 source/Lib/TLibCommon/TComPattern.h,
14464 source/Lib/TLibCommon/TComPrediction.cpp,
14465 source/Lib/TLibCommon/TComPrediction.h,
14466 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp:
14467 refine intra reference samples
14470 2014-05-12 Steve Borho <steve@borho.org>
14472 * source/encoder/ratecontrol.cpp:
14473 ratecontrol: do not low-clip first I frame with ABR
14476 2014-05-09 Satoshi Nakagawa <nakagawa424@oki.com>
14478 * source/Lib/TLibCommon/TComDataCU.cpp,
14479 source/Lib/TLibCommon/TComDataCU.h,
14480 source/Lib/TLibEncoder/TEncSbac.cpp,
14481 source/Lib/TLibEncoder/TEncSearch.cpp,
14482 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp:
14483 reduce xModeBitsIntra() call
14486 2014-05-12 Steve Borho <steve@borho.org>
14488 * doc/reST/api.rst:
14492 2014-05-11 Steve Borho <steve@borho.org>
14494 * doc/reST/api.rst, doc/reST/cli.rst, doc/reST/index.rst,
14495 doc/reST/presets.rst:
14496 rest: add API docs with links to appropriate sections
14499 2014-05-10 Steve Borho <steve@borho.org>
14501 * doc/reST/presets.rst:
14502 rest: add a note to the tune documentation about using --tune
14519 api: remove mention of x265_encoder_reconfig(), which doesn't yet
14524 api: remove _t suffix from x265_param in comments
14527 2014-05-08 Satoshi Nakagawa <nakagawa424@oki.com>
14529 * source/Lib/TLibCommon/TComDataCU.cpp,
14530 source/Lib/TLibEncoder/TEncSearch.cpp:
14531 reduce malloc call to avoid fragment and overhead
14534 2014-05-08 Steve Borho <steve@borho.org>
14536 * source/Lib/TLibCommon/TComRdCost.h:
14537 rdcost: fix comments for lambda fix8 variables, refs b77ca886ef3b
14540 2014-05-09 Min Chen <chenm003@163.com>
14542 * source/common/x86/intrapred8.asm:
14543 reduce code size on intra_pred_ang8_*
14546 2014-05-08 Steve Borho <steve@borho.org>
14548 * source/Lib/TLibCommon/TComPic.h:
14552 * doc/reST/cli.rst:
14553 rest: fix indent of min-crf
14556 * doc/reST/cli.rst, source/x265.cpp:
14557 cli: expose param.bRepeatHeaders to the CLI, reorder help for more
14561 * source/encoder/slicetype.cpp:
14562 slicetype: avoid implicit integer conversions, fix MSVC warning
14564 intraCost is an int array, so there was no purpose to downcasting to
14568 2014-05-08 Aarthi Thirumalai <Aarthi Thirumalai>
14570 * source/encoder/ratecontrol.cpp:
14571 rc: add minor changes in flow when singleFrameVbv, rateFactorMax
14575 * source/encoder/ratecontrol.cpp:
14576 rc: update logic in clipQScale for vbv, when vbv lookahead is done,
14579 * source/encoder/ratecontrol.cpp:
14580 rc: clamp qp for first I frame only in rateEstimateQscale (changes
14584 2014-05-08 Gopu Govindaswamy <Gopu Govindaswamy>
14586 * source/encoder/ratecontrol.cpp:
14587 rc: qpvbv is between qpMin and prevRowQp when specifies the
14591 2014-05-08 Aarthi Thirumalai <Aarthi Thirumalai>
14593 * source/encoder/slicetype.cpp:
14594 slicetype: update the lowresCosts and intraCosts when aq/cutree is
14598 2014-05-08 Kavitha Sampath <kavitha@multicorewareinc.com>
14600 * source/encoder/encoder.cpp, source/encoder/encoder.h,
14601 source/encoder/frameencoder.cpp:
14602 SEI: enable generation of recovery point SEI message for keyframes
14604 SEI recovery points are inserted for every keyframe which tells the
14605 decoder an identifier of the recovery point from which perfectly
14606 valid pictures can be displayed no matter what the starting point of
14607 decoding is. The SEI specifies recovery_poc_cnt that counts the
14608 number of frames after which perfect video can be displayed to the
14609 user. Pictures encoded after the CRA but precede it in display
14610 order(leading) are ignored by the decoder and pictures following CRA
14611 in POC order(trailing) do not reference pictures prior to the recent
14612 CRA and are guaranteed to be displayable. Hence recovery_poc_cnt is
14616 2014-05-08 Steve Borho <steve@borho.org>
14618 * source/CMakeLists.txt:
14619 cmake: bump X265_BUILD for qpfile and crf-min
14622 2014-05-08 Gopu Govindaswamy <Gopu Govindaswamy>
14624 * doc/reST/cli.rst, source/common/param.cpp,
14625 source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp,
14626 source/encoder/ratecontrol.h, source/x265.cpp, source/x265.h:
14627 x265: implemented crf-min that specifies a minimum rate factor value
14631 2014-05-07 Steve Borho <steve@borho.org>
14633 * doc/reST/cli.rst:
14634 rest: document --qpfile
14637 2014-05-07 Gopu Govindaswamy <Gopu Govindaswamy>
14639 * source/Lib/TLibCommon/TComPic.h, source/encoder/api.cpp,
14640 source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp,
14641 source/x265.cpp, source/x265.h:
14642 cli: added qpfile feature to force frame qp and slicetype using file
14645 2014-05-06 Steve Borho <steve@borho.org>
14647 * Merge with stable
14650 2014-05-07 Tom Vaughan <tom.vaughan@multicorewareinc.com>
14652 * doc/reST/presets.rst:
14653 presets.rst edited online with Bitbucket - Correct spelling
14654 [607384b3312e] <stable>
14656 2014-05-05 Satoshi Nakagawa <nakagawa424@oki.com>
14658 * source/Lib/TLibEncoder/TEncEntropy.cpp,
14659 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp:
14660 fix: residualQTIntrachroma() for 4:2:2
14663 2014-05-03 Satoshi Nakagawa <nakagawa424@oki.com>
14665 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
14666 source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
14667 source/encoder/compress.cpp:
14668 refine picture boundary check
14670 - cleanup slice end check
14671 - fix split bits for TOPSKIP
14674 2014-05-06 Steve Borho <steve@borho.org>
14676 * source/common/param.cpp:
14677 log: remove hyphen from signhide, so it matches param name
14679 This is just to avoid confusion
14682 * Merge with stable
14685 * doc/reST/index.rst, doc/reST/presets.rst:
14686 rest: add a page describing presets
14687 [110993a5ef10] <stable>
14689 2014-05-06 Deepthi Nandakumar <deepthi@multicorewareinc.com>
14691 * source/encoder/ratecontrol.cpp:
14692 ratecontrol: remove repeat initialisations.
14695 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
14696 ratecontrol: remove RateControl->qpNoVbv.
14698 Less confusion, and we have whatever info we need in rce->qpNoVbv
14702 * source/encoder/ratecontrol.cpp:
14703 ratecontrol: avoid clipping QP multiple times when VBV is not
14707 2014-05-06 Aarthi Thirumalai <Aarthi Thirumalai>
14709 * source/encoder/slicetype.cpp:
14710 slicetype: avoid redundant call. intraSatd costs are updated in
14711 frameEncoder already
14714 2014-05-06 Gopu Govindaswamy <Gopu Govindaswamy>
14716 * source/Lib/TLibCommon/TComPic.h, source/encoder/encoder.cpp,
14717 source/encoder/ratecontrol.cpp:
14718 log: add the RateFactor for each frame to the csv file when using
14722 2014-05-06 Steve Borho <steve@borho.org>
14724 * source/Lib/TLibCommon/TComRdCost.h:
14725 check: add checks for integer overflow in rdcost functions
14728 2014-05-05 Steve Borho <steve@borho.org>
14730 * source/CMakeLists.txt, source/common/common.h,
14731 source/common/version.cpp:
14732 cmake: add CHECKED_BUILD option so we can add optional runtime
14737 ignore .DS_Store files (Mac pocket lint)
14740 * source/input/y4m.cpp, source/input/y4m.h:
14741 y4m: support variable bit depth via CXXXpDD Y4MPEG header; ie:
14744 ffmpeg's support for this is non-standard, so you must use -strict
14747 ffmpeg -i vid.avi -pix_fmt yuv420p10le -strict -1 -f yuv4mpegpipe -
14748 | ./x265 - --y4m o.hevc
14753 2014-05-04 Steve Borho <steve@borho.org>
14756 cli: report input bit depth
14759 2014-05-05 Steve Borho <steve@borho.org>
14761 * doc/reST/introduction.rst:
14762 rest: update introduction page, add more detail about software
14766 2014-05-03 Steve Borho <steve@borho.org>
14768 * Merge with stable
14771 * source/Lib/TLibCommon/TComRdCost.h:
14772 rdcost: explicit cast of return value, to prevent MSVC warnings
14773 [04e91f38854f] <stable>
14775 2014-05-01 Steve Borho <steve@borho.org>
14777 * source/CMakeLists.txt, source/cmake/clean-generated.cmake:
14778 cmake: add a clean-generated Makefile rule
14780 'make clean-generated' will remove all the machine generated files
14781 in the build folder so that they will be re-generated with more up-
14782 to-date version info the next time you run 'make'
14784 The "easy" workaround for this problem is to just nuke the build
14785 folder and start a new one.
14788 * source/input/y4m.cpp, source/input/yuv.cpp:
14789 use fseekg() to skip frames for 64bit builds
14791 This is orders of magnitude faster, at least on Windows, than
14792 repeated calls to ignore(framesize)
14795 2014-05-02 Steve Borho <steve@borho.org>
14797 * Merge with stable
14801 Added tag 1.0 for changeset cea97c4d7945
14802 [d3d47e3ef9c2] <stable>
14804 2014-05-02 Deepthi Nandakumar <deepthi@multicorewareinc.com>
14806 * source/encoder/frameencoder.cpp:
14807 interlace: set sourceScanType to 0 to indicate interlaced video
14808 [cea97c4d7945] [1.0] <stable>
14810 2014-05-02 Aarthi Thirumalai <Aarthi Thirumalai>
14812 * source/Lib/TLibCommon/TComRom.cpp:
14813 fix g_chromaScale for 420 videos accordingly to the HEVC spec.
14814 [9b66012c93bb] <stable>
14816 2014-05-02 Steve Borho <steve@borho.org>
14818 * source/Lib/TLibCommon/TComRdCost.h:
14819 rdcost: use less fractional bits for lambda scale, and larger ints
14822 This fixes really bad mode decisions made with some Main10 encodes
14823 that were apparently caused by integer overflow
14824 [b77ca886ef3b] <stable>
14826 2014-05-02 Deepthi Nandakumar <deepthi@multicorewareinc.com>
14828 * source/encoder/frameencoder.cpp:
14829 interlace: set sourceScanType to 0 to indicate interlaced video
14832 2014-05-01 Steve Borho <steve@borho.org>
14834 * Merge with stable
14837 * source/encoder/slicetype.cpp:
14838 slicetype: pre-calculate cost estimates for B slices, simplify
14841 rate control was always calling back for B slice estimates but since
14842 we were only pre-calculating them if VBV was enabled we were forced
14843 to make the estimates at that time (withing the context of the API
14846 With this patch, we estimate B costs unless CQP is in use, and this
14847 allows us to simplify getEstimatedPictureCost()
14850 2014-04-30 Ashok Kumar Mishra <ashok@multicorewareinc.com>
14852 * source/Lib/TLibCommon/TComWeightPrediction.cpp,
14853 source/Lib/TLibCommon/TComYuv.h, source/common/shortyuv.h,
14854 source/encoder/encoder.cpp:
14855 fix WP issue for 422 and 444 format
14856 [20551ab7ff00] <stable>
14858 2014-04-29 Steve Borho <steve@borho.org>
14860 * doc/reST/cli.rst, doc/reST/index.rst, doc/reST/threading.rst:
14861 rest: initial documentation for threading details and considerations
14862 [6d83eaf6cf24] <stable>
14864 * source/encoder/encoder.cpp:
14865 csv: always write summary info if file handle is open
14867 fixes behavior of --csv FILE --log full
14868 [148c3b9c11fd] <stable>
14870 * Merge with default (code freeze for 1.0)
14871 [c6ca14a4f2fa] <stable>
14873 * source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/TComDataCU.cpp,
14874 source/Lib/TLibCommon/TComDataCU.h,
14875 source/Lib/TLibCommon/TComLoopFilter.cpp,
14876 source/Lib/TLibCommon/TComMotionInfo.h,
14877 source/Lib/TLibCommon/TComPattern.cpp,
14878 source/Lib/TLibCommon/TComPic.cpp,
14879 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
14880 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
14881 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
14882 source/Lib/TLibCommon/TComTrQuant.cpp,
14883 source/Lib/TLibCommon/TComTrQuant.h,
14884 source/Lib/TLibCommon/TComWeightPrediction.cpp,
14885 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
14886 source/Lib/TLibEncoder/TEncCu.cpp,
14887 source/Lib/TLibEncoder/TEncEntropy.h,
14888 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
14889 source/Lib/TLibEncoder/TEncSbac.cpp,
14890 source/Lib/TLibEncoder/TEncSbac.h,
14891 source/Lib/TLibEncoder/TEncSearch.cpp,
14892 source/Lib/TLibEncoder/TEncSearch.h, source/common/bitstream.h,
14893 source/common/common.cpp, source/common/common.h,
14894 source/common/loopfilter.cpp, source/common/param.cpp,
14895 source/common/param.h, source/common/pixel.cpp,
14896 source/common/primitives.h, source/common/shortyuv.cpp,
14897 source/common/shortyuv.h, source/common/threading.h,
14898 source/common/wavefront.cpp, source/common/winxp.cpp,
14899 source/common/winxp.h, source/common/x86/asm-primitives.cpp,
14900 source/common/x86/blockcopy8.h, source/common/x86/ipfilter8.h,
14901 source/encoder/compress.cpp, source/encoder/cturow.cpp,
14902 source/encoder/encoder.cpp, source/encoder/encoder.h,
14903 source/encoder/frameencoder.cpp, source/encoder/level.cpp,
14904 source/encoder/level.h, source/encoder/ratecontrol.cpp,
14905 source/encoder/slicetype.cpp, source/encoder/slicetype.h,
14906 source/encoder/weightPrediction.cpp, source/filters/filters.cpp,
14907 source/input/y4m.cpp, source/input/yuv.cpp,
14908 source/test/ipfilterharness.cpp, source/test/mbdstharness.cpp,
14909 source/test/pixelharness.cpp, source/test/pixelharness.h,
14910 source/test/testharness.h, source/x265.cpp, source/x265.h:
14911 uncrustify - enforce coding style mechanically
14914 * source/encoder/slicetype.cpp:
14918 2014-04-28 Steve Borho <steve@borho.org>
14920 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h:
14921 TComRom: hard-code the lambda tables
14924 2014-04-28 Aarthi Thirumalai <Aarthi Thirumalai>
14926 * source/encoder/frameencoder.cpp, source/encoder/slicetype.cpp,
14927 source/encoder/slicetype.h:
14928 remove list data from lowres costs prior to use
14931 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h:
14932 fix g_chromaScale to be full length
14935 2014-04-25 Satoshi Nakagawa <nakagawa424@oki.com>
14937 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp:
14938 fix: 4:2:2 rdLevel <= 1
14941 2014-04-28 Ashok Kumar Mishra <ashok@multicorewareinc.com>
14943 * source/Lib/TLibCommon/TComLoopFilter.cpp:
14944 fix hash mismatch for 422 format with HM 14.0_RExt decoder
14947 2014-04-27 Steve Borho <steve@borho.org>
14949 * source/encoder/slicetype.cpp:
14950 slicetype: remove unused auto var
14953 * source/encoder/slicetype.cpp, source/encoder/slicetype.h:
14954 slicetype: rename rowsCompleted to bFrameCompleted
14956 one would expect rowsCompleted to be a counter, when in fact it is a
14957 bool value signaling completion of the whole frame.
14960 2014-04-27 Aarthi Thirumalai <Aarthi Thirumalai>
14962 * source/encoder/slicetype.cpp:
14963 slicetype: fix incorrect initialization of fenc->rowSatds when wpp
14967 2014-04-27 Steve Borho <steve@borho.org>
14969 * source/common/x86/mc-a.asm, source/encoder/slicetype.cpp,
14970 source/test/checkasm-a.asm, source/test/testharness.h:
14971 asm: adjust x264_ prefixes
14974 2014-04-25 Min Chen <chenm003@163.com>
14976 * source/test/checkasm-a.asm, source/test/pixelharness.cpp,
14977 source/test/testharness.h:
14978 testbench: support float ret value
14981 * source/common/x86/intrapred8.asm:
14982 correct register num in intrapred8.asm
14985 * source/common/x86/pixel-util8.asm:
14986 fix pixel_ssim_end4, the 3rd is dword
14989 2014-04-24 Steve Borho <steve@borho.org>
14991 * source/test/pixelharness.cpp:
14992 pixelharness: stack-check ssim_end4_t, this seems to expose an
14996 * source/common/x86/ipfilter8.asm:
14997 ipfilter: fix register stack allocation in luma horizontal filter
15000 * source/test/mbdstharness.cpp:
15001 dct: fix MSVC warnings
15004 * source/common/intrapred.cpp, source/common/primitives.h,
15005 source/common/x86/intrapred.h:
15006 primitives: pass bool value as int to assembly
15008 bool type is too ambiguous
15011 * doc/reST/cli.rst:
15012 rest: move quality metrics section up higher
15015 * doc/reST/cli.rst:
15016 rest: move --repeat-headers to bitstream options section
15019 * doc/reST/cli.rst:
15020 rest: loop filters, plural
15023 * doc/reST/cli.rst:
15024 rest: move --hash into bitream options section, document error-
15028 * source/test/mbdstharness.cpp, source/test/mbdstharness.h:
15029 dct: stack-check asm transform/quant primitives
15032 * source/test/ipfilterharness.cpp:
15033 ipfilter: remove utterly useless comments
15036 * source/test/ipfilterharness.cpp:
15037 ipfilter: stack-check asm filter primitives
15040 * source/test/intrapredharness.cpp:
15041 intrapred: stack-check asm intra primitives
15043 prune some extra memsets that were used during development
15046 2014-04-24 Min Chen <chenm003@163.com>
15048 * source/common/x86/pixel-a.asm:
15049 correct register number in pixel-a.asm
15052 2014-04-24 Steve Borho <steve@borho.org>
15054 * source/Lib/TLibCommon/TComMotionInfo.h:
15055 TComMotionInfo: nit
15058 * source/test/CMakeLists.txt, source/test/pixelharness.cpp:
15059 fixups for testbench build on Windows
15062 2014-04-17 Steve Borho <steve@borho.org>
15064 * source/cmake/CMakeASM_YASMInformation.cmake, source/common/common.h,
15065 source/common/threading.cpp:
15066 align the stack for GCC x86_32 builds
15068 For all threads x265 creates, align the stack immediately in the
15069 call to threadMain().
15071 The API calls do not appear to require an aligned stack; all
15072 primitives that require stack aligned buffers are called from frame
15073 encoder or worker pool threads
15076 2014-04-24 Steve Borho <steve@borho.org>
15078 * source/common/CMakeLists.txt, source/common/x86/checkasm-a.asm,
15079 source/test/CMakeLists.txt, source/test/checkasm-a.asm:
15080 move checkasm-a.asm to the test/ folder (fixes linux link)
15083 2014-04-23 Steve Borho <steve@borho.org>
15085 * source/CMakeLists.txt, source/cmake/CMakeASM_YASMInformation.cmake,
15086 source/common/CMakeLists.txt:
15087 cmake: export YASM_FLAGS from CMakeASM_YASMInformation.cmake
15089 This avoids duplicate logic in other cmake scripts
15092 2014-04-23 Min Chen <chenm003@163.com>
15094 * source/common/x86/blockcopy8.asm:
15095 improve by LEA to ADD in cvt32to16_shr
15098 2014-04-23 Steve Borho <steve@borho.org>
15100 * source/common/primitives.h:
15104 2014-04-23 Min Chen <chenm003@163.com>
15106 * source/common/x86/x86inc.asm:
15110 * source/test/pixelharness.cpp:
15111 pixelharness: stack-check all asm pixel primitives
15114 * source/common/CMakeLists.txt, source/common/x86/checkasm-a.asm,
15115 source/test/testharness.h:
15116 testbench: port x264 stack & register check code
15119 2014-04-23 Steve Borho <steve@borho.org>
15121 * source/common/threadpool.cpp:
15122 threadpool: increase reference count if pool was allocated while
15126 2014-04-23 Min Chen <chenm003@163.com>
15128 * source/common/x86/asm-primitives.cpp,
15129 source/common/x86/ipfilter16.asm, source/common/x86/ipfilter8.h:
15130 fix wrong cpu type on interp_4tap_vert_x_4x2
15133 2014-04-22 Steve Borho <steve@borho.org>
15135 * source/common/x86/x86inc.asm:
15136 Backed out changeset: ce11d3617899
15139 * source/CMakeLists.txt:
15140 cmake: do not prefix absolute library paths with -l in pc file
15142 fixes static linking on Mac OS X in particular
15145 2014-04-22 Gopu Govindaswamy <Gopu Govindaswamy>
15147 * source/common/pixel.cpp, source/common/primitives.h,
15148 source/encoder/slicetype.cpp, source/encoder/slicetype.h:
15149 pixel: Added C Primitives for estimateCUPropagateCost and removed
15153 2014-04-22 Murugan Vairavel <murugan@multicorewareinc.com>
15155 * source/test/pixelharness.cpp:
15156 testbench: ensure randomly generated width and height are >= 16
15158 Fixes a crash in testbench caused by upshift and downshift when
15162 2014-04-22 Min Chen <chenm003@163.com>
15164 * source/common/x86/x86inc.asm:
15168 2014-04-22 Deepthi Nandakumar <deepthi@multicorewareinc.com>
15170 * source/Lib/TLibEncoder/TEncSearch.cpp:
15171 me: backout previous patch; add 1 to account for temporal MV
15175 * source/Lib/TLibEncoder/TEncSearch.cpp:
15176 me: stack allocated pointer moved to heap
15179 2014-04-21 Steve Borho <steve@borho.org>
15181 * source/encoder/slicetype.h:
15182 slicetype: rowsCompleted variable should be volatile
15184 Don't allow a compiler to optimize out the reads, it would cause a
15188 * source/common/param.cpp:
15189 log: do not report weightb twice
15192 2014-04-22 Den Scherbin <dncodr at gmail.com> <dncodr at gmail.com>
15195 cli: fix bitrate output when encoding
15198 2014-04-21 Steve Borho <steve@borho.org>
15200 * doc/reST/cli.rst:
15201 rest: improve VUI docs
15204 * doc/reST/cli.rst:
15205 rest: remove redundant `in`
15208 * doc/reST/cli.rst:
15209 rest: improve description of constrained intra
15212 * doc/reST/cli.rst:
15213 rest: update --qp docs to mention behavior of --qp 0
15216 2014-04-21 Ashok Kumar Mishra <ashok@multicorewareinc.com>
15218 * source/Lib/TLibCommon/TComYuv.cpp,
15219 source/Lib/TLibEncoder/TEncSearch.cpp:
15220 fix preset placebo option crash for 444 color format
15223 2014-04-12 Steve Borho <steve@borho.org>
15225 * source/encoder/encoder.cpp, source/encoder/slicetype.cpp,
15226 source/encoder/slicetype.h:
15227 slicetype: use a worker thread for slicetypeDecide when it may help
15230 If slicetype/scenecut analysis is enabled and the user has a thread
15231 pool of at least 4 threads, use a worker thread to run
15234 Improves performance in presets that were bottlenecked by b-adapt 2
15235 style lookahead complexity.
15238 2014-03-27 Steve Borho <steve@borho.org>
15240 * source/Lib/TLibCommon/TComRdCost.h,
15241 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
15242 source/Lib/TLibEncoder/TEncSearch.cpp,
15243 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/bitcost.cpp,
15244 source/encoder/frameencoder.cpp, source/encoder/slicetype.h,
15245 source/encoder/weightPrediction.cpp:
15246 adapt x264 style lambda tables [CHANGES OUTPUTS]
15248 initLambda() in TComRom.cpp is passed the scale factor that is used
15249 to adjust lambda2 values. It uses 0.85 right now, which is similar
15250 to x264's value (0.9), and seems to be optimal for HEVC based on our
15253 These lambda tables seem to help most at low QPs, allowing the
15254 encoder to get nearly lossless quality at high bitrates.
15257 2014-04-17 Steve Borho <steve@borho.org>
15259 * source/Lib/TLibCommon/TComDataCU.cpp:
15260 TComDataCU: nits, assume sizeof(char) == sizeof(uint8_t)
15262 cleanup white-space and hungarian prefixes
15265 * source/Lib/TLibCommon/TComDataCU.cpp,
15266 source/Lib/TLibCommon/TComDataCU.h,
15267 source/Lib/TLibEncoder/TEncSearch.cpp:
15268 me: build a larger list of motion candidates for ME (closes #14)
15271 2014-04-21 Min Chen <chenm003@163.com>
15273 * source/common/x86/blockcopy8.asm:
15274 fix asm cvt32to16_s wrong XMM register number
15277 2014-04-21 Deepthi Nandakumar <deepthi@multicorewareinc.com>
15279 * source/Lib/TLibCommon/TComDataCU.cpp:
15280 TComDataCU: initCU was missing this initialisation, possible causing
15281 errors in row restarts.
15284 2014-04-17 Steve Borho <steve@borho.org>
15286 * source/encoder/ratecontrol.h:
15287 rc: remove unused keyFrameInterval
15290 * source/encoder/ratecontrol.cpp:
15291 rc: if --qp 0 is specified, use zero quant for all slice types
15293 This is not the same as lossless. For true lossless we must enable
15294 transform skip in the PPS and force all blocks to be coded with
15295 transform skip enabled.
15298 2014-04-16 Steve Borho <steve@borho.org>
15300 * source/common/threadpool.cpp:
15301 threadpool: use a mutex to protect pool allocation
15303 We only want to allow one thread to create the singleton thread
15304 pool. Rename the static instance variable to s_instance as per our
15308 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
15312 2014-04-03 Gopu Govindaswamy <Gopu Govindaswamy>
15314 * source/encoder/dpb.cpp, source/encoder/frameencoder.cpp,
15315 source/encoder/frameencoder.h:
15316 frameencoder: store the reference state of the picture in
15319 We find that reference state of the reference frame changed during
15320 the encode when we use frame-thread > 1 this cause the CU level QP
15321 for the frame is non-deterministic, this is leading the non-
15322 deterministic encoded output for the frame, to avoid this store the
15323 reference state of the frame to FrameEncoder->m_isReferenced and
15324 when the QP is calculate for CU, refer the reference state of the
15325 frame from FrameEncoder->m_isReferenced this stat will never change
15328 Moved slice reference state initialization from dpb to FrameEncoder
15330 [aacd6919d173] <stable>
15332 2014-04-16 Min Chen <chenm003@163.com>
15334 * source/common/x86/dct8.asm:
15335 align DCT8's stack to 64-bytes to avoid crash and improve cache
15339 2014-04-16 Steve Borho <steve@borho.org>
15341 * source/Lib/TLibCommon/TComSlice.cpp:
15342 TComSlice: initialize m_vps pointer
15345 * source/encoder/frameencoder.cpp:
15346 encoder: singleton m_vps nits
15349 * source/cmake/CMakeASM_YASMInformation.cmake:
15353 * source/encoder/frameencoder.cpp:
15357 2014-04-03 Steve Borho <steve@borho.org>
15359 * source/encoder/frameencoder.cpp:
15360 frameencoder: use m_isReferenced when configuring SAO in
15363 In some pessimal situations, the slice's reference state could even
15364 be changed by the time compressFrame() starts. This prevents any
15366 [5746582ff4a6] <stable>
15368 2014-04-15 Aarthi Thirumalai <Aarthi Thirumalai>
15370 * source/encoder/frameencoder.cpp:
15371 vbv: clear row diagonal and cu SATD costs after vbv row reset was
15375 [03525a77d640] <stable>
15377 2014-04-16 Steve Borho <steve@borho.org>
15379 * source/cmake/CMakeASM_YASMInformation.cmake:
15380 cmake: use HAVE_ALIGNED_STACK=0 for x86_32 builds, even for GCC
15382 In order to enable HAVE_ALIGNED_STACK for 32bit builds, we would
15383 need to align our stack internally at all thread entry points and
15384 all API entry points that might use primitives. 32bit performance is
15385 not a high priority for us at the moment.
15387 This fixes a number of reported crashes on 32bit builds
15388 [cfb1bb58d4fe] <stable>
15390 * source/encoder/motion.cpp:
15391 motion: always include the mvcost returned by motionEstimate
15394 This was a rather subtle bug that has been in the code base for some
15395 time. The caller of motionEstimate() will often want to remove the
15396 mvcost from the returned cost value, and in this circumstance it
15397 would go negative, and since the returned value is unsigned it
15398 became very large, causing the encoder to actually discard a zero-
15401 If the stars were perfectly aligned and all of the reference ME
15402 costs became exactly -1, *all* possible ME candidates were discarded
15403 which could lead to crashes.
15404 [bf40ab3af59a] <stable>
15406 2014-04-16 Ashok Kumar Mishra <ashok@multicorewareinc.com>
15408 * source/Lib/TLibCommon/TComYuv.cpp, source/common/ipfilter.cpp,
15409 source/common/pixel.cpp, source/common/primitives.h,
15410 source/common/shortyuv.cpp:
15411 fix compile warning in pixel.cpp for 422 primitive setup
15414 2014-04-15 Steve Borho <steve@borho.org>
15417 cli: help nits (closes #47)
15420 2014-04-15 Aarthi Thirumalai <Aarthi Thirumalai>
15422 * source/encoder/frameencoder.cpp:
15423 vbv: clear row diagonal and cu SATD costs after vbv row reset was
15429 2014-04-15 Satoshi Nakagawa <nakagawa424@oki.com>
15431 * source/Lib/TLibEncoder/TEncSearch.cpp:
15435 2014-04-14 Steve Borho <steve@borho.org>
15437 * doc/reST/cli.rst, source/CMakeLists.txt, source/common/param.cpp,
15438 source/encoder/encoder.cpp, source/x265.cpp, source/x265.h:
15439 vui: emit VUI w/ timing info unconditionally, remove timing info
15442 Since many tools seem to only look in the VUI for timing info, it
15443 seems to be best to output that info there, and remove it from the
15444 VPS (to avoid sending redundant data in our headers)
15447 2014-04-15 Satoshi Nakagawa <nakagawa424@oki.com>
15449 * source/Lib/TLibCommon/TComPattern.cpp:
15450 fix: constrained intra
15453 2014-04-14 Steve Borho <steve@borho.org>
15455 * source/encoder/ratecontrol.cpp:
15456 ratecontrol: fix indentations
15459 * source/common/pixel.cpp:
15460 pixel: remove out-of-range chroma copy function assignments
15463 * source/Lib/TLibCommon/TComDataCU.cpp:
15464 TComDataCU: white-space nits
15467 * source/common/param.cpp:
15468 param: reintroduce range checks of internalCsp
15471 * doc/reST/cli.rst:
15472 rest: update colorspace docs
15475 2014-04-14 Deepthi Nandakumar <deepthi@multicorewareinc.com>
15477 * source/encoder/encoder.cpp:
15481 * source/encoder/encoder.cpp:
15482 encoder: weightP not supported yet for 444 and 422.
15486 x265: adding support for i422 in the help command
15489 2014-04-12 ashok <ashok@multicorewareinc.com>
15491 * source/Lib/TLibCommon/TComDataCU.cpp,
15492 source/Lib/TLibCommon/TComDataCU.h, source/common/ipfilter.cpp,
15493 source/common/param.cpp, source/common/pixel.cpp,
15494 source/encoder/ratecontrol.cpp, source/x265.cpp:
15495 Modify TComDataCU structure to support 422 color space format
15498 * source/Lib/TLibCommon/TComLoopFilter.cpp,
15499 source/Lib/TLibCommon/TComPattern.h:
15500 Modify TComLoopFilter structure to support 422 color space format
15503 * source/Lib/TLibCommon/TComPattern.cpp,
15504 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h:
15505 Modify TComRom and TComPattern structure to support 422 color space
15509 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
15510 source/Lib/TLibCommon/TypeDef.h, source/common/shortyuv.cpp,
15511 source/common/shortyuv.h:
15512 Modify TComYuv and TShortYuv structure to support 422 color space
15516 * source/Lib/TLibEncoder/TEncEntropy.cpp,
15517 source/Lib/TLibEncoder/TEncEntropy.h,
15518 source/Lib/TLibEncoder/TEncSbac.cpp:
15519 Modify TEncSbac and TEncEntropy structure to support 422 color space
15523 * source/Lib/TLibEncoder/TEncSbac.h,
15524 source/Lib/TLibEncoder/TEncSearch.cpp,
15525 source/Lib/TLibEncoder/TEncSearch.h:
15526 Modify TEncSearch structure to support 422 color space format
15529 2014-04-12 Deepthi Nandakumar <deepthi@multicorewareinc.com>
15531 * source/encoder/ratecontrol.cpp:
15532 ratecontrol: Fix initial I-slice QP for 10-bit CRF mode.
15535 2014-04-11 Steve Borho <steve@borho.org>
15537 * source/common/winxp.cpp, source/common/winxp.h:
15538 xp: fix build with XP headers
15541 * source/CMakeLists.txt:
15542 cmake: allow icpc to use vectorization if it likes
15545 2014-04-09 Satoshi Nakagawa <nakagawa424@oki.com>
15547 * source/Lib/TLibCommon/TComDataCU.cpp,
15548 source/Lib/TLibCommon/TComPattern.cpp,
15549 source/Lib/TLibCommon/TComPattern.h:
15550 cip: add is*AvailableCIP()
15552 simplify no CIP case.
15555 2014-04-11 Steve Borho <steve@borho.org>
15557 * source/Lib/TLibCommon/TComTrQuant.cpp:
15561 * source/Lib/TLibCommon/TComTrQuant.cpp:
15562 TComTrQuant: comparing >=0 of unsigned variable is always true
15565 2014-04-10 Murugan Vairavel <murugan@multicorewareinc.com>
15567 * source/common/x86/asm-primitives.cpp:
15568 asm-primitives: Enable missing XOP primitives in HIGH_BIT_DEPTH
15571 * source/common/x86/x86util.asm:
15572 asm: HADDD optimization for XOP
15575 2014-04-08 Aarthi Thirumalai <Aarthi Thirumalai>
15577 * source/encoder/ratecontrol.cpp:
15578 vbv: log frame-average QPs for VBV; even when AQ is disabled.
15581 2014-04-10 Deepthi Nandakumar <deepthi@multicorewareinc.com>
15583 * source/encoder/ratecontrol.cpp:
15584 ratecontrol: prevent one layer of non-zero I-slice qp clipping
15587 This seems to have been an error importing RC code from x264. It
15588 could be responsible for error reports on I-slices (after POC 0)
15589 having much higher QP/low visual quality. Needs review.
15592 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
15593 ratecontrol: rename reInit to init. This method is called in the
15594 constructor and when ABR history is reset.
15597 2014-04-09 Steve Borho <steve@borho.org>
15599 * source/encoder/level.cpp:
15600 level: fix MinGW warning
15603 2014-04-10 Deepthi Nandakumar <deepthi@multicorewareinc.com>
15605 * source/Lib/TLibCommon/CommonDef.h, source/encoder/ratecontrol.cpp,
15606 source/encoder/ratecontrol.h:
15607 ratecontrol: cleanup, replace (unnecessary) constant arrays with
15611 2014-04-09 Deepthi Nandakumar <deepthi@multicorewareinc.com>
15613 * source/encoder/ratecontrol.cpp:
15614 ratecontrol: more dead code removed
15617 2014-04-09 Steve Borho <steve@borho.org>
15619 * source/encoder/level.cpp:
15620 level: fix MSVC compile error, give sqrt() argument unambiguous data
15624 2014-04-09 Deepthi Nandakumar <deepthi@multicorewareinc.com>
15626 * source/encoder/ratecontrol.cpp:
15627 ratecontrol: partial backout of 6284b30a0fdd, get rid of debugging
15631 * source/encoder/level.cpp:
15632 level: remove conditional expression warning
15635 * source/encoder/ratecontrol.cpp:
15636 ratecontrol: remove dead code
15638 Imported from x264; likely a part of 2-pass. In any case, not
15642 2014-04-07 Steve Borho <steve@borho.org>
15644 * source/x265.rc.in:
15645 rc: update the default build output filename for our DLL
15648 * source/common/common.cpp, source/common/common.h,
15649 source/encoder/CMakeLists.txt, source/encoder/api.cpp,
15650 source/encoder/encoder.cpp, source/encoder/encoder.h,
15651 source/encoder/level.cpp, source/encoder/level.h:
15652 level: move decoder level logic to level.cpp, make table based
15654 the new function enforces more limits defined in Annex A - widths
15655 and heights are capped to avoid extreme rectangular dimensions DPB
15656 size is limited based on resolution at higher resolutions, the min
15659 this commit also lays the groundwork for adding --level 5.1 --tier
15663 2014-04-08 Deepthi Nandakumar <deepthi@multicorewareinc.com>
15665 * source/Lib/TLibCommon/TComPic.cpp:
15666 TComPic: change pointer initial values to NULL (instead of 0).
15669 2014-04-07 Satoshi Nakagawa <nakagawa424@oki.com>
15671 * source/Lib/TLibEncoder/TEncCu.cpp,
15672 source/Lib/TLibEncoder/TEncEntropy.cpp,
15673 source/Lib/TLibEncoder/TEncEntropy.h,
15674 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp:
15675 TEncEntropy: cleanup bRD arg, fix 4:4:4 intra chroma rate [OUTPUT
15679 2014-04-06 Rafaël Carré <Rafaël Carré>
15681 * source/common/CMakeLists.txt, source/common/param.cpp:
15682 strtok_r: fix detection on Windows
15684 * Make sure HAVE_STRTOK_R is always defined, to 0 if absent
15686 * mingw-w64's pthread.h #defines strtok_r, make sure to undef it
15687 before we use our own definition.
15690 2014-04-05 Steve Borho <steve@borho.org>
15692 * doc/reST/cli.rst, source/CMakeLists.txt, source/common/param.cpp,
15693 source/encoder/encoder.cpp, source/x265.cpp, source/x265.h:
15694 api: drop param.vui.bEnableVuiParametersPresentFlag and
15695 bEnableAspectRatioIdc
15697 These two params can be implied from other parameters, and having
15698 them present only makes the VUI configuration more complicated than
15701 This commit also drops the debugging --vui CLI option
15704 2014-04-04 Steve Borho <steve@borho.org>
15706 * doc/reST/cli.rst:
15707 rest: we don't abbreviate integer anywhere else
15710 * doc/reST/cli.rst:
15711 rest: fix the straw-man
15713 The two-argument command line doesn't work for YUV since you need to
15714 provide the resolution and frame rate
15717 * source/common/param.cpp:
15718 param: force bRepeatHeaders for the still picture profile
15721 * source/encoder/api.cpp, source/x265.cpp:
15722 log: move logging of version and build info into libx265
15724 Now this data will be reported in the logs even when x265 is used as
15725 a shared or static library
15728 2014-04-03 Steve Borho <steve@borho.org>
15730 * source/test/pixelharness.cpp:
15731 testbench: prevent 0 height in plane copy tests
15733 The ASM functions handle the last row specially and cannot handle
15734 height of 0, it causes testbench crashes when rand() rolls the wrong
15738 * doc/reST/cli.rst, source/CMakeLists.txt,
15739 source/Lib/TLibEncoder/TEncEntropy.cpp,
15740 source/Lib/TLibEncoder/TEncEntropy.h,
15741 source/Lib/TLibEncoder/TEncSbac.cpp,
15742 source/Lib/TLibEncoder/TEncSbac.h, source/common/param.cpp,
15743 source/encoder/frameencoder.cpp, source/x265.cpp, source/x265.h:
15744 api: add support for access unit delimiters (--aud)
15748 cli: add missing --no-dither option to getopt list
15751 * source/Lib/TLibEncoder/TEncEntropy.h:
15755 * doc/reST/cli.rst:
15759 * source/common/param.cpp:
15760 param: nit reorder of RC mode checks to avoid uncrustify problems
15762 uncrustify was seeing FOO(bar < x || bar > y) and assuming this was
15763 a template instantiation and changing it to FOO(bar<x || bar> y).
15764 Reordering the two comparisons avoids this problem
15767 * source/common/param.cpp:
15768 param: enforce a minimum picture size
15770 Do not allow the user to configure a picture smaller than at least
15774 * source/encoder/frameencoder.cpp:
15775 frameencoder: use m_isReferenced when configuring SAO in
15778 In some pessimal situations, the slice's reference state could even
15779 be changed by the time compressFrame() starts. This prevents any
15783 * source/encoder/frameencoder.cpp:
15784 frameencoder: comment nit
15787 * Merge with stable
15790 2014-04-03 Gopu Govindaswamy <Gopu Govindaswamy>
15792 * source/encoder/dpb.cpp, source/encoder/frameencoder.cpp,
15793 source/encoder/frameencoder.h:
15794 frameencoder: store the reference state of the picture in
15797 We find that reference state of the reference frame changed during
15798 the encode when we use frame-thread > 1 this cause the CU level QP
15799 for the frame is non-deterministic, this is leading the non-
15800 deterministic encoded output for the frame, to avoid this store the
15801 reference state of the frame to FrameEncoder->m_isReferenced and
15802 when the QP is calculate for CU, refer the reference state of the
15803 frame from FrameEncoder->m_isReferenced this stat will never change
15806 Moved slice reference state initialization from dpb to FrameEncoder
15810 2014-04-03 Steve Borho <steve@borho.org>
15813 Added tag 0.9 for changeset 82bbd2bf3b49
15814 [640f9177eeb0] <stable>
15816 2014-04-03 Murugan Vairavel <murugan@multicorewareinc.com>
15818 * source/common/x86/pixel-a.asm:
15819 asm: fix invalid read in upShift routine
15820 [82bbd2bf3b49] [0.9] <stable>
15822 2014-04-02 Steve Borho <steve@borho.org>
15824 * Merge with stable
15827 2014-04-02 Gopu Govindaswamy <Gopu Govindaswamy>
15829 * source/encoder/dpb.h:
15830 dpb: Allow two L1 refs when b-pyramid is enabled [CHANGES OUTPUTS]
15832 Consider this common case: if we have 5 consecutive (display order
15833 frames) that are determined to be P1-B1-B2-B3-P2 by the lookahead.
15834 When b-pyramid is enabled, the middle B will be encoded first and
15835 used as a reference by the two following B frames (in encode order);
15838 frame L0 L1 P1 P2 P1 B2ref P1 P2 B1 P1 P2 B2ref B3 B2ref P1 P2
15840 When B1 is encoded, both B2ref and P2 should be available as L1
15841 references, this will improve the encode compression efficiency when
15842 b-pyramid is enabled (closes #12)
15845 2014-04-02 Min Chen <chenm003@163.com>
15847 * source/test/pixelharness.cpp:
15848 testbench: use different stride on calcrecon
15851 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp,
15852 source/common/primitives.h, source/common/x86/pixel-util.h,
15853 source/common/x86/pixel-util8.asm, source/test/pixelharness.cpp:
15854 remove unused parameter *recon from assembly code
15857 2014-04-02 Satoshi Nakagawa <nakagawa424@oki.com>
15859 * source/Lib/TLibCommon/TComDataCU.cpp,
15860 source/Lib/TLibCommon/TComDataCU.h, source/encoder/compress.cpp:
15861 cleanup m_cuColocated[]
15864 2014-04-02 Steve Borho <steve@borho.org>
15866 * source/encoder/weightPrediction.cpp:
15867 weight: properly reset weights when no-residual early-out is taken
15869 This fixes a hash mismatch seen with a Main10 encode of sintel-480p
15870 [e03388e98ecc] <stable>
15872 * source/encoder/frameencoder.cpp:
15873 frameencoder: fix white-space nit, add comment
15876 2014-04-02 Deepthi Nandakumar <deepthi@multicorewareinc.com>
15878 * source/encoder/encoder.cpp:
15879 param: fix typo in if-check.
15882 2014-04-02 Aarthi Thirumalai <Aarthi Thirumalai>
15884 * source/encoder/encoder.cpp:
15885 param: set aq strength to 0 in CQP
15888 2014-04-02 Deepthi Nandakumar <deepthi@multicorewareinc.com>
15890 * source/encoder/frameencoder.cpp:
15894 * source/encoder/frameencoder.cpp:
15895 frameencoder: removing assign qp inconsistencies which were
15896 triggered for unreferenced P frames
15897 [606da0b6bc58] <stable>
15899 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp,
15900 source/common/primitives.h, source/common/x86/pixel-util.h,
15901 source/common/x86/pixel-util8.asm, source/test/pixelharness.cpp:
15902 Backed out changeset: a6930bfbd908
15904 This changeset causes crashes. Needs to be re-examined.
15907 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
15908 calcQpForCU: remove m_pic input parameter.
15911 2014-04-01 Min Chen <chenm003@163.com>
15913 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp,
15914 source/common/primitives.h, source/common/x86/pixel-util.h,
15915 source/common/x86/pixel-util8.asm, source/test/pixelharness.cpp:
15916 remove unused recon[] from assembly code
15919 2014-04-01 Steve Borho <steve@borho.org>
15921 * source/Lib/TLibEncoder/TEncCfg.h, source/common/TShortYUV.cpp,
15922 source/common/TShortYUV.h, source/dllmain.cpp:
15923 Merge with default (feature freeze for 0.9)
15924 [1fc0fda2b08b] <stable>
15926 2014-04-01 Kavitha Sampath <kavitha@multicorewareinc.com>
15928 * doc/reST/cli.rst, source/Lib/TLibCommon/TComSlice.h,
15929 source/Lib/TLibCommon/TComWeightPrediction.cpp,
15930 source/common/param.cpp, source/encoder/encoder.cpp,
15931 source/encoder/encoder.h, source/encoder/frameencoder.cpp,
15932 source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp,
15933 source/encoder/weightPrediction.cpp, source/x265.cpp, source/x265.h:
15934 weightb: add CLI options for explicit weightb [CHANGES OUTPUTS]
15936 weightB will be disabled by default for this release. This patch
15937 fixes the hash mistakes and other fetaure bugs (the reasons it had
15940 HEVC only signals a single denom for all references so the L1
15941 reference must use the same denom as the L0 reference or no weight
15942 at all. A more exhaustive search might be added later for slower
15943 presets. Also, the lookahead will need to be modified to model
15944 weightB behavior so it can be more effective.
15946 This patch changes how the unweighted references are coded, so even
15947 weightP outputs change slightly.
15950 2014-04-01 Steve Borho <steve@borho.org>
15952 * source/encoder/frameencoder.cpp:
15953 frameencoder: lower log level of restart indicators
15956 2014-03-31 Steve Borho <steve@borho.org>
15958 * source/encoder/slicetype.cpp:
15962 2014-04-01 Nabajit Deka <Nabajit Deka>
15964 * source/common/x86/pixel-a.asm:
15965 asm: fix build error caused by usage of 64-bit dependent register in
15969 2014-03-31 Steve Borho <steve@borho.org>
15971 * source/encoder/slicetype.cpp:
15972 slicetype: do not assume frames[] array has been initialized
15974 slicetypeAnalyse() may not have been called, so use picture list[]
15978 2014-03-31 Min Chen <chenm003@163.com>
15980 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp,
15981 source/common/primitives.h, source/common/x86/pixel-util8.asm,
15982 source/test/pixelharness.cpp:
15983 remove macro NEW_CALCRECON
15986 2014-03-31 Murugan Vairavel <murugan@multicorewareinc.com>
15988 * source/test/pixelharness.cpp, source/test/pixelharness.h:
15989 testbench: code for testing input pixel upShift/downShift primitives
15992 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
15993 source/common/x86/pixel.h:
15994 asm: code for input pixel upShift/downShift
15997 * source/Lib/TLibCommon/TComPicYuv.cpp, source/common/pixel.cpp,
15998 source/common/primitives.h:
15999 primitives: added C primitives for upShift/downShift of input pixels
16002 2014-03-31 Selvakumar Nithiyaruban <selvakumar@multicorewareinc.com>
16004 * doc/reST/cli.rst, source/x265.cpp:
16005 cli: add cli option for dither
16008 * source/CMakeLists.txt, source/common/common.cpp,
16009 source/common/common.h, source/filters/filters.cpp,
16010 source/filters/filters.h:
16011 dither: port dither related functions from x264
16014 2014-03-31 Steve Borho <steve@borho.org>
16016 * source/common/winxp.cpp, source/common/winxp.h:
16017 xp: fix header guards for XP support, fixes MinGW build
16019 If no _WIN32_WINNT version is specified, MinGW defaults to XP SP3.
16020 Our include guards were checking for <= XP instead of checking for
16021 any version before Vista which was the version that introduced
16022 native CONDITION_VARIABLE support
16025 * source/encoder/frameencoder.cpp:
16026 frameencoder: prevent deadlock in non-wpp mode
16029 * source/CMakeLists.txt:
16030 cmake: pick the old policy for MACOSX_RPATH (only applicable for
16034 2014-03-29 Steve Borho <steve@borho.org>
16036 * source/CMakeLists.txt:
16037 cmake: allow MinGW to target XP by default
16039 This makes MinGW to use our workaround CONDITION_VARIABLE
16040 implementation but it seems to be on average better than asking
16041 MinGW to compile for Vista.
16044 2014-03-11 Aarthi Thirumalai <Aarthi Thirumalai>
16046 * source/common/wavefront.cpp, source/common/wavefront.h,
16047 source/encoder/cturow.h, source/encoder/frameencoder.cpp,
16048 source/encoder/frameencoder.h:
16049 vbv: enable row restarts when mid-frame qp adjustemets are
16053 2014-03-29 Steve Borho <steve@borho.org>
16055 * source/CMakeLists.txt, source/common/CMakeLists.txt,
16056 source/common/threading.h, source/common/winxp.cpp,
16057 source/common/winxp.h:
16058 restore WINXP_SUPPORT build option, workaround for
16059 CONDITION_VARIABLE on XP
16061 This adapts x264's code for an XP-safe pthread_cond_t to make an XP-
16062 safe CONDITION_VARIABLE (which was introduced in Windows Vista)
16064 x265 will use native CONDITION_VARIABLE unless the WINXP_SUPPORT
16065 cmake option is enabled. It forces _WIN32_WINNT=_WIN32_WINNT_VISTA
16066 for MinGW for this purpose.
16069 2014-03-27 Satoshi Nakagawa <nakagawa424@oki.com>
16071 * source/Lib/TLibCommon/TComDataCU.cpp,
16072 source/Lib/TLibCommon/TComDataCU.h,
16073 source/Lib/TLibCommon/TComLoopFilter.cpp,
16074 source/Lib/TLibCommon/TComLoopFilter.h,
16075 source/Lib/TLibCommon/TComPattern.cpp,
16076 source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
16077 source/Lib/TLibCommon/TComPicSym.cpp,
16078 source/Lib/TLibCommon/TComPicSym.h,
16079 source/Lib/TLibCommon/TComPicYuv.cpp,
16080 source/Lib/TLibCommon/TComPicYuv.h,
16081 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
16082 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
16083 source/Lib/TLibEncoder/TEncCu.cpp,
16084 source/Lib/TLibEncoder/TEncEntropy.cpp,
16085 source/Lib/TLibEncoder/TEncSbac.cpp,
16086 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/param.cpp:
16087 refine CUSize related
16089 rename to clarify. division to shift.
16092 * source/Lib/TLibCommon/TComTrQuant.cpp:
16093 sbh: early continue for all zero coeff group
16096 2014-03-27 Min Chen <chenm003@163.com>
16098 * source/Lib/TLibEncoder/TEncSearch.cpp:
16099 move buffer outside parenthesis
16102 2014-03-28 Steve Borho <steve@borho.org>
16104 * source/Lib/TLibCommon/TComLoopFilter.cpp,
16105 source/Lib/TLibCommon/TComWeightPrediction.cpp,
16106 source/Lib/TLibCommon/TComYuv.cpp, source/common/common.h,
16107 source/common/pixel.cpp:
16108 common: combine duplicate ClipY and ClipC templates, return pixel
16111 and fix some hungarian prefixes I encountered
16114 2014-03-27 Steve Borho <steve@borho.org>
16116 * source/Lib/TLibCommon/TComRom.h, source/common/common.h:
16117 common: move clip templates to common.h
16120 * doc/reST/cli.rst:
16125 cli: add link to documentation to end of `x265 --help` output
16128 * doc/reST/cli.rst:
16129 rest: consistent capitalization of page name
16132 * doc/reST/cli.rst:
16133 rest: improve --ssim, --psnr, recon, and VUI descriptions
16136 * source/Lib/TLibCommon/TComTrQuant.h:
16137 TComTrQuant: fix compiler warning in debug builds
16140 * doc/reST/cli.rst:
16141 rest: improve rate control documentation
16144 * doc/reST/cli.rst:
16145 rest: cleanup --input description
16148 2014-03-26 Steve Borho <steve@borho.org>
16150 * source/CMakeLists.txt, source/encoder/api.cpp,
16151 source/encoder/encoder.cpp, source/encoder/encoder.h,
16152 source/x265.cpp, source/x265.h:
16153 api: change x265_encoder_headers() to return byte count on success
16156 2014-03-27 Steve Borho <steve@borho.org>
16158 * doc/reST/cli.rst:
16159 rest: improve docs for --me and --early-skip
16162 2014-03-26 Steve Borho <steve@borho.org>
16164 * source/Lib/TLibCommon/TComTrQuant.cpp,
16165 source/Lib/TLibEncoder/TEncSearch.cpp:
16169 * source/Lib/TLibCommon/TComDataCU.cpp,
16170 source/Lib/TLibCommon/TComDataCU.h,
16171 source/Lib/TLibCommon/TComTrQuant.cpp,
16172 source/Lib/TLibCommon/TComTrQuant.h,
16173 source/Lib/TLibEncoder/TEncEntropy.cpp,
16174 source/Lib/TLibEncoder/TEncEntropy.h,
16175 source/Lib/TLibEncoder/TEncSbac.cpp,
16176 source/Lib/TLibEncoder/TEncSbac.h,
16177 source/Lib/TLibEncoder/TEncSearch.cpp,
16178 source/Lib/TLibEncoder/TEncSearch.h, source/common/common.h,
16179 source/common/vec/dct-sse3.cpp, source/common/vec/dct-sse41.cpp:
16180 replace TCoeff with coeff_t
16183 * source/Lib/TLibCommon/TypeDef.h, source/common/common.h:
16184 common: move X265_DEPTH definition to common.h
16187 * source/Lib/TLibCommon/TComDataCU.cpp,
16188 source/Lib/TLibCommon/TComDataCU.h,
16189 source/Lib/TLibCommon/TComLoopFilter.cpp,
16190 source/Lib/TLibCommon/TComLoopFilter.h,
16191 source/Lib/TLibCommon/TComPicYuv.h,
16192 source/Lib/TLibCommon/TComPicYuvMD5.cpp,
16193 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
16194 source/Lib/TLibCommon/TComWeightPrediction.cpp,
16195 source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCu.cpp,
16196 source/Lib/TLibEncoder/TEncSearch.cpp,
16197 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp:
16198 replace Pel with pixel
16201 * source/Lib/TLibCommon/SEI.h,
16202 source/Lib/TLibCommon/TComBitStream.cpp,
16203 source/Lib/TLibCommon/TComBitStream.h,
16204 source/Lib/TLibCommon/TComDataCU.cpp,
16205 source/Lib/TLibCommon/TComDataCU.h,
16206 source/Lib/TLibCommon/TComLoopFilter.cpp,
16207 source/Lib/TLibCommon/TComLoopFilter.h,
16208 source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicSym.h,
16209 source/Lib/TLibCommon/TComPicYuv.h,
16210 source/Lib/TLibCommon/TComPicYuvMD5.cpp,
16211 source/Lib/TLibCommon/TComPrediction.cpp,
16212 source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCu.cpp,
16213 source/Lib/TLibEncoder/TEncCu.h,
16214 source/Lib/TLibEncoder/TEncSbac.cpp, source/encoder/compress.cpp,
16215 source/encoder/cturow.cpp:
16216 replace UChar with uint8_t
16219 2014-03-24 Steve Borho <steve@borho.org>
16221 * source/CMakeLists.txt:
16222 cmake: move assembly source into ASM source group in VS
16225 2014-03-26 Steve Borho <steve@borho.org>
16227 * doc/reST/cli.rst:
16228 rest: this sentence was perhaps redundant
16231 * doc/reST/introduction.rst:
16232 rest: make life slightly more difficult for spambots
16235 2014-03-24 Satoshi Nakagawa <nakagawa424@oki.com>
16237 * source/encoder/frameencoder.cpp:
16238 fix chroma lambda weighting
16241 2014-03-26 Steve Borho <steve@borho.org>
16243 * doc/reST/cli.rst:
16247 2014-03-25 Steve Borho <steve@borho.org>
16249 * source/common/param.cpp:
16250 param: ignore leading double-slash in names passed to
16253 It might be ambiguous to API users whether these are required,
16254 looking at our documentation, so ignore them if they do.
16257 * doc/reST/cli.rst:
16258 rest: improve --output, add documentation for --repeat-headers
16261 * doc/reST/cli.rst:
16262 rest: improve --tu-*-depth, --ref, and --tskip descriptions
16265 * doc/reST/cli.rst:
16266 rest: improve the description of --rect --amp
16269 * doc/reST/cli.rst:
16270 rest: document the behavior of --subme
16273 * doc/reST/introduction.rst:
16274 rest: update licene email address
16278 cli: remove dead options from getopt long-options list
16282 api: fix documented defaults for cuTree and AQ
16285 * doc/reST/cli.rst:
16286 rest: CRF options are doubles
16289 * doc/reST/cli.rst, source/CMakeLists.txt, source/common/param.cpp,
16290 source/encoder/encoder.cpp, source/x265.cpp, source/x265.h:
16291 api: drop VUI options which are not fully implemented
16293 It is better to not have to document that these are unfinished
16296 * doc/reST/cli.rst:
16297 rest: add a couple of missing options, improve descriptions of
16301 * doc/reST/cli.rst:
16302 rest: improve CLI docs, fix some wrong descriptions, moar better
16304 I've moved --weightp and --refs to the ME section since they have no
16305 bearing on slice decision and lots of impact on motion search. Some
16306 new options are still missing, will add those in a later commit
16309 * doc/reST/cli.rst:
16310 rest: large cleanup of CLI opt docs
16313 * doc/reST/cli.rst:
16314 rest: fix csv logging descripion, move debug options to the end
16317 * doc/reST/cli.rst:
16318 rest: use comma to separate short and long options
16320 This looks better, and fixes cross referencing
16323 * doc/reST/Makefile, doc/reST/conf.py, doc/reST/index.rst:
16324 rest: add Makefile for generating HTML from reST, cleanup some nits
16327 * Merge with stable
16330 2014-03-25 Sagar Kotecha <sagar@multicorewareinc.com>
16332 * doc/reST/cli.rst, doc/reST/conf.py, doc/reST/index.rst,
16333 doc/reST/introduction.rst:
16334 Add reST script to generate x265 user manual
16335 [a1d9b54e57d2] <stable>
16337 2014-03-25 Steve Borho <steve@borho.org>
16339 * source/CMakeLists.txt, source/common/common.h,
16340 source/common/param.cpp, source/encoder/api.cpp,
16341 source/encoder/frameencoder.cpp, source/x265.cpp, source/x265.h:
16342 api: add param.bRepeatHeaders - insert stream headers in each
16345 This is apparently useful for raw stream formats
16348 2014-03-24 Min Chen <chenm003@163.com>
16350 * source/Lib/TLibCommon/TComTrQuant.cpp,
16351 source/Lib/TLibCommon/TComTrQuant.h,
16352 source/Lib/TLibCommon/TypeDef.h,
16353 source/Lib/TLibEncoder/TEncSbac.cpp:
16354 cleanup on TComTrQuant::getTUEntropyCodingParameters
16357 * source/Lib/TLibCommon/TComTrQuant.cpp:
16358 faster sign(X) and N^2 on TComTrQuant::xRateDistOptQuant
16361 * source/Lib/TLibEncoder/TEncSbac.cpp:
16362 improvement by replace SHIFT to MASK_AND
16365 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
16366 source/Lib/TLibCommon/TComTrQuant.cpp,
16367 source/Lib/TLibEncoder/TEncSbac.cpp:
16368 optimize: replace g_groupIdx[] by getGroupIdx()
16371 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h:
16372 reduce g_minInGroup from uint32_t to uint8_t
16375 * source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp:
16376 improvement TEncBinCABAC::writeOut by mask operator and local
16380 * source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp:
16381 improvement TEncBinCABAC::encodeBin by temporary variant and reduce
16385 2014-03-24 Steve Borho <steve@borho.org>
16388 cli: fix missing reference to superfast preset
16391 2014-03-21 Steve Borho <steve@borho.org>
16393 * source/Lib/TLibCommon/TComTrQuant.cpp:
16394 TComTrQuant: nits (no change)
16397 * source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp:
16401 2014-03-21 Aarthi Thirumalai <Aarthi Thirumalai>
16403 * source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp:
16404 vbv: fix race condition in processRowEncoder, store row qp directly
16405 in m_pic->m_rowDiagQp.
16406 [21eb4a43e02f] <stable>
16408 2014-03-18 Min Chen <chenm003@163.com>
16410 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
16411 source/Lib/TLibCommon/TComTrQuant.cpp:
16412 use mask operator to avoid branch
16415 * source/Lib/TLibCommon/TComTrQuant.cpp,
16416 source/Lib/TLibCommon/TComTrQuant.h:
16417 replace parameters (oneCtx, absCtx) by pointer m_estBitsSbac->..
16420 * source/Lib/TLibCommon/TComTrQuant.cpp,
16421 source/Lib/TLibCommon/TComTrQuant.h:
16422 optimize: rewrite TComTrQuant::xGetCodedLevel
16425 2014-03-20 Steve Borho <steve@borho.org>
16427 * source/encoder/encoder.cpp:
16428 encoder: auto-disable weightp with 4:4:4 inputs, until it is fixed
16431 * source/Lib/TLibEncoder/TEncSearch.cpp:
16432 TEncSearch: validate unidirectional MVPs prior to trying MV0 bidir
16435 This should fix some rare non-determinism as well as prevent the
16436 crash seen in issue #34. [CHANGES OUTPUTS]
16439 * source/x265.pc.in:
16440 pkgconfig: allow user-supplied lib folder (closes #40)
16443 2014-03-19 Steve Borho <steve@borho.org>
16445 * source/CMakeLists.txt, source/common/common.h,
16446 source/common/param.cpp, source/encoder/encoder.cpp,
16447 source/encoder/encoder.h, source/encoder/frameencoder.cpp,
16448 source/x265.cpp, source/x265.h:
16449 add experimental support for interlaced content (field encoding)
16452 * adds param.interlaceMode
16453 * removes VUI params that are now handled automatically
16454 * adds --no-interlace --interlace=tff|bff|prog|false CLI options
16455 * signals interlace source flag, clears progressive source flag
16457 This initial implementation requires the user to provide fields
16458 (half-height) in the correct temporal order; so not very useful for
16459 exisitng Y4M or YUV interlaced input files.
16461 When interlacing is enabled, the encoder emits PictureTiming SEI
16462 messages that indicate top or bottom field for the decoder.
16465 2014-03-20 Aarthi Thirumalai <Aarthi Thirumalai>
16467 * source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp:
16468 vbv: fix race condition in processRowEncoder, store row qp directly
16469 in m_pic->m_rowDiagQp.
16472 2014-03-19 Deepthi Nandakumar <deepthi@multicorewareinc.com>
16474 * source/Lib/TLibEncoder/TEncCu.cpp:
16475 TEncCU: more QP cleanup for subCUs, inter modes.
16478 2014-03-19 Steve Borho <steve@borho.org>
16480 * source/encoder/motion.cpp:
16481 motion: add missing parens in COST_MV() macro (fixes #41)
16484 * source/encoder/motion.cpp:
16485 motion: UMH fix to match x264 behavior
16488 * source/input/yuv.cpp, source/input/yuv.h:
16489 yuv: use ThreadSafeInteger to manage ring buffer
16492 * source/encoder/api.cpp, source/encoder/encoder.cpp:
16493 encoder: keep copy of input parameters (refs #43)
16495 We do not want to allow the user to change the param used by the
16496 encoder during the encode, nor do we want to suffer from cleanup
16497 ordering issues. We can't crash if the user released the param
16498 struct they allocated prior to closing the encoder
16501 * source/input/y4m.cpp, source/input/y4m.h:
16502 y4m: use ThreadSafeInteger to manage ring buffer
16505 2014-03-19 Gopu Govindaswamy <Gopu Govindaswamy>
16507 * source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp:
16508 TEncBinCoderCABAC: fix MingGW build "declaration of 'byte' shadows a
16509 global declaration"
16512 2014-03-19 Steve Borho <steve@borho.org>
16514 * source/CMakeLists.txt:
16515 cmake: tabs to spaces
16518 * source/CMakeLists.txt:
16519 cmake: pkgconfig file must be installed in user-specified lib folder
16523 * source/common/threading.h, source/encoder/framefilter.cpp:
16524 thread: add an incr() method to ThreadSafeInteger to avoid redundant
16528 2014-03-19 Deepthi Nandakumar <deepthi@multicorewareinc.com>
16530 * source/Lib/TLibCommon/TComDataCU.cpp:
16531 TEncCU: further refine qp offsets
16534 * source/Lib/TLibEncoder/TEncCu.cpp:
16535 TEncCU: all SUbCUs will now copy QP array directly from parent CU,
16536 instead of resetting to qp(0).
16539 * source/Lib/TLibCommon/TComDataCU.cpp,
16540 source/Lib/TLibCommon/TComDataCU.h:
16541 TComDataCU: add QP-independent initSubCU
16544 * source/Lib/TLibCommon/TComDataCU.cpp,
16545 source/Lib/TLibCommon/TComDataCU.h:
16546 TComDataCU: add QP-independent initEstData
16549 2014-03-18 Steve Borho <steve@borho.org>
16551 * source/CMakeLists.txt:
16552 cmake: icpc is unable to link cli to shared lib
16555 * source/CMakeLists.txt:
16556 cmake: fix MinGW build by forcing Vista as minimum target O/S (fixes
16559 This removes the WINXP_SUPPORT option; XP cannot be supported until
16560 someone contributes a version of ThreadSafeInteger that is
16564 2014-03-19 Deepthi Nandakumar <deepthi@multicorewareinc.com>
16566 * source/Lib/TLibCommon/TComDataCU.cpp,
16567 source/encoder/frameencoder.cpp:
16568 TComDataCU: QP for a CU always stored in TComDataCU::m_qp.
16571 2014-03-18 Deepthi Nandakumar <deepthi@multicorewareinc.com>
16573 * source/Lib/TLibEncoder/TEncSearch.cpp:
16574 intraPred: remove qp resets
16577 * source/encoder/frameencoder.cpp:
16578 frameencoder: clean up slice qp clipping
16581 2014-03-18 Steve Borho <steve@borho.org>
16583 * source/CMakeLists.txt:
16584 cmake: remove /Oi build flag for Visual C++ builds
16586 This flag was actually never necessary for use of SIMD intrinsics,
16587 but it was forcing VC to use intrinsic versions of math functions,
16588 and for some versions of VC this caused odd stack corruption in
16589 Win32 debug builds.
16591 https://connect.microsoft.com/VisualStudio/feedback/details/776885
16592 /possible-bug-in-visual-studio-2012-c-compiler-related-to-intrinsic-
16596 * source/CMakeLists.txt:
16597 cmake: make lib and bin install folders user configurable (closes
16601 * source/cmake/cmake_uninstall.cmake.in:
16602 cmake: fix uninstall target warnings from shell quote escaping
16606 * source/CMakeLists.txt:
16607 cmake: link cli app to shared library on POSIX systems (closes #37)
16609 If you want the CLI to link against the static library on POSIX,
16610 just disable the generation of the shared library.
16614 api: declare x265_cli_csps as static const (closes #39)
16616 Fixes link errors when x265.h is included by multiple C files.
16619 2014-03-18 Deepthi Nandakumar <deepthi@multicorewareinc.com>
16621 * source/Lib/TLibEncoder/TEncSbac.cpp,
16622 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/encoder.cpp:
16623 encoder, sbac, quant: use only macro QP_BD_OFFSET, remove
16624 unnecessary get methods
16627 * source/encoder/encoder.cpp:
16628 sps: reuse encoder macro QP_BD_OFFSET
16631 * source/Lib/TLibEncoder/TEncSearch.cpp,
16632 source/encoder/frameencoder.cpp:
16633 frameencoder: clean up qp clipping
16636 2014-03-18 Steve Borho <steve@borho.org>
16638 * source/encoder/encoder.cpp:
16639 encoder: fix for VERBOSE_RATE (leftover HM feature) (closes #42)
16642 2014-03-18 Deepthi Nandakumar <deepthi@multicorewareinc.com>
16644 * source/Lib/TLibEncoder/TEncSearch.cpp:
16645 encodeResandCalcInterCU: cleanup, no logic change
16648 2014-03-16 Satoshi Nakagawa <nakagawa424@oki.com>
16650 * source/Lib/TLibCommon/TComTrQuant.cpp:
16651 DC only for HIGH_BIT_DEPTH
16654 2014-03-17 Min Chen <chenm003@163.com>
16656 * source/Lib/TLibCommon/ContextTables.h,
16657 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
16658 source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp,
16659 source/Lib/TLibEncoder/TEncBinCoderCABAC.h,
16660 source/Lib/TLibEncoder/TEncSbac.cpp,
16661 source/Lib/TLibEncoder/TEncSbac.h:
16662 optimize: rewrite TEncBinCABAC::encodeBin
16665 2014-03-17 Satoshi Nakagawa <nakagawa424@oki.com>
16667 * source/Lib/TLibCommon/TComDataCU.cpp,
16668 source/Lib/TLibCommon/TComDataCU.h,
16669 source/Lib/TLibCommon/TComPattern.h,
16670 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp:
16674 2014-03-16 Satoshi Nakagawa <nakagawa424@oki.com>
16676 * source/Lib/TLibCommon/TComDataCU.h:
16677 cleanup unused m_mvField{A,B,C}
16680 2014-03-17 Steve Borho <steve@borho.org>
16682 * source/encoder/encoder.h:
16683 encoder: cleanup nits
16686 * source/input/y4m.cpp:
16687 y4m: fix copy-paste bug in range checks
16690 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
16691 source/common/threading.h, source/encoder/dpb.cpp,
16692 source/encoder/encoder.cpp, source/encoder/frameencoder.cpp,
16693 source/encoder/frameencoder.h, source/encoder/framefilter.cpp:
16694 threading: introduce ThreadSafeInteger class
16696 This class uses a condition variable to implement a
16697 producer/consumer access protocol with a single writer and multiple
16698 readers for safe multi-core synchronization
16701 2014-03-18 Deepthi Nandakumar <deepthi@multicorewareinc.com>
16703 * source/Lib/TLibEncoder/TEncCu.cpp:
16704 TEncCU: fix previous bad patch import
16707 2014-03-17 Deepthi Nandakumar <deepthi@multicorewareinc.com>
16709 * source/Lib/TLibEncoder/TEncCu.h:
16713 2014-03-17 Steve Borho <steve@borho.org>
16715 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
16716 source/encoder/framefilter.cpp:
16720 2014-03-16 Steve Borho <steve@borho.org>
16722 * source/Lib/TLibCommon/TComSlice.h:
16726 2014-03-14 Min Chen <chenm003@163.com>
16728 * source/Lib/TLibEncoder/TEncSbac.cpp,
16729 source/Lib/TLibEncoder/TEncSbac.h:
16730 optimize: rewrite TEncSbac::xWriteCoefRemainExGolomb
16733 * source/Lib/TLibCommon/TComTrQuant.cpp,
16734 source/Lib/TLibCommon/TComTrQuant.h,
16735 source/Lib/TLibEncoder/TEncSbac.cpp:
16736 optimize: improvement TComTrQuant::getSigCtxInc, avoid shift by mask
16739 * source/Lib/TLibCommon/TComTrQuant.cpp,
16740 source/Lib/TLibCommon/TComTrQuant.h:
16741 optimize: rewrite TComTrQuant::xGetICRateCost
16744 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
16745 source/Lib/TLibCommon/TComTrQuant.cpp,
16746 source/Lib/TLibCommon/TComTrQuant.h, source/common/threading.h:
16747 optimize: rewrite TComTrQuant::xGetICRate
16750 2014-03-13 Deepthi Nandakumar <deepthi@multicorewareinc.com>
16752 * source/Lib/TLibEncoder/TEncCu.cpp:
16753 encode: avoid repetitive statements; no logic change
16756 * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp:
16757 compress/TEncCU: no reason why mode decision should reset the dqp
16761 * source/encoder/encoder.cpp:
16762 encoder: Adding a TODO comment on the final goal.
16765 * source/encoder/encoder.cpp:
16766 vbv: set DQP as true if VBV is enabled (and AQ disabled).
16768 Unless this is set, the different QP's for each CU wont be encoded.
16769 This worked thankfully until now, since VBV was always used at high
16770 quality (AQ on) settings.
16773 * source/Lib/TLibEncoder/TEncCu.cpp:
16774 TEncCU: set dqpflag as true in the CU encoder if aqmode enabled
16777 2014-03-17 Steve Borho <steve@borho.org>
16779 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
16780 source/encoder/framefilter.cpp:
16781 prevent deadlocks from frame dependencies on Linux
16782 [eba8844609f2] <stable>
16784 2014-03-14 Steve Borho <steve@borho.org>
16786 * source/Lib/TLibEncoder/TEncSearch.cpp:
16787 TEncSearch: mvpIdx shares storage with mergeIdx, do not set for
16791 2014-03-14 Wenju He <wenju@multicorewareinc.com>
16793 * source/Lib/TLibEncoder/TEncCu.cpp:
16794 TEncCu: initialize variables, handle malloc failures more cleanly
16797 2014-03-14 Murugan Vairavel <murugan@multicorewareinc.com>
16799 * source/common/x86/asm-primitives.cpp, source/common/x86/dct8.asm,
16800 source/common/x86/dct8.h, source/test/mbdstharness.cpp:
16801 asm: 8bpp and 10bpp code for idct8x8 module
16804 2014-03-14 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
16806 * source/common/x86/asm-primitives.cpp, source/common/x86/sad16-a.asm:
16807 added asm primitives for 10bpp sad functions
16810 2014-03-14 Steve Borho <steve@borho.org>
16812 * source/encoder/frameencoder.cpp:
16816 2014-03-14 Santhoshini Sekar <santhoshini@multicorewareinc.com>
16818 * source/encoder/frameencoder.cpp:
16819 vbv: bugfix-calculate intraCuCostPerRow for vbv
16820 [394481c40cf9] <stable>
16822 2014-03-14 Deepthi Nandakumar <deepthi@multicorewareinc.com>
16824 * source/Lib/TLibEncoder/TEncSearch.cpp:
16825 TEncSearch: init best AMVP candidate to zero.
16828 2014-03-13 Steve Borho <steve@borho.org>
16830 * source/encoder/motion.cpp:
16831 motion: remove unused file static array
16834 * source/Lib/TLibCommon/TComPrediction.h,
16835 source/Lib/TLibEncoder/TEncSearch.cpp,
16836 source/Lib/TLibEncoder/TEncSearch.h:
16837 TEncSearch: remove redundant temp buffer
16839 TComPrediction (which TEncSearch derives from) already has
16843 * source/Lib/TLibEncoder/TEncSearch.cpp,
16844 source/Lib/TLibEncoder/TEncSearch.h:
16845 TEncSearch: keep merge data together in a struct
16847 This is for clarity, convenience, and to avoid some redundant work
16850 * source/Lib/TLibEncoder/TEncSearch.cpp:
16851 TEncSearch: combine motion candidate search into AMVP search loop
16854 * source/Lib/TLibEncoder/TEncSearch.cpp,
16855 source/Lib/TLibEncoder/TEncSearch.h:
16856 TEncSearch: inline MVP selection from AMVP candidates
16859 * source/Lib/TLibEncoder/TEncSearch.cpp:
16860 TEncSearch: cleanup xGetBlkBits
16863 * source/Lib/TLibEncoder/TEncSearch.cpp,
16864 source/Lib/TLibEncoder/TEncSearch.h:
16865 TEncSearch: inline xRestrictBipredMergeCand
16868 * source/Lib/TLibEncoder/TEncSearch.cpp,
16869 source/Lib/TLibEncoder/TEncSearch.h:
16870 TEncSearch: inline xGetTemplateCost()
16873 * source/Lib/TLibEncoder/TEncSearch.cpp:
16874 TEncSearch: be pedantic about setting cu fields [CHANGES OUTPUTS]
16876 It is somewhat unfortunate that this changes outputs, it means I had
16877 introduced a bug in an earlier commit
16880 * source/Lib/TLibEncoder/TEncSearch.cpp:
16881 TEncSearch: recombine merge-only path, now it can be accomplished
16885 * source/Lib/TLibEncoder/TEncSearch.cpp:
16886 TEncSearch: remove redundant EMMS instrutions
16888 predInterSearch uses no float operations, so a single EMMS at the
16892 * source/Lib/TLibEncoder/TEncSearch.cpp,
16893 source/Lib/TLibEncoder/TEncSearch.h:
16894 TEncSearch: merge xGetInterPredictionError into xMergeEstimation
16897 * source/Lib/TLibEncoder/TEncSearch.cpp:
16898 TEncSearch: refactor predInterSearch to avoid redundant work
16901 * source/Lib/TLibEncoder/TEncSearch.cpp:
16902 TEncSearch: switch xGetInterPredictionError() to use SATD [CHANGES
16905 predInterSearch() was having to remeasure the unidir/bidir
16906 prediction just because it wanted to measure merge with sa8d. By
16907 switching to satd, a number of further simplifications can be made.
16910 * source/Lib/TLibEncoder/TEncSearch.cpp:
16911 Backed out changeset: 524fdbaed8d0
16913 bits0 and bits1 include list[N].bits and thus they did include the
16914 list selection bit costs.
16917 2014-03-13 Satoshi Nakagawa <nakagawa424@oki.com>
16919 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
16920 source/Lib/TLibEncoder/TEncCu.cpp,
16921 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/shortyuv.cpp,
16922 source/common/shortyuv.h, source/encoder/compress.cpp:
16923 remove unused trUnitIdx from subtract() and addClip()
16926 2014-03-13 Deepthi Nandakumar <deepthi@multicorewareinc.com>
16928 * source/encoder/frameencoder.cpp:
16929 frameencoder: set QP to all parts of CU. No logic change.
16932 2014-03-12 Min Chen <chenm003@163.com>
16934 * source/Lib/TLibEncoder/TEncSbac.cpp,
16935 source/Lib/TLibEncoder/TEncSbac.h:
16936 cleanup: remove c++ ref parameter on xWriteCoefRemainExGolomb
16939 2014-03-12 Steve Borho <steve@borho.org>
16941 * source/Lib/TLibCommon/TComPicYuv.cpp:
16942 TComPicYuv: disambiguate variable names
16944 Now with 75% less insanity!
16947 2014-03-12 Min Chen <chenm003@163.com>
16949 * source/Lib/TLibCommon/TComTrQuant.cpp,
16950 source/Lib/TLibCommon/TComTrQuant.h,
16951 source/Lib/TLibEncoder/TEncSbac.cpp:
16952 optimize: reduce memory and improvement performance by replace
16953 sigCoeffGroupFlag[] to sigCoeffGroupFlag64
16956 * source/Lib/TLibEncoder/TEncSbac.cpp:
16957 optimize: simplify operators on loop sigCoeffGroupFlag
16960 2014-03-12 Steve Borho <steve@borho.org>
16962 * source/Lib/TLibCommon/TypeDef.h:
16963 TypeDef: explicit 32bit type for TCoeff
16966 * source/Lib/TLibCommon/TypeDef.h:
16967 TypeDef: UChar to uint8_t
16970 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h:
16971 TComRom: UChar to uint8_t
16974 2014-03-12 Min Chen <chenm003@163.com>
16976 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h:
16977 optimize: use UChar on g_convertToBit to avoid signed extend
16980 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
16981 source/Lib/TLibCommon/TypeDef.h,
16982 source/Lib/TLibEncoder/TEncSbac.cpp:
16983 optimize: reduce scan table size by uint32_t -> uint16_t
16986 2014-03-12 Steve Borho <steve@borho.org>
16988 * source/Lib/TLibEncoder/TEncSearch.cpp,
16989 source/Lib/TLibEncoder/TEncSearch.h:
16990 TEncSearch: replace UChar with uint8_t
16993 * source/Lib/TLibEncoder/TEncSearch.h:
16997 * source/Lib/TLibEncoder/TEncSearch.cpp,
16998 source/Lib/TLibEncoder/TEncSearch.h:
16999 TEncSearch: use HEVC MVP candidates as motion candidates [CHANGES
17003 * source/Lib/TLibEncoder/TEncSearch.cpp,
17004 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/encoder.cpp,
17005 source/encoder/encoder.h, source/encoder/frameencoder.cpp:
17006 TEncSearch: remove unused adaptive search range array
17009 * source/Lib/TLibEncoder/TEncSearch.cpp:
17010 TEncSearch: MV0 bidir bitcost not based on list costs, so no need to
17014 * source/Lib/TLibEncoder/TEncSearch.cpp:
17015 TEncSearch: refactor predInterSearch to use simple structure
17017 This removes the need for keep every possible MVP and MVP idx
17018 around, and it hopefully makes the code a lot more readable.
17021 2014-03-12 Deepthi Nandakumar <deepthi@multicorewareinc.com>
17026 * source/Lib/TLibCommon/TComDataCU.cpp,
17027 source/Lib/TLibCommon/TComDataCU.h,
17028 source/Lib/TLibEncoder/TEncCu.cpp:
17029 TComDataCU: cleanup
17032 * source/Lib/TLibEncoder/TEncEntropy.cpp,
17033 source/Lib/TLibEncoder/TEncEntropy.h:
17037 2014-03-12 Steve Borho <steve@borho.org>
17039 * source/Lib/TLibEncoder/TEncSearch.cpp:
17040 TEncSearch: initialize MotionEstimate function pointers before merge
17044 2014-03-11 Steve Borho <steve@borho.org>
17046 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/common.h,
17047 source/encoder/api.cpp:
17048 common: remove mostly unused cycle count macros
17051 * source/Lib/TLibEncoder/TEncSearch.cpp:
17052 TEncSearch: break ties in favor of uni-directional MC [CHANGES
17055 If bidir has the same cost as unidir, pick the unidir prediction.
17056 Bidir will average the two directional prediction and thus tends to
17057 generate blurred predictions. Uni-directional prediction is better
17058 when costs are the equal.
17061 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
17062 source/common/common.cpp, source/common/common.h,
17063 source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp,
17064 source/encoder/ratecontrol.h:
17068 * source/Lib/TLibEncoder/TEncSearch.cpp:
17069 TEncSearch: dehungarians and other nits
17072 2014-03-10 Satoshi Nakagawa <nakagawa424@oki.com>
17074 * source/Lib/TLibCommon/TComTrQuant.cpp,
17075 source/Lib/TLibCommon/TComTrQuant.h,
17076 source/Lib/TLibCommon/TypeDef.h,
17077 source/Lib/TLibEncoder/TEncSbac.cpp:
17078 revert getSigCtxInc() to 0.7, this version was faster
17081 2014-03-11 Aarthi Thirumalai <Aarthi Thirumalai>
17083 * source/encoder/ratecontrol.cpp:
17084 vbv: bug fix - down shifting of satdcost for 10 bit depth.
17085 [c06ee069df5e] <stable>
17087 * source/common/common.cpp, source/common/common.h:
17088 rc: move qp2qscale and qscale2qp function to common
17089 [561adb9b21f6] <stable>
17091 * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp,
17092 source/encoder/ratecontrol.h:
17093 vbv: bug fixes - move row Predictors, frameSizeEstimated to Frame
17096 Improves quality and controls buffer underflow when Frame
17097 parallelism is enabled.
17098 [1b84d0748a08] <stable>
17100 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
17101 source/encoder/ratecontrol.cpp:
17102 vbv: use row wise IntraSatdCost to predict vbv intra frame bits.
17104 If P/B slice is predominatly intra coded, use intra SatdCost to
17105 predict the row bits in vbv.
17106 [380c4bf5ff75] <stable>
17108 * source/encoder/ratecontrol.cpp:
17109 vbv: bug fix - down shifting of satdcost for 10 bit depth.
17112 2014-03-10 Steve Borho <steve@borho.org>
17114 * source/Lib/TLibEncoder/TEncSearch.cpp:
17115 TEncSearch: fix some comments
17118 * source/Lib/TLibEncoder/TEncSearch.cpp:
17119 TEncSearch: reorder code for more clarity
17122 * source/Lib/TLibEncoder/TEncSearch.cpp:
17123 TEncSearch: host bMergeOnly logic to the top of predInterSearch
17125 This makes merge-only easier to follow and more efficient, and makes
17126 the full search code easier to read and easier to maintain. This
17127 should have no change in outputs
17130 * source/Lib/TLibEncoder/TEncSearch.cpp:
17131 TEncSearch: localize scope of bidir MV and ref idx arrays
17134 * source/Lib/TLibEncoder/TEncSearch.cpp:
17135 TEncSearch: hoist bMergeOnly check to only be performed once
17138 * source/Lib/TLibEncoder/TEncSearch.cpp:
17139 TEncSearch: remove list1 hacks
17142 * source/Lib/TLibEncoder/TEncSearch.cpp:
17143 TEncSearch: localize scope, rename, and remove defaults for
17147 * source/Lib/TLibEncoder/TEncSearch.cpp:
17148 TEncSearch: remove mvTemp[][] array, just use outmv stack var
17151 * source/Lib/TLibEncoder/TEncSearch.cpp:
17152 TEncSearch: localize scope and rename listMv
17155 * source/Lib/TLibEncoder/TEncSearch.cpp:
17156 TEncSearch: localize scope of mvzero
17159 * source/Lib/TLibEncoder/TEncSearch.cpp:
17160 TEncSearch: localize scope and rename listRefIdx
17163 * source/Lib/TLibEncoder/TEncSearch.cpp:
17164 TEncSearch: localize scope of costTemp
17167 * source/Lib/TLibEncoder/TEncSearch.cpp:
17168 TEncSearch: simplify and localize scope of bitstemp
17171 * source/Lib/TLibEncoder/TEncSearch.cpp:
17172 TEncSearch: rename bits to listbits[] for clarity
17175 * source/Lib/TLibEncoder/TEncSearch.cpp:
17176 TEncSearch: replace costbi with listCost[2]
17179 * source/Lib/TLibEncoder/TEncSearch.cpp,
17180 source/Lib/TLibEncoder/TEncSearch.h:
17181 TEncSearch: remove useless distBiP argument from xEstimateMvPredAMVP
17184 * source/Lib/TLibEncoder/TEncSearch.cpp:
17185 TEncSearch: cleanups in predInterSearch(), no logic change
17188 * source/Lib/TLibCommon/TComSlice.cpp,
17189 source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp,
17190 source/encoder/encoder.h, source/encoder/frameencoder.cpp,
17191 source/encoder/weightPrediction.cpp:
17192 weight: match x264 weight analysis and logging [OUTPUT CHANGE]
17194 This only weights the first reference, and will only weight chroma
17195 if luma was weighted. Further work remains, we must add an
17196 unweighted dup of the weighted reference into the P slice's L0
17200 2014-03-10 Murugan Vairavel <murugan@multicorewareinc.com>
17202 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/shortyuv.cpp,
17203 source/common/shortyuv.h:
17204 shortyuv: integrated asm primitives for blockcopy
17207 2014-03-11 Aarthi Thirumalai <Aarthi Thirumalai>
17209 * source/common/common.cpp, source/common/common.h,
17210 source/encoder/ratecontrol.cpp:
17211 rc: move qp2qscale and qscale2qp function to common
17214 * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp,
17215 source/encoder/ratecontrol.h:
17216 vbv: bug fixes - move row Predictors, frameSizeEstimated to Frame
17219 Improves quality and controls buffer underflow when Frame
17220 parallelism is enabled.
17223 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
17224 source/encoder/ratecontrol.cpp:
17225 vbv: use row wise IntraSatdCost to predict vbv intra frame bits.
17227 If P/B slice is predominatly intra coded, use intra SatdCost to
17228 predict the row bits in vbv.
17231 2014-03-10 Gopu Govindaswamy <Gopu Govindaswamy>
17233 * source/Lib/TLibCommon/TComMotionInfo.h:
17234 tcommotion: cleanup removed unused methods
17237 * source/Lib/TLibCommon/TComDataCU.cpp,
17238 source/Lib/TLibCommon/TComMotionInfo.cpp,
17239 source/Lib/TLibCommon/TComMotionInfo.h:
17240 tcommotion: use Checked malloc to allocate memory
17243 * source/Lib/TLibEncoder/TEncSbac.cpp:
17244 tencsbac: remove unused SCALING_LIST_OUTPUT_RESULT macro
17247 * source/Lib/TLibEncoder/TEncSbac.cpp:
17248 tencsbac: subLayerOrderingInfoPresentFlag always true, the if() loop
17249 will never executed
17251 vps_sub_layer_ordering_info_present_flag is always set to true, not
17252 required to have extra storage for this, removed
17253 subLayerOrderingInfoPresentFlag
17256 2014-03-10 Satoshi Nakagawa <nakagawa424@oki.com>
17258 * source/Lib/TLibCommon/TComDataCU.cpp,
17259 source/Lib/TLibCommon/TComDataCU.h,
17260 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
17261 source/Lib/TLibEncoder/TEncCu.cpp,
17262 source/Lib/TLibEncoder/TEncSearch.cpp,
17263 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp:
17264 cleanup unused intra !bLumaOnly path
17267 2014-03-10 Steve Borho <steve@borho.org>
17269 * source/Lib/TLibEncoder/TEncSearch.cpp:
17270 TEncSearch: fix bMergeOnly override check, did not intend to change
17274 * source/Lib/TLibEncoder/TEncSearch.cpp:
17275 TEncSearch: fix gcc warning, remove redundant assignemnt
17278 2014-03-09 Steve Borho <steve@borho.org>
17280 * source/Lib/TLibEncoder/TEncSearch.cpp,
17281 source/Lib/TLibEncoder/TEncSearch.h:
17282 TEncSearch: rename bUseMRG to bMergeOnly for clarity
17285 * source/Lib/TLibEncoder/TEncCu.cpp:
17286 TEncCu: disable TMVP range check if frame threading disabled, code
17290 * source/Lib/TLibEncoder/TEncCu.cpp,
17291 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp:
17292 TEncSearch: remove default argument from encodeResAndCalcRdInterCU()
17295 * source/Lib/TLibEncoder/TEncCu.cpp,
17296 source/Lib/TLibEncoder/TEncSearch.cpp,
17297 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp:
17298 TEncSearch: remove confusing default arguments from
17301 And completely remove bLuma which was always true
17304 2014-03-08 Steve Borho <steve@borho.org>
17306 * source/Lib/TLibEncoder/TEncCu.cpp,
17307 source/Lib/TLibEncoder/TEncSearch.cpp,
17308 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp:
17309 me: skip TMVP merge candidates that are beyond vertical search range
17311 Because of frame parallelism, pixels more than search range below
17312 coincident may not be available in references. Sometimes these merge
17313 candidates happened to be the best cost, resulting in hash
17316 Because xMergeEstimation() can now return with no valid merge modes,
17317 the caller must deal with the potential of no merge mode.
17318 predInterSearch() is sometimes called to only measure merge modes
17319 (skipping ME for AMP partitions for some presets), so now
17320 predInterSearch() can also possibly exit without generating a valid
17324 2014-03-09 Steve Borho <steve@borho.org>
17326 * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp:
17327 TEncCu: nits, no logic change
17330 2014-03-07 David T Yuen <dtyx265@gmail.com>
17332 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
17333 source/encoder/compress.cpp, source/encoder/frameencoder.cpp,
17334 source/encoder/frameencoder.h, source/encoder/framefilter.cpp,
17335 source/encoder/framefilter.h, source/encoder/ratecontrol.cpp,
17336 source/encoder/ratecontrol.h, source/encoder/slicetype.cpp,
17337 source/encoder/slicetype.h:
17338 Replaced Encoder* with x265_param* as member of several classes
17340 Replaced Encoder* with x265_param* as member of TEncCu, framefilter,
17341 ratecontrol, CostEstimate and Lookahead Added
17342 m_CUTransquantBypassFlagValue to TEncCu since it's part of Encoder
17343 and not x265_param framefilter's processRow and processRowPost
17344 needed Encoder* to run Encoder::signalReconRowCompleted
17347 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
17348 source/common/lowres.cpp, source/common/lowres.h,
17349 source/encoder/dpb.cpp, source/encoder/dpb.h,
17350 source/encoder/encoder.cpp, source/encoder/slicetype.cpp:
17351 Removed Encoder* as member of DPB and replaced it with field
17354 Also added int bframes to Lowres since only param->bframes is passed
17355 to its methods thus eliminating one of DPB's uses of Encoder*
17358 2014-03-08 Satoshi Nakagawa <nakagawa424@oki.com>
17360 * source/Lib/TLibEncoder/TEncSearch.cpp,
17361 source/Lib/TLibEncoder/TEncSearch.h, source/common/pixel.cpp,
17362 source/common/primitives.h, source/common/x86/pixel-util8.asm,
17363 source/test/pixelharness.cpp:
17364 cleanup m_sharedPredTransformSkip[]
17366 NEW_CALCRECON macro is TODO mark for asm experts, to optimize
17367 register assignment.
17370 2014-03-07 Steve Borho <steve@borho.org>
17372 * source/encoder/encoder.cpp:
17376 * source/encoder/encoder.cpp:
17377 encoder: back-port VUI content fixes from default branch
17379 Take values from param structure, which is where these fields are
17380 actually configured.
17381 [b7e2854cf1c4] <stable>
17383 2014-03-07 Murugan Vairavel <murugan@multicorewareinc.com>
17385 * source/common/x86/asm-primitives.cpp,
17386 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
17387 asm: added code for blockcopy_ss and cleaned up asm primitives of
17391 2014-03-06 Steve Borho <steve@borho.org>
17393 * source/Lib/TLibEncoder/TEncSbac.cpp:
17394 TEncSBac: remove unused define
17397 * source/Lib/TLibCommon/TComSlice.h:
17401 2014-03-06 Satoshi Nakagawa <nakagawa424@oki.com>
17403 * source/Lib/TLibCommon/TComDataCU.cpp,
17404 source/Lib/TLibCommon/TComDataCU.h:
17405 share m_mvpIdx[0] as m_mergeIdx
17408 * source/Lib/TLibCommon/TComDataCU.cpp,
17409 source/Lib/TLibCommon/TComDataCU.h,
17410 source/Lib/TLibCommon/TComLoopFilter.cpp,
17411 source/Lib/TLibCommon/TComPattern.cpp,
17412 source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
17413 source/Lib/TLibCommon/TComPicSym.cpp,
17414 source/Lib/TLibCommon/TComPicSym.h,
17415 source/Lib/TLibCommon/TComPicYuv.cpp,
17416 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
17417 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
17418 source/Lib/TLibCommon/TComSlice.cpp,
17419 source/Lib/TLibCommon/TComSlice.h,
17420 source/Lib/TLibEncoder/TEncCu.cpp,
17421 source/Lib/TLibEncoder/TEncEntropy.cpp,
17422 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
17423 source/Lib/TLibEncoder/TEncSbac.cpp,
17424 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/param.cpp,
17425 source/encoder/compress.cpp, source/encoder/cturow.cpp,
17426 source/encoder/encoder.cpp, source/encoder/frameencoder.cpp,
17427 source/encoder/framefilter.cpp, source/encoder/reference.cpp:
17430 unify TComDataCU::m_width and m_height to m_cuSize
17433 2014-03-06 Steve Borho <steve@borho.org>
17435 * source/common/param.cpp:
17436 param: print vbv-init as a float
17439 2014-03-06 Murugan Vairavel <murugan@multicorewareinc.com>
17441 * source/test/pixelharness.cpp, source/test/pixelharness.h:
17442 Testbench code for blockcopy_ss
17445 * source/common/pixel.cpp, source/common/primitives.h:
17446 C primitive for blockcopy_ss
17449 2014-03-06 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
17451 * source/common/x86/intrapred16.asm, source/common/x86/intrapred8.asm,
17452 source/common/x86/ipfilter16.asm, source/common/x86/ipfilter8.asm,
17453 source/common/x86/mc-a.asm, source/common/x86/pixel-util8.asm,
17454 source/common/x86/pixeladd8.asm, source/common/x86/sad-a.asm,
17455 source/common/x86/ssd-a.asm:
17456 cleanup the labels in assembly code with trailing colon
17459 2014-03-06 Steve Borho <steve@borho.org>
17461 * source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibCommon/SEI.h,
17462 source/Lib/TLibCommon/TComBitStream.cpp,
17463 source/Lib/TLibCommon/TComBitStream.h,
17464 source/Lib/TLibCommon/TComMotionInfo.cpp,
17465 source/Lib/TLibCommon/TComMotionInfo.h,
17466 source/Lib/TLibCommon/TComPattern.h,
17467 source/Lib/TLibCommon/TComPicYuv.cpp,
17468 source/Lib/TLibCommon/TComPrediction.cpp,
17469 source/Lib/TLibCommon/TComRdCost.h,
17470 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
17471 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
17472 source/Lib/TLibCommon/TComSlice.h,
17473 source/Lib/TLibCommon/TComTrQuant.cpp,
17474 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TypeDef.h,
17475 source/Lib/TLibEncoder/NALwrite.cpp,
17476 source/Lib/TLibEncoder/TEncCu.cpp,
17477 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
17478 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/common.cpp,
17479 source/common/common.h, source/common/cpu.cpp, source/common/cpu.h,
17480 source/common/dct.cpp, source/common/intrapred.cpp,
17481 source/common/ipfilter.cpp, source/common/md5.cpp,
17482 source/common/md5.h, source/common/mv.h, source/common/param.cpp,
17483 source/common/primitives.cpp, source/common/primitives.h,
17484 source/common/shortyuv.cpp, source/common/threading.h,
17485 source/common/threadpool.cpp, source/common/threadpool.h,
17486 source/common/vec/blockcopy-sse3.cpp, source/common/vec/dct-
17487 sse3.cpp, source/common/vec/dct-sse41.cpp, source/common/vec/dct-
17488 ssse3.cpp, source/common/wavefront.cpp, source/common/wavefront.h,
17489 source/encoder/bitcost.cpp, source/encoder/bitcost.h,
17490 source/encoder/compress.cpp, source/encoder/encoder.cpp,
17491 source/encoder/frameencoder.cpp, source/encoder/motion.cpp,
17492 source/encoder/ratecontrol.cpp, source/input/input.cpp,
17493 source/input/y4m.cpp, source/input/yuv.cpp,
17494 source/output/output.cpp, source/output/y4m.cpp,
17495 source/output/yuv.cpp, source/output/yuv.h,
17496 source/test/intrapredharness.cpp, source/test/ipfilterharness.cpp,
17497 source/test/mbdstharness.cpp, source/test/pixelharness.cpp,
17498 source/test/testbench.cpp, source/test/testharness.h,
17499 source/test/testpool.cpp, source/x265.cpp:
17500 common: consolidate system header includes into common.h
17502 Hopefully this will prevent random compile failures in the future
17503 from missed cmath, climits, or memory.h includes.
17506 * source/common/param.cpp:
17507 param: spelling nit
17510 * source/common/param.cpp, source/x265.cpp:
17511 clarify valid values for --vbv-init
17514 2014-03-05 Steve Borho <steve@borho.org>
17516 * source/Lib/TLibCommon/TComSlice.cpp:
17517 TComSlice: replace magic numbers with appropriate macro
17520 * source/Lib/TLibCommon/TComSlice.cpp,
17521 source/Lib/TLibCommon/TComSlice.h:
17522 TComSlice: remove unused checkNumPocTotalCurr argument to
17526 * source/Lib/TLibCommon/TComSlice.cpp,
17527 source/Lib/TLibCommon/TComSlice.h:
17528 TComSlice: remove unused checkCRA function
17531 * source/encoder/dpb.cpp:
17532 dpb: remove commented code
17535 * source/common/param.cpp, source/x265.cpp, source/x265.h:
17536 cli: add --crf-max option for param.rc.rfConstantMax
17540 cli: show compiled assembly status and detected SIMD arches on x265
17545 cli: invalid preset or tune is a non-recoverabe error
17549 cli: show condensed error message if no arguments are given
17553 cli: reorder help for better clarity
17557 cli: add --no- options to some VUI fields
17559 This is a little pedantic since they default to false and likely
17560 won't change at any time.
17564 cli: fix AQ CLI help. 0, 1, and 2 are valid options
17568 cli: improve help text by describing command argument data types
17572 cli: improve CLI help for --overscan
17575 * source/common/param.cpp, source/common/param.h, source/x265.cpp:
17576 cli: change --log option to --log-level, allow strings or ints
17578 getopt allows partial matches, so --log N will still work like it
17579 always has. x265_parse_param() will accept "log" or "log-level"
17581 Since the first entry in the name list corresponds to -1, the string
17582 list is not placed in x265.h, where all indices are 0 based.
17586 cli: move "fps" between resolution and frame rate, same as input
17590 * source/common/param.cpp:
17591 param: add VBV info to log data
17594 * source/CMakeLists.txt:
17595 cmake: use x86 alias list rather than repeated string compares (nit)
17598 2014-03-05 Murugan Vairavel <murugan@multicorewareinc.com>
17600 * source/common/x86/asm-primitives.cpp:
17601 primitives: cleaned up asm_primitives of intra_pred_ang
17604 2014-03-05 Steve Borho <steve@borho.org>
17606 * source/encoder/encoder.cpp, source/output/y4m.cpp,
17607 source/output/yuv.cpp:
17608 encoder: assign internal colorspce to output pic.colorSpace
17611 * source/CMakeLists.txt, source/Lib/TLibCommon/TComPicYuv.cpp,
17612 source/encoder/encoder.cpp, source/input/y4m.cpp,
17613 source/input/yuv.cpp, source/output/y4m.cpp, source/output/yuv.cpp,
17615 api: change meaning of pic.stride to be in bytes rather than pixels
17618 x264's pic.plane pointer is a uint8_t* so their input strides are
17619 byte based, ffmpeg is currently assuming our input strides are byte
17620 based. This commit will make that assumption correct.
17622 This fixes non-4:2:0 YUV file read at the same time, and bumps
17626 * source/CMakeLists.txt:
17627 cmake: add i686 to x86 alias list (closes #33)
17630 2014-03-05 Murugan Vairavel <murugan@multicorewareinc.com>
17632 * source/common/x86/asm-primitives.cpp:
17633 asm: enable 10bit chroma_vpp and chroma_vps interpolation filters
17636 2014-03-04 David T Yuen <dtyx265@gmail.com>
17638 * source/encoder/encoder.cpp, source/encoder/encoder.h,
17639 source/encoder/framefilter.cpp:
17640 Removed Encoder::m_csp and replaced it with x265_param::internalCsp
17643 2014-03-04 Steve Borho <steve@borho.org>
17645 * source/encoder/weightPrediction.cpp:
17646 weight: ensure chroma weights are initialized when skipped
17649 * source/common/primitives.cpp:
17650 primitives: prevent multiple setup calls from reiniting primitive
17653 We don't want the function table to change in the middle of an
17654 encode. Improve logging so that --asm <SMALLINT> which does not
17655 result in any bitmap matches still reports "none!"
17658 * source/encoder/weightPrediction.cpp:
17659 weight: simplify and remove redundant logic
17662 * source/encoder/weightPrediction.cpp:
17663 weight: do not attempt chroma weights if luma was not weighted
17666 This heuristic seems to improve a number of clips, particularly when
17667 chroma distortion is not considered in mode decision. This could
17668 cause some odd colors to be encoded, particularly noticable with
17672 * source/encoder/reference.cpp, source/encoder/slicetype.cpp,
17673 source/encoder/weightPrediction.cpp:
17674 weight: use correct round value for denom 0 [CHANGES OUTPUT]
17676 The denom -without the intermediate bit-depth factor applied- must
17677 be compared with zero, else the output of weight_pp will not match
17678 the real output of pixel weighting. This was done wrong in two
17679 different ways in three different places
17682 * source/CMakeLists.txt:
17683 cmake: bump X265_BUILD to 8, many API changes
17685 These changes should be mostly harmless, I don't expect many API
17686 users have used the VUI fields yet, so a recompile against the new
17687 x265.h should be sufficient.
17690 * source/CMakeLists.txt, source/dllmain.cpp:
17691 cmake: dllmain is no longer necessary since use of object libraries
17695 cli: do not call x265_setup_primitives() from printVersion()
17697 It now leads to redundant console output and it was interfering with
17698 --asm command line arguent functionality
17701 * source/common/param.cpp, source/encoder/api.cpp, source/x265.cpp,
17703 api: move cpuid to x265_param, same as x264
17706 * source/common/common.cpp, source/common/common.h,
17707 source/encoder/encoder.cpp, source/x265.cpp, source/x265.h:
17708 api: move x265_ssim() to be an internal function, give a more
17711 This function really shouldn't have been a public function, and it
17712 was never added to the exports list.
17715 * source/common/param.cpp, source/encoder/encoder.cpp,
17716 source/x265.cpp, source/x265.h:
17717 api: move VUI settings into vui sub-struct of x265_param
17720 * source/encoder/CMakeLists.txt:
17721 cmake: TEncCfg.h is caput
17724 2014-03-03 David T Yuen <dtyx265@gmail.com>
17726 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
17727 source/Lib/TLibCommon/TComSlice.cpp,
17728 source/Lib/TLibCommon/TComSlice.h,
17729 source/Lib/TLibEncoder/SEIwrite.cpp,
17730 source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp,
17731 source/Lib/TLibEncoder/TEncCu.h,
17732 source/Lib/TLibEncoder/TEncSbac.cpp,
17733 source/Lib/TLibEncoder/TEncSearch.cpp,
17734 source/Lib/TLibEncoder/TEncSearch.h, source/common/param.cpp,
17735 source/encoder/api.cpp, source/encoder/compress.cpp,
17736 source/encoder/cturow.cpp, source/encoder/dpb.cpp,
17737 source/encoder/dpb.h, source/encoder/encoder.cpp,
17738 source/encoder/encoder.h, source/encoder/frameencoder.cpp,
17739 source/encoder/frameencoder.h, source/encoder/framefilter.cpp,
17740 source/encoder/framefilter.h, source/encoder/ratecontrol.cpp,
17741 source/encoder/ratecontrol.h, source/encoder/slicetype.cpp,
17742 source/encoder/slicetype.h, source/x265.cpp, source/x265.h:
17743 Merged TEncCfg into Encoder. A few VUI tweaks and fixes.
17746 2014-03-04 Steve Borho <steve@borho.org>
17748 * Merge with stable
17752 Added tag 0.8 for changeset 527d03c56d68
17753 [91ada5e78ee1] <stable>
17755 2014-03-03 Steve Borho <steve@borho.org>
17757 * source/CMakeLists.txt, source/common/CMakeLists.txt,
17758 source/common/param.cpp:
17759 cmake: detect strtok_r, use workaround when not present
17762 * source/encoder/frameencoder.cpp, source/encoder/slicetype.cpp:
17766 2014-03-03 Gopu Govindaswamy <Gopu Govindaswamy>
17768 * source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
17769 source/encoder/framefilter.cpp:
17770 tcomsao: only get method is unused, set lcuboundary is required
17772 references 742641e0f796
17775 * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
17776 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h:
17777 tcomsao: replaced All Pel type into pixel type
17780 * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
17781 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h:
17782 tcomsao: use X265_MALLOC and X265_FREE in create() and Pel replaced
17786 * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
17787 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
17788 source/encoder/framefilter.cpp:
17789 tcomsaq: remove unused get and set saolcuboundary methods
17792 * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp:
17793 tencsao: Pel replaced with pixel type
17796 * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp:
17797 tencsao: new and delete replaced with X265_MALLOC and X265_FREE
17800 * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
17801 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h:
17802 tencsao: remove unused calcSaoStatsBlock
17805 2014-03-03 Steve Borho <steve@borho.org>
17807 * source/Lib/TLibEncoder/TEncEntropy.cpp:
17808 TEncEntropy: fix gcc warnings
17811 2014-03-03 Satoshi Nakagawa <nakagawa424@oki.com>
17813 * source/Lib/TLibCommon/CommonDef.h,
17814 source/Lib/TLibCommon/TComDataCU.cpp,
17815 source/Lib/TLibCommon/TComDataCU.h,
17816 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
17817 source/Lib/TLibCommon/TComTrQuant.cpp,
17818 source/Lib/TLibCommon/TComTrQuant.h,
17819 source/Lib/TLibCommon/TypeDef.h,
17820 source/Lib/TLibEncoder/TEncEntropy.cpp,
17821 source/Lib/TLibEncoder/TEncEntropy.h,
17822 source/Lib/TLibEncoder/TEncSbac.cpp,
17823 source/Lib/TLibEncoder/TEncSbac.h,
17824 source/Lib/TLibEncoder/TEncSearch.cpp:
17825 residual coding unit is always square
17828 2014-03-03 Nabajit Deka <Nabajit Deka>
17830 * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h:
17831 test bench : Modify chroma_p2s test function to handle csp.
17834 * source/common/x86/asm-primitives.cpp,
17835 source/common/x86/ipfilter8.asm, source/common/x86/ipfilter8.h:
17836 asm : remove chroma_p2s_i444, can be replaced by luma_p2s
17839 2014-03-04 Aarthi Thirumalai <Aarthi Thirumalai>
17841 * source/encoder/frameencoder.cpp, source/encoder/slicetype.cpp:
17842 vbv: bug fixes in --no-cutree flow. Ignore intracosts in calculating
17844 [527d03c56d68] [0.8] <stable>
17846 2014-03-03 Nabajit Deka <Nabajit Deka>
17848 * source/test/mbdstharness.cpp:
17849 test bench : fix for test bench failure, caused by redundant malloc.
17852 2014-03-02 Steve Borho <steve@borho.org>
17854 * source/common/shortyuv.cpp:
17855 shortyuv: use optimized primitives where available
17858 * source/common/shortyuv.cpp, source/common/shortyuv.h:
17859 shortyuv: combine add/subtract methods together
17862 * source/Lib/TLibCommon/TComPicYuv.h,
17863 source/Lib/TLibCommon/TComPrediction.cpp,
17864 source/Lib/TLibCommon/TComPrediction.h,
17865 source/Lib/TLibCommon/TComWeightPrediction.cpp,
17866 source/Lib/TLibCommon/TComWeightPrediction.h,
17867 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
17868 source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
17869 source/Lib/TLibEncoder/TEncSearch.cpp,
17870 source/Lib/TLibEncoder/TEncSearch.h, source/common/shortyuv.cpp,
17871 source/common/shortyuv.h, source/encoder/compress.cpp:
17872 rename TShortYuv to ShortYuv
17875 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
17876 source/common/shortyuv.cpp, source/common/shortyuv.h,
17877 source/encoder/cturow.cpp:
17878 use checked malloc in TShortYuv::create and TEncCu::create
17880 And replace unsigned int with uint32_t in TShortYuv.cpp
17883 * source/Lib/TLibCommon/TComPrediction.h,
17884 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibEncoder/TEncCu.h,
17885 source/common/CMakeLists.txt, source/common/TShortYUV.cpp,
17886 source/common/TShortYUV.h, source/common/shortyuv.cpp,
17887 source/common/shortyuv.h:
17888 rename TShortYUV.* to shortyuv.*
17891 * source/common/param.cpp:
17892 param: ignore assignments within conditionals in param.cpp
17895 * source/Lib/TLibCommon/TComPattern.cpp,
17896 source/Lib/TLibCommon/TComPattern.h:
17897 TComPattern: remove hungarian prefixes
17900 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h:
17901 TComYuv: switch from Pel to pixel type
17904 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
17905 source/Lib/TLibEncoder/TEncSearch.cpp,
17906 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/cturow.cpp,
17907 source/encoder/cturow.h, source/encoder/encoder.cpp,
17908 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
17909 used checked malloc in TComYuv and TEncSearch, cleanly catch malloc
17913 * source/test/intrapredharness.cpp, source/test/ipfilterharness.cpp,
17914 source/test/mbdstharness.cpp, source/test/pixelharness.cpp:
17915 testbench: use CHECKED_MALLOC to cleanup init functions
17918 * source/common/param.cpp:
17919 param: MSVC build fixes
17922 2014-03-01 Steve Borho <steve@borho.org>
17924 * source/common/param.cpp, source/x265.cpp, source/x265.h:
17925 api: add a fastdecode tune option, improve tune and preset CLI help
17927 To match x264's tune names, removed "-" from zerolatency in x265.h
17928 but allowed either string to match internally. Same with fast-
17932 * source/test/testbench.cpp:
17933 testbench: improve CLI help and error handling, use parseCpuName
17936 * source/common/primitives.cpp:
17937 primitves: update CPU name print logic from x264
17940 * source/common/param.cpp, source/x265.cpp:
17941 param: fix handling of --no-scenecut within x265_param_parse(), add
17945 * source/common/common.h, source/common/param.cpp,
17946 source/common/param.h, source/common/primitives.cpp,
17948 cli: replace --cpuid with --[no-]asm arguments
17950 The vector class library is long gone, so it is past-due to adopt
17951 x264's logic for specifying CPU architectures, or disabling ASM
17955 2014-02-28 Satoshi Nakagawa <nakagawa424@oki.com>
17957 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
17958 source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp:
17959 copy m_origYuv[depth] from m_origYuv[0]
17962 2014-03-02 Deepthi Nandakumar <deepthi@multicorewareinc.com>
17964 * source/encoder/weightPrediction.cpp:
17965 weightp: implicit cast warning on vc10-x86.
17967 Is lambda intended to be int?
17970 2014-02-28 Praveen Tiwari <Praveen Tiwari>
17972 * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
17973 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
17974 source/common/CMakeLists.txt, source/common/loopfilter.cpp,
17975 source/common/primitives.cpp, source/common/primitives.h,
17976 source/common/x86/asm-primitives.cpp,
17977 source/common/x86/loopfilter.asm, source/common/x86/loopfilter.h,
17978 source/test/pixelharness.cpp, source/test/pixelharness.h:
17979 asm: split SAO_EO_0 into separate primitive func
17981 added assembly code and testbench support added loopfilter.cpp,
17982 loopfilter.h, loopfilter.asm files
17985 2014-02-28 Kavitha Sampath <kavitha@multicorewareinc.com>
17987 * source/common/CMakeLists.txt, source/common/bitstream.h,
17988 source/encoder/weightPrediction.cpp:
17989 weightp: use struct to cache data for reuse, refactor MC of
17992 * do not consider intra/mv cost during MC phase
17993 * unconditionally motion-compensate luma and chroma blocks
17994 * include slice header cost estimate in weight analysis
17995 * weightCost() needed different paths for luma, chroma, and chroma444
17996 * pass a single stride to weightCost()
17999 2014-02-28 Steve Borho <steve@borho.org>
18001 * source/common/param.cpp, source/encoder/encoder.cpp, source/x265.h:
18005 2014-02-28 Gopu Govindaswamy <Gopu Govindaswamy>
18007 * source/Lib/TLibCommon/TComPicYuv.cpp:
18008 tcompicyuv: initialize NULL to cu and bu offset buffers.
18009 [f6d079ad85bc] <stable>
18011 2014-02-27 Steve Borho <steve@borho.org>
18013 * source/common/common.cpp, source/common/param.cpp,
18014 source/encoder/encoder.cpp, source/encoder/weightPrediction.cpp,
18016 api: make log-level 4 semi-official and expose in public API
18017 [994f046a8111] <stable>
18019 2014-02-28 Satoshi Nakagawa <nakagawa424@oki.com>
18021 * source/Lib/TLibCommon/TComTrQuant.cpp,
18022 source/Lib/TLibCommon/TComTrQuant.h,
18023 source/Lib/TLibEncoder/TEncSearch.cpp:
18024 square transform only
18027 * source/common/x86/asm-primitives.cpp:
18028 asm: enable count_nonzero for HIGH_BIT_DEPTH
18031 2014-02-27 Steve Borho <steve@borho.org>
18033 * source/common/param.cpp:
18034 tune: ensure lookahead is disabled for zero-latency
18037 * source/common/primitives.cpp, source/common/x86/asm-primitives.cpp:
18038 asm: cleanup 444 chroma primitive setup, and other primitve reuse
18041 * source/encoder/encoder.cpp, source/encoder/slicetype.cpp,
18042 source/encoder/slicetype.h:
18043 log: report consecutive B-frame histogram, as x264 does
18046 * source/common/common.h, source/x265.h:
18047 api: expose X265_BFRAME_MAX to the user
18050 * Merge with stable
18053 2014-02-27 Sagar Kotecha <sagar@multicorewareinc.com>
18055 * source/common/common.h, source/common/param.cpp, source/x265.cpp:
18056 param: add more validation checks to prevent encoder crashes
18057 [013589124615] <stable>
18059 2014-02-27 Nabajit Deka <Nabajit Deka>
18061 * source/common/x86/asm-primitives.cpp,
18062 source/common/x86/ipfilter16.asm, source/common/x86/ipfilter8.h:
18063 asm: 10bpp code for vertical luma interpolation filters.
18066 2014-02-27 Aarthi Thirumalai <Aarthi Thirumalai>
18068 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
18069 vbv: bug fixes to stop mid frame qp adjustments to increase
18072 maintain bufferFill for each FrameEncoder context and use that in
18073 rowWise qp adjustments for vbv. also fixes bugs in predicting row
18074 wise bits from satd costs.
18075 [875566aed8b1] <stable>
18077 2014-02-27 Steve Borho <steve@borho.org>
18079 * Merge with stable
18082 * source/common/threading.h:
18083 threading: on linux gettimeofday() requires <sys/time.h>, UINT32_MAX
18085 [bbe3f479c41f] <stable>
18087 2014-02-27 Min Chen <chenm003@163.com>
18089 * source/CMakeLists.txt:
18090 fix Issue #30, disable stack execute on gcc
18091 [8e8328cad1be] <stable>
18093 * source/common/x86/ipfilter16.asm:
18094 fix typo problem on HIGH_BIT_DEPTH with non-PIC mode
18095 [52a47362c5c3] <stable>
18097 2014-02-27 Praveen Tiwari <Praveen Tiwari>
18099 * source/common/x86/intrapred8.asm:
18100 all_angs_pred_32x32, asm code improvement
18103 2014-02-27 Deepthi Nandakumar <deepthi@multicorewareinc.com>
18105 * Merge from stable
18108 * source/encoder/ratecontrol.cpp:
18109 ratecontrol: fix bitrate issue in 10-bit CRF mode
18110 [2fb85daef8af] <stable>
18112 2014-02-27 Steve Borho <steve@borho.org>
18114 * source/Lib/TLibEncoder/WeightPredAnalysis.cpp,
18115 source/Lib/TLibEncoder/WeightPredAnalysis.h, source/common/vec
18116 /intra-sse41.cpp, source/common/vec/intra-ssse3.cpp,
18117 source/common/vec/ipfilter-sse41.cpp,
18118 source/encoder/weightPrediction.h:
18119 Merge with default (prep for 0.8)
18120 [0a6dd816d2e2] <stable>
18122 2014-02-26 Steve Borho <steve@borho.org>
18124 * source/common/threading.h:
18125 threading: add a timedWait() method to Event class
18128 * source/common/threading.cpp, source/common/threading.h:
18129 threading: use a pthread conditional variable instead of semaphore
18131 This allows more control over the exact behavior, removes the global
18132 nature of the semaphore on some systems, and will allow the addition
18133 of a timed wait to the Event class. It appears to resolve the
18134 deadlocks reproduced in the pool test on Mac OS X; hopefully on
18138 2014-02-26 Murugan Vairavel <murugan@multicorewareinc.com>
18140 * source/common/x86/asm-primitives.cpp,
18141 source/common/x86/ipfilter16.asm, source/common/x86/ipfilter8.h,
18142 source/test/ipfilterharness.cpp:
18143 asm: 10bpp code for chroma interpolation filters
18146 2014-02-26 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
18148 * source/common/x86/asm-primitives.cpp,
18149 source/common/x86/intrapred16.asm:
18150 asm: 16bpp assembly code for intra_pred_ang16 - all modes
18153 2014-02-07 Steve Borho <steve@borho.org>
18155 * source/test/CMakeLists.txt, source/test/testpool.cpp:
18156 reintroduce thread pool unit test
18158 It is reproducing a deadlock on POSIX roughly once per 1M runs
18161 2014-02-26 Sagar Kotecha <sagar@multicorewareinc.com>
18163 * source/common/param.cpp:
18164 param: add some more validation checks
18167 2014-02-26 Santhoshini Sekar <santhoshini@multicorewareinc.com>
18169 * source/encoder/frameencoder.cpp:
18170 rc:bug fix-store average Qp as decided by AQ only if aq is enabled
18173 2014-02-26 Praveen Tiwari <Praveen Tiwari>
18175 * source/common/x86/intrapred8.asm:
18176 all_angs_pred_32x32, asm code improvement
18179 2014-02-26 Satoshi Nakagawa <nakagawa424@oki.com>
18181 * source/encoder/slicetype.cpp:
18182 fix: uninitialized variable
18185 2014-02-26 Steve Borho <steve@borho.org>
18187 * source/encoder/encoder.cpp:
18188 encoder: tweak slice stats to more closely match x264 outputs
18191 2014-02-25 Steve Borho <steve@borho.org>
18193 * source/common/threading.cpp, source/common/threading.h:
18194 threading: use atomic increment when building semaphore object
18196 Required moving atomic defines to the top of threading.h, removing
18197 the need for potentially redundant includes of unistd.h
18200 2014-02-26 Aarthi Thirumalai <Aarthi Thirumalai>
18202 * source/encoder/encoder.cpp:
18203 encoder: log avg Qp decided by AQ for each slice type
18206 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
18207 source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp:
18208 TComPic: store average Qp (as decided by AQ) used per frame.
18211 * source/Lib/TLibCommon/TComSlice.cpp,
18212 source/Lib/TLibCommon/TComSlice.h, source/encoder/ratecontrol.cpp:
18213 remove redundant state m_avgQpRc from TComSlice.
18215 This has been moved to TComPic already.
18218 * source/encoder/slicetype.cpp:
18219 lookahead: bug fix for b-adapt 0 cost estimates (closes #26)
18221 don't overwrite lastNonB reference with current frame, 'lastNonB'
18222 state was already replaced with current frame's lowres at this
18225 it mostly affected b-adapt=0 but could have affected any of the
18226 modes if they had not already estimated this particular P frame cost
18230 2014-02-23 Satoshi Nakagawa <nakagawa424@oki.com>
18232 * source/Lib/TLibCommon/TComDataCU.cpp,
18233 source/Lib/TLibCommon/TComDataCU.h,
18234 source/Lib/TLibCommon/TComMotionInfo.cpp,
18235 source/Lib/TLibCommon/TComMotionInfo.h,
18236 source/Lib/TLibEncoder/TEncCu.cpp,
18237 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp:
18238 reduce unnecessary CU data set/clear (no neighbor access)
18240 mvd, mvpIdx, mergeIndex
18243 2014-02-24 Satoshi Nakagawa <nakagawa424@oki.com>
18245 * source/Lib/TLibCommon/TComPrediction.cpp,
18246 source/Lib/TLibCommon/TComPrediction.h,
18247 source/Lib/TLibEncoder/TEncCu.cpp,
18248 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp:
18249 refine MC - cleanup unnecessary code paths, reduce copies for non-WP
18253 2014-02-25 Nabajit Deka <Nabajit Deka>
18255 * source/common/x86/asm-primitives.cpp,
18256 source/test/ipfilterharness.cpp:
18257 asm: enable 10bit asm filter functions, fix test harness
18260 * source/common/CMakeLists.txt, source/common/x86/const-a.asm,
18261 source/common/x86/ipfilter16.asm:
18262 asm: add new file for 10bpp asm filter functions
18265 2014-02-25 Steve Borho <steve@borho.org>
18267 * source/encoder/api.cpp:
18268 api: check for NULL param pointer in x265_encoder_open
18271 2014-02-25 Sagar Kotecha <sagar@multicorewareinc.com>
18273 * source/common/common.cpp, source/encoder/CMakeLists.txt,
18274 source/encoder/api.cpp, source/encoder/encoder.cpp:
18275 move public encoder and picture functions to api.cpp
18278 2014-02-25 Steve Borho <steve@borho.org>
18280 * source/common/CMakeLists.txt, source/common/vec/intra-sse41.cpp,
18281 source/common/vec/vec-primitives.cpp:
18282 vec: remove intra-sse41.cpp, full asm coverage for intra prediction
18285 2014-02-25 Praveen Tiwari <Praveen Tiwari>
18287 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
18288 source/common/x86/intrapred8.asm:
18289 all_angs_pred_32x32, asm code
18292 2014-02-25 Steve Borho <steve@borho.org>
18294 * source/input/y4m.cpp, source/input/y4m.h, source/input/yuv.cpp,
18296 input: workaround MSVC runtime bugs in older compilers (fixes #27)
18298 Prior to VC11, ifstream::pos_type could not handle 64bit sizes
18302 * source/encoder/weightPrediction.cpp:
18303 weight: bump weight analysis logging to --log 4, reduce spew
18306 * source/encoder/encoder.cpp, source/encoder/encoder.h:
18307 encoder: log the average QP used per frame, per I slices, P, and B
18311 * source/encoder/encoder.cpp:
18312 encoder: rename _param parameter to p for readability
18315 * source/test/mbdstharness.cpp:
18319 * source/test/mbdstharness.cpp, source/test/pixelharness.cpp:
18320 testbench: remove redundant casts of X265_MALLOC() output
18323 2014-02-25 Aarthi Thirumalai <Aarthi Thirumalai>
18325 * source/encoder/ratecontrol.cpp:
18326 rc: store qp in TComPic::avgQpRc in CQP.
18329 2014-02-24 Steve Borho <steve@borho.org>
18331 * source/common/param.cpp, source/common/param.h,
18332 source/input/input.cpp, source/input/input.h, source/input/y4m.cpp,
18333 source/input/y4m.h, source/input/yuv.cpp, source/input/yuv.h,
18335 cli: refactor handling of input file parameters
18337 * allow y4m header to provide aspect ratio
18338 * allow user to override Y4M aspect ratio or frame rate
18339 * allow user to provide data possibly missing from Y4M header
18340 * do not clamp framesToBeEncoded to predicted file size (stop at EOF)
18343 * source/encoder/encoder.cpp:
18344 encoder: enable timing info in VPS
18347 2014-02-25 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
18349 * source/common/x86/const-a.asm, source/common/x86/mc-a.asm,
18350 source/test/pixelharness.cpp, source/test/pixelharness.h:
18351 asm: fixed invalid testbench input for addAvg primitive, fixed
18352 addition overflow for some block sizes.
18355 2014-02-24 David T Yuen <dtyx265@gmail.com>
18357 * source/common/param.cpp, source/x265.cpp, source/x265.h:
18358 Updated x265_param_parse to use parseName & a few nit fixes
18361 2014-02-25 Steve Borho <steve@borho.org>
18363 * source/common/threading.h:
18364 threading: recover include of unistd.h within #if __GNUC__ section
18369 2014-02-24 Steve Borho <steve@borho.org>
18371 * source/Lib/TLibCommon/TComSlice.h:
18375 * source/common/param.cpp:
18376 param: simplify checks of max ctu size, improve abort message
18379 * source/common/threading.h:
18380 threading: include process id in name passed to sem_open() and
18383 This should prevent race conditions between x265 processes spinning
18384 up on the same CPUs, and generally make name conflicts very rare.
18388 cli: remove undocumented and unimplemented --depth CLI option
18391 * source/Lib/TLibCommon/TComPicYuv.cpp,
18392 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
18393 source/Lib/TLibCommon/TypeDef.h, source/common/param.cpp,
18394 source/test/intrapredharness.cpp, source/test/mbdstharness.cpp,
18395 source/test/pixelharness.cpp, source/test/testbench.cpp:
18396 Remove g_bitDepth; internal bit depth is always known at compile
18399 Simplify param->internalBitDepth checks, remove test bench hacks
18402 2014-02-24 Sagar Kotecha <sagar@multicorewareinc.com>
18404 * source/common/CMakeLists.txt, source/common/common.cpp,
18405 source/common/common.h, source/common/param.cpp,
18406 source/common/param.h, source/encoder/encoder.cpp, source/x265.cpp:
18407 consolidate param functionality into param.cpp
18410 2014-02-24 Aarthi Thirumalai <Aarthi Thirumalai>
18412 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
18413 rc: implement abr reset for single pass ABR + VBV
18416 * source/encoder/frameencoder.cpp:
18417 vbv: refactor, implement row wise qp updates only if vbv is enabled.
18420 * source/encoder/ratecontrol.cpp:
18421 rc: bug fix - clip qp before setting into TComPic:m_avgQpRc.
18423 This fix resolves Encoder crash caused due to invalid qp being used
18427 2014-02-20 Gopu Govindaswamy <Gopu Govindaswamy>
18429 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h:
18430 tcomrom: remove unused g_sigLastScan8x8 and g_sigLastScanCG32x32
18434 2014-02-23 Aarthi Thirumalai <Aarthi Thirumalai>
18436 * source/encoder/ratecontrol.cpp:
18437 vbv: bug fix in clipQScale
18440 2014-02-22 Steve Borho <steve@borho.org>
18442 * source/encoder/encoder.cpp:
18443 encoder: use more frame threads when WPP is disabled
18445 Use up to one frame thread per CPU, but cap the frame threads at
18446 half the number of CTU rows. Any more frame threads than that is
18447 generally counter- productive.
18450 2014-02-23 Steve Borho <steve@borho.org>
18452 * source/common/common.cpp:
18453 common: c is a char pointer
18456 2014-02-24 Deepthi Nandakumar <deepthi@multicorewareinc.com>
18458 * source/Lib/TLibCommon/NAL.h:
18459 NAL: Define a default constructor for base class to prevent warning
18462 * source/common/common.cpp:
18463 common: assignment inside conditional expression
18466 2014-02-22 Steve Borho <steve@borho.org>
18468 * source/common/threadpool.cpp, source/common/threadpool.h,
18469 source/encoder/encoder.cpp:
18470 encoder: use cpu count, rather than pool size, to auto-detect frame
18473 Normally the pool size is the same as the detected cpu count, but
18474 when WPP is disabled, the thread count is 1, and this was breaking
18475 auto-detection of frame threads. Now it will properly use -F4 on
18476 desktops when WPP is disabled.
18479 * source/output/output.h, source/output/y4m.h, source/output/yuv.h,
18481 cli: add a line of logging describing reconstructed image file
18484 * source/Lib/TLibEncoder/TEncSbac.cpp:
18488 * source/Lib/TLibEncoder/TEncSbac.cpp,
18489 source/Lib/TLibEncoder/TEncSbac.h:
18490 TEncSbac: cleanup header
18493 * source/Lib/TLibCommon/TComBitStream.cpp:
18494 TComBitstream: nits
18497 * source/Lib/TLibCommon/NAL.h, source/Lib/TLibEncoder/NALwrite.h:
18498 NAL: further simplifications
18501 * source/Lib/TLibCommon/NAL.h,
18502 source/Lib/TLibCommon/TComBitStream.cpp,
18503 source/Lib/TLibCommon/TComBitStream.h,
18504 source/Lib/TLibEncoder/NALwrite.cpp,
18505 source/Lib/TLibEncoder/NALwrite.h:
18506 NAL: cleanup write method
18508 This whole class hierarchy is way over-engineered
18511 * source/Lib/TLibEncoder/NALwrite.h, source/encoder/frameencoder.cpp:
18512 NAL: use explicit reset method instead of copy constructor
18515 * source/common/common.cpp:
18516 common: avoid calling atobool() on non-boolean strings
18519 * source/CMakeLists.txt:
18520 cmake: make /WX optional for MSVC
18523 * source/common/common.cpp:
18524 common: refactor logic to avoid compiler warnings
18527 2014-02-21 Steve Borho <steve@borho.org>
18529 * source/encoder/encoder.cpp:
18530 encoder: warn about the incomplete nature of the range extensions
18533 * source/common/common.cpp, source/x265.h:
18534 api: add an enum for extended SAR
18537 * source/common/common.cpp:
18538 common: only validate sarWidth and sarHeight when aspectRatioIdx ==
18542 * source/common/common.cpp:
18543 common: fix --extended-sar CLI option atobool() was setting
18547 * source/common/common.cpp:
18548 common: disallow SAR numerator or denominator of 0
18551 * source/common/common.cpp:
18552 common: improve error detection and handling in x265_param_parse
18554 * check return code of sscanf
18555 * check int parameters are ints, bools are bools, etc
18557 API users (not using the CLI and getopt)
18558 * allow no-foo and nofoo
18559 * allow foo-bar or foo_bar
18560 * no-wpp=1 works as expected
18563 * source/Lib/TLibCommon/TComPic.cpp, source/common/lowres.cpp,
18564 source/common/lowres.h:
18565 lowres: no need to disable AQ on malloc failure, encoder will abort
18567 And thus there's no need to pass aqMode as an int pointer
18570 * source/Lib/TLibCommon/ContextTables.h,
18571 source/Lib/TLibCommon/TComDataCU.cpp,
18572 source/Lib/TLibCommon/TComPicYuv.cpp, source/common/common.cpp,
18573 source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp,
18574 source/test/ipfilterharness.cpp, source/test/mbdstharness.cpp,
18575 source/test/pixelharness.cpp, source/x265.cpp:
18576 coding style - hand cleanup sections better than uncrustify wanted
18580 * source/Lib/TLibCommon/TComDataCU.cpp,
18581 source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
18582 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibEncoder/TEncCfg.h,
18583 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/common.cpp,
18584 source/common/primitives.cpp, source/common/x86/asm-primitives.cpp,
18585 source/common/x86/ipfilter8.h, source/encoder/compress.cpp,
18586 source/encoder/encoder.h, source/encoder/frameencoder.cpp,
18587 source/encoder/frameencoder.h, source/encoder/ratecontrol.cpp,
18588 source/encoder/ratecontrol.h, source/encoder/slicetype.cpp,
18589 source/encoder/weightPrediction.cpp, source/test/mbdstharness.h,
18590 source/test/pixelharness.cpp, source/x265.cpp, source/x265.h:
18591 mechanically enforce coding style (uncrustify)
18594 * source/common/common.cpp:
18595 common: g_convertToBit cannot be indexed with UINT_MAX either
18598 2014-02-21 Sumalatha Polureddy <Sumalatha Polureddy>
18600 * source/common/common.cpp:
18601 common: validate maximum ctusize
18604 * source/common/common.cpp:
18605 common: validate "bframe" and "maxCUSize" for positive values
18608 2014-02-21 Satoshi Nakagawa <nakagawa424@oki.com>
18610 * source/Lib/TLibEncoder/TEncSearch.cpp,
18611 source/Lib/TLibEncoder/TEncSearch.h:
18612 m_tempPel as static const
18615 2014-02-20 Aarthi Thirumalai <Aarthi Thirumalai>
18617 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
18618 vbv: integrate row level vbv ratecontrol at each major row diagonal.
18621 2014-02-21 Aarthi Thirumalai <Aarthi Thirumalai>
18623 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
18624 vbv: implement row wise vbvRateControl at each row diagonal
18627 2014-02-20 Aarthi Thirumalai <Aarthi Thirumalai>
18629 * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp,
18630 source/encoder/ratecontrol.h:
18631 vbv: fix bugs in vbv flow with single pass ABR
18634 * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp,
18635 source/encoder/ratecontrol.h:
18636 vbv: Add row predictors, rc states for vbv.
18639 * source/encoder/slicetype.cpp:
18640 vbv: enable vbvLookahead for Keyframes; accumulate frame rowSatds
18641 from lowres rowSatds.
18644 2014-02-21 Aarthi Thirumalai <Aarthi Thirumalai>
18646 * source/Lib/TLibCommon/TComDataCU.cpp,
18647 source/Lib/TLibCommon/TComDataCU.h,
18648 source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
18649 source/common/lowres.h, source/encoder/encoder.cpp,
18650 source/encoder/encoder.h, source/x265.h:
18651 vbv: Introduce states to hold row data for row level VBV
18655 2014-02-21 Steve Borho <steve@borho.org>
18657 * source/Lib/TLibCommon/TComDataCU.h,
18658 source/Lib/TLibEncoder/TEncSearch.cpp:
18659 Backed out changeset: cb3a2795a60e
18661 This was found to change output bitstreams, so the vectors must not
18662 have beeen always zero
18665 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
18666 source/Lib/TLibEncoder/TEncSearch.cpp:
18667 TComYuv: combine copyPartToPartLuma and copyPartToPartChroma
18669 The new function tries to ensure the proper chroma block is copied,
18673 2014-02-20 Steve Borho <steve@borho.org>
18675 * source/Lib/TLibEncoder/TEncSearch.cpp,
18676 source/Lib/TLibEncoder/TEncSearch.h:
18677 TEncSearch: remove redundant m_hChromaShift, m_vChromaShift
18679 TComPrediction has these members, and TEncSearch derives from
18683 * source/Lib/TLibEncoder/TEncSearch.cpp,
18684 source/Lib/TLibEncoder/TEncSearch.h:
18685 TEncSearch: use X265_MALLOC for UChar buffers, and uint8_t type
18688 * source/Lib/TLibEncoder/TEncSearch.cpp,
18689 source/Lib/TLibEncoder/TEncSearch.h:
18690 TEncSearch: use X265_MALLOC to allocate pixel buffers, and pixel
18694 2014-02-21 Satoshi Nakagawa <nakagawa424@oki.com>
18696 * source/common/x86/pixel-util8.asm, source/test/mbdstharness.cpp,
18697 source/test/mbdstharness.h:
18698 asm: update count_nonzero, add testbench
18701 2014-02-20 David T Yuen <dtyx265@gmail.com>
18703 * source/common/common.cpp:
18704 Added vui parameter checking
18707 2014-02-20 Min Chen <chenm003@163.com>
18709 * source/Lib/TLibEncoder/TEncCu.cpp:
18710 temp fix for out-of-range tmvp (prevents hash mismatch with slower
18713 we're not sure why this is necessary, so it must be investigated
18717 2014-02-20 Steve Borho <steve@borho.org>
18719 * source/Lib/TLibEncoder/TEncSearch.cpp,
18720 source/Lib/TLibEncoder/TEncSearch.h:
18721 TEncSearch: rename m_qtTempTransformSkipTComYuv to
18722 m_qtTempTransformSkipYuv
18725 * source/Lib/TLibEncoder/TEncSearch.cpp:
18729 * source/Lib/TLibEncoder/TEncSearch.cpp,
18730 source/Lib/TLibEncoder/TEncSearch.h:
18731 TEncSearch: rename m_qtTempTComYuv to m_qtTempShortYuv
18733 It was always stupid to have the member variable include the full
18734 type name, and it has been the wrong type name for more than 10
18738 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h:
18739 TComYuv: merge copyPartToPartLuma
18742 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h:
18743 TComYuv: merge copyPartToPartChroma() with copyPartToPartYuv
18746 * source/Lib/TLibCommon/TComPrediction.cpp,
18747 source/Lib/TLibCommon/TComPrediction.h:
18748 TComPrediction: remove unused m_predAllAngsBuf, properly init
18752 * source/Lib/TLibCommon/TComPrediction.cpp,
18753 source/Lib/TLibCommon/TComPrediction.h, source/encoder/compress.cpp:
18754 TComPrediction: remove trivial access methods, use pixel types
18757 * source/Lib/TLibCommon/TComPrediction.h:
18758 TComPrediction: remove default argument values for internal
18762 * source/Lib/TLibCommon/TComPrediction.cpp,
18763 source/Lib/TLibCommon/TComPrediction.h:
18764 TComPrediction: do not pass output pointer as deference
18766 The function cannot change the pointer
18769 * source/Lib/TLibCommon/TComPrediction.cpp,
18770 source/Lib/TLibCommon/TComPrediction.h,
18771 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp:
18772 TComPrediction: add missing m_ prefixes to member variables
18775 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h:
18776 TComYuv: remove unnecessary dup pointer checks
18779 * source/Lib/TLibCommon/TComYuv.h:
18780 TComYuv: remove more default argument values
18783 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h:
18784 TComYuv: merge methods together for clarity
18787 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
18788 source/encoder/compress.cpp:
18789 TComYuv: remove default argument values
18792 * source/Lib/TLibCommon/TComYuv.h:
18793 TComYuv: make some methods private, for future optimizations
18796 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h:
18797 TComYuv: remove hungarian prefixes
18800 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h:
18801 TComYuv: remove unused copyPartToPartChroma() method
18804 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
18805 source/Lib/TLibEncoder/TEncSearch.cpp:
18806 TComYuv: fix size of chroma partition copy (resolves placebo heap
18810 2014-02-20 Gopu Govindaswamy <Gopu Govindaswamy>
18812 * source/Lib/TLibCommon/TComRom.cpp,
18813 source/Lib/TLibEncoder/TEncSearch.cpp:
18814 tcomrom: move ADI intraModeNumFast table to estIntraPredQT(), no
18815 need for global variable
18818 2014-02-20 Deepthi Nandakumar <deepthi@multicorewareinc.com>
18820 * source/encoder/ratecontrol.cpp:
18821 ratecontrol: fix bug in acEnergyVar with multiple color spaces
18824 2014-02-20 Gopu Govindaswamy <Gopu Govindaswamy>
18826 * source/Lib/TLibCommon/CommonDef.h,
18827 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h:
18828 tcomrom: scaning order table g_sigLastScan replaced with g_scanOrder
18830 Scaning order table initialization moved into initRom() and same
18831 scaning order table can be used for both 444 and 420
18834 2014-02-20 Satoshi Nakagawa <nakagawa424@oki.com>
18836 * source/Lib/TLibCommon/TComDataCU.h,
18837 source/Lib/TLibEncoder/TEncSearch.cpp:
18838 cleanup useless getMvPred*(): always zero mv
18841 2014-02-20 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
18843 * source/common/x86/dct8.asm:
18844 asm: correct improper macro
18847 2014-02-20 Satoshi Nakagawa <nakagawa424@oki.com>
18849 * source/Lib/TLibEncoder/TEncSearch.cpp,
18850 source/Lib/TLibEncoder/TEncSearch.h:
18854 2014-02-20 Murugan Vairavel <murugan@multicorewareinc.com>
18856 * source/common/x86/pixel-util8.asm:
18857 asm: modified the range of scale value in dequant
18860 2014-02-20 Satoshi Nakagawa <nakagawa424@oki.com>
18862 * source/Lib/TLibCommon/TComDataCU.h,
18863 source/Lib/TLibEncoder/TEncSearch.cpp:
18867 2014-02-20 Deepthi Nandakumar <deepthi@multicorewareinc.com>
18869 * source/CMakeLists.txt:
18870 api: bump up X265_BUILD to 7 (refer previous commit)
18873 2014-02-19 David T Yuen <dtyx265@gmail.com>
18875 * source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCfg.h,
18876 source/Lib/TLibEncoder/TEncSbac.cpp, source/common/common.cpp,
18877 source/encoder/encoder.cpp, source/x265.cpp, source/x265.h:
18878 Added command line options to generate a VUI and add it to the coded
18882 2014-02-19 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
18884 * source/common/x86/asm-primitives.cpp, source/common/x86/const-a.asm,
18885 source/common/x86/intrapred16.asm, source/common/x86/mc-a.asm,
18886 source/test/pixelharness.cpp:
18887 asm-16bpp: code for addAvg luma and chroma all sizes
18890 2014-02-19 Steve Borho <steve@borho.org>
18892 * source/encoder/ratecontrol.cpp:
18893 ratecontrol: recover CRF behavior following fps changeset
18897 * source/encoder/weightPrediction.cpp:
18898 weightp: do not log weights if none are enabled
18901 * source/encoder/frameencoder.cpp,
18902 source/encoder/weightPrediction.cpp:
18903 weightp: don't allow the PPS weightp flag to be changed by weight
18907 * source/Lib/TLibEncoder/TEncSearch.cpp:
18908 TEncSearch: white-space nits
18911 * source/Lib/TLibEncoder/TEncSbac.cpp:
18912 TEncSbac: white-space nits
18915 2014-02-19 David T Yuen <dtyx265@gmail.com>
18917 * source/Lib/TLibCommon/TComRom.h,
18918 source/Lib/TLibEncoder/SyntaxElementWriter.cpp,
18919 source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp:
18920 Fixed ENC_DEC_TRACE warnings and errors
18923 2014-02-19 ashok <ashok@multicorewareinc.com>
18925 * source/Lib/TLibCommon/TComDataCU.cpp,
18926 source/Lib/TLibCommon/TComDataCU.h,
18927 source/Lib/TLibCommon/TComTrQuant.cpp,
18928 source/Lib/TLibEncoder/TEncSbac.cpp:
18929 fix for 420 binary mismatch for --preset=slower option
18932 2014-02-19 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
18934 * source/common/x86/asm-primitives.cpp, source/common/x86/const-a.asm,
18935 source/common/x86/dct8.asm, source/test/mbdstharness.cpp:
18936 asm: added 16bpp support for dct[4x4, 8x8], idct4x4, dst4x4 and
18940 2014-02-19 Steve Borho <steve@borho.org>
18942 * source/common/common.cpp, source/encoder/encoder.cpp:
18943 prevent implicit type conversion warnings from MSVC
18946 2014-02-18 Steve Borho <steve@borho.org>
18948 * source/CMakeLists.txt, source/Lib/TLibCommon/TComSlice.cpp,
18949 source/Lib/TLibCommon/TComSlice.h, source/common/common.cpp,
18950 source/encoder/encoder.cpp, source/encoder/frameencoder.cpp,
18951 source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h,
18952 source/encoder/slicetype.cpp, source/input/input.h,
18953 source/input/y4m.h, source/input/yuv.h, source/output/output.cpp,
18954 source/output/output.h, source/output/y4m.cpp, source/output/y4m.h,
18955 source/x265.cpp, source/x265.h:
18956 api: add support for float or rational FPS [API CHANGE]
18958 Since x265_param was changing anyway, I went ahead and changed
18959 inputBitDepth to internalBitDepth, which has always been its real
18962 X265_BUILD is bumped to 6
18966 cli: add x264's 'seek', leave HM's 'frame-skip' as undocumented
18969 We want to support x264's CLI options as much as possible, but don't
18970 want to break any existing scripts
18973 2014-02-17 Sumalatha Polureddy <Sumalatha Polureddy>
18975 * source/encoder/compress.cpp:
18976 compress: improve rd 1 performance
18978 a. Always allow intra mode for mode decision b. increase more skips
18979 at each depth(do encode of best merge candidates initially and if
18980 the merge is skipped, dont do inter modes)
18983 2014-02-18 Deepthi Nandakumar <deepthi@multicorewareinc.com>
18985 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
18986 ratecontrol: change RateControl::lastSatd to currentSatd, add
18990 2014-02-18 Satoshi Nakagawa <nakagawa424@oki.com>
18992 * source/Lib/TLibCommon/ContextTables.h,
18993 source/Lib/TLibEncoder/TEncSbac.cpp, source/common/primitives.cpp:
18997 2014-02-18 Steve Borho <steve@borho.org>
18999 * source/Lib/TLibCommon/TComPrediction.cpp,
19000 source/Lib/TLibCommon/TComPrediction.h:
19001 TComPrediction: remove unused alloc and stride
19004 * source/Lib/TLibCommon/TComWeightPrediction.cpp:
19005 backout unintended commit
19008 * source/encoder/encoder.cpp:
19009 encoder: show per-slice type SSIM as dB
19012 2014-02-17 Steve Borho <steve@borho.org>
19014 * source/Lib/TLibCommon/TComRom.cpp:
19015 TComRom: use x265_malloc/free for globals
19018 * source/Lib/TLibCommon/TComRom.cpp,
19019 source/Lib/TLibCommon/TComWeightPrediction.cpp:
19020 TComRom: prevent multiple allocations or frees of globals
19023 2014-02-17 Nabajit Deka <Nabajit Deka>
19025 * source/test/ipfilterharness.cpp:
19026 testbench : test bench correction for chroma_p2s
19029 * source/common/x86/asm-primitives.cpp,
19030 source/common/x86/ipfilter8.asm, source/common/x86/ipfilter8.h:
19031 asm : asm routine for chroma_p2s for 4:4:4 color space format
19034 2014-02-17 Murugan Vairavel <murugan@multicorewareinc.com>
19036 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
19038 asm: 16bpp code for quant and dequant_normal
19041 * source/test/mbdstharness.cpp, source/test/mbdstharness.h:
19042 testbench: adding seperate input buffer for idct and updated qp
19046 * source/common/x86/asm-primitives.cpp,
19047 source/common/x86/ipfilter8.asm, source/common/x86/ipfilter8.h:
19048 asm: fix for illegal instruction usage in ipfilter
19051 2014-02-17 Satoshi Nakagawa <nakagawa424@oki.com>
19053 * source/Lib/TLibCommon/TComDataCU.cpp,
19054 source/Lib/TLibCommon/TComDataCU.h,
19055 source/Lib/TLibEncoder/TEncCu.cpp,
19056 source/Lib/TLibEncoder/TEncSearch.cpp,
19057 source/Lib/TLibEncoder/TEncSearch.h:
19058 cleanup unused variables
19061 * source/Lib/TLibEncoder/TEncEntropy.cpp,
19062 source/Lib/TLibEncoder/TEncEntropy.h,
19063 source/Lib/TLibEncoder/TEncSbac.cpp,
19064 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/dct.cpp,
19065 source/common/primitives.h, source/common/x86/asm-primitives.cpp,
19066 source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm:
19067 primitives: add count_nonzero
19070 2014-02-17 Steve Borho <steve@borho.org>
19072 * source/encoder/weightPrediction.cpp:
19073 weightp: fix V plane debug output
19076 * source/Lib/TLibCommon/TComSlice.cpp:
19080 * source/Lib/TLibCommon/TComSlice.cpp:
19081 TComSlice: remove dup line
19084 * source/Lib/TLibCommon/TComSlice.h, source/common/lowres.h,
19085 source/encoder/reference.h:
19086 weight: remove odd struct renaming, remove unused wpACDCParam
19089 * source/Lib/TLibCommon/TComSlice.cpp,
19090 source/Lib/TLibCommon/TComSlice.h:
19091 TComSlice: remove unused m_weightACDCParam and methods
19094 * source/encoder/weightPrediction.cpp:
19095 weightp: add debug logging for weight analysis
19098 * source/encoder/encoder.cpp:
19099 encoder: include the hash output into the debug output string
19102 2014-02-16 Steve Borho <steve@borho.org>
19104 * source/common/common.cpp, source/encoder/encoder.cpp,
19105 source/x265.cpp, source/x265.h:
19106 api: change name back to inputBitDepth, to avoid breaking ffmpeg
19109 2014-02-15 Steve Borho <steve@borho.org>
19111 * source/CMakeLists.txt, source/common/cpu.cpp,
19112 source/common/primitives.cpp:
19113 non-x86 build fixes
19116 2014-02-14 Steve Borho <steve@borho.org>
19118 * source/Lib/TLibCommon/TComDataCU.cpp,
19119 source/Lib/TLibCommon/TComDataCU.h,
19120 source/Lib/TLibCommon/TComPattern.h,
19121 source/Lib/TLibCommon/TComPicSym.cpp,
19122 source/Lib/TLibCommon/TComPicYuv.cpp,
19123 source/Lib/TLibCommon/TComPrediction.cpp,
19124 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
19125 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
19126 source/Lib/TLibCommon/TComSlice.h,
19127 source/Lib/TLibCommon/TComTrQuant.cpp,
19128 source/Lib/TLibCommon/TComTrQuant.h,
19129 source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibCommon/TypeDef.h,
19130 source/Lib/TLibEncoder/TEncCfg.h,
19131 source/Lib/TLibEncoder/TEncEntropy.cpp,
19132 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
19133 source/Lib/TLibEncoder/TEncSbac.cpp,
19134 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/common.cpp,
19135 source/common/cpu.cpp, source/common/lowres.cpp,
19136 source/common/lowres.h, source/common/pixel.cpp,
19137 source/common/primitives.cpp, source/common/threading.h,
19138 source/common/threadpool.cpp, source/common/x86/asm-primitives.cpp,
19139 source/common/x86/pixel.h, source/encoder/compress.cpp,
19140 source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp,
19141 source/encoder/slicetype.cpp, source/encoder/weightPrediction.cpp,
19142 source/test/ipfilterharness.cpp, source/test/mbdstharness.cpp,
19143 source/test/pixelharness.cpp, source/x265.h:
19144 uncrustify all source - mechanically apply coding style
19147 * source/Lib/TLibCommon/TComPicYuv.cpp, source/common/common.cpp,
19148 source/x265.cpp, source/x265.h:
19149 enforce new color space requirements, improve help
19152 * source/Lib/TLibCommon/TComPicYuv.cpp, source/common/common.cpp,
19153 source/encoder/encoder.cpp, source/x265.cpp, source/x265.h:
19154 decouple input depth from internal depth; allow input depth !=
19157 Shift and mask input samples as necessary to reach internal depth.
19158 The input depth is no longer in x265_param, where it never really
19159 belonged since pic.bitDepth was the only number that mattered.
19161 Add validations for input color space and bit depths. No CLI option
19162 was added for internal bit depth since it is not currently runtime
19166 * build/msys/make-x86_64-w64-mingw32-Makefiles.sh, build/msys
19167 /toolchain-x86_64-w64-mingw32.cmake:
19168 build: add example cross-compile script for Win64 on MinGW32
19171 2014-02-15 Deepthi Nandakumar <deepthi@multicorewareinc.com>
19173 * source/test/ipfilterharness.cpp:
19174 testbench: disable chroma_p2s.
19177 * source/test/ipfilterharness.cpp:
19178 ipfilterharness: resolve compile errors with CSP
19181 * source/Lib/TLibCommon/TComSlice.cpp,
19182 source/Lib/TLibCommon/TComSlice.h,
19183 source/Lib/TLibCommon/TComTrQuant.cpp,
19184 source/Lib/TLibCommon/TComTrQuant.h,
19185 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/encoder.cpp,
19186 source/encoder/frameencoder.cpp:
19187 Merge with 444 changes.
19190 * source/Lib/TLibCommon/TComTrQuant.cpp,
19191 source/Lib/TLibCommon/TComTrQuant.h,
19192 source/Lib/TLibEncoder/TEncSearch.cpp:
19193 Backed out changeset: a3a9e0fb1a87
19195 Conflicts with the 444 patches. Will resolve merge and import it in
19199 2014-02-14 ashok <ashok@multicorewareinc.com>
19201 * source/Lib/TLibCommon/TComLoopFilter.cpp:
19202 Modify TComLoopFilter structure to support multiple color space
19206 * source/Lib/TLibCommon/TComPrediction.cpp,
19207 source/Lib/TLibCommon/TComSlice.cpp,
19208 source/Lib/TLibCommon/TComYuv.h,
19209 source/Lib/TLibEncoder/TEncSbac.cpp, source/common/TShortYUV.h,
19210 source/common/common.cpp, source/common/ipfilter.cpp,
19211 source/common/pixel.cpp, source/common/primitives.h,
19212 source/common/x86/asm-primitives.cpp, source/encoder/encoder.cpp:
19213 Modify asm primitives functions to support multiple color space
19217 * source/Lib/TLibEncoder/TEncEntropy.cpp:
19218 Modify TEncEntropy structure to support multiple color space formats
19221 * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
19222 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
19223 source/Lib/TLibEncoder/TEncCfg.h,
19224 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
19225 source/encoder/framefilter.cpp, source/encoder/framefilter.h:
19226 Modify FrameFilter structure to support multiple color space formats
19229 * source/Lib/TLibCommon/TComDataCU.cpp:
19230 Modify TComDataCU structure to support multiple color space formats
19233 * source/Lib/TLibCommon/TComSlice.h,
19234 source/Lib/TLibCommon/TComTrQuant.cpp,
19235 source/Lib/TLibCommon/TComTrQuant.h,
19236 source/Lib/TLibEncoder/TEncSbac.cpp:
19237 Modify TEncSbac structure to support multiple color space formats
19240 * source/Lib/TLibCommon/TComPrediction.cpp,
19241 source/Lib/TLibCommon/TComPrediction.h:
19242 Modify TComPrediction structure to support multiple color space
19246 * source/Lib/TLibCommon/TComPattern.cpp,
19247 source/Lib/TLibCommon/TComPattern.h,
19248 source/Lib/TLibCommon/TComPrediction.cpp,
19249 source/Lib/TLibCommon/TComPrediction.h,
19250 source/Lib/TLibEncoder/TEncSearch.cpp:
19251 Modify TComPattern structure to support multiple color space formats
19254 * source/Lib/TLibEncoder/TEncSearch.cpp,
19255 source/Lib/TLibEncoder/TEncSearch.h:
19256 Modify TEncSearch structure to support multiple color space formats
19259 * source/Lib/TLibCommon/TComDataCU.h,
19260 source/Lib/TLibCommon/TComLoopFilter.cpp,
19261 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
19262 source/Lib/TLibCommon/TComTrQuant.cpp,
19263 source/Lib/TLibCommon/TComTrQuant.h,
19264 source/Lib/TLibEncoder/TEncSearch.cpp,
19265 source/encoder/frameencoder.cpp:
19266 Modify ChromaScale table to support multiple color space formats
19269 * source/Lib/TLibCommon/CommonDef.h,
19270 source/Lib/TLibCommon/ContextTables.h,
19271 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
19272 source/Lib/TLibCommon/TypeDef.h:
19273 Modify TComRom structure to support multiple color space formats
19276 2014-02-14 Steve Borho <steve@borho.org>
19278 * source/Lib/TLibCommon/TComPicYuv.cpp:
19279 TComPicYuv: use pixel type instead of Pel type
19282 * source/common/version.cpp:
19283 version: today, our max supported input bit depth is 10
19286 * source/input/y4m.cpp, source/input/yuv.cpp:
19287 input: always set depth and colorspace fields
19290 * source/encoder/encoder.cpp:
19291 encoder: use x265_log for per-frame debug log, use dB for SSIM
19294 * source/encoder/encoder.cpp:
19295 encoder: now only one QP per row in CSV output
19298 2014-02-14 Deepthi Nandakumar <deepthi@multicorewareinc.com>
19300 * source/encoder/ratecontrol.cpp:
19301 ratecontrol: cleanup, repetitive code
19304 * source/Lib/TLibCommon/TComSlice.cpp,
19305 source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp,
19306 source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp:
19307 ratecontrol: cleanup, remove sliceQPBase.
19309 Always a duplicate of sliceQp.
19312 * source/encoder/ratecontrol.cpp:
19313 ratecontrol: cleanup
19316 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
19317 ratecontrol: clean up struct; remove baseQp
19320 2014-02-14 Steve Borho <steve@borho.org>
19322 * build/msys/make-Makefiles.sh:
19323 build: change eoln of msys bash script to unix
19326 2014-02-14 Satoshi Nakagawa <nakagawa424@oki.com>
19328 * source/Lib/TLibCommon/TComTrQuant.cpp,
19329 source/Lib/TLibCommon/TComTrQuant.h,
19330 source/Lib/TLibEncoder/TEncSearch.cpp:
19331 square transform only
19334 2014-02-14 Nabajit Deka <Nabajit Deka>
19336 * source/common/x86/pixeladd8.asm:
19337 asm: Clean up and minor modifications in pixel_add_ps 16bpp asm
19341 2014-02-14 Steve Borho <steve@borho.org>
19343 * source/Lib/TLibEncoder/WeightPredAnalysis.cpp,
19344 source/Lib/TLibEncoder/WeightPredAnalysis.h,
19345 source/encoder/CMakeLists.txt, source/encoder/frameencoder.cpp,
19346 source/encoder/frameencoder.h:
19347 remove unused HM WeightPredAnalysis files
19350 * source/encoder/encoder.cpp:
19351 encoder: do not generate digest string if we are not going to print
19355 * source/encoder/encoder.cpp, source/encoder/encoder.h:
19356 encoder: report the hash digest from the correct frame encoder
19359 2014-02-14 Sumalatha Polureddy <Sumalatha Polureddy>
19361 * source/encoder/compress.cpp:
19362 compress: Bug fix in rd2
19364 the sa8d cost in rd2 for inter and intra are different for inter,
19365 totalbits = 0, for intra, totalbits = cabac bits for now, making the
19366 totalbits = 0 for both inter and intra
19369 * source/encoder/compress.cpp:
19370 compress: missed few lines of code while applying previous patch
19372 1. Increase the eraly skips in rd2 2. Sa8d cost is not calculated,
19373 but used in the code
19376 2014-02-14 Steve Borho <steve@borho.org>
19378 * source/encoder/reference.cpp:
19379 reference: remove unnecessary duplicate variable
19382 * source/CMakeLists.txt:
19383 cmake: on MSVC, CMAKE_CXX_IMPLICIT_LINK_LIBRARIES and PLATFORM_LIBS
19387 2014-02-13 Steve Borho <steve@borho.org>
19389 * source/CMakeLists.txt:
19390 cmake: add a blacklist of libs to keep from x265.pc Libs.private
19393 2014-02-13 Tom Vaughan (tom vaughan <Tom Vaughan (tom.vaughan@multicorewareinc.com)>
19395 * source/common/common.cpp:
19396 Remove redundant settings from performance presets
19399 2014-02-13 Satoshi Nakagawa <nakagawa424@oki.com>
19401 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
19402 source/Lib/TLibCommon/TComTrQuant.cpp,
19403 source/Lib/TLibEncoder/TEncSbac.cpp,
19404 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/intrapred.cpp,
19405 source/encoder/compress.cpp:
19409 2014-02-13 Murugan Vairavel <murugan@multicorewareinc.com>
19411 * source/common/x86/ipfilter8.asm:
19412 asm: cleanups for ipfilter functions to reduce register counts
19415 2014-02-13 Tom Vaughan (tom vaughan <Tom Vaughan (tom.vaughan@multicorewareinc.com)>
19417 * source/common/common.cpp:
19418 Remove redundant settings from performance presets
19421 2014-02-13 Satoshi Nakagawa <nakagawa424@oki.com>
19423 * source/Lib/TLibCommon/TComDataCU.cpp,
19424 source/Lib/TLibCommon/TComDataCU.h,
19425 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
19426 source/Lib/TLibCommon/TComTrQuant.cpp,
19427 source/Lib/TLibCommon/TypeDef.h,
19428 source/Lib/TLibEncoder/TEncSearch.cpp:
19432 2014-02-13 Steve Borho <steve@borho.org>
19434 * source/encoder/compress.cpp:
19435 compress: fix gcc warning, make array const
19437 c:/mcw/x265/source/encoder/compress.cpp:414:22: warning: variable
19438 'bestMergePred' set but not used [-Wunused-but-set-variable]
19439 TComYuv* bestMergePred;
19442 * source/CMakeLists.txt:
19443 cmake: more general fix for CFLAGS breaking resource compiles
19445 There are some versions of rc.exe that also balk at being given
19449 * source/common/common.cpp, source/x265.h:
19450 api: improve documentation of x265_picture, properly initialize
19454 2014-02-13 Murugan Vairavel <murugan@multicorewareinc.com>
19456 * source/test/ipfilterharness.cpp, source/test/mbdstharness.cpp,
19457 source/test/mbdstharness.h:
19458 testbench: added stress test cases for all functions in
19462 2014-02-13 Deepthi Nandakumar <deepthi@multicorewareinc.com>
19467 * source/Lib/TLibCommon/TComDataCU.cpp,
19468 source/Lib/TLibCommon/TComDataCU.h, source/encoder/compress.cpp:
19469 compress: improve rd 2 performance (Patch from Sumalatha)
19471 a. Always allow intra mode for mode decision b. increase more skips
19472 at each depth(do encode of best merge candidates initially and if
19473 the merge is skipped, dont do inter modes)
19475 Bitrate increase compared to rd 3 (4-6%) on most HD clips, quality
19476 maintained. Performance impact to be measured in regression tests.
19478 Sintel 720p clip needs to be investigated further. Poor show here.
19481 2014-02-13 Steve Borho <steve@borho.org>
19483 * source/common/pixel.cpp:
19484 weightp: add assert to protect assembly limitiation
19487 * source/encoder/weightPrediction.cpp:
19488 weightp: pad width passed to weight_pp(), it requires 16byte
19492 * source/common/threading.h:
19493 threading: fix compile when XP support is enabled
19496 * source/CMakeLists.txt, source/cmake/version.cmake:
19497 cmake: be quiet about missing optional packages
19500 * source/CMakeLists.txt, source/cmake/version.cmake:
19501 cmake: simplify version detection, use single set of variables
19504 * source/cmake/version.cmake:
19505 cmake: use findGit.cmake, which was available in cmake 2.8.8, our
19509 * source/CMakeLists.txt:
19510 cmake: workaround for MinGW windres
19513 2014-02-12 Steve Borho <steve@borho.org>
19515 * source/CMakeLists.txt:
19516 cmake: change name of MSVC built shared library to avoid filename
19519 the shared library and CLI exe were both trying to write x265.pdb
19520 and x265.ilk with unhelpful results.
19523 * source/CMakeLists.txt, source/x265.rc.in:
19524 cmake: add resource file for Windows version info on DLL and EXE
19526 This sadly doesn't work when compiling under MinGW; cmake has an
19527 unresolved bug that passes all CFLAGS to windres, which pukes on
19532 cli: use real log commands
19535 2014-02-12 Min Chen <chenm003@163.com>
19537 * source/Lib/TLibCommon/TComDataCU.cpp,
19538 source/Lib/TLibCommon/TComDataCU.h,
19539 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
19540 source/Lib/TLibCommon/TComTrQuant.cpp,
19541 source/Lib/TLibCommon/TypeDef.h,
19542 source/Lib/TLibEncoder/TEncSearch.cpp:
19546 2014-02-12 Satoshi Nakagawa <nakagawa424@oki.com>
19548 * source/Lib/TLibCommon/TComTrQuant.cpp,
19549 source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp,
19550 source/Lib/TLibEncoder/TEncBinCoderCABAC.h,
19551 source/Lib/TLibEncoder/TEncEntropy.cpp,
19552 source/Lib/TLibEncoder/TEncEntropy.h,
19553 source/Lib/TLibEncoder/TEncSbac.cpp,
19554 source/Lib/TLibEncoder/TEncSbac.h:
19558 2014-02-12 Steve Borho <steve@borho.org>
19560 * source/encoder/encoder.cpp:
19561 encoder: remove two completed TODOs
19564 * source/encoder/encoder.cpp, source/encoder/encoder.h:
19565 encoder: remember abort condition and stop accepting input frames
19568 2014-02-12 Santhoshini Sekar <santhoshini@multicorewareinc.com>
19570 * source/common/lowres.h, source/encoder/ratecontrol.cpp,
19571 source/encoder/ratecontrol.h, source/encoder/slicetype.cpp,
19572 source/encoder/slicetype.h:
19576 2014-02-12 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
19578 * source/common/x86/asm-primitives.cpp,
19579 source/common/x86/intrapred16.asm:
19580 asm-16bpp: assembly code for IntraAng32x32 all modes
19583 2014-02-12 Nabajit Deka <Nabajit Deka>
19585 * source/common/x86/pixel-util8.asm:
19586 asm : Clean up and minor modifications in pixel_sub_ps asm
19587 functions(2x4, 2x8, 6x8)
19590 * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h:
19591 Test bench : Stress test cases for remaining filter functions.
19594 2014-02-12 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
19596 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
19597 source/common/x86/intrapred16.asm:
19598 asm: 16bpp asm code for intra_pred_ang8 - all modes
19601 2014-02-13 Gopu Govindaswamy <Gopu Govindaswamy>
19603 * source/encoder/ratecontrol.cpp:
19604 ratecontrol: to set B-ref frame QP as Lower then B-Frame QP for RC
19608 2014-02-12 Kavitha Sampath <kavitha@multicorewareinc.com>
19610 * source/encoder/weightPrediction.cpp:
19611 weightp: fix hash mismatch
19613 all references should have same luma and chroma denominator
19616 2014-02-12 Steve Borho <steve@borho.org>
19619 api: we don't need stuttering header guards
19623 api: mark externed variables for import from Windows shared library
19626 * source/CMakeLists.txt, source/common/cpu.cpp:
19627 cmake: a few fixes for building on ARM (Rapsbery Pi in particular)
19629 Next step will be bringing over ARM cpu detect assembly functions:
19630 x265_cpu_neon_test() x265_cpu_fast_neon_mrc_test()
19633 * source/encoder/weightPrediction.cpp:
19634 weightp: clip lowres MV before using for motion compensation
19636 Even the lowres MVs with very restricted merange can go beyond the
19637 available pixels. This was causing memory access exceptions on some
19641 * source/encoder/slicetype.cpp:
19642 slicetype: cast mvmin/mvmax indices to signed 16bit values
19645 2014-02-12 Min Chen <chenm003@163.com>
19647 * source/common/x86/blockcopy8.asm:
19648 asm: fix bug in cvt16to32_shl
19651 2014-02-11 Santhoshini Sekar <santhoshini@multicorewareinc.com>
19653 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
19654 vbv: set vbvminrate
19657 * source/encoder/ratecontrol.cpp:
19658 rc: Don't do resetABR in CRF.
19661 2014-02-11 Nabajit Deka <Nabajit Deka>
19663 * source/common/x86/blockcopy8.asm:
19664 asm : Optimisations in blockcopy_sp asm routines(2x4, 2x8, 6x8)
19667 2014-02-03 Nabajit Deka <Nabajit Deka>
19669 * source/test/ipfilterharness.cpp:
19670 testbench: Added stress test cases for
19671 check_IPFilterLuma_ps_primitive, check_IPFilterLuma_hps_primitive
19672 and check_IPFilterLumaHV_primitive filter functions
19675 2014-02-11 Murugan Vairavel <murugan@multicorewareinc.com>
19677 * source/common/x86/ipfilter8.asm, source/test/ipfilterharness.cpp:
19678 asm: Optimizations and cleaups on ipfilter functions
19681 2014-02-03 Nabajit Deka <Nabajit Deka>
19683 * source/test/ipfilterharness.cpp:
19684 testbench: Added stress test cases for chroma_pp, chroma_ps and
19685 chroma_hps filter functions
19688 2014-02-11 Steve Borho <steve@borho.org>
19690 * source/encoder/encoder.cpp:
19691 encoder: protect public APIs against NULL pointer arguments
19694 * source/cmake/version.cmake:
19695 cmake: set X265_LATEST_TAG from latesttag: line of .hg_archival.txt
19697 The net effect of this is that non-tagged release bundles will be
19698 capable of installing shared libraries with effective sonames.
19702 api: improve documentation of x265_picture dts, pts
19705 2014-02-10 Steve Borho <steve@borho.org>
19707 * source/encoder/slicetype.cpp:
19708 slicetype: pass bools as bool literals
19711 2014-02-11 Satoshi Nakagawa <nakagawa424@oki.com>
19713 * source/Lib/TLibCommon/TComDataCU.cpp,
19714 source/Lib/TLibEncoder/TEncSearch.cpp,
19715 source/Lib/TLibEncoder/TEncSearch.h:
19716 cleanup AMVP related
19719 2014-02-10 Satoshi Nakagawa <nakagawa424@oki.com>
19721 * source/Lib/TLibCommon/TComPattern.cpp,
19722 source/Lib/TLibCommon/TComPattern.h,
19723 source/Lib/TLibEncoder/TEncCu.cpp,
19724 source/Lib/TLibEncoder/TEncSearch.cpp:
19728 2014-02-10 Steve Borho <steve@borho.org>
19730 * source/Lib/TLibCommon/TComPicYuv.cpp:
19731 pic: use C style comments
19734 * source/Lib/TLibCommon/TComPicYuv.cpp:
19735 pic: mask impossible input bits
19738 * source/common/lowres.cpp:
19742 * source/Lib/TLibCommon/TComPicYuv.cpp,
19743 source/Lib/TLibCommon/TComPicYuv.h, source/common/lowres.cpp,
19744 source/common/pixel.cpp, source/common/primitives.h,
19745 source/encoder/weightPrediction.cpp:
19746 TComPicYuv: replace xExtendPicCompBorder with an optimized function
19748 We've had a primitive for the side borders for some time, it just
19749 wasn't hooked up. This function never should have been a method of
19754 help: --cutree is a boolean flag
19758 help: move --cutree just after aq options
19761 * source/CMakeLists.txt:
19762 cmake: prevent extra errors when system has no C++ compiler
19765 * source/encoder/weightPrediction.cpp:
19766 weightp: avoid redundant chroma extensions
19769 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
19770 source/encoder/dpb.cpp:
19771 TComPic: add m_chromaPlanesExtended member var
19774 2014-02-10 Kavitha Sampath <kavitha@multicorewareinc.com>
19776 * source/encoder/weightPrediction.cpp:
19777 weightp: extend chroma borders before mcChroma, remove redundant
19781 2014-02-07 Steve Borho <steve@borho.org>
19783 * source/encoder/CMakeLists.txt, source/encoder/frameencoder.cpp,
19784 source/encoder/frameencoder.h, source/encoder/weightPrediction.cpp,
19785 source/encoder/weightPrediction.h:
19786 weightp rewrite without a class
19788 weightp analysis for the main encoder is performed with motion
19789 compensation (using lowres motion vectors from lookahead) when
19790 available. The lowres luma plane is used for luma analysis and the
19791 chroma planes are analysed as-is.
19794 2014-02-10 Steve Borho <steve@borho.org>
19796 * source/Lib/TLibCommon/TComPic.h:
19797 TComPic: clean up data member ordering, add comments
19800 2014-02-08 Satoshi Nakagawa <nakagawa424@oki.com>
19802 * source/Lib/TLibCommon/TComDataCU.cpp,
19803 source/Lib/TLibCommon/TComDataCU.h:
19804 improve getInterMergeCandidates()
19807 2014-02-09 Satoshi Nakagawa <nakagawa424@oki.com>
19809 * source/Lib/TLibCommon/TComDataCU.cpp,
19810 source/Lib/TLibCommon/TComDataCU.h,
19811 source/Lib/TLibEncoder/TEncSbac.cpp,
19812 source/Lib/TLibEncoder/TEncSearch.cpp:
19813 cleanup MPM related
19816 2014-02-09 Steve Borho <steve@borho.org>
19818 * source/common/common.cpp, source/encoder/encoder.cpp,
19819 source/x265.cpp, source/x265.h:
19820 api: repair `--keyint -1` behavior; single keyframe at beginning of
19823 Also, disable scene cut detection to save a few cycles in lookahead.
19824 Fix and/or improve documentation for the keyint parameters
19827 2014-02-07 Murugan Vairavel <murugan@multicorewareinc.com>
19829 * source/common/x86/ipfilter8.asm:
19830 asm: cleanup unused registers interp_4tap_horiz_pp_2xN and 4xN
19833 2014-02-07 Steve Borho <steve@borho.org>
19835 * source/common/CMakeLists.txt, source/common/vec/intra-ssse3.cpp,
19836 source/common/vec/vec-primitives.cpp:
19837 vec: remove intra-ssse3.cpp, full assembly coverage
19840 2014-02-07 Murugan Vairavel <murugan@multicorewareinc.com>
19842 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
19843 source/common/x86/intrapred8.asm:
19844 asm: intra_pred_ang16 code for all remaing modes
19847 2014-02-07 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
19849 * source/common/x86/asm-primitives.cpp,
19850 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h,
19851 source/common/x86/mc-a.asm, source/common/x86/pixel.h:
19852 asm: correction of function declaration to sse4
19855 2014-02-07 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
19857 * source/common/x86/sad-a.asm:
19858 asm: fix sad_x4 stress case failure on AVX2
19861 2014-02-07 Deepthi Nandakumar <deepthi@multicorewareinc.com>
19863 * source/encoder/slicetype.cpp, source/x265.h:
19864 x265: remove X265_TYPE_KEYFRAME.
19866 Not used, and not required. IDR/I-slice can be chosen at the outset
19870 2014-02-07 Steve Borho <steve@borho.org>
19872 * source/common/dct.cpp:
19873 dct: disable assertion for 10bit builds
19875 The assertion is there to protect 8bpp assembly
19878 * source/encoder/weightPrediction.cpp:
19879 weightp: avoid MSVC warnings about implicit bool to int casts
19882 2014-02-06 Steve Borho <steve@borho.org>
19884 * source/common/vec/intra-ssse3.cpp:
19885 Backed out changeset: 5634d0322161
19888 * source/common/vec/intra-ssse3.cpp:
19889 vec: remove unused angAP array
19892 * source/Lib/TLibCommon/TComBitStream.cpp,
19893 source/Lib/TLibCommon/TComBitStream.h:
19894 TComBitstream: simplify push_back(), fix clear(), give buffsize an
19897 The size of the allocated buffer is not reset on clear. Issue an
19898 error message if any mallocs fail, to at least indicate an encoder
19899 in serious trouble.
19902 * source/Lib/TLibCommon/TComBitStream.cpp:
19903 TComBitstream: fix check for NULL m_fifo member
19905 There was no point in checking for NULL in the if() expression
19906 because m_fifo was used in the else. (identified by clang)
19909 * source/Lib/TLibCommon/TComBitStream.cpp:
19910 TComBitstream: remove hungarianness from parameters and auto-vars
19913 * source/Lib/TLibCommon/TComDataCU.cpp,
19914 source/Lib/TLibCommon/TComLoopFilter.cpp,
19915 source/Lib/TLibCommon/TComPrediction.cpp,
19916 source/Lib/TLibCommon/TComTrQuant.cpp,
19917 source/Lib/TLibEncoder/TEncCu.cpp,
19918 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
19919 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/primitives.cpp,
19920 source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp,
19921 source/encoder/slicetype.cpp, source/encoder/weightPrediction.cpp,
19923 Fix problems found by clang static analyzser in Xcode
19925 These were mainly stores that were never read
19928 * source/encoder/weightPrediction.cpp,
19929 source/encoder/weightPrediction.h:
19930 weightp: remove useless m_dstStride variable
19936 * source/Lib/TLibCommon/TComPicYuv.h:
19940 * source/encoder/weightPrediction.cpp:
19941 weightp: don't use m_ prefix for non member variable
19944 * source/encoder/weightPrediction.cpp:
19945 weightp: do not blindly assume 4:2:0 chroma dimensions
19948 * source/encoder/weightPrediction.cpp,
19949 source/encoder/weightPrediction.h:
19950 weightp: non-trivial constructors and destructors should not be in
19954 * source/common/vec/intra-ssse3.cpp:
19955 vec: remove intraPredAng32x32, full asm coverage
19958 2014-02-06 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
19960 * source/common/x86/intrapred8.asm:
19961 asm: fix Intrapred_ang[32x32] mode 10 and 26 failure on Mac
19964 2014-02-06 Gopu Govindaswamy <Gopu Govindaswamy>
19966 * source/encoder/slicetype.cpp:
19967 slicetype: bug fix for cuTree, use int32_t for listamount and
19968 propagate_amount to calculate valid propagate_cost
19971 2014-02-06 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
19973 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
19974 source/common/x86/sad16-a.asm:
19975 asm: modified satd and sad asm functions in 16bpp to avoid overflow
19978 2014-02-06 Murugan Vairavel <murugan@multicorewareinc.com>
19980 * source/test/pixelharness.cpp, source/test/pixelharness.h:
19981 testbench: stress test support for all pixelharness functions
19984 2014-02-06 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
19986 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
19987 source/common/x86/intrapred8.asm:
19988 asm: assembly code for IntraAng32x32 all modes
19991 2014-02-06 Satoshi Nakagawa <nakagawa424@oki.com>
19993 * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp:
19994 remove unnecessary copyToPicLuma() call
19997 2014-02-05 Steve Borho <steve@borho.org>
19999 * source/common/common.cpp:
20000 common: use ATOMIC_CAS32 to update an int
20003 * source/common/threadpool.cpp:
20004 threadpool: use aligned malloc to allocate sleep bitmap
20006 This kills three birds with one stone - it removes a source of
20007 possible un- alignment, it removes the restriction of max 64
20008 threads, and it further simplifies pool start and stop
20011 * source/encoder/slicetype.cpp:
20012 slicetype: fix 10bpp intra pixel preparations - found by valgrind
20015 * source/common/vec/intra-ssse3.cpp:
20016 vec: remove 4x4 and 8x8 intra mode prediction functions, asm
20020 * source/common/vec/intra-sse41.cpp:
20021 vec: remove 4x4, 8x8, and 16x16 allangs functions; covered by
20025 * source/common/x86/asm-primitives.cpp:
20026 asm: remove redundant macro definition
20029 2014-02-05 Praveen Tiwari <Praveen Tiwari>
20031 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
20032 source/common/x86/intrapred8.asm:
20033 all_angs_pred_16x16, asm code
20036 2014-02-04 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
20038 * source/common/x86/asm-primitives.cpp,
20039 source/common/x86/intrapred8.asm:
20040 asm: intra_pred_ang8 asm code for all modes
20043 2014-02-04 Murugan Vairavel <murugan@multicorewareinc.com>
20045 * source/common/x86/intrapred8.asm:
20046 asm: Modifications to intrapred16 modes 3, 4, 32 and 33 such that it
20047 uses TRANSPOSE_STORE macro of intrapred32
20050 2014-02-05 Steve Borho <steve@borho.org>
20052 * source/CMakeLists.txt:
20053 cmake: only officially support 16bpp builds on x64 architectures
20056 2014-02-05 Aarthi Thirumalai <Aarthi Thirumalai>
20058 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
20059 abr: reset ABR to prevent high bitrate peaks in single pass ABR
20061 Long series of blank frames in video followed by detailed content
20062 causes heavy ABR underflow and overall bitrates surges high for a
20063 long while. This patch detects this condition in Single pass ABR
20064 mode and resets ABR - to not consider history from blank frames and
20065 continue from following scene-cut.
20068 2014-02-05 Gopu Govindaswamy <Gopu Govindaswamy>
20070 * source/common/lowres.cpp:
20071 lowres: initialize weightedCostDelta to avoid Valgrind reporting
20072 uninitialized memory
20075 * source/encoder/slicetype.cpp:
20076 cuTree: bug fix for frameCostRecalculate
20079 2014-02-05 Steve Borho <steve@borho.org>
20081 * source/encoder/encoder.cpp:
20082 encoder: try not to leak memory after malloc failures
20085 * source/common/lowres.cpp:
20086 lowres: fix gcc/clang compile errors
20088 gcc doesn't like to jump to labels that bypass variable
20089 initializations, even if they are not used passed the jump
20092 2014-02-05 Deepthi Nandakumar <deepthi@multicorewareinc.com>
20094 * source/common/x86/asm-primitives.cpp:
20095 Backed out changeset: a88c7bbfba61
20097 The addAvg x86 versions have now been fixed
20100 2014-02-05 Satoshi Nakagawa <nakagawa424@oki.com>
20102 * source/common/x86/mc-a.asm:
20106 2014-02-04 Steve Borho <steve@borho.org>
20108 * source/common/lowres.cpp, source/common/lowres.h:
20109 lowres: there was no need to pass an int* as an int32_t*
20112 * source/Lib/TLibCommon/TComDataCU.cpp,
20113 source/Lib/TLibCommon/TComDataCU.h,
20114 source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
20115 source/Lib/TLibCommon/TComPicSym.cpp,
20116 source/Lib/TLibCommon/TComPicSym.h,
20117 source/Lib/TLibCommon/TComPicYuv.cpp,
20118 source/Lib/TLibCommon/TComPicYuv.h, source/common/lowres.cpp,
20119 source/common/lowres.h, source/encoder/encoder.cpp, source/x265.cpp:
20120 use checked mallocs in TComPic::create() and in functions it calls
20122 This is the most obvious place memory allocation failures will
20123 occur, at encoder startup. So it is best to catch them cleanly.
20126 * source/test/pixelharness.cpp:
20127 pixelharness: actually report chroma addAvg as addAvg, not add_ps
20130 * source/test/pixelharness.cpp:
20131 pixelharness: fix luma_addAvg tests
20134 * source/common/x86/asm-primitives.cpp:
20135 asm: disable x86 versions of addAvg - they are broken
20138 * source/common/common.cpp:
20139 log: move lookahead options all together, rate-control at the end
20143 * source/common/lowres.cpp:
20144 lowres: initialize downscale planes immediately after alloc
20146 Valgrind was reporting potential uninitialized memory being used by
20147 the lowres weightp cost estimate function. It is weighting the
20148 entire padded luma plane instead of weighting just the real pixels
20149 and then extending them. The problem is that the buffer stride is
20150 wider than (width + padw*2). We round up the stride to the nearest
20151 multiple of 32 so the row starts are well aligned, and those pixels
20152 at the very right edge of the buffer were never written to. They
20153 should never be used by the encoder, but the weight_pp primitive
20154 does try to weight them; and the last step of the weight function is
20155 a clip, and that conditional move is what triggered the valgrind
20159 * source/test/ipfilterharness.cpp:
20160 ipfilterharness: fix loop bounds, caused crashes in 16bpp
20163 * source/encoder/slicetype.cpp, source/encoder/slicetype.h:
20164 slicetype: weight the extended lowres frame prior to MC cost
20167 valgrind spotted this problem where the top and bottom padded areas
20168 of the lowres reference frame were not weighted into the weightedRef
20169 buffer, so any lowres MVs used for MC that referenced past the top
20170 or bottom picture boundary would access uninitialized pixels.
20173 * source/common/wavefront.cpp, source/common/wavefront.h:
20174 wavefront: rename bitmaps for clarity, add more comments
20177 * source/Lib/TLibCommon/CommonDef.h, source/common/common.h:
20178 common: move malloc/free macros to our header
20181 * source/common/common.cpp, source/x265.cpp:
20182 cli: change --keyint short option to capital I, add min-keyint,
20185 All these options now match x264's command line features
20188 * source/Lib/TLibCommon/TComTrQuant.cpp:
20189 TComTrQuant: avoid bogus warning from VC9/VC10
20192 2014-02-04 Satoshi Nakagawa <nakagawa424@oki.com>
20194 * source/Lib/TLibCommon/TComDataCU.h,
20195 source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
20196 source/encoder/compress.cpp:
20197 cleanup unused variables
20200 2014-02-03 Steve Borho <steve@borho.org>
20202 * source/Lib/TLibEncoder/NALwrite.cpp:
20203 NALWrite: simplify emulation detection
20206 * source/input/y4m.cpp:
20210 * source/input/y4m.cpp:
20211 y4m: better handling of eof during frame header reads
20213 It wasn't checking the stream state properly (a bug introduced when
20214 ifs was made into a pointer for stdin) and doing a memcmp against
20215 possibly uninitialized stack memory, which just happened to usually
20216 have a proper frame header in it since the reader thread stack use
20217 is very predictable.
20219 This was the last warning reported by valgrind on the stable branch
20220 [4b8901ae94ec] <stable>
20222 * source/encoder/slicetype.cpp:
20223 slicetype: use x265 naming scheme for auto vars and parameters
20226 * source/input/y4m.cpp:
20227 y4m: reorder functions for clarity
20230 * source/encoder/slicetype.cpp, source/encoder/slicetype.h:
20231 slicetype: replace ints and long ints with bools where appropriate
20234 * source/input/y4m.cpp:
20235 y4m: simplify guessFrameCount
20238 2014-02-03 Satoshi Nakagawa <nakagawa424@oki.com>
20240 * source/Lib/TLibCommon/ContextTables.h,
20241 source/Lib/TLibCommon/TComTrQuant.h,
20242 source/Lib/TLibEncoder/TEncSbac.cpp,
20243 source/Lib/TLibEncoder/TEncSbac.h:
20247 2014-02-03 Steve Borho <steve@borho.org>
20249 * source/encoder/ratecontrol.cpp:
20250 ratecontrol: backout c4e99fde0b and fix indentation
20253 2014-01-21 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
20255 * source/common/x86/asm-primitives.cpp,
20256 source/common/x86/intrapred8.asm:
20257 assembly code for intra_pred_ang8_5
20260 2014-02-03 Deepthi Nandakumar <deepthi@multicorewareinc.com>
20265 2014-01-20 Murugan Vairavel <murugan@multicorewareinc.com>
20267 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
20268 source/common/x86/intrapred8.asm:
20269 asm: code for intra_Pred_Ang16x16 mode 32
20272 2014-01-21 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
20274 * source/common/x86/asm-primitives.cpp,
20275 source/common/x86/intrapred8.asm:
20276 assembly code for intra_pred_ang8_4.
20279 2014-01-20 Murugan Vairavel <murugan@multicorewareinc.com>
20281 * source/common/x86/asm-primitives.cpp,
20282 source/common/x86/intrapred8.asm:
20283 asm: code for intra_Pred_Ang16x16 mode 4
20286 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
20287 source/common/x86/intrapred8.asm:
20288 asm: code for Intra_pred_Ang16x16 mode 3 and 33
20291 2014-02-03 Steve Borho <steve@borho.org>
20293 * source/Lib/TLibCommon/CommonDef.h,
20294 source/Lib/TLibCommon/TComBitStream.cpp,
20295 source/Lib/TLibCommon/TComDataCU.cpp,
20296 source/Lib/TLibCommon/TComPicYuv.cpp,
20297 source/Lib/TLibCommon/TComPrediction.cpp,
20298 source/Lib/TLibCommon/TComTrQuant.cpp,
20299 source/Lib/TLibCommon/TComYuv.cpp,
20300 source/Lib/TLibEncoder/NALwrite.cpp, source/common/TShortYUV.cpp,
20301 source/common/common.cpp, source/common/lowres.cpp,
20302 source/encoder/frameencoder.cpp, source/encoder/motion.cpp,
20303 source/encoder/reference.cpp, source/encoder/slicetype.h,
20304 source/encoder/weightPrediction.cpp,
20305 source/test/intrapredharness.cpp, source/test/ipfilterharness.cpp,
20306 source/test/mbdstharness.cpp, source/test/pixelharness.cpp:
20307 common: change X265_MALLOC macro to return typed pointer
20309 One less opportunity for a stupid mistake
20312 * source/CMakeLists.txt:
20313 cmake: treat empty CMAKE_SYSTEM_PROCESSOR as x86 (fixes #25)
20316 * source/encoder/encoder.cpp:
20317 follow x264's keyframe-min logic [CHANGES OUTPUTS] (closes #24)
20319 If no --keyint-min is specified, default to max/10, and clamp the
20320 value to between [1, max / 2 + 1]. This allows x265 to insert I
20321 frames when scene cuts are detected between keyframe-min and
20325 2014-02-03 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
20327 * source/Lib/TLibCommon/TComYuv.cpp, source/common/pixel.cpp,
20328 source/common/primitives.h, source/common/x86/asm-primitives.cpp,
20329 source/common/x86/const-a.asm, source/common/x86/mc-a.asm,
20330 source/common/x86/pixel.h, source/test/pixelharness.cpp:
20331 asm: code for addAvg luma and chroma all sizes
20334 2014-02-03 Deepthi Nandakumar <deepthi@multicorewareinc.com>
20336 * source/encoder/frameencoder.cpp:
20337 frameencoder: use macro MAX_MAX_QP
20340 2014-02-03 Satoshi Nakagawa <nakagawa424@oki.com>
20342 * source/encoder/frameencoder.cpp:
20346 2014-02-02 Steve Borho <steve@borho.org>
20348 * source/Lib/TLibEncoder/TEncSbac.cpp, source/encoder/CMakeLists.txt:
20349 cmake: remove two MSVC warnings overrides, HM code has been somewhat
20353 * source/Lib/TLibCommon/TComPicYuvMD5.cpp,
20354 source/common/CMakeLists.txt:
20355 cmake: remove two MSVC warnings overrides, HM code has been somewhat
20359 * source/CMakeLists.txt, source/common/CMakeLists.txt,
20360 source/encoder/CMakeLists.txt:
20361 cmake: when x86 arch is detected, set gcc -march=i686 globally
20363 This enables a number of cleanups in the internal cmake scripts
20366 2014-02-01 Steve Borho <steve@borho.org>
20368 * source/CMakeLists.txt:
20369 cmake: prevent warnings from recent builds of cmake
20371 cmake really should ignore cmake_policy(SET foo) if foo is not yet
20372 supported, so every cmake user doesn't have to check the exact
20373 version which introduced that backward compatibility option.. but...
20376 * source/common/x86/x86inc.asm:
20377 x86inc: Make ym# behave the same way as xm#
20379 x264 commit 0997c288be10
20382 * source/common/x86/x86inc.asm:
20383 x86inc.asm: allow x64 output format
20385 x264 commit 3361d59a0a83d
20388 * source/common/x86/x86inc.asm:
20389 asm: pull in pengvado's header patch to speed up yasm compiles
20392 2014-01-29 Satoshi Nakagawa <nakagawa424@oki.com>
20394 * source/Lib/TLibCommon/ContextTables.h,
20395 source/Lib/TLibCommon/TComDataCU.cpp,
20396 source/Lib/TLibCommon/TComDataCU.h,
20397 source/Lib/TLibCommon/TComTrQuant.cpp,
20398 source/Lib/TLibCommon/TComTrQuant.h,
20399 source/Lib/TLibEncoder/TEncSbac.cpp:
20400 reduce unused context models
20403 2014-02-01 Steve Borho <steve@borho.org>
20405 * source/CMakeLists.txt:
20409 * source/CMakeLists.txt:
20410 cmake: use strlower on CMAKE_SYSTEM_PROCESSOR
20413 * source/CMakeLists.txt:
20414 cmake: only allow assembly to be enabled for X86, our only asm
20418 * source/CMakeLists.txt:
20419 cmake: reorg main file for readability, no behavior changes
20422 * source/CMakeLists.txt, source/common/cpu.cpp, source/x265.h:
20423 cpu: port ARM cpu detection code from x264
20426 * source/CMakeLists.txt:
20427 cmake: add two more system processor names that are synonyms of x86
20430 * source/CMakeLists.txt, source/common/cpu.cpp,
20431 source/common/primitives.cpp:
20432 cmake: improve handling of unknown system processor
20435 * source/encoder/weightPrediction.cpp:
20436 weightp: add math include for POSIX systems
20439 2014-01-31 Steve Borho <steve@borho.org>
20441 * source/encoder/ratecontrol.cpp:
20442 ratecontrol: use X265_DEPTH instead of g_bitDepth
20444 On 8 bit builds, bit depth is known at compile time, allowing the
20445 compiler to optimize away a few of these operations.
20448 * source/Lib/TLibCommon/ContextTables.h,
20449 source/Lib/TLibCommon/TComDataCU.cpp,
20450 source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComRom.cpp,
20451 source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
20452 source/Lib/TLibEncoder/TEncSbac.cpp,
20453 source/Lib/TLibEncoder/TEncSearch.cpp,
20454 source/Lib/TLibEncoder/TEncSearch.h, source/common/TShortYUV.cpp,
20455 source/common/TShortYUV.h, source/common/common.cpp,
20456 source/common/cpu.cpp, source/common/intrapred.cpp,
20457 source/common/ipfilter.cpp, source/common/lowres.h,
20458 source/common/pixel.cpp, source/common/primitives.cpp,
20459 source/common/primitives.h, source/common/threadpool.cpp,
20460 source/common/vec/intra-sse41.cpp, source/common/vec/intra-
20461 ssse3.cpp, source/common/vec/vec-primitives.cpp, source/common/x86
20462 /asm-primitives.cpp, source/encoder/compress.cpp,
20463 source/encoder/cturow.h, source/encoder/encoder.cpp,
20464 source/encoder/encoder.h, source/encoder/frameencoder.cpp,
20465 source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp,
20466 source/encoder/slicetype.h, source/encoder/weightPrediction.cpp,
20467 source/input/y4m.cpp, source/input/yuv.cpp,
20468 source/test/intrapredharness.cpp, source/test/ipfilterharness.cpp,
20469 source/test/pixelharness.cpp, source/x265.h:
20470 uncrustify source (mechanical coding style enforcement)
20472 A few changes that uncrustify wanted to make have been left out of
20473 the commit for style reasons.
20476 * source/encoder/weightPrediction.cpp:
20480 * source/encoder/weightPrediction.cpp:
20481 weightp: vc11-win32-debug workarounds
20484 * source/encoder/ratecontrol.cpp:
20485 ratecontrol: add missing braces
20488 * source/encoder/ratecontrol.cpp:
20489 ratecontrol: white-space nits
20492 * source/encoder/slicetype.cpp, source/encoder/slicetype.h:
20496 2014-01-30 Steve Borho <steve@borho.org>
20498 * source/CMakeLists.txt, source/common/CMakeLists.txt,
20499 source/common/cpu.cpp, source/common/primitives.cpp,
20500 source/common/vec/vec-primitives.cpp, source/encoder/CMakeLists.txt:
20501 cmake: attempt to support non-x86 compile targets
20504 2014-01-31 Steve Borho <steve@borho.org>
20506 * source/CMakeLists.txt, source/common/CMakeLists.txt:
20507 cmake: white-space nits
20510 * source/test/ipfilterharness.cpp:
20511 testbench: fix signed/unsigned comparison warning
20514 2014-01-30 Nabajit Deka <Nabajit Deka>
20516 * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h,
20517 source/test/testharness.h:
20518 testbench: add stress test case for luma_pp filter function
20521 * source/test/pixelharness.cpp:
20522 testbench: fix for random test bench failure caused by pixeladd_ss
20525 2014-01-31 Steve Borho <steve@borho.org>
20528 Added tag 0.7 for changeset d24e2a8c4326
20529 [edf64ac976ea] <stable>
20531 * source/encoder/slicetype.cpp:
20532 slicetype: comment nits
20534 Remove a comment copied from x264 that has no bearing in x265, and
20535 fix the alignment of another comment.
20536 [d24e2a8c4326] [0.7] <stable>
20538 * source/encoder/slicetype.cpp, source/encoder/slicetype.h:
20539 slicetype: alloc wpScalingParam instance as a struct member
20541 This is a workaround for VC11. When x265 was compiled for debug
20542 targeting Win32 the stack was being reported as corrupted by
20543 weightCostLuma(). No other compiler or build option would report any
20544 problems (not even valgrind). In the VisualStudio debugger the stack
20545 would be obviously garbaged once the function was entered. Moving
20546 `w` off of the stack makes the VC11 debugger happy again.
20547 [86081bfcacf9] <stable>
20549 * source/encoder/slicetype.cpp:
20550 slicetype: use explicit float type constant
20551 [e04f2b3dea39] <stable>
20553 * source/encoder/slicetype.cpp:
20554 slicetype: prevent divide-by-zero and sqrtf(0)
20555 [3bc0651c0f40] <stable>
20557 2014-01-31 Praveen Tiwari <Praveen Tiwari>
20559 * source/common/x86/pixel-a.asm:
20560 asm: fix for potential mismach between ASM and no-ASM outputs
20561 [539d1b0561b1] <stable>
20563 2014-01-30 Steve Borho <steve@borho.org>
20565 * source/Lib/TLibCommon/TComPic.h, source/common/common.h,
20566 source/encoder/encoder.cpp, source/encoder/encoder.h,
20567 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
20571 2014-01-28 Steve Borho <steve@borho.org>
20573 * source/common/threadpool.cpp:
20574 threadpool: use a wait event per worker thread
20576 For simplicity, this patch caps the number of worker threads to 64.
20577 The bitmap could be trivially extended if necessary.
20579 This removes the common wake event, which complicated startup and
20580 shutdown and flush events.
20583 2014-01-30 Steve Borho <steve@borho.org>
20585 * source/encoder/cturow.h, source/encoder/frameencoder.cpp:
20586 cturow: detect and prevent simultaneous row access
20588 Temporary workaround until we are certain the findJob() race hazards
20589 are indeed resolved completely.
20590 [564eefbb3812] <stable>
20592 2014-01-28 Steve Borho <steve@borho.org>
20594 * source/Lib/TLibCommon/TComPic.h, source/encoder/encoder.cpp,
20595 source/encoder/encoder.h, source/encoder/frameencoder.cpp,
20596 source/encoder/frameencoder.h, source/encoder/framefilter.cpp,
20597 source/encoder/framefilter.h:
20598 encoder: refactor frame encoder recon row synchronization
20600 The previous approach depended on a common event (owned by TComPic)
20601 being triggered multiple times for each row, one trigger per
20602 referencing frame, but I believe this was fragile as one frame
20603 encoder could steal notifications from another.
20605 In the new scheme, each frame encoder waits on its own sync event
20606 when it blocks for recon pixels. When a frame encoder finishes
20607 reconstructing a CU row, it calls a top-level encoder function which
20608 determines if any frame encoders are blocked on that POC and wakes
20611 This should prevent deadlocks from frame encoder synchronization
20612 [4a4c4cbe9c67] <stable>
20614 2014-01-30 Steve Borho <steve@borho.org>
20616 * source/common/wavefront.cpp:
20617 wavefront: eliminate redundant reads of m_queuedBitmap
20618 [6d5f2f61341a] <stable>
20620 * source/common/wavefront.cpp:
20621 wavefront: use x265_malloc for bitmaps, to ensure alignment
20622 [adf571b1bb94] <stable>
20624 * source/Lib/TLibCommon/CommonDef.h, source/common/common.h:
20625 common: consolodate malloc/free funcdefs to common.h
20626 [71f6479dc354] <stable>
20628 2014-01-30 Deepthi Nandakumar <deepthi@multicorewareinc.com>
20630 * source/common/x86/asm-primitives.cpp, source/encoder/encoder.cpp:
20631 Merge bug fixes from stable.
20634 2014-01-30 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
20636 * source/common/x86/sad-a.asm:
20637 asm: modified pixel_sad asm function to avoid overflow
20638 [b852f74bdd8c] <stable>
20640 * source/common/x86/intrapred16.asm, source/test/intrapredharness.cpp:
20641 asm: fixed hash mismatch on 16bpp due to intra_pred_ang
20642 [c0ec570c0105] <stable>
20644 2014-01-29 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
20646 * source/common/x86/pixel-a.asm:
20647 asm: fix for 32-bit build satd overflow issue.
20648 [86743912a5b0] <stable>
20650 2014-01-30 Deepthi Nandakumar <deepthi@multicorewareinc.com>
20652 * source/encoder/encoder.cpp:
20653 log: print Summary for per-frame logging
20656 * source/encoder/encoder.cpp:
20657 log: print ssim(dB) in per-frame csv logging
20660 2014-01-29 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
20662 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
20663 asm: fix overflow due to pixel_satd asm function for 64-bit build
20664 [d6091cb46ae1] <stable>
20666 2014-01-28 Steve Borho <steve@borho.org>
20668 * source/encoder/encoder.cpp:
20669 nit: line up WPP log info with other config items
20670 [4ec459e04f9e] <stable>
20672 * source/encoder/weightPrediction.cpp:
20673 weightp: fix lowresMvCosts[] indexing, add comment for future work
20676 * source/encoder/compress.cpp:
20680 2014-01-28 Deepthi Nandakumar <deepthi@multicorewareinc.com>
20682 * source/encoder/compress.cpp:
20683 compress: insert check for merge MV candidates.
20684 [7f4537c4db7a] <stable>
20686 2014-01-28 Aarthi Thirumalai (aarthi <Aarthi Thirumalai (aarthi@multicorewareinc.com)>
20688 * source/encoder/ratecontrol.cpp:
20689 rc: bug fix in crf mode ;correct qscale set for all the frames.
20690 [854ff1616d38] <stable>
20692 2014-01-28 Kavitha Sampath <kavitha@multicorewareinc.com>
20694 * source/encoder/weightPrediction.cpp,
20695 source/encoder/weightPrediction.h:
20696 weightP: fix crash due to access of lowres array
20698 fix crash due to access of lowres array of references with invalid
20702 2014-01-28 Steve Borho <steve@borho.org>
20704 * source/common/common.cpp, source/encoder/slicetype.cpp,
20709 * source/encoder/slicetype.cpp:
20710 slicetype: fix initial threshold passed to slicetypePathCost
20711 [ddd4e4e328d2] <stable>
20713 2014-01-27 Satoshi Nakagawa <nakagawa424@oki.com>
20715 * source/Lib/TLibCommon/TComDataCU.cpp,
20716 source/Lib/TLibCommon/TComDataCU.h,
20717 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
20718 source/Lib/TLibCommon/TComTrQuant.cpp,
20719 source/Lib/TLibCommon/TypeDef.h,
20720 source/Lib/TLibEncoder/TEncSbac.cpp,
20721 source/Lib/TLibEncoder/TEncSearch.cpp:
20722 cleanup g_convertTxtTypeToIdx[]
20725 2014-01-28 Deepthi Nandakumar <deepthi@multicorewareinc.com>
20727 * source/encoder/weightPrediction.cpp:
20728 weightP: when difPoc is large, prepare to avoid MC - part 2. Patch
20732 * source/encoder/weightPrediction.cpp:
20733 weightP: when difPoc is large, prepare to avoid MC. Patch from
20737 * source/encoder/frameencoder.cpp:
20738 weightP: build error fix
20740 Inconsistency due to import from stable branch
20744 x265: allow only 10-bit input depths in HIGH_BIT_DEPTh builds
20745 [dd0ef09680fe] <stable>
20747 2014-01-27 Steve Borho <steve@borho.org>
20749 * source/common/common.cpp:
20750 common: prevent 8bit encodes with HIGH_BIT_DEPTH builds
20752 Some of the interpolation 16bpp assembly routines make assumptions
20753 that the encode depth is 10bits, so HIGH_BIT_DEPTH builds will
20754 generally cause decoder hash mismatches if they encode 8bpp streams.
20755 Prevent this until we have a proper long term solution.
20756 [773b87c2855c] <stable>
20758 * source/common/common.cpp, source/encoder/frameencoder.cpp,
20759 source/encoder/weightPrediction.cpp:
20763 * source/encoder/frameencoder.cpp:
20764 frameencoder: remove commented function which no longer exists
20766 compressMotion() was removed 4 months ago
20767 [26a5e720f290] <stable>
20769 * source/common/common.cpp, source/encoder/frameencoder.cpp:
20770 me: add one more pixel lag for DIA search's relaxed search bounds
20771 [dc4e57833aae] <stable>
20773 * source/common/common.cpp:
20774 common: do not allow encodes other than 4:2:0 to start
20775 [10fc60881bbf] <stable>
20777 2014-01-24 Kavitha Sampath <kavitha at multicorewareinc.com> <kavitha at multicorewareinc.com>
20779 * source/encoder/weightPrediction.cpp,
20780 source/encoder/weightPrediction.h:
20781 WeightPrediction: check difPoc <= bframes+1 to allow weight analysis
20782 for valid references
20783 [a02a028afea9] <stable>
20785 2014-01-27 Deepthi Nandakumar <deepthi@multicorewareinc.com>
20787 * source/common/wavefront.h:
20788 wavefront: add missing initializer
20789 [4fcfa56420fb] <stable>
20791 2014-01-24 Min Chen <chenm003@163.com>
20793 * source/common/x86/pixel-a.asm:
20794 fix SATD32x32 16bits cumulate sum overflow (x86 version only)
20795 [83767892376d] <stable>
20797 2014-01-27 Steve Borho <steve@borho.org>
20799 * source/common/common.cpp, source/encoder/frameencoder.cpp:
20803 2014-01-25 Satoshi Nakagawa <nakagawa424@oki.com>
20805 * source/Lib/TLibCommon/ContextTables.h,
20806 source/Lib/TLibEncoder/TEncSbac.cpp:
20810 * source/Lib/TLibCommon/TComMotionInfo.h,
20811 source/Lib/TLibCommon/TComPrediction.cpp,
20812 source/Lib/TLibCommon/TComPrediction.h,
20813 source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
20814 source/Lib/TLibEncoder/TEncSearch.cpp,
20815 source/Lib/TLibEncoder/TEncSearch.h:
20816 cleanup TComCUMvField::m_cAMVPInfo
20819 2014-01-27 Satoshi Nakagawa <nakagawa424@oki.com>
20821 * source/Lib/TLibEncoder/TEncSearch.cpp,
20822 source/Lib/TLibEncoder/TEncSearch.h:
20826 2014-01-26 Satoshi Nakagawa <nakagawa424@oki.com>
20828 * source/Lib/TLibCommon/ContextTables.h,
20829 source/Lib/TLibEncoder/TEncSbac.cpp:
20830 reduce unused context models
20833 2014-01-27 Steve Borho <steve@borho.org>
20835 * source/common/common.cpp, source/encoder/frameencoder.cpp:
20836 me: add a two pixel pad to the max ME range when calculating
20839 We must account for subpel refine search range when calculating how
20840 many rows of reference frames must be encoded ahead of the current
20841 frame. Without this we saw non-deterministic decoder hash mismatches
20843 [b173809575c6] <stable>
20845 2014-01-24 Steve Borho <steve@borho.org>
20847 * source/input/y4m.cpp, source/input/yuv.cpp:
20848 input: add build flag to disable read thread for debug purposes
20849 [1ac9148a3661] <stable>
20851 * Merge with stable
20854 * source/input/yuv.cpp, source/input/yuv.h:
20855 yuv: support colorspaces in YUV input files (closes #13)
20856 [13dac38f54ac] <stable>
20858 * source/input/y4m.cpp, source/input/yuv.cpp:
20859 input: use ifstream::good() instead of !ifstream::fail()
20861 good() implies bad, fail, and eof flags are all false. The fail()
20862 flag does not include eof status or the bad bit for I/O errors.
20863 [dba087c3613b] <stable>
20865 * source/input/y4m.cpp:
20866 y4m: prevent infinite loop on malformed y4m frame headers
20867 [9867ebc4b164] <stable>
20869 2014-01-24 Nabajit Deka <Nabajit Deka>
20871 * source/test/ipfilterharness.cpp:
20872 asm : Fix for luma_vss test bench failure
20875 2014-01-24 Steve Borho <steve@borho.org>
20877 * source/encoder/slicetype.cpp:
20881 * source/encoder/slicetype.cpp:
20882 slicetype: prevent compiler warnings about uninitialized variables
20883 [2a2e5711f63b] <stable>
20885 * source/common/lowres.cpp, source/encoder/slicetype.cpp,
20886 source/encoder/slicetype.h:
20890 2014-01-24 Satoshi Nakagawa <nakagawa424@oki.com>
20892 * source/encoder/slicetype.cpp:
20893 fix b-pyramid for fixed GOP
20894 [ffee1032eaed] <stable>
20896 2014-01-24 Steve Borho <steve@borho.org>
20898 * source/encoder/reference.cpp:
20899 reference: pad width of weighted region to multiple of 16
20900 [2ab2bb459d1a] <stable>
20902 * source/common/lowres.h, source/encoder/slicetype.cpp,
20903 source/encoder/slicetype.h:
20905 [c02e59ab4ee9] <stable>
20907 * source/encoder/slicetype.cpp:
20908 slicetype: fix bcost behavior with signed ints
20909 [0431eb3404e7] <stable>
20911 2014-01-24 Deepthi Nandakumar <deepthi@multicorewareinc.com>
20913 * source/common/lowres.cpp, source/common/lowres.h,
20914 source/encoder/ratecontrol.h, source/encoder/slicetype.cpp,
20915 source/encoder/slicetype.h:
20916 slicetype: change all costs to int64_t
20917 [8dd9b7ac5b61] <stable>
20919 * source/common/common.h:
20923 * source/common/common.h:
20924 lowres: fix msys compile error
20925 [f45d9772cc40] <stable>
20927 2014-01-23 Steve Borho <steve@borho.org>
20929 * source/encoder/slicetype.cpp:
20933 * source/common/lowres.cpp, source/encoder/slicetype.cpp:
20934 white-space and other nits
20937 * source/encoder/slicetype.cpp:
20938 slicetype: repair I frame placement with lookahead disabled
20940 if ((true || foo) && bar) properly degrades to if (bar)
20943 * source/common/common.cpp:
20944 preset: re-disable lookahead at ultrafast preset
20947 * source/encoder/slicetype.cpp, source/encoder/slicetype.h:
20951 * source/common/lowres.cpp, source/common/lowres.h,
20952 source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h,
20953 source/encoder/slicetype.cpp, source/encoder/slicetype.h:
20954 slicetype: upgrade frame cost variables to uint64_t
20955 [629d0a685dcb] <stable>
20957 2014-01-24 Deepthi Nandakumar <deepthi@multicorewareinc.com>
20959 * source/test/pixelharness.cpp:
20960 testbench: added the chroma_addAvg primitives.
20963 2014-01-23 Steve Borho <steve@borho.org>
20965 * source/encoder/slicetype.cpp, source/encoder/slicetype.h:
20966 slicetype: remove unused numDecided member variable
20969 * source/encoder/slicetype.cpp, source/encoder/slicetype.h:
20973 2014-01-21 Steve Borho <steve@borho.org>
20975 * source/common/lowres.h, source/encoder/reference.cpp,
20976 source/encoder/slicetype.cpp, source/encoder/slicetype.h:
20977 slicetype: reorg to make frame cost estimates re-entrant (for RC and
20980 * moves frame cost calculations into a separate class deriving from
20982 * frames[] array now always declared on stack for better re-entrant
20984 * re-orders functions in slicetype.cpp for clarity
20985 * internal methods were made protected, for documentation purposes
20987 * fixes a few minor problems discovered during the reorg
20988 * removes deprecated ReferencePlanes.unweightedFPelPlane
20989 [e9ec7787cf5e] <stable>
20991 2014-01-22 Satoshi Nakagawa <nakagawa424@oki.com>
20993 * source/Lib/TLibCommon/TComPattern.cpp,
20994 source/Lib/TLibCommon/TComPattern.h,
20995 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp:
20996 cleanup initPattern()
20999 2014-01-20 Satoshi Nakagawa <nakagawa424@oki.com>
21001 * source/Lib/TLibCommon/TypeDef.h,
21002 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp:
21006 2014-01-23 Steve Borho <steve@borho.org>
21008 * source/encoder/slicetype.cpp:
21012 * source/encoder/slicetype.cpp:
21013 slicetype: issue EMMS before returning a thread to the work pool
21014 [a42dd0dfe90d] <stable>
21016 * source/common/primitives.h:
21017 primitives: move luma_addAvg close to other weight/avg functions
21020 * source/common/primitives.h:
21021 primitves: fix a comment
21024 * source/common/primitives.h:
21025 primitive: remove two dead funcdefs
21028 * source/common/ipfilter.cpp, source/common/primitives.h,
21029 source/common/x86/asm-primitives.cpp,
21030 source/common/x86/ipfilter8.asm, source/common/x86/ipfilter8.h,
21031 source/test/ipfilterharness.cpp, source/test/ipfilterharness.h:
21032 primitive: remove dead ipfilter_sp and ipfilter_ss
21035 * source/common/ipfilter.cpp, source/common/primitives.h,
21036 source/test/ipfilterharness.cpp, source/test/ipfilterharness.h:
21037 primitive: remove dead ipfilter_ps
21040 * source/test/pixelharness.cpp:
21041 pixelharness: remove dead primitive test
21044 2014-01-23 Nabajit Deka <Nabajit Deka>
21046 * source/Lib/TLibCommon/TComPrediction.cpp:
21047 asm : Hook up chroma_vps and chroma_vss with the encoder.
21050 * source/Lib/TLibCommon/TComPrediction.cpp:
21051 asm : Hook up luma_vps and luma_vss with the encoder.
21054 2014-01-23 Deepthi Nandakumar <deepthi@multicorewareinc.com>
21056 * source/Lib/TLibCommon/TComYuv.cpp, source/common/pixel.cpp,
21057 source/common/primitives.h:
21058 asm-primitives: addAvg, fix bug pointed out by Ashok.
21061 2014-01-22 Steve Borho <steve@borho.org>
21063 * source/common/CMakeLists.txt, source/common/ipfilter.cpp,
21064 source/common/primitives.h, source/common/vec/ipfilter-sse41.cpp,
21065 source/common/vec/vec-primitives.cpp,
21066 source/test/ipfilterharness.cpp:
21067 vec: drop unused vectorized chroma_vsp primitive, ipfilter-sse41.cpp
21070 2014-01-22 Nabajit Deka <Nabajit Deka>
21072 * source/Lib/TLibCommon/TComPrediction.cpp,
21073 source/encoder/weightPrediction.cpp:
21074 asm : Hook up chroma_vsp with the encoder.
21077 2014-01-22 Deepthi Nandakumar <deepthi@multicorewareinc.com>
21079 * Merge from stable
21082 2014-01-22 Kavitha Sampath <kavitha@multicorewareinc.com>
21084 * source/encoder/weightPrediction.cpp:
21085 WeightPrediction: Do not use lowres MV/MVcost for invalid
21087 [9497c55d7be2] <stable>
21089 * source/encoder/weightPrediction.cpp:
21090 weightp: fix hash mismatch when --ref > 3
21091 [d56dd4d8e08b] <stable>
21093 2014-01-21 Steve Borho <steve@borho.org>
21095 * source/encoder/slicetype.cpp:
21099 * source/encoder/slicetype.cpp:
21100 slicetype: fix cuTree mv indexing (bug found by herman.chen@rock-
21103 This drops the bitrate almost 20% and the SSIM from 0.4-0.9 dB. I
21104 believe this needs rebalancing.
21105 [3cf5a75a8002] <stable>
21107 * source/input/yuv.cpp:
21108 yuv: skip frames one at a time to prevent offset overflow
21109 [e12bb1346bef] <stable>
21111 2014-01-21 Deepthi Nandakumar <deepthi@multicorewareinc.com>
21116 2014-01-17 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
21118 * source/common/x86/asm-primitives.cpp,
21119 source/common/x86/intrapred8.asm:
21120 assembly code for intra_pred_ang8_3
21123 2014-01-20 Steve Borho <steve@borho.org>
21126 cli: tweak aq-strength CLI help
21129 * source/encoder/slicetype.cpp:
21130 slicetype: white-space fixes
21133 * source/encoder/encoder.cpp:
21134 encoder: fix the slicetype char table
21137 * Merge with stable
21140 2014-01-20 Gopu Govindaswamy <Gopu Govindaswamy>
21142 * source/Lib/TLibEncoder/NALwrite.cpp:
21143 Nalwrite: removed EMULATION_SIZE macro and calculate the
21144 emulationSize from Encoded bitstream size
21145 [21a5fb7ab965] <stable>
21147 2014-01-17 Aarthi Thirumalai <Aarthi Thirumalai>
21149 * source/encoder/slicetype.cpp, source/encoder/slicetype.h:
21150 rc: avoid issues from zero-residual lookahead blocks, introduce a
21154 * source/encoder/encoder.cpp, source/encoder/slicetype.cpp:
21155 lookahead: call sliceTypeAnalyse when necessary
21157 call sliceTypeAnalyse even when cutree is on or lookaheadDepth or
21158 scenecutThreashold > 0
21160 performs lookahead when lookaheadDepth > 0, activates lookahead for
21161 cutree when b-adapt/bframes =0 and cutree is set , also enables
21162 scenecut for bframes = 0 cases. improves psnr/ssim by .5 dB.
21165 2014-01-20 Deepthi Nandakumar <deepthi@multicorewareinc.com>
21167 * source/common/common.h:
21168 NALwrite: remove unused macro
21171 2014-01-20 Gopu Govindaswamy <Gopu Govindaswamy>
21173 * source/Lib/TLibEncoder/NALwrite.cpp:
21174 Nalwrite: removed EMULATION_SIZE macro and calculate the
21175 emulationSize from Encoded bitstream size
21178 2014-01-17 Min Chen <chenm003@163.com>
21180 * source/common/x86/asm-primitives.cpp,
21181 source/common/x86/intrapred8.asm:
21182 asm: IntraAng32x32 Mode[17]
21185 2014-01-18 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
21187 * source/test/pixelharness.cpp, source/test/pixelharness.h:
21188 testbench support for addAvg primitive
21191 2014-01-17 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
21193 * source/Lib/TLibCommon/TComYuv.cpp, source/common/pixel.cpp,
21194 source/common/primitives.h:
21195 primitive function for luma and chroma for loops in addAvg().
21198 2014-01-09 Shazeb Nawaz Khan <shazeb@multicorewareinc.com>
21200 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
21201 Re-enabling new weightp
21204 2014-01-17 Steve Borho <steve@borho.org>
21206 * source/common/common.cpp:
21207 common: do not report ssim costs by default
21209 It costs CPU cycles to measure SSIM, do not do this unless the user
21210 asks for them with --ssim
21213 * source/common/common.cpp:
21214 common: remove trailing white-space
21217 * source/encoder/encoder.cpp:
21218 white-space fixes, reorder for clarity
21221 * source/encoder/encoder.cpp:
21222 update/fix comments
21225 * source/common/common.cpp, source/encoder/encoder.cpp:
21226 move param fixups to Encoder::configure()
21229 2014-01-15 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
21231 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
21232 source/common/x86/intrapred8.asm:
21233 asm: code for intra_pred[BLOCK_32x32] mode 2 and 34
21236 2014-01-16 Steve Borho <steve@borho.org>
21238 * source/encoder/encoder.cpp:
21239 stats: simplify slice type lookup
21242 2014-01-16 Xun Xu, PPLive Corporation <xunxu@pptv.com>
21244 * source/CMakeLists.txt, source/Lib/TLibCommon/TComPic.h,
21245 source/encoder/encoder.cpp, source/encoder/encoder.h,
21246 source/encoder/slicetype.cpp, source/x265.h:
21247 add dts to x265_picture, handle same as x264
21250 2014-01-16 Steve Borho <steve@borho.org>
21252 * source/Lib/TLibEncoder/TEncSbac.cpp:
21253 TEncSbac: remove hungarian prefixes from loop vars
21256 2014-01-12 Satoshi Nakagawa <nakagawa424@oki.com>
21258 * source/encoder/compress.cpp:
21259 remove duplicate code
21262 2014-01-15 Satoshi Nakagawa <nakagawa424@oki.com>
21264 * source/Lib/TLibCommon/TComTrQuant.h,
21265 source/Lib/TLibEncoder/TEncSbac.cpp:
21269 2014-01-15 Min Chen <chenm003@163.com>
21271 * source/Lib/TLibCommon/TComDataCU.cpp:
21275 2014-01-15 Steve Borho <steve@borho.org>
21281 2013-12-17 Kavitha Sampath <kavitha@multicorewareinc.com>
21283 * source/common/common.cpp, source/encoder/dpb.cpp,
21284 source/encoder/slicetype.cpp, source/x265.cpp, source/x265.h:
21285 slicetype: remove --refresh and use --open-gop(default: enable)
21288 2014-01-14 Steve Borho <steve@borho.org>
21290 * Merge with stable
21293 2014-01-09 Satoshi Nakagawa <nakagawa424@oki.com>
21295 * source/Lib/TLibCommon/TComDataCU.cpp,
21296 source/Lib/TLibCommon/TComDataCU.h,
21297 source/Lib/TLibCommon/TComPrediction.cpp,
21298 source/Lib/TLibEncoder/TEncSearch.cpp:
21302 2014-01-14 Steve Borho <steve@borho.org>
21304 * source/common/wavefront.cpp:
21306 [9e923f539d89] <stable>
21308 2014-01-13 Steve Borho <steve@borho.org>
21310 * source/common/wavefront.cpp:
21311 wavefront: consider enabled bitmap status in
21312 checkHigherPriorityRow()
21313 [8e0fa5fcbf15] <stable>
21315 * source/Lib/TLibCommon/TComYuv.cpp:
21316 TComYuv: pad chroma allocations, fix valgrind warnings
21317 [aae31685d8c7] <stable>
21319 * source/Lib/TLibCommon/TComPicYuv.cpp:
21320 TComPicYuv: add a row and col of padding for lowres interpolation
21321 [8d3cdf1a846e] <stable>
21323 * source/CMakeLists.txt, source/common/CMakeLists.txt:
21324 cmake: tweak order of compiles to improve parallel build times
21326 Move assembly and intrinsic files to front of the build
21329 * Merge with stable
21332 2014-01-13 Min Chen <chenm003@163.com>
21334 * source/Lib/TLibCommon/ContextTables.h:
21335 HM: Fix for #576: Context table for CBF
21336 [c9cefa67691c] <stable>
21338 * source/Lib/TLibCommon/ContextTables.h:
21339 HM: Fix for #501: Decoding part_mode with inter_4x4 can use CNU
21341 [de98453fa608] <stable>
21343 2014-01-09 Shazeb Nawaz Khan <shazeb@multicorewareinc.com>
21345 * source/Lib/TLibCommon/TComSlice.h,
21346 source/encoder/weightPrediction.cpp,
21347 source/encoder/weightPrediction.h:
21348 fix for hash mismatch in new weightp
21349 [cd6c34bb4172] <stable>
21351 2014-01-10 Steve Borho <steve@borho.org>
21353 * Merge with stable
21356 2014-01-09 Murugan Vairavel <murugan@multicorewareinc.com>
21358 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
21359 source/common/x86/intrapred8.asm:
21360 asm: code for intra_pred[BLOCK_16x16] mode 2 and 34
21363 2014-01-09 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
21365 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
21366 source/common/x86/intrapred8.asm:
21367 asm: intra_pred_ang8_2 asm code
21370 2014-01-07 Min Chen <chenm003@163.com>
21372 * source/common/x86/ipfilter8.asm:
21373 improvement interpolate_H_pp
21376 2013-12-28 Min Chen <chenm003@163.com>
21378 * source/Lib/TLibEncoder/TEncEntropy.cpp:
21379 cleanup reduce condition check for getUseDQP()
21380 [a03cc8c4d739] <stable>
21382 2014-01-08 Steve Borho <steve@borho.org>
21384 * source/VectorClass/README.txt, source/VectorClass/instrset.h,
21385 source/VectorClass/vectorclass.h, source/VectorClass/vectori128.h,
21386 source/VectorClass/vectori256.h, source/VectorClass/vectori256e.h,
21387 source/common/vec/ipfilter-ssse3.cpp, source/common/vec/pixel-
21388 sse41.cpp, source/common/vec/pixel-ssse3.cpp,
21389 source/common/vec/pixel16-sse41.cpp,
21390 source/common/x86/intrapred.asm, source/common/x86/pixel-util.asm,
21391 source/test/testpool.cpp:
21392 Merge with default, prepare for 0.7 tag
21393 [0d70188e80bc] <stable>
21395 2014-01-07 Murugan Vairavel <murugan@multicorewareinc.com>
21397 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
21399 asm: fix memory access violation due to scale2D_64to32
21402 2014-01-07 Min Chen <chenm003@163.com>
21404 * source/common/x86/ipfilter8.asm:
21405 correct number of xmm register on interp_8tap_horiz*
21408 2014-01-06 Steve Borho <steve@borho.org>
21410 * source/Lib/TLibCommon/TComPrediction.cpp:
21411 TComPrediction: simplify luma intra prediction function
21414 * source/Lib/TLibCommon/TComPrediction.cpp:
21415 wtf? a useless comment and if()/else() with two identical
21419 * source/Lib/TLibCommon/TComBitStream.cpp:
21420 TComBitStream: fix loop bounds so we do not check past end of buffer
21424 ignore vim swap files
21427 * source/Lib/TLibCommon/TComBitStream.cpp:
21428 TComBitstream: simplify and streamline start code checks
21431 * source/Lib/TLibCommon/TComBitStream.cpp:
21432 TComBitStream: rename variables for clarity
21434 There was no point making cnt an unsigned variable when the return
21435 value is signed, this just adds more compiler warnings
21438 * source/encoder/motion.cpp:
21439 motion: add early out for subpel refine if bcost is already zero
21442 * source/encoder/slicetype.cpp:
21443 slicetype: better prevention for compiler warnings and misbehaviors
21446 * source/common/x86/asm-primitives.cpp:
21447 asm: disable x265_scale2D_64to32_ssse3, DUMA finds access violations
21449 I tried simple buffer padding workarounds, adding 16 bytes at the
21450 start and end of bufScale, but it was still causing the access
21454 2014-01-01 Steve Borho <steve@borho.org>
21456 * source/Lib/TLibCommon/TComSlice.h:
21460 * source/encoder/weightPrediction.cpp:
21461 weight: clarify max denom adjustments
21464 * source/encoder/weightPrediction.cpp:
21468 * source/encoder/weightPrediction.cpp:
21469 weight: alloc intermediate weight buffer once per plane
21472 * source/encoder/weightPrediction.cpp,
21473 source/encoder/weightPrediction.h:
21474 weight: use m_ prefix consistently for all member variables
21477 * source/encoder/weightPrediction.h:
21478 weightPrediction: remove unused member variables, fix shadow warning
21481 2014-01-06 Min Chen <chenm003@163.com>
21483 * source/encoder/frameencoder.cpp:
21484 fix every execute output different bitstream when SAO enabled
21487 2014-01-03 Steve Borho <steve@borho.org>
21489 * source/input/y4m.cpp:
21490 y4m: use loop to skip frames, avoid 32bit size wrap problems
21493 2014-01-02 Deepthi Nandakumar <deepthi@multicorewareinc.com>
21495 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
21496 Backed out changeset: revert to HM-based weightP
21499 2013-12-30 Shazeb Nawaz Khan <shazeb@multicorewareinc.com>
21501 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
21502 Integrating new weight analysis in encoder
21505 * source/encoder/CMakeLists.txt, source/encoder/weightPrediction.cpp,
21506 source/encoder/weightPrediction.h:
21507 Importing x264 weight analysis to encoder
21510 * source/encoder/slicetype.cpp, source/encoder/slicetype.h:
21511 Moving macro to header
21514 2013-12-30 Aarthi Thirumalai <Aarthi Thirumalai>
21516 * source/encoder/ratecontrol.cpp:
21517 rc: bug fix to improve quality for the first I frame.
21520 2013-12-30 Deepthi Nandakumar <deepthi@multicorewareinc.com>
21522 * source/common/common.cpp:
21523 common: tune-ssim sets aqmode as AUTO_VARIANCE (2). Gives higher
21527 2013-12-27 Aarthi Thirumalai <Aarthi Thirumalai>
21529 * source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp:
21530 cutree: bug fixes. correct the timescale used in getQScale()
21533 2013-12-27 Deepthi Nandakumar <deepthi@multicorewareinc.com>
21535 * source/common/common.cpp:
21536 aq, cutree: completely turn of AQ, at fastest presets
21538 Prevent AQ from running unnecessarily with strength 0.
21541 * source/common/common.cpp:
21542 aq, cutree: preset changes
21544 1. Disable AQ at ultrafast/superfast presets 2. Disable CUTree at
21545 ultrafast/superfast/veryfast/faster presets (requires b-adapt to be
21546 non-zero). 3. tune-psnr disables only AQ, CUtree stays enabled (at
21547 appropriate presets).
21550 2013-12-26 Murugan Vairavel <murugan@multicorewareinc.com>
21552 * source/common/x86/blockcopy8.asm:
21553 asm: fix for mismatch in 10bpp block copy
21556 2013-12-24 Aarthi Thirumalai <Aarthi Thirumalai>
21558 * source/common/common.cpp, source/encoder/ratecontrol.cpp,
21559 source/encoder/ratecontrol.h, source/x265.h:
21560 aq: Add AQ_AUTO_VARIANCE feature for performing adaptive
21564 2013-12-25 Deepthi Nandakumar <deepthi@multicorewareinc.com>
21566 * source/encoder/encoder.cpp, source/x265.cpp:
21570 2013-12-24 Deepthi Nandakumar <deepthi@multicorewareinc.com>
21572 * source/encoder/encoder.cpp:
21573 csv: formatting ssim output
21576 * source/common/common.cpp, source/x265.cpp:
21577 common: change tune-ssim to default. When tune-psnr is enabled, AQ
21578 and CUTree are turned off.
21581 2013-12-23 Deepthi Nandakumar <deepthi@multicorewareinc.com>
21583 * source/encoder/encoder.cpp:
21584 encoder: increase precision, add ssim db info to csv output.
21587 * source/common/common.cpp:
21588 common: [OUTPUT CHANGES]: change default ratecontrol mode to CRF-28.
21589 AQ on (strength 1.0), CUTree ON. SSIM reporting On, PSNR off.
21592 2013-12-18 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
21594 * source/encoder/compress.cpp:
21598 * source/encoder/compress.cpp:
21599 rd: fix incorrect check for rdlevel
21601 Merge-skip check should be only for rdlevel 2
21604 * source/encoder/compress.cpp:
21605 rd: modify recon generation in rd 0 to have lesser mem copies
21608 * source/Lib/TLibCommon/TComDataCU.cpp:
21609 rd: remove unnecessary mem copies
21612 2013-12-17 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
21614 * source/encoder/compress.cpp:
21618 * source/encoder/compress.cpp:
21619 rd: move merge-skip check before other modes are checked
21621 in rd 1,0 merge-skip is chosen only based on sa8d threshols.
21622 Checking other Inter/inter modes is unnecessary overhead.
21625 * source/encoder/compress.cpp:
21626 rd: fix error in merge-skip identfication in rd 1,0
21628 Cost was not calculated if the best mode is merge-skip in rd 1,0
21631 * source/encoder/compress.cpp:
21632 compress: remove unused sbaccoder load
21635 * source/encoder/compress.cpp:
21636 compress: remove redundant initializations
21638 depth is already initialized in initsubcu
21641 * source/encoder/compress.cpp:
21642 compress: remove unnecessary code
21644 reco and resi buffers is not used in this function
21647 * source/encoder/compress.cpp:
21648 compress: remove redundant initializations
21650 skipFlags are set to false during initialization.
21653 * source/encoder/compress.cpp:
21654 rd: check DQP before best cu is copied to the pic in rd 0
21657 * source/Lib/TLibCommon/TComDataCU.cpp, source/encoder/compress.cpp:
21658 rd: remove redundant checkDQP and add checkDQP for rd 0
21660 checkDQP is called on bestCU, so no need to call it after each
21661 encode. For rd0, call checkDQP after residual encode at depth 0.
21664 2013-12-19 Shazeb Nawaz Khan <shazeb@multicorewareinc.com>
21666 * source/encoder/ratecontrol.cpp:
21667 Consider rounded width, height for ssd calculation
21670 * source/Lib/TLibCommon/TComPicYuv.cpp:
21671 Fix typo in extending height to round to multiple of 16
21674 2013-12-18 Gopu Govindaswamy <gopu@multicorewareinc.com>
21676 * source/encoder/encoder.cpp, source/x265.cpp, source/x265.h:
21677 encoder: print global ssim in db
21680 2013-12-18 Rafaël Carré <funman@videolan.org>
21682 * source/CMakeLists.txt:
21683 cmake: .pc file is useful as well when using static libs
21686 * source/cmake/version.cmake:
21687 cmake: take revision from git if within a git repo
21690 * source/cmake/version.cmake:
21691 cmake: verify existance of hg repo
21694 2013-12-18 Deepthi Nandakumar <deepthi@multicorewareinc.com>
21696 * source/common/common.cpp:
21697 common: tune-ssim turns on aq strength
21700 * source/common/common.cpp:
21701 common: adjust tabs
21704 * source/common/common.cpp:
21705 common: update print params and defaults.
21707 By default, tune-psnr is turned on, which means CUTree is enabled
21708 but AQ strength is zero.
21711 * source/common/common.cpp:
21712 common: this check taken care of in encoder::configure()
21715 * source/common/common.cpp:
21716 common: enable CUtree by default. tune=psnr is the default setting
21719 * source/common/common.cpp:
21720 common: remove meaningless warning
21722 aq=1 is required for cutree. Therefore, aq=1, aqstrength=0 is a
21723 valid case for all configs that want cutree but do not want aq (eg,
21727 * source/encoder/encoder.cpp:
21728 encoder: increase precision for SSIM printf
21731 2013-12-18 Gopu Govindaswamy <gopu@multicorewareinc.com>
21733 * source/common/common.cpp, source/encoder/ratecontrol.cpp,
21734 source/encoder/slicetype.cpp, source/x265.cpp:
21735 cutree: Enable CUTree for ratecontrol when tune=ssim and bug fix for
21738 1. added cutree into cli option, default cutree is disabled 2.
21739 --tune=ssim then aq and cutree is enabled 3. Fixed bug in slicetype-
21740 frameCostRecalculate() the qp offset for B and B-REF from lowres
21741 qpAqOffset, for non-B from lowres qpoffset 4. Fixed bug in
21742 Ratecontrol-getQScale - the clip duration should (frameduration *
21743 timescale) when cutree is enabled
21746 2013-12-17 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
21748 * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp:
21749 rd: remove unnecessary sbaccoder loads
21752 * source/Lib/TLibEncoder/TEncSearch.cpp:
21753 rd: fix wrong chroma mode used for mode decision
21756 2013-12-16 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
21758 * source/Lib/TLibEncoder/TEncSearch.cpp:
21759 rd level: use cu coeff array while computing Intra coefficients
21760 instead of temp buffer
21763 2013-12-17 Min Chen <chenm003@163.com>
21765 * source/common/x86/intrapred8.asm:
21766 fix yasm warning 'trailing garbage after expression'
21769 * source/common/x86/pixel-util8.asm:
21770 fix crash in pixel_var_16x16_internal, because
21771 RateControl::acEnergyCu() call it with unalignment pointer
21774 2013-12-17 Gopu Govindaswamy <gopu@multicorewareinc.com>
21776 * source/encoder/ratecontrol.cpp:
21777 rc: bug fix for variance data calculation for weighted prediction
21778 when aq-mode is disable
21781 2013-12-17 Deepthi Nandakumar <deepthi@multicorewareinc.com>
21783 * source/common/vec/vec-primitives.cpp:
21784 vec-primitives: avoid warnings
21787 * source/Lib/TLibCommon/TComSlice.cpp:
21788 TComSlice: correct initialization list order (warnings on non-VS
21792 2013-12-16 Gopu Govindaswamy <gopu@multicorewareinc.com>
21794 * source/encoder/ratecontrol.cpp:
21795 rc: Calculate the variance data for weighted prediction if aq-mode
21799 2013-12-16 Sumalatha Polureddy <Sumalatha Polureddy>
21801 * source/encoder/compress.cpp:
21802 compress: remove unused variables
21805 2013-12-16 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
21807 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp:
21808 rd level: use cu coeff array while computing coefficients instead of
21812 2013-12-16 Sumalatha Polureddy <Sumalatha Polureddy>
21814 * source/encoder/compress.cpp:
21815 rd level: fix for output mismatch
21817 For boundary conditions, cost calculation was wrong.
21820 2013-12-16 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
21822 * source/Lib/TLibEncoder/TEncSearch.cpp:
21823 rd level: remove unnecessary calculations in intra residual encoding
21825 calcrecon calculates recon,reconQT and reconIpred which is
21826 redundant. Use add and block copy instead of calcrecon.
21829 2013-12-16 Sumalatha Polureddy <Sumalatha Polureddy>
21831 * source/Lib/TLibCommon/TComDataCU.cpp:
21832 TComDataCU: fix gcc warning
21835 * source/Lib/TLibEncoder/TEncCu.h:
21836 TEncCu: reintroduce a macro which was removed while merging
21839 2013-12-11 Praveen Tiwari <Praveen Tiwari>
21841 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
21842 source/common/x86/intrapred8.asm:
21843 all_angs_pred_8x8, asm code
21846 2013-12-16 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
21848 * source/Lib/TLibEncoder/TEncSearch.cpp:
21849 TEncSearch: fix gcc warning
21851 remove unused variables and shadowed declarations
21854 2013-12-13 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
21856 * source/encoder/compress.cpp:
21860 * source/encoder/compress.cpp:
21861 rd level: modify mode-decision logic for rd level 0
21863 In rd level 0, sa8d cost used for mode decision across depths.
21864 dct,quant is not done during mode-decision and no recon is
21865 generated. Hence Intra has to use original pixels as reference.
21866 Residual encoding is done at depth 0 and Intra prediction for the
21867 best mode will be done again with recon as reference.
21870 * source/Lib/TLibCommon/TComDataCU.cpp,
21871 source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibEncoder/TEncCu.h,
21872 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp:
21873 rd level: add functions to do residual encoding at depth 0 for best
21876 This function will be used for rd level 0.
21879 2013-12-13 Gopu Govindaswamy <gopu@multicorewareinc.com>
21881 * source/common/common.cpp, source/common/lowres.cpp,
21882 source/encoder/ratecontrol.cpp:
21883 rc: Initialized qp and aq offsets and QscaleFactor if aqmode is
21884 disabled these variables need for cutree analyse
21887 * source/encoder/slicetype.cpp, source/encoder/slicetype.h:
21888 Slicetype: recalculate the frame cost without re-running lookahead
21892 2013-12-14 Deepthi Nandakumar <deepthi@multicorewareinc.com>
21894 * source/output/yuv.cpp:
21898 * source/output/yuv.cpp:
21899 yuv: fix more 32-bit compile warnings
21900 [bca251133e70] <stable>
21902 2013-12-13 Steve Borho <steve@borho.org>
21904 * source/output/yuv.cpp:
21908 * source/output/yuv.cpp:
21909 yuv: prevent 32bit compiler warnings
21910 [14e9dbedab9d] <stable>
21912 2013-12-12 Steve Borho <steve@borho.org>
21914 * source/output/y4m.cpp:
21915 y4m: perform file offset math in uint64_t
21918 2013-12-13 Aarthi Thirumalai <Aarthi Thirumalai>
21920 * source/Lib/TLibCommon/TComSlice.cpp,
21921 source/Lib/TLibCommon/TComSlice.h, source/encoder/frameencoder.cpp,
21922 source/encoder/ratecontrol.cpp:
21923 rc: implement ratecontrol upto MAX_MAX_QP.
21925 For RateControl .virtual qps are used from 0 till 69. Howevr,Before
21926 encoding the frame, the qps are clipped back to 51
21929 * source/Lib/TLibCommon/CommonDef.h,
21930 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h:
21931 rc: Initialize virtual qps till 69
21934 2013-12-12 Shazeb Nawaz Khan <shazeb@multicorewareinc.com>
21936 * source/Lib/TLibEncoder/WeightPredAnalysis.cpp:
21937 Fix for deltaWeight assert failure in Decoder
21940 2013-12-13 Deepthi Nandakumar <deepthi@multicorewareinc.com>
21942 * source/encoder/compress.cpp:
21943 Merge: changes outputs
21946 2013-12-12 Sumalatha Polureddy <Sumalatha Polureddy>
21948 * source/encoder/compress.cpp:
21949 rd level: fix the incorrect cost calculation for sa8d
21951 In rd level 1, the distortion is sa8d, so cost calculation should be
21952 calrdsadcost() instead of calcrdcost()
21955 * source/encoder/compress.cpp:
21956 rd level: remove the redundant splitflag bit calculation with EARLY
21960 * source/encoder/compress.cpp:
21961 rd level: change the indexing for sa8d threshold array
21963 The index in threshold array won't be same as depth when the max cu
21964 size is less than 64.
21967 2013-12-13 Deepthi Nandakumar <deepthi@multicorewareinc.com>
21969 * source/encoder/compress.cpp:
21970 compress: review/clean up top_skip
21973 * source/encoder/compress.cpp:
21974 compress: review/clean up merge
21977 2013-12-12 Steve Borho <steve@borho.org>
21979 * source/output/yuv.cpp:
21983 2013-12-12 David Bachelart <david.bachelart@bbright.com>
21985 * source/output/yuv.cpp:
21986 yuv: Support 4GB+ YUV files for output
21987 [06e88ad6d922] <stable>
21989 2013-12-11 Steve Borho <steve@borho.org>
21991 * source/common/CMakeLists.txt, source/common/ipfilter.cpp,
21992 source/common/primitives.h, source/common/vec/ipfilter-ssse3.cpp,
21993 source/common/vec/vec-primitives.cpp:
21994 primitives: drop ipfilter[FILTER_H_P_S_[4|8], including ipfilter-
21998 * source/common/x86/pixel-a.asm:
22002 * source/common/x86/pixel-a.asm:
22003 ssd: backport EMMS fix for SSD_4xN
22004 [d2385a789c8a] <stable>
22006 2013-12-11 Nabajit Deka <nabajit@multicorewareinc.com>
22008 * source/Lib/TLibCommon/TComPrediction.cpp:
22009 asm : Hook up chroma_hps with encoder.
22012 2013-12-11 Murugan Vairavel <murugan@multicorewareinc.com>
22014 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
22015 util.h, source/common/x86/pixel-util8.asm:
22016 asm: 10bpp code for calcrecon_16x16 and 32x32
22019 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
22021 asm: 10bpp code for calcrecon_4x4 and 8x8
22024 2013-12-11 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
22026 * source/test/intrapredharness.cpp:
22027 testbench: fix invalid memory compare for 16bpp primitives
22030 2013-12-11 Murugan Vairavel <murugan@multicorewareinc.com>
22032 * source/test/pixelharness.cpp:
22033 asm: 10bpp test bench code for calcrecon
22036 2013-12-11 Min Chen <chenm003@163.com>
22038 * source/common/x86/intrapred16.asm:
22039 asm: remove reduce operators in intra_pred_planar32
22042 2013-12-11 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
22044 * source/common/x86/intrapred16.asm:
22045 asm: fix hash mismatch in intra_pred_planar_32x32 16bpp
22048 2013-12-11 Min Chen <chenm003@163.com>
22050 * source/common/x86/ssd-a.asm:
22051 asm: fix miss EMMS in pixel_ssd_ss_4xN
22054 2013-12-11 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
22056 * source/common/x86/intrapred16.asm:
22057 asm: fix hash miss match due to intra_pred_ang4_17
22060 2013-12-10 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
22062 * source/common/x86/asm-primitives.cpp,
22063 source/common/x86/intrapred16.asm:
22064 16bpp: assembly code for intra_pred_planar_32x32
22067 * source/common/x86/intrapred16.asm:
22068 assembly code for intra_pred_planar_16x16 for 10 and 12-bit
22071 2013-12-11 Gopu Govindaswamy <gopu@multicorewareinc.com>
22073 * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/lowres.cpp:
22074 tcomtrquant: when useRDOQ is disabled, it recomputes qpScaled, the
22075 qpScaled for trQuant is already set
22078 2013-12-10 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
22080 * source/Lib/TLibEncoder/TEncSearch.cpp,
22081 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp:
22082 rdlevel: implement rdlevel 1
22084 At each depth, dct, quant, iquant, idct is done on best mode. No RD
22085 done during TU selection. Recon is generated for intra prediction in
22086 neighbouring quadtree is not broken
22089 * source/Lib/TLibEncoder/TEncSearch.cpp,
22090 source/Lib/TLibEncoder/TEncSearch.h:
22091 add functions for Intra residual transform and quantization without
22095 * source/Lib/TLibEncoder/TEncSearch.cpp,
22096 source/Lib/TLibEncoder/TEncSearch.h:
22097 add function for Inter residual tranform and quantization without RD
22100 * source/Lib/TLibEncoder/TEncSearch.cpp,
22101 source/Lib/TLibEncoder/TEncSearch.h:
22102 TEncSearch: remove unused functions
22105 2013-12-11 Kavitha Sampath <kavitha@multicorewareinc.com>
22107 * source/Lib/TLibEncoder/TEncCu.cpp:
22108 log: fix memory overread issue
22111 2013-12-11 Deepthi Nandakumar <deepthi@multicorewareinc.com>
22113 * source/CMakeLists.txt, source/Lib/TLibEncoder/TEncCu.cpp,
22114 source/Lib/TLibEncoder/TEncCu.h, source/encoder/encoder.cpp,
22115 source/encoder/frameencoder.cpp:
22116 cmake: Add LOG_CU_STATISTICS macro to enable/disable CU mode
22117 decision statistics.
22120 2013-12-10 Steve Borho <steve@borho.org>
22122 * source/encoder/motion.cpp:
22126 * source/common/x86/intrapred16.asm:
22127 intra: fix 64bit build of intrapred16.asm - Min please review
22130 2013-12-10 Deepthi Nandakumar <deepthi@multicorewareinc.com>
22135 2013-12-10 Murugan Vairavel <murugan@multicorewareinc.com>
22137 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
22138 util.h, source/common/x86/pixel-util8.asm:
22139 asm: 10bpp code for calcresidual_16x16 and 32x32
22142 2013-12-10 Nabajit Deka <nabajit@multicorewareinc.com>
22144 * source/Lib/TLibCommon/TComPrediction.cpp, source/encoder/motion.cpp:
22145 asm : Hook up luma_hps with the encoder.
22148 * source/test/ipfilterharness.cpp:
22149 Add comment for luma_hps and chroma_hps test bench code.
22152 2013-12-10 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
22154 * source/common/x86/asm-primitives.cpp, source/common/x86/const-a.asm,
22155 source/common/x86/intrapred16.asm:
22156 asm: 16bpp asm code for intra_pred_ang4 - mode 17,18
22159 2013-12-10 Murugan Vairavel <murugan@multicorewareinc.com>
22161 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
22163 asm: 10bpp code for calcresidual_4x4 and 8x8
22166 2013-12-10 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
22168 * source/common/x86/asm-primitives.cpp,
22169 source/common/x86/intrapred16.asm:
22170 asm: 16bpp asm code for intra_pred_ang4 - mode 14,15,16
22173 2013-12-10 Murugan Vairavel <murugan@multicorewareinc.com>
22175 * source/common/x86/asm-primitives.cpp:
22176 asm: 10bpp support for blockcopy_ps and blockcopy_sp
22179 2013-12-10 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
22181 * source/common/x86/asm-primitives.cpp,
22182 source/common/x86/intrapred16.asm:
22183 asm: 16bpp asm code for intra_pred_ang4 - mode 11,12,13
22186 2013-12-10 Murugan Vairavel <murugan@multicorewareinc.com>
22188 * source/common/x86/asm-primitives.cpp:
22189 asm: 10bpp blockcopy_ps integration for Luma and chroma partitions
22192 2013-12-10 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
22194 * source/common/x86/asm-primitives.cpp,
22195 source/common/x86/intrapred16.asm:
22196 asm: 16bpp code for intra_pred_ang4_26
22199 2013-12-10 Murugan Vairavel <murugan@multicorewareinc.com>
22201 * source/common/x86/asm-primitives.cpp,
22202 source/common/x86/blockcopy8.asm:
22203 asm: 10bpp code for blockcopy_ps_64xN
22206 * source/common/x86/blockcopy8.asm:
22207 asm: 10bpp blockcopy_ps bug fix
22210 2013-12-10 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
22212 * source/common/x86/asm-primitives.cpp, source/common/x86/const-a.asm,
22213 source/common/x86/intrapred16.asm:
22214 asm: 16bpp asm code for intra_pred_ang4_10
22217 2013-12-10 Murugan Vairavel <murugan@multicorewareinc.com>
22219 * source/common/x86/asm-primitives.cpp,
22220 source/common/x86/blockcopy8.asm:
22221 asm: 10bpp code for blockcopy_ps_48x64
22224 * source/common/x86/asm-primitives.cpp,
22225 source/common/x86/blockcopy8.asm:
22226 asm: 10bpp code for blockcopy_ps_32xN
22229 * source/common/x86/asm-primitives.cpp,
22230 source/common/x86/blockcopy8.asm:
22231 asm: 10bpp code for blockcopy_ps_24x32
22234 2013-12-10 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
22236 * source/common/x86/asm-primitives.cpp:
22237 16bpp: enabled blockfill_s primitive
22240 2013-12-10 Murugan Vairavel <murugan@multicorewareinc.com>
22242 * source/common/x86/asm-primitives.cpp,
22243 source/common/x86/blockcopy8.asm:
22244 asm: 10bpp code for blockcopy_ps_16xN
22247 2013-12-10 Nabajit Deka <nabajit@multicorewareinc.com>
22249 * source/common/ipfilter.cpp:
22250 Bug fix in luma_hps C primitive.
22253 2013-12-10 Murugan Vairavel <murugan@multicorewareinc.com>
22255 * source/common/x86/blockcopy8.asm:
22256 asm: 10bpp code for bolckcopy_ps_12x16
22259 * source/common/x86/asm-primitives.cpp:
22260 asm: pixel_add_ps integration code for Luma and chroma partitions
22263 2013-12-10 Min Chen <chenm003@163.com>
22265 * source/test/intrapredharness.cpp, source/test/intrapredharness.h:
22266 testbench: fix wrong width parameter in check_planar_primitive()
22269 * source/common/x86/asm-primitives.cpp,
22270 source/common/x86/intrapred16.asm:
22271 asm: Intra Planar 16x16
22274 * rename IntraPred.cpp to intrapred.cpp to avoid name conflict
22277 * source/common/x86/intrapred16.asm:
22278 asm: improvement IntraPredDC_32x32 by replace macro extend by loop
22281 2013-12-09 Murugan Vairavel <murugan@multicorewareinc.com>
22283 * source/common/x86/asm-primitives.cpp,
22284 source/common/x86/blockcopy8.asm:
22285 asm: 10bpp code of blockcopy_pp for 2xN, 4xN, 6x8 and 8xN blocks
22288 2013-12-09 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
22290 * source/common/x86/asm-primitives.cpp,
22291 source/common/x86/intrapred16.asm:
22292 asm: 16bpp asm code for intra_pred_ang4_8 and intra_pred_ang4_9
22295 * source/common/x86/asm-primitives.cpp,
22296 source/common/x86/intrapred16.asm:
22297 asm: 16bpp asm code for intra_pred_ang4_7
22300 2013-12-10 Min Chen <chenm003@163.com>
22302 * source/common/x86/intrapred16.asm:
22303 asm: alignment branch to 16 bytes
22306 2013-12-10 Kavitha Sampath <kavitha@multicorewareinc.com>
22308 * source/Lib/TLibEncoder/TEncCu.cpp:
22309 log: fix crash caused by logging after CU analysis
22312 2013-12-09 Steve Borho <steve@borho.org>
22314 * Merge with stable
22317 2013-12-03 Steve Borho <steve@borho.org>
22319 * source/Lib/TLibCommon/ContextTables.h,
22320 source/Lib/TLibEncoder/TEncSbac.cpp:
22321 sbac: move global tables into x265 namespace
22322 [7d4f5cbc68e7] <stable>
22324 2013-12-09 Steve Borho <steve@borho.org>
22326 * source/encoder/ratecontrol.cpp:
22330 * source/encoder/ratecontrol.cpp:
22331 ratecontrol: avoid reads past the end of chroma buffers
22332 [67e711fde921] <stable>
22334 * source/common/vec/dct-ssse3.cpp:
22335 dct: drop intrinsic DCT 8x8 primitive, we have asm coverage
22338 * source/encoder/ratecontrol.cpp:
22339 ratecontrol: make weightp analysis aware of colorspaces
22342 * source/Lib/TLibEncoder/TEncSearch.cpp:
22346 2013-12-09 Shazeb Nawaz Khan <shazeb@multicorewareinc.com>
22348 * source/encoder/ratecontrol.cpp:
22349 Use correct width/height for chroma in ssd calculation
22352 2013-12-09 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
22354 * source/common/x86/asm-primitives.cpp,
22355 source/common/x86/intrapred16.asm:
22356 asm: 16bpp asm code for intra_pred_ang4_6
22359 * source/common/x86/asm-primitives.cpp,
22360 source/common/x86/intrapred16.asm:
22361 asm: 16bpp asm code for intra_pred_ang4_5
22364 2013-12-09 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
22366 * source/common/x86/asm-primitives.cpp,
22367 source/common/x86/intrapred16.asm:
22368 16bpp: assembly code for intra_planar8
22371 * source/common/x86/asm-primitives.cpp,
22372 source/common/x86/intrapred16.asm:
22373 16bpp: assembly code for intra_planar4
22376 2013-12-09 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
22378 * source/common/x86/asm-primitives.cpp,
22379 source/common/x86/intrapred16.asm:
22380 asm: 16bpp asm code for intra_pred_ang4_4
22383 * source/common/x86/asm-primitives.cpp,
22384 source/common/x86/intrapred16.asm:
22385 asm: 16bpp support for intra_pred_ang4_3
22388 2013-12-09 Murugan Vairavel <murugan@multicorewareinc.com>
22390 * source/common/x86/pixeladd8.asm:
22391 asm: 10bpp code for pixel_add_ps_6x8
22394 * source/common/x86/asm-primitives.cpp,
22395 source/common/x86/pixeladd8.asm:
22396 asm: 10bpp code for pixel_add_ps_64xN
22399 2013-12-09 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
22401 * source/common/x86/asm-primitives.cpp, source/common/x86/const-a.asm,
22402 source/common/x86/intrapred16.asm:
22403 asm: 16bpp asm code for intra_pred_ang4_2
22406 2013-12-09 Min Chen <chenm003@163.com>
22408 * source/common/x86/intrapred8.asm:
22409 asm: little improvement(pextrd -> movd, jmp to alignlemt address)
22412 2013-12-09 Murugan Vairavel <murugan@multicorewareinc.com>
22414 * source/common/x86/asm-primitives.cpp,
22415 source/common/x86/pixeladd8.asm:
22416 asm: 10bpp code for pixel_add_ps_48x64
22419 * source/common/x86/asm-primitives.cpp,
22420 source/common/x86/pixeladd8.asm:
22421 asm: 10bpp code for pixel_add_ps_32xN
22424 * source/common/x86/asm-primitives.cpp,
22425 source/common/x86/pixeladd8.asm:
22426 asm: 10bpp code for pixel_add_ps_24x32
22429 * source/common/x86/asm-primitives.cpp,
22430 source/common/x86/pixeladd8.asm:
22431 asm: 10bpp code for pixel_add_ps_16xN
22434 * source/common/x86/asm-primitives.cpp,
22435 source/common/x86/pixeladd8.asm:
22436 asm: 10bpp code for pixel_add_ps_12x16
22439 * source/common/x86/asm-primitives.cpp,
22440 source/common/x86/pixeladd8.asm:
22441 asm: 10bpp code for pixel_add_ps_8xN
22444 2013-12-09 Deepthi Nandakumar <deepthi@multicorewareinc.com>
22447 x265: fix bad merge
22454 2013-12-09 Min Chen <chenm003@163.com>
22456 * source/test/pixelharness.cpp:
22457 fix bug: avg_pp use weight 32
22460 * source/common/x86/asm-primitives.cpp, source/common/x86/const-a.asm,
22461 source/common/x86/dct8.asm, source/common/x86/dct8.h:
22462 asm: assembly code for DCT8x8
22465 2013-12-07 Murugan Vairavel <murugan@multicorewareinc.com>
22467 * source/common/x86/asm-primitives.cpp,
22468 source/common/x86/pixeladd8.asm:
22469 asm: 10bpp code for pixel_add_ps_4xN
22472 2013-12-07 Min Chen <chenm003@163.com>
22474 * source/test/testpool.cpp:
22478 2013-12-06 Steve Borho <steve@borho.org>
22483 2013-12-06 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
22485 * source/Lib/TLibCommon/TComPrediction.cpp,
22486 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/IntraPred.cpp,
22487 source/common/primitives.h, source/common/x86/asm-primitives.cpp,
22488 source/common/x86/intrapred.h, source/common/x86/intrapred8.asm,
22489 source/encoder/compress.cpp, source/encoder/slicetype.cpp,
22490 source/test/intrapredharness.cpp, source/test/intrapredharness.h:
22491 cleanup: merge Intra Pred PLANAR mode into intra_pred[]
22494 2013-12-06 Min Chen <chenm003@163.com>
22496 * rename IntraPred.cpp to intrapred.cpp
22499 2013-12-06 Murugan Vairavel <murugan@multicorewareinc.com>
22501 * source/common/x86/asm-primitives.cpp,
22502 source/common/x86/pixeladd8.asm:
22503 asm: 10bpp code for pixel_add_ps_2xN
22506 * source/test/pixelharness.cpp:
22507 10bpp: testbench code for pixel_add_ps
22510 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
22511 util.h, source/common/x86/pixel-util8.asm:
22512 asm: 10bpp code of pixel_sub for 16xN, 24x32, 32xN,48x64 and 64xN
22515 2013-12-06 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
22517 * source/common/x86/asm-primitives.cpp,
22518 source/common/x86/intrapred16.asm:
22519 16bpp: assembly code for intra_pred_dc32
22522 * source/common/x86/asm-primitives.cpp,
22523 source/common/x86/intrapred16.asm:
22524 16bpp: assembly code for intra_pred_dc16
22527 * source/common/x86/asm-primitives.cpp,
22528 source/common/x86/intrapred16.asm:
22529 16bpp: assembly code for intra_pred_dc8
22532 * source/common/CMakeLists.txt, source/common/x86/asm-primitives.cpp,
22533 source/common/x86/const-a.asm, source/common/x86/intrapred16.asm:
22534 16bpp: assembly code for intra_pred_dc4
22537 2013-12-06 Min Chen <chenm003@163.com>
22539 * source/common/x86/intrapred8.asm:
22540 asm: cleanup garbage after fucntion declare
22543 2013-12-06 Deepthi Nandakumar <deepthi@multicorewareinc.com>
22546 x265: remove obsolete R-D enums
22550 rc params: documentation on i/p/bfactor, qpstep, crf
22554 ratecontrol params: documentation for rateTolerance
22558 ratecontrol parameters: add documentation for qcomp
22561 2013-12-05 Steve Borho <steve@borho.org>
22563 * source/test/CMakeLists.txt, source/test/testpool.cpp:
22564 cmake: drop pool test; not seriously used since May
22567 * source/CMakeLists.txt:
22568 cmake: add ENABLE_SHARED cmake option, default to ON
22570 Allow MSVC users to opt-out; to roughly halve the compile time.
22571 Clean up a few nits in the process.
22574 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
22575 source/encoder/encoder.cpp:
22576 TEncCu: coding style, lower case initial letter for totalCu
22579 * source/CMakeLists.txt:
22580 cmake: bump X265_BUILD post 0.6, since x265_param has changed
22583 * source/CMakeLists.txt, source/common/CMakeLists.txt,
22584 source/common/cpu.cpp, source/common/primitives.cpp,
22585 source/common/primitives.h, source/common/vec/vec-primitives.cpp,
22586 source/test/TestBench.cpp:
22587 cmake: rename ENABLE_PRIMITIVES_ASM to ENABLE_ASSEMBLY
22589 And use the same name for the build define. Also, rename
22590 Setup_Vector_Primitives() to Setup_Instrinsic_Primitives()
22593 * source/CMakeLists.txt, source/common/CMakeLists.txt,
22594 source/common/primitives.cpp, source/test/TestBench.cpp:
22595 cmake: remove ENABLE_PRIMITIVES_VEC build option
22597 The use of the few remaining compiler intrinsic functions is now
22598 unconditional. Compiler detection will remove them cleanly in case
22599 they cannot be compiled, so there is no reason to make them a top
22603 * source/Lib/TLibCommon/CommonDef.h, source/common/IntraPred.cpp,
22604 source/common/primitives.h, source/common/vec/intra-ssse3.cpp,
22605 source/test/intrapredharness.cpp, source/test/intrapredharness.h:
22606 primitives: cleanup intra prediction table dimensions
22609 * source/common/CMakeLists.txt:
22610 cmake: move asm-primitives.cpp and asm headers into VS source group
22612 A cosmetic change only
22615 * source/encoder/compress.cpp:
22619 2013-12-05 Praveen Tiwari <praveen@multicorewareinc.com>
22621 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
22622 source/common/x86/intrapred8.asm, source/test/intrapredharness.cpp:
22623 all_angs_pred_4x4, asm code for all modes
22626 2013-12-05 Murugan Vairavel <murugan@multicorewareinc.com>
22628 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
22630 asm: 10bpp code for pixel_sub_12x16
22633 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
22635 asm: 10bpp code for pixel_sub_8xN
22638 2013-12-05 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
22640 * source/common/x86/asm-primitives.cpp, source/common/x86/sad16-a.asm:
22641 asm: 16bpp support for sad_x4 - all block sizes
22644 2013-12-05 Murugan Vairavel <murugan@multicorewareinc.com>
22646 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
22648 asm: 10bpp code for pixel_sub_6x8
22651 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
22653 asm: 10bpp code for pixel_sub_4xN
22656 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
22657 util.h, source/common/x86/pixel-util8.asm:
22658 asm: 10bpp code for pixel_sub_2xN
22661 2013-12-05 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
22663 * source/common/x86/asm-primitives.cpp, source/common/x86/sad16-a.asm:
22664 asm: 16bpp support for sad_x3 - all block sizes
22667 2013-12-05 Murugan Vairavel <murugan@multicorewareinc.com>
22669 * source/common/x86/asm-primitives.cpp:
22670 asm: primitives of sse_ss for 12x16, 24x32, 48x64 and 64xN blocks
22673 2013-12-05 Min Chen <chenm003@163.com>
22675 * source/common/x86/intrapred8.asm:
22676 improvement by remove reduce ADD instruction in intra_pred_dc16
22679 * source/Lib/TLibCommon/TComPrediction.cpp,
22680 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/IntraPred.cpp,
22681 source/common/primitives.h, source/common/vec/intra-ssse3.cpp,
22682 source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
22683 source/common/x86/intrapred8.asm, source/encoder/compress.cpp,
22684 source/encoder/slicetype.cpp, source/test/intrapredharness.cpp,
22685 source/test/intrapredharness.h:
22686 cleanup:merge Intra Pred DC mode into intra_pred[]
22689 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
22690 source/common/x86/intrapred8.asm:
22691 asm: assembly code for IntraPredAng4x4 Mode 18
22694 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
22695 source/common/x86/intrapred8.asm:
22696 asm: assembly code for IntraPredAng4x4 Mode 17 & 19
22699 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
22700 source/common/x86/intrapred8.asm:
22701 asm: assembly code for IntraPredAng4x4 Mode 16 & 20
22704 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
22705 source/common/x86/intrapred8.asm:
22706 asm: assembly code for IntraPredAng4x4 Mode 15 & 21
22709 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
22710 source/common/x86/intrapred8.asm:
22711 asm: assembly code for IntraPredAng4x4 Mode 14 & 22
22714 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
22715 source/common/x86/intrapred8.asm:
22716 asm: assembly code for IntraPredAng4x4 Mode 13 & 23
22719 * source/test/intrapredharness.cpp:
22720 testbench: swap order to call asm code
22722 Our old intra_pred_ang algorithm will fill buffer before input pLeft
22723 and pabove, in this time, the offset [-1] pixel equal to [4], it
22724 affect detect asm code error, so I swap the order
22727 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
22728 source/common/x86/intrapred8.asm:
22729 asm: assembly code for IntraPredAng4x4 Mode 12 & 24
22732 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
22733 source/common/x86/intrapred8.asm:
22734 asm: assembly code for IntraPredAng4x4 Mode 11 & 25
22737 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
22738 source/common/x86/intrapred8.asm, source/test/intrapredharness.cpp:
22739 asm: improvement intra_pred_ang by SSE4(pextrd,pextrb)
22742 2013-12-05 Murugan Vairavel <murugan@multicorewareinc.com>
22744 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
22746 asm: 10bpp code for scale2D_64to32 routine
22749 2013-12-05 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
22751 * source/common/primitives.cpp:
22752 integrating asm code for sa8d in primitives.cpp
22754 there was no separate functions for sa8d in assembly, we are just
22755 re-using sa8d_inter functions for sa8d.
22758 2013-12-05 Min Chen <chenm003@163.com>
22760 * source/common/vec/intra-ssse3.cpp:
22761 cleanup unused array intra_ang4[]
22767 2013-12-04 Nabajit Deka <nabajit@multicorewareinc.com>
22769 * source/common/x86/ipfilter8.h:
22770 Function declarations for modified luma_hps and chroma_hps
22774 * source/common/primitives.h, source/test/ipfilterharness.cpp,
22775 source/test/ipfilterharness.h:
22776 Test bench code for luma_hps and chroma_hps
22779 * source/common/ipfilter.cpp:
22780 C primitive changes for luma_hps and chroma_hps.
22783 * source/common/x86/ipfilter8.asm:
22784 asm : Modifications for luma_hps and chroma_hps(extra rows)
22787 2013-12-05 Min Chen <chenm003@163.com>
22789 * source/Lib/TLibCommon/TComPrediction.cpp,
22790 source/common/IntraPred.cpp, source/common/primitives.h,
22791 source/common/vec/intra-ssse3.cpp, source/common/x86/asm-
22792 primitives.cpp, source/common/x86/intrapred.h,
22793 source/test/intrapredharness.cpp, source/test/intrapredharness.h:
22794 asm: simplify code by use intra_pred_ang[][], and avoid build error
22798 * rename IntraPred.cpp to intrapred.cpp to avoid team's hg merge
22802 2013-12-07 Steve Borho <steve@borho.org>
22804 * source/test/testbench.cpp:
22805 testbench: remove long-since idiotic comment
22808 * source/CMakeLists.txt, source/common/CMakeLists.txt,
22809 source/common/cpu.cpp, source/common/primitives.cpp,
22810 source/test/testbench.cpp:
22811 cmake: simplify use of ENABLE_ASSEMBLY build define
22813 The define is only needed in primitives.cpp. Move all of the CPU
22814 detect fallback code together in primitives.cpp making cpu.cpp more
22815 standalone. Make the testbench only build if the assembly code is
22819 2013-12-07 Deepthi Nandakumar <deepthi@multicorewareinc.com>
22822 rc params: complete documentation for rc params in x265.h
22825 2013-12-06 Steve Borho <steve@borho.org>
22830 2013-12-06 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
22832 * source/Lib/TLibCommon/TComPrediction.cpp,
22833 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/intrapred.cpp,
22834 source/common/primitives.h, source/common/x86/asm-primitives.cpp,
22835 source/common/x86/intrapred.h, source/common/x86/intrapred8.asm,
22836 source/encoder/compress.cpp, source/encoder/slicetype.cpp,
22837 source/test/intrapredharness.cpp, source/test/intrapredharness.h:
22838 cleanup: merge Intra Pred PLANAR mode into intra_pred[]
22841 2013-12-06 Min Chen <chenm003@163.com>
22843 * rename IntraPred.cpp to intrapred.cpp
22846 2013-12-06 Murugan Vairavel <murugan@multicorewareinc.com>
22848 * source/common/x86/asm-primitives.cpp,
22849 source/common/x86/pixeladd8.asm:
22850 asm: 10bpp code for pixel_add_ps_2xN
22853 * source/test/pixelharness.cpp:
22854 10bpp: testbench code for pixel_add_ps
22857 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
22858 util.h, source/common/x86/pixel-util8.asm:
22859 asm: 10bpp code of pixel_sub for 16xN, 24x32, 32xN,48x64 and 64xN
22862 2013-12-06 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
22864 * source/common/x86/asm-primitives.cpp,
22865 source/common/x86/intrapred16.asm:
22866 16bpp: assembly code for intra_pred_dc32
22869 * source/common/x86/asm-primitives.cpp,
22870 source/common/x86/intrapred16.asm:
22871 16bpp: assembly code for intra_pred_dc16
22874 * source/common/x86/asm-primitives.cpp,
22875 source/common/x86/intrapred16.asm:
22876 16bpp: assembly code for intra_pred_dc8
22879 * source/common/CMakeLists.txt, source/common/x86/asm-primitives.cpp,
22880 source/common/x86/const-a.asm, source/common/x86/intrapred16.asm:
22881 16bpp: assembly code for intra_pred_dc4
22884 2013-12-06 Min Chen <chenm003@163.com>
22886 * source/common/x86/intrapred8.asm:
22887 asm: cleanup garbage after fucntion declare
22890 2013-12-06 Deepthi Nandakumar <deepthi@multicorewareinc.com>
22893 x265: remove obsolete R-D enums
22897 rc params: documentation on i/p/bfactor, qpstep, crf
22901 ratecontrol params: documentation for rateTolerance
22905 ratecontrol parameters: add documentation for qcomp
22908 2013-12-05 Steve Borho <steve@borho.org>
22910 * source/test/CMakeLists.txt, source/test/testpool.cpp:
22911 cmake: drop pool test; not seriously used since May
22914 * source/CMakeLists.txt:
22915 cmake: add ENABLE_SHARED cmake option, default to ON
22917 Allow MSVC users to opt-out; to roughly halve the compile time.
22918 Clean up a few nits in the process.
22921 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
22922 source/encoder/encoder.cpp:
22923 TEncCu: coding style, lower case initial letter for totalCu
22926 * source/CMakeLists.txt:
22927 cmake: bump X265_BUILD post 0.6, since x265_param has changed
22930 * source/CMakeLists.txt, source/common/CMakeLists.txt,
22931 source/common/cpu.cpp, source/common/primitives.cpp,
22932 source/common/primitives.h, source/common/vec/vec-primitives.cpp,
22933 source/test/testbench.cpp:
22934 cmake: rename ENABLE_PRIMITIVES_ASM to ENABLE_ASSEMBLY
22936 And use the same name for the build define. Also, rename
22937 Setup_Vector_Primitives() to Setup_Instrinsic_Primitives()
22940 * source/CMakeLists.txt, source/common/CMakeLists.txt,
22941 source/common/primitives.cpp, source/test/testbench.cpp:
22942 cmake: remove ENABLE_PRIMITIVES_VEC build option
22944 The use of the few remaining compiler intrinsic functions is now
22945 unconditional. Compiler detection will remove them cleanly in case
22946 they cannot be compiled, so there is no reason to make them a top
22950 * source/Lib/TLibCommon/CommonDef.h, source/common/intrapred.cpp,
22951 source/common/primitives.h, source/common/vec/intra-ssse3.cpp,
22952 source/test/intrapredharness.cpp, source/test/intrapredharness.h:
22953 primitives: cleanup intra prediction table dimensions
22956 * source/common/CMakeLists.txt:
22957 cmake: move asm-primitives.cpp and asm headers into VS source group
22959 A cosmetic change only
22962 * source/encoder/compress.cpp:
22966 2013-12-05 Praveen Tiwari <praveen@multicorewareinc.com>
22968 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
22969 source/common/x86/intrapred8.asm, source/test/intrapredharness.cpp:
22970 all_angs_pred_4x4, asm code for all modes
22973 2013-12-05 Murugan Vairavel <murugan@multicorewareinc.com>
22975 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
22977 asm: 10bpp code for pixel_sub_12x16
22980 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
22982 asm: 10bpp code for pixel_sub_8xN
22985 2013-12-05 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
22987 * source/common/x86/asm-primitives.cpp, source/common/x86/sad16-a.asm:
22988 asm: 16bpp support for sad_x4 - all block sizes
22991 2013-12-05 Murugan Vairavel <murugan@multicorewareinc.com>
22993 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
22995 asm: 10bpp code for pixel_sub_6x8
22998 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
23000 asm: 10bpp code for pixel_sub_4xN
23003 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
23004 util.h, source/common/x86/pixel-util8.asm:
23005 asm: 10bpp code for pixel_sub_2xN
23008 2013-12-05 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
23010 * source/common/x86/asm-primitives.cpp, source/common/x86/sad16-a.asm:
23011 asm: 16bpp support for sad_x3 - all block sizes
23014 2013-12-05 Murugan Vairavel <murugan@multicorewareinc.com>
23016 * source/common/x86/asm-primitives.cpp:
23017 asm: primitives of sse_ss for 12x16, 24x32, 48x64 and 64xN blocks
23020 2013-12-05 Min Chen <chenm003@163.com>
23022 * source/common/x86/intrapred8.asm:
23023 improvement by remove reduce ADD instruction in intra_pred_dc16
23026 * source/Lib/TLibCommon/TComPrediction.cpp,
23027 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/intrapred.cpp,
23028 source/common/primitives.h, source/common/vec/intra-ssse3.cpp,
23029 source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
23030 source/common/x86/intrapred8.asm, source/encoder/compress.cpp,
23031 source/encoder/slicetype.cpp, source/test/intrapredharness.cpp,
23032 source/test/intrapredharness.h:
23033 cleanup:merge Intra Pred DC mode into intra_pred[]
23036 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
23037 source/common/x86/intrapred8.asm:
23038 asm: assembly code for IntraPredAng4x4 Mode 18
23041 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
23042 source/common/x86/intrapred8.asm:
23043 asm: assembly code for IntraPredAng4x4 Mode 17 & 19
23046 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
23047 source/common/x86/intrapred8.asm:
23048 asm: assembly code for IntraPredAng4x4 Mode 16 & 20
23051 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
23052 source/common/x86/intrapred8.asm:
23053 asm: assembly code for IntraPredAng4x4 Mode 15 & 21
23056 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
23057 source/common/x86/intrapred8.asm:
23058 asm: assembly code for IntraPredAng4x4 Mode 14 & 22
23061 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
23062 source/common/x86/intrapred8.asm:
23063 asm: assembly code for IntraPredAng4x4 Mode 13 & 23
23066 * source/test/intrapredharness.cpp:
23067 testbench: swap order to call asm code
23069 Our old intra_pred_ang algorithm will fill buffer before input pLeft
23070 and pabove, in this time, the offset [-1] pixel equal to [4], it
23071 affect detect asm code error, so I swap the order
23074 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
23075 source/common/x86/intrapred8.asm:
23076 asm: assembly code for IntraPredAng4x4 Mode 12 & 24
23079 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
23080 source/common/x86/intrapred8.asm:
23081 asm: assembly code for IntraPredAng4x4 Mode 11 & 25
23084 * source/common/x86/asm-primitives.cpp, source/common/x86/intrapred.h,
23085 source/common/x86/intrapred8.asm, source/test/intrapredharness.cpp:
23086 asm: improvement intra_pred_ang by SSE4(pextrd,pextrb)
23089 2013-12-05 Murugan Vairavel <murugan@multicorewareinc.com>
23091 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
23093 asm: 10bpp code for scale2D_64to32 routine
23096 2013-12-05 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
23098 * source/common/primitives.cpp:
23099 integrating asm code for sa8d in primitives.cpp
23101 there was no separate functions for sa8d in assembly, we are just
23102 re-using sa8d_inter functions for sa8d.
23105 2013-12-05 Min Chen <chenm003@163.com>
23107 * source/common/vec/intra-ssse3.cpp:
23108 cleanup unused array intra_ang4[]
23114 2013-12-04 Nabajit Deka <nabajit@multicorewareinc.com>
23116 * source/common/x86/ipfilter8.h:
23117 Function declarations for modified luma_hps and chroma_hps
23121 * source/common/primitives.h, source/test/ipfilterharness.cpp,
23122 source/test/ipfilterharness.h:
23123 Test bench code for luma_hps and chroma_hps
23126 * source/common/ipfilter.cpp:
23127 C primitive changes for luma_hps and chroma_hps.
23130 * source/common/x86/ipfilter8.asm:
23131 asm : Modifications for luma_hps and chroma_hps(extra rows)
23134 2013-12-05 Min Chen <chenm003@163.com>
23136 * source/Lib/TLibCommon/TComPrediction.cpp,
23137 source/common/intrapred.cpp, source/common/primitives.h,
23138 source/common/vec/intra-ssse3.cpp, source/common/x86/asm-
23139 primitives.cpp, source/common/x86/intrapred.h,
23140 source/test/intrapredharness.cpp, source/test/intrapredharness.h:
23141 asm: simplify code by use intra_pred_ang[][], and avoid build error
23145 * rename IntraPred.cpp to intrapred.cpp to avoid team's hg merge
23149 2013-12-04 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
23151 * source/encoder/compress.cpp:
23152 rdlevel: skip Intra if inter/merge sa8d less than a threshold
23154 In higher rdlevels Intra is skipped if inter/merge cu cbf is 0. A
23155 threshold of sa8d expects that cu cbf will be 0. Thresholds have to
23156 be refined further.
23159 * source/encoder/compress.cpp:
23160 rdlevel: compare Merge-skip(merge2Nx2N with no residue) to best
23161 among inter/intra/merge in rdlevel 2
23164 * source/encoder/compress.cpp:
23165 rdlevel: Add code for rdlevel 2
23167 Use signalling bits + sa8d cost to choose best among
23168 inter/merge/intra. Encode only best mode at each depth.
23171 * source/encoder/compress.cpp:
23172 Enable topskip and earlyexit for all rd levels <= 4 (output changes
23173 for presets faster than "slow")
23175 Also use the encodeResandCalcRDInter instead of the refactored
23179 2013-12-05 Steve Borho <steve@borho.org>
23181 * source/encoder/encoder.cpp:
23182 encoder: fix warning of potentially unused locals
23186 cli: fix final stat line handling of optional PSNR and SSIM stats
23189 2013-12-05 Kavitha Sampath <kavitha@multicorewareinc.com>
23191 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
23192 source/encoder/compress.cpp, source/encoder/encoder.cpp:
23193 log: collect statistics after CU analysis
23195 Report percentage of CU blocks encoded at each depth of P/B slice as
23199 2013-12-05 Steve Borho <steve@borho.org>
23201 * source/common/x86/pixel-a.asm:
23202 pixel-a: fix x64 calling convention for several HEVC satd functions
23204 Bug fix from Min Chen
23207 2013-12-04 Steve Borho <steve@borho.org>
23209 * source/CMakeLists.txt:
23210 cmake: use -DHAVE_ALIGNED_STACK=1 when building asm for Xcode
23212 This matches the command line we use in the Makefile, and prevents
23213 stack corruption when debugging within Xcode
23216 * source/CMakeLists.txt:
23217 cmake: workaround to allow Xcode 5 to link x265 CLI app
23220 * source/encoder/encoder.cpp:
23221 encoder: remove trailing white-space
23224 * source/test/ipfilterharness.cpp:
23228 * source/test/ipfilterharness.cpp:
23229 ipfilterharness: do not test chroma for i400 color space
23231 Because, umh, it doesn't have any chroma channels
23234 * source/CMakeLists.txt, source/VectorClass/README.txt,
23235 source/VectorClass/instrset.h, source/VectorClass/vectorclass.h,
23236 source/VectorClass/vectori128.h, source/VectorClass/vectori256.h,
23237 source/VectorClass/vectori256e.h, source/common/CMakeLists.txt,
23238 source/common/vec/intra-ssse3.cpp, source/common/vec/ipfilter-
23239 sse41.cpp, source/common/vec/pixel16-sse41.cpp, source/common/vec
23240 /vec-primitives.cpp:
23241 remove Agner Fog's vector classes and their last few users
23243 We'll take a step back for HIGH_BIT_DEPTH perf for a few days, but
23244 these functions are all expected to have assembly coverage soon.
23245 This allows us to remove a few hacks from our cmake scripts as well.
23248 * source/common/vec/pixel16-sse41.cpp:
23249 vec: drop 16bpp sad vector intrinsics, we have ASM coverage
23255 2013-12-04 Min Chen <chenm003@163.com>
23257 * source/test/pixelharness.cpp:
23258 fix crash in ssim_end testbench, the x264 support 10bpp only, but
23259 testbench use 12bpp
23262 2013-12-04 Murugan Vairavel <murugan@multicorewareinc.com>
23264 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
23266 asm: 10bpp code for scale1D_128to64 module
23269 2013-12-04 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
23271 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
23272 asm: 16bpp support for sa8d_64xN
23275 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
23276 asm: 16bpp support for sa8d_32xN
23279 2013-12-04 Murugan Vairavel <murugan@multicorewareinc.com>
23281 * source/common/pixel.cpp, source/common/x86/asm-primitives.cpp:
23282 asm: 10bpp code for enabling ssim_end_4
23285 2013-12-04 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
23287 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
23288 asm: 16bpp support for sa8d - 24x32 and 48x64
23291 2013-12-04 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
23293 * source/common/x86/const-a.asm, source/common/x86/intrapred8.asm:
23294 asm: move constant to const-a.asm
23297 2013-12-04 Murugan Vairavel <murugan@multicorewareinc.com>
23299 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
23301 asm: 10bpp code for transpose 64x64
23304 2013-12-04 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
23306 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
23307 asm: 16bpp asm code for pixel_sa8d_16xN
23310 2013-12-04 Murugan Vairavel <murugan@multicorewareinc.com>
23312 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
23314 asm: 10bpp code for transpose 32x32
23317 2013-12-04 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
23319 * source/common/x86/asm-primitives.cpp:
23320 16bpp: enabled avt32to16_shr and cvt16to32_shl assembly code
23323 2013-12-04 Murugan Vairavel <murugan@multicorewareinc.com>
23325 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
23327 asm: 10bpp code for transpose 16x16
23330 2013-12-04 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
23332 * source/common/CMakeLists.txt, source/common/x86/asm-primitives.cpp,
23333 source/common/x86/sad16-a.asm:
23334 16bpp: assembly code for sad_NxN functions
23337 2013-12-04 Min Chen <chenm003@163.com>
23339 * source/common/vec/intra-ssse3.cpp, source/common/x86/intrapred.h,
23340 source/common/x86/intrapred8.asm:
23341 asm: assembly code for IntraPredAng4x4 Mode 26
23344 * source/common/vec/intra-ssse3.cpp, source/common/x86/intrapred.h,
23345 source/common/x86/intrapred8.asm:
23346 asm: assembly code for IntraPredAng4x4 Mode 10
23349 * source/common/vec/intra-ssse3.cpp, source/common/x86/intrapred.h,
23350 source/common/x86/intrapred8.asm:
23351 asm: assembly code for IntraPredAng4x4 Mode 9 & 27
23354 * source/common/vec/intra-ssse3.cpp, source/common/x86/intrapred.h,
23355 source/common/x86/intrapred8.asm:
23356 asm: assembly code for IntraPredAng4x4 Mode 8 & 28
23359 * source/common/vec/intra-ssse3.cpp, source/common/x86/intrapred.h,
23360 source/common/x86/intrapred8.asm:
23361 asm: assembly code for IntraPredAng4x4 Mode 7 & 29
23364 * source/common/vec/intra-ssse3.cpp, source/common/x86/intrapred.h,
23365 source/common/x86/intrapred8.asm:
23366 asm: assembly code for IntraPredAng4x4 Mode 6 & 30
23369 * source/common/vec/intra-ssse3.cpp, source/common/x86/intrapred.h,
23370 source/common/x86/intrapred8.asm:
23371 asm: assembly code for IntraPredAng4x4 Mode 5 & 31
23374 * source/common/x86/intrapred8.asm:
23375 asm: ALIGN branch target to improvement performance
23378 * source/common/vec/intra-ssse3.cpp, source/common/x86/intrapred.h,
23379 source/common/x86/intrapred8.asm:
23380 asm: assembly code for IntraPredAng4x4 Mode 4 & 32
23383 2013-12-03 Steve Borho <steve@borho.org>
23385 * source/Lib/TLibCommon/ContextTables.h,
23386 source/Lib/TLibEncoder/TEncSbac.cpp:
23387 sbac: move global tables into x265 namespace
23390 * source/Lib/TLibCommon/TComPrediction.cpp:
23391 TComPrediction: remove obsolete argument comment
23394 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/x86/asm-
23395 primitives.cpp, source/encoder/compress.cpp:
23400 Added tag 0.6 for changeset b970ffbdd696
23401 [6b7550eed359] <stable>
23403 * source/common/x86/asm-primitives.cpp:
23404 asm: fix for icpc build
23405 [b970ffbdd696] [0.6] <stable>
23407 * source/common/vec/intra-sse41.cpp, source/common/vec/intra-
23409 vec: use square block size enums
23412 * source/common/CMakeLists.txt, source/common/vec/pixel-sse41.cpp,
23413 source/common/vec/vec-primitives.cpp:
23414 vec: remove pixel-sse41.cpp, we have full 8bpp pixelcmp coverage in
23418 * source/Lib/TLibEncoder/TEncSearch.cpp:
23419 tskip: temporary workaround for heap corruption
23421 When tskip is enabled and tu-intra-depth is > 1 and --ctu is 64, we
23422 often see heap corruption when the encoder is destroyed. Disabling
23423 transform-skip on chroma seems to be an effective workaround until
23424 we can find a proper fix.
23425 [8e107ce14b43] <stable>
23427 2013-12-03 Aarthi Thirumalai <Aarthi Thirumalai>
23429 * source/encoder/compress.cpp:
23430 aq: bug fix for hash mismatch between recon with decoded output
23431 [c541804106c7] <stable>
23433 2013-12-03 Steve Borho <steve@borho.org>
23435 * source/encoder/ratecontrol.cpp:
23436 partial backout of 9cfe20b782da
23438 Aarthi was correct, getSliceType() returns an HM SliceType enum.
23439 Five lines above this it was testing whether getSliceType() ==
23442 It is far less than optimal that we have two sets of slice type
23443 definitions, but we have to be careful not to mix them up.
23446 2013-12-03 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
23448 * source/common/vec/intra-sse41.cpp:
23449 fix 16bpp build fail due to intra-sse41.cpp
23452 2013-12-03 Steve Borho <steve@borho.org>
23454 * source/common/vec/intra-sse41.cpp:
23455 Backed out changeset: 8a3bb3ecf8f6
23461 2013-12-03 Murugan Vairavel <murugan@multicorewareinc.com>
23463 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
23465 asm: 10bpp code for transpose 4x4 and 8x8
23468 2013-12-03 Min Chen <chenm003@163.com>
23473 2013-12-03 Murugan Vairavel <murugan@multicorewareinc.com>
23475 * source/common/x86/ssd-a.asm:
23476 asm: 10bpp code for pixel_sse_pp for 12x16, 24x32 and 64xN
23479 2013-12-03 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
23481 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
23482 asm: pixel_satd_32xN for 16bpp
23485 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
23486 asm: pixel_satd_64xN for 16bpp
23489 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
23490 asm: pixel_satd - 12x16, 24x32, 48x64 for 16bpp
23493 2013-12-03 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
23495 * source/common/x86/sad-a.asm:
23496 asm: pixel_sad_64xN reduce large code size
23499 2013-12-03 Murugan Vairavel <murugan@multicorewareinc.com>
23501 * source/common/x86/ssd-a.asm:
23502 asm: 10bpp fix for alignment in sse_ss routine
23505 2013-12-03 Min Chen <chenm003@163.com>
23507 * source/common/vec/intra-ssse3.cpp, source/common/x86/const-a.asm,
23508 source/common/x86/intrapred.h, source/common/x86/intrapred8.asm,
23509 source/test/intrapredharness.cpp:
23510 asm: assembly code for IntraPredAng4x4 Mode 3 & 33
23513 * source/common/x86/const-a.asm, source/common/x86/dct8.asm:
23514 asm: support IDCT4-10bpp
23517 * source/common/vec/intra-ssse3.cpp, source/common/x86/intrapred8.asm,
23518 source/test/intrapredharness.cpp:
23519 asm: intra_pred_ang Mode 34
23522 * source/common/x86/blockcopy8.asm:
23523 asm: fix xmm register error in cvt16to32_shl
23526 2013-12-02 Murugan Vairavel <murugan@multicorewareinc.com>
23528 * source/common/x86/asm-primitives.cpp:
23529 asm: 10bpp support to sse_ss for 8xN, 16xN and 32xN blocks
23532 2013-12-02 Min Chen <chenm003@163.com>
23534 * source/common/x86/mc-a.asm, source/common/x86/mc.h:
23535 asm: fix miss avg_64x32
23538 2013-12-02 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
23540 * source/common/x86/asm-primitives.cpp, source/common/x86/mc-a.asm:
23541 16bpp: assembly code for pixelavg_pp
23544 2013-12-02 Murugan Vairavel <murugan@multicorewareinc.com>
23546 * source/common/vec/intra-sse41.cpp:
23547 fix: bug in inra-sse41.cpp
23550 2013-12-02 Min Chen <chenm003@163.com>
23552 * source/common/vec/intra-ssse3.cpp, source/common/x86/intrapred.h,
23553 source/common/x86/intrapred8.asm:
23554 asm: assembly code for IntraPredAng4x4 Mode 2
23557 * source/common/primitives.h:
23558 fixup proto of intra_pred_ang_t
23561 2013-12-03 Min Chen <chenm003@163.com>
23563 * source/test/pixelharness.cpp:
23564 testbench: increment buffer size to avoid crash in check_pixeladd_ss
23567 2013-12-03 Aarthi Thirumalai <Aarthi Thirumalai>
23569 * source/encoder/compress.cpp:
23570 aq: bug fix for hash mismatch between recon with decoded output
23573 2013-12-03 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
23575 * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp,
23576 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/common.cpp,
23577 source/encoder/cturow.cpp, source/encoder/encoder.cpp,
23578 source/x265.cpp, source/x265.h:
23579 define new rdlevels, default presets changed accordingly.
23581 levels 6,5 equivalent to current rd 2, 4 equivalent to current rd 1,
23582 and rest equivalent to rd 0. More parameters will be added to
23583 distinguish each levels.
23586 * source/encoder/encoder.cpp:
23587 Move rdoQTS initialization after rdoQ is set.
23590 2013-12-02 Gopu Govindaswamy <gopu@multicorewareinc.com>
23592 * source/common/common.cpp, source/encoder/ratecontrol.cpp,
23593 source/encoder/ratecontrol.h, source/encoder/slicetype.cpp:
23594 cuTree: integrated CuTree into RateControl and Added b-references
23598 2013-12-03 Deepthi Nandakumar <deepthi@multicorewareinc.com>
23600 * source/Lib/TLibEncoder/TEncSearch.cpp:
23601 heap corruption: temporarily disable tskip in chroma.
23603 Temporary fix for the crash caused by enabling tskip in chroma.
23606 2013-12-02 Steve Borho <steve@borho.org>
23608 * source/common/TShortYUV.cpp, source/common/TShortYUV.h,
23609 source/common/vec/intra-sse41.cpp, source/input/y4m.cpp:
23613 * source/input/y4m.cpp:
23614 y4m: initialize colorSpace to avoid crashes after failing to parse
23616 [40f9842972da] <stable>
23618 * source/common/vec/intra-sse41.cpp:
23619 vec: disable allangs 32x32 intrinsic primitive for clang
23621 clang seems to compile it ok, and the testbench passes, but it
23622 causes runtime exceptions when used within the encoder.
23623 [353a34a5d35f] <stable>
23625 * source/common/TShortYUV.cpp, source/common/TShortYUV.h:
23626 Backed out changeset: 5df643257054
23628 This was causing memory corruption when --tskip and --rd=2 were used
23629 together. It needs to be further investigated and fixed on the
23631 [c2911115b79a] <stable>
23633 * source/common/x86/pixel-a.asm, source/common/x86/pixel.h:
23634 asm: make it more clear that pixel-a.asm has only satd and sa8d now
23637 * source/common/CMakeLists.txt, source/common/x86/pixel-a.asm,
23638 source/common/x86/ssd-a.asm:
23639 asm: move ssd functions into their own ssd-a.asm file, similar to
23643 * source/common/x86/pixel-a.asm, source/common/x86/pixel-util.h,
23644 source/common/x86/pixel-util8.asm, source/common/x86/pixel.h:
23645 asm: move variance functions to pixel-util8.asm
23648 * source/common/x86/mc.h, source/common/x86/pixel-a.asm,
23649 source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm,
23650 source/common/x86/pixel.h:
23651 asm: move pixel_sub to pixel-util8.asm, move pixel_avg funcdef to
23655 * source/common/x86/pixel-a.asm:
23656 pixel: remove an unused macro
23659 * source/common/x86/pixel-a.asm, source/common/x86/pixel-util.h,
23660 source/common/x86/pixel-util8.asm, source/common/x86/pixel.h:
23661 asm: move scale functions to pixel-util
23664 * source/common/x86/pixel-a.asm, source/common/x86/pixel-util.h,
23665 source/common/x86/pixel-util8.asm, source/common/x86/pixel.h:
23666 asm: move SSIM functions to pixel-util
23669 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
23670 source/common/x86/pixel-util.h, source/common/x86/pixel-util8.asm,
23671 source/common/x86/pixel.h:
23672 asm: move transpose from pixel-a.asm to pixel-util8.asm, add pixel-
23676 * source/common/x86/pixel.h:
23677 asm: remove more unused funcdefs from pixel.h
23680 * source/common/x86/blockcopy8.asm, source/common/x86/pixel-util8.asm:
23681 asm: move cvt* functions to blockcopy8.asm
23684 * source/encoder/frameencoder.cpp, source/encoder/ratecontrol.cpp:
23685 rc: fixups for cutree changes
23688 2013-12-02 Murugan Vairavel <murugan@multicorewareinc.com>
23690 * source/common/x86/pixel.h:
23691 asm: removed unused function defnitions from pixel.h
23694 2013-12-02 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
23696 * source/common/x86/pixel.h, source/common/x86/sad-a.asm:
23697 cleanup: removed unused code from sad-a.asm
23700 2013-12-02 Steve Borho <steve@borho.org>
23702 * source/common/pixel.cpp:
23703 picel: fix compile error from older gcc
23706 * source/common/CMakeLists.txt:
23707 cmake: fix Win64 vector primitive compile flags
23710 * Merge with stable
23713 2013-12-02 Shazeb Nawaz Khan <shazeb@multicorewareinc.com>
23715 * source/Lib/TLibEncoder/WeightPredAnalysis.cpp:
23716 fix for the number of weighted references exceeding 8 in HM weight
23718 [bf778de26451] <stable>
23720 2013-12-02 Gopu Govindaswamy <gopu@multicorewareinc.com>
23722 * source/encoder/slicetype.cpp, source/encoder/slicetype.h:
23723 slicetype: fix for gcc warnings
23726 2013-12-02 Murugan Vairavel <murugan@multicorewareinc.com>
23728 * source/common/x86/pixel-a.asm:
23729 asm: removed unused code from pixel-a.asm
23732 2013-12-02 Steve Borho <steve@borho.org>
23734 * source/common/pixel.cpp:
23735 pixel: fix 16bpp warnings that were previously hidden by cmake rules
23738 2013-12-02 Gopu Govindaswamy <gopu@multicorewareinc.com>
23740 * source/common/common.cpp, source/common/lowres.cpp,
23741 source/common/lowres.h, source/encoder/frameencoder.cpp,
23742 source/encoder/ratecontrol.h, source/encoder/slicetype.cpp,
23743 source/encoder/slicetype.h, source/x265.h:
23744 slicetype: CuTree Implementation for AQ RateControl
23746 Added Following methods into slicetype for CuTree Implementation
23747 1.cuTree - Entry Point for CuTree 2.estimateCUPropagate and
23748 estimateCUPropagateCost - Calculate the CU Propagate cost for CU's
23749 3.cuTreeFinish - update the qpOffset using Precomputed
23750 PropagateCost, weightedCostDelta and lookahead costs
23752 Added cuTree option into param->rc and make it as a Disable, still
23753 the cuTree is an Under Construction
23756 2013-12-02 Steve Borho <steve@borho.org>
23758 * source/common/CMakeLists.txt:
23762 * source/common/CMakeLists.txt:
23763 cmake: ignore gcc warnings in vector intrinsic files
23766 2013-12-01 Steve Borho <steve@borho.org>
23768 * source/common/CMakeLists.txt, source/common/vec/pixel-ssse3.cpp,
23769 source/common/vec/vec-primitives.cpp:
23770 vec: remove pixel-ssse3.cpp, its last function has asm coverage
23773 * source/common/CMakeLists.txt, source/common/vec/dct-sse3.cpp,
23774 source/common/vec/dct-ssse3.cpp, source/common/vec/intra-sse41.cpp,
23775 source/common/vec/ipfilter-ssse3.cpp, source/common/vec/pixel-
23776 sse41.cpp, source/common/vec/pixel16-sse41.cpp:
23777 cmake: ignore unreferenced formal paramter warnings in common/vec
23779 And remove all the hacks that were in place to avoid those warnings
23782 * source/common/x86/asm-primitives.cpp:
23786 * source/common/x86/asm-primitives.cpp:
23790 * source/Lib/TLibCommon/TComPicYuv.cpp,
23791 source/Lib/TLibCommon/TComPrediction.cpp,
23792 source/Lib/TLibCommon/TComSlice.h,
23793 source/Lib/TLibCommon/TComYuv.cpp,
23794 source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
23795 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/TShortYUV.cpp,
23796 source/common/TShortYUV.h, source/common/common.cpp,
23797 source/common/cpu.cpp, source/common/ipfilter.cpp,
23798 source/common/pixel.cpp, source/common/primitives.h,
23799 source/common/vec/blockcopy-sse3.cpp, source/common/vec/dct-
23800 sse3.cpp, source/common/vec/dct-ssse3.cpp, source/common/vec/intra-
23801 sse41.cpp, source/common/vec/intra-ssse3.cpp, source/common/x86/asm-
23802 primitives.cpp, source/common/x86/blockcopy8.h,
23803 source/common/x86/ipfilter8.h, source/common/x86/pixel.h,
23804 source/encoder/compress.cpp, source/encoder/encoder.cpp,
23805 source/encoder/frameencoder.cpp, source/encoder/motion.cpp,
23806 source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h,
23807 source/encoder/slicetype.cpp, source/encoder/slicetype.h,
23808 source/input/y4m.cpp, source/input/yuv.cpp, source/output/y4m.cpp,
23809 source/output/yuv.cpp, source/test/intrapredharness.cpp,
23810 source/test/ipfilterharness.cpp, source/test/pixelharness.cpp,
23811 source/test/testbench.cpp, source/x265.h:
23812 uncrustify all source
23815 * source/common/common.cpp, source/encoder/encoder.cpp,
23816 source/x265.cpp, source/x265.h:
23820 * source/encoder/encoder.cpp, source/x265.def.in, source/x265.h:
23821 api: add alloc/free methods for x265_picture for future safety
23822 [32942ebd5793] <stable>
23824 * source/encoder/encoder.cpp, source/x265.cpp, source/x265.def.in,
23826 api: add alloc/free methods for x265_param
23828 This allows apps to use x265_param as pure abstract structures, just
23829 like x265_encoder, in order to make their app future-safe against
23830 changes to x265_param (without requiring recompiles or code
23832 [aabaf5382ac5] <stable>
23834 * source/common/common.cpp, source/encoder/encoder.cpp,
23835 source/encoder/slicetype.cpp, source/x265.cpp, source/x265.h:
23836 api: change x265_param.bpyramid to bBPyramid (bool)
23838 x264's strict bpyramid mode seems to be H.264/blue-ray specific and
23839 thus we are left with only on or off.
23840 [53b1eeb6333b] <stable>
23842 * source/encoder/encoder.cpp:
23843 csv: improve CSV headers to use title caps
23844 [418e55eefbb8] <stable>
23846 * source/test/intrapredharness.cpp:
23847 test: intrapred harness fixup
23850 * source/encoder/encoder.cpp:
23854 2013-11-08 Xun Xu, PPLive Corporation <xunxu@pptv.com>
23856 * source/common/common.cpp, source/encoder/encoder.cpp,
23857 source/encoder/encoder.h, source/encoder/frameencoder.cpp,
23858 source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h,
23859 source/x265.cpp, source/x265.h:
23860 rc: initial work towards VBV rate control
23862 1. add parameter "vbv-maxrate" "vbv-bufsize" "vbv-init" into cmd
23863 line 2. implement vbv methods, this patch doesn't use lookahead data
23865 future work, 1. vbv-lookahead 2. CU level ratecontrol
23868 2013-12-01 Steve Borho <steve@borho.org>
23870 * source/common/vec/intra-sse41.cpp:
23871 vec: drop intra planar intrinsic primitives, we have asm coverage
23874 * source/test/intrapredharness.cpp:
23875 intra: testbench fixups after dropping 64x64 C refs
23878 * source/common/vec/dct-sse3.cpp, source/common/vec/dct-ssse3.cpp:
23879 vec: remove two DCT intrinsic primitives with asm coverage
23882 * source/common/intrapred.cpp:
23883 intrapred: fix func decl of intra-ang C ref
23886 * source/common/intrapred.cpp:
23887 intrapred: use square block defines, do not instantiate intra 64x64
23890 * source/common/x86/asm-primitives.cpp:
23891 asm: plumb out more 16bpp asm setup infrastructure
23894 2013-11-29 Murugan Vairavel <murugan@multicorewareinc.com>
23896 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
23897 10bpp: asm code for pixel_var_32x32 and 64x64
23900 2013-11-29 Nabajit Deka <nabajit@multicorewareinc.com>
23902 * source/common/vec/dct-sse41.cpp, source/common/x86/asm-
23907 * source/common/x86/dct8.asm, source/common/x86/dct8.h:
23908 asm : Adding asm routine for idst4
23911 2013-11-29 Min Chen <chenm003@163.com>
23913 * source/Lib/TLibCommon/CommonDef.h,
23914 source/Lib/TLibCommon/TComPrediction.cpp,
23915 source/Lib/TLibCommon/TComPrediction.h, source/common/intrapred.cpp,
23916 source/common/primitives.h, source/common/vec/intra-ssse3.cpp,
23917 source/test/intrapredharness.cpp, source/test/intrapredharness.h:
23918 size based array for intra_pred_ang[]
23921 2013-11-28 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
23923 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
23924 asm: enabled asm routines for HIGH_BIT_DEPTH, which has the support
23928 2013-11-28 Nabajit Deka <nabajit@multicorewareinc.com>
23930 * source/common/vec/dct-ssse3.cpp, source/common/x86/asm-
23931 primitives.cpp, source/common/x86/dct8.asm,
23932 source/common/x86/dct8.h:
23933 asm : Adding asm routine for dst4.
23936 2013-11-28 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
23938 * source/common/x86/asm-primitives.cpp,
23939 source/common/x86/blockcopy8.h, source/common/x86/pixel-util8.asm:
23940 asm: assembly code for cvt16to32_shl
23943 2013-11-28 Min Chen <chenm003@163.com>
23945 * source/common/primitives.h:
23946 cleanup: remove unused cvt16to16_shl_t
23949 2013-11-28 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
23951 * source/test/pixelharness.cpp, source/test/pixelharness.h:
23952 testbench: added cvt16to32_shl primitive function
23955 2013-12-01 Steve Borho <steve@borho.org>
23957 * source/common/vec/pixel-sse41.cpp:
23958 pixel: remove sse_sp intrinsic primitives, we have asm coverage
23961 2013-11-28 Murugan Vairavel <murugan@multicorewareinc.com>
23963 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel.h:
23964 asm: cleanups for pixel_sse_sp
23967 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
23968 source/common/x86/pixel.h:
23969 asm: code for pixel_sse_sp_4xN
23972 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
23973 source/common/x86/pixel.h:
23974 asm: code for pixel_sse_sp_12x16
23977 2013-11-28 Min Chen <chenm003@163.com>
23979 * source/common/CMakeLists.txt, source/common/x86/intrapred.asm,
23980 source/common/x86/intrapred8.asm, source/common/x86/pixel-util.asm,
23981 source/common/x86/pixel-util8.asm:
23982 rename to avoid 10bpp conflict
23985 2013-11-28 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
23987 * source/common/x86/asm-primitives.cpp,
23988 source/common/x86/intrapred.asm, source/common/x86/intrapred.h:
23989 asm: assembly code for intra_pred_planar[32x32]
23992 2013-11-30 Deepthi Nandakumar <deepthi@multicorewareinc.com>
23994 * Merge from stable
23997 * source/common/common.cpp:
23998 presets: bpyramid default value reset to 1
24000 No support for strict b-pyramid yet.
24001 [87dc694fc016] <stable>
24003 * source/encoder/encoder.cpp:
24004 ssim: increase precision in ssim reporting
24005 [b08f3853adb9] <stable>
24007 2013-11-29 Deepthi Nandakumar <deepthi@multicorewareinc.com>
24009 * Merge from stable
24012 * source/common/common.cpp:
24013 presets: correct bframes in "slow" to 4
24014 [fb93582b5f3f] <stable>
24016 * source/encoder/compress.cpp:
24020 * source/encoder/compress.cpp:
24021 compress: save distortion info in xComputeCostInter.
24024 * source/encoder/compress.cpp:
24025 compress: save best bits, sad in xcomputeCostIntrainInter
24028 * source/encoder/compress.cpp:
24029 compress: disable EARLY_EXIT and TOP_SKIP (temporarily)
24032 2013-11-28 Steve Borho <steve@borho.org>
24034 * Merge with stable
24037 * source/common/vec/vec-primitives.cpp:
24039 [2456d360a4ce] <stable>
24041 2013-11-29 Deepthi Nandakumar <deepthi@multicorewareinc.com>
24043 * source/common/common.cpp:
24044 presets: modifications to smoothen the performance-efficiency plot.
24045 [bcc0941f67b3] <stable>
24047 2013-11-28 Deepthi Nandakumar <deepthi@multicorewareinc.com>
24049 * source/encoder/compress.cpp:
24050 RD merge: refine merge costs with estimated merge mode bits.
24053 2013-11-28 Steve Borho <steve@borho.org>
24055 * source/CMakeLists.txt, source/common/CMakeLists.txt,
24056 source/common/vec/vec-primitives.cpp:
24057 cmake: gcc flag introspection to fix Mac OS X 10.6 build
24058 [38719294293f] <stable>
24060 2013-11-28 Deepthi Nandakumar <deepthi@multicorewareinc.com>
24062 * source/encoder/compress.cpp:
24063 RD merge: add in early-skip param.
24066 * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp:
24067 RD merge: remove earlyDetectionSkip, output is unchanged.
24070 * source/encoder/compress.cpp:
24071 RD merge: remove more redundant set-fields
24074 2013-11-27 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
24076 * source/encoder/compress.cpp:
24077 merge2nx2n: move initializations out of the loop
24079 Only mergeIndex and MVs will be changed in each loop.
24082 2013-11-28 Deepthi Nandakumar <deepthi@multicorewareinc.com>
24084 * source/encoder/compress.cpp:
24085 RD: use sa8d in inter/merge cost measurements instead of satd
24088 * source/encoder/compress.cpp:
24089 RD: change cost measurements for inter
24091 The cost calculation for inter modes now use cost = satd(orig, pred)
24092 + lambda*mebits. This is an estimation to the actual RD-cost.
24095 2013-11-27 Steve Borho <steve@borho.org>
24097 * source/encoder/encoder.cpp:
24098 encoder: change default frameNumThreads for 4-core HT CPUs to 3
24099 [f92e0c49a9f0] <stable>
24101 2013-11-27 Shazeb Nawaz Khan <shazeb@multicorewareinc.com>
24103 * source/encoder/frameencoder.cpp:
24104 Fix to eliminate unwanted application of weight in some (ref, enc)
24106 [bfd5204ef226] <stable>
24108 2013-11-27 Aarthi Thirumalai <Aarthi Thirumalai>
24110 * source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp:
24111 aq: Bug Fixes in aq , ssim when ctu size is not set as 64.
24113 1.Calculate qp offset for CU based maxCuSize set in
24114 FrameEncoder::calcQpForCu 2.Fix height for ssim computation based on
24115 maxCuHeight in FrameFilter::processRowPost
24116 [6eb45b5bf181] <stable>
24118 2013-11-27 Steve Borho <steve@borho.org>
24120 * source/encoder/encoder.cpp:
24121 encoder: use more portable %PRIu64, define __STDC_FORMAT_MACROS
24123 Older GCC versions and clang require __STDC_FORMAT_MACROS to be
24124 defined prior to including stdint.h when compiling for C++, in order
24125 for PRIu64 and friends to be defined
24126 [13f60881bf01] <stable>
24128 * Merge with stable
24131 * source/encoder/CMakeLists.txt, source/encoder/encoder.cpp:
24132 cmake: detect inttypes.h and use for uint64_t printfs
24133 [e4baf53cefe8] <stable>
24135 * source/common/vec/intra-sse41.cpp:
24136 vec: remove intra_pred_planar16_sse4, we have asm coverage
24139 * source/common/vec/pixel-ssse3.cpp:
24140 vec: remove scale2D_64to32, we have asm coverage
24143 * source/common/x86/intrapred.asm:
24144 intra: fix yasm warning about redefined macro
24150 2013-11-27 Murugan Vairavel <murugan@multicorewareinc.com>
24152 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
24153 source/common/x86/pixel.h:
24154 asm: code for pixel_sse_sp_24x32
24157 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
24158 source/common/x86/pixel.h:
24159 asm: code for pixel_sse_sp_8xN
24162 2013-11-27 Nabajit Deka <nabajit@multicorewareinc.com>
24164 * source/common/vec/dct-sse3.cpp, source/common/x86/asm-
24165 primitives.cpp, source/common/x86/dct8.h:
24166 Enable the idct4 asm routine.
24169 * source/common/x86/dct8.asm:
24170 asm: Adding asm routine for idct4
24173 * source/common/x86/const-a.asm:
24174 Adding constant tables used for idct4 asm routine
24177 2013-11-27 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
24179 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
24180 asm: pixel_sse_ss_64xN assembly routine
24183 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
24184 asm: pixel_sse_ss_48x64 assembly routine
24187 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
24188 asm: pixel_sse_ss_24x32 assembly routine
24191 2013-11-27 Murugan Vairavel <murugan@multicorewareinc.com>
24193 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
24194 source/common/x86/pixel.h:
24195 asm: code for pixel_sse_sp_64xN
24198 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
24199 source/common/x86/pixel.h:
24200 asm: code for pixel_sse_sp_48x64
24203 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
24204 source/common/x86/pixel.h:
24205 asm: code for pixel_sse_sp_32xN
24208 * source/common/pixel.cpp, source/common/x86/asm-primitives.cpp,
24209 source/common/x86/pixel-a.asm, source/common/x86/pixel.h:
24210 asm: code for pixel_var_32x32 and 64x64 blocks
24213 2013-11-27 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
24215 * source/common/x86/asm-primitives.cpp,
24216 source/common/x86/intrapred.asm, source/common/x86/intrapred.h:
24217 asm : assembly code for intra_pred_planar[16x16]
24220 2013-11-27 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
24222 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
24223 asm: fix the alignment issues occured in sse_ss
24226 2013-11-18 Murugan Vairavel <murugan@multicorewareinc.com>
24228 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
24229 source/common/x86/pixel.h:
24230 asm: code for scale2D_64to32 routine
24233 2013-11-27 Steve Borho <steve@borho.org>
24235 * source/Lib/TLibCommon/ContextModel.cpp,
24236 source/Lib/TLibCommon/ContextModel.h,
24237 source/Lib/TLibEncoder/TEncAnalyze.h, source/common/reference.cpp,
24238 source/common/reference.h, source/common/vec/blockcopy-avx2.cpp,
24239 source/common/vec/intra-sse3.cpp, source/common/vec/pixel-avx2.cpp,
24240 source/common/vec/pixel-sse3.cpp, source/compat/msvc/LGPL.txt,
24241 source/compat/msvc/getopt.c, source/compat/msvc/getopt.h:
24242 Merge with default (feature freeze for 0.6)
24244 Bug fixes and tunings only on the stable branch, until the next tag
24246 [417f794274e5] <stable>
24248 * source/encoder/encoder.cpp:
24249 encoder: do not print weightp stats if no P frames were generated
24251 (prevents NAN or worse errors)
24254 * source/encoder/encoder.cpp:
24255 log: replace "Skip" with more accurate "Merge"
24258 2013-11-26 Steve Borho <steve@borho.org>
24260 * source/common/vec/intra-sse41.cpp:
24261 vec: drop intra_pred_planar 4x4 and 8x8 intrinsic primitives, we
24265 * source/encoder/encoder.cpp:
24266 encoder: return pic.sliceType = X265_TYPE_IDR if keyframe
24269 * source/common/vec/dct-sse41.cpp:
24270 vec: drop dequant_normal intrinsic primitive, we have asm
24273 * source/common/vec/dct-sse3.cpp:
24274 vec: remove dct4 intrinsic primitive
24280 2013-11-26 Nabajit Deka <nabajit@multicorewareinc.com>
24282 * source/common/vec/dct-sse3.cpp, source/common/x86/asm-
24284 Enable the new dct4 asm routine.
24287 * source/common/CMakeLists.txt:
24288 Adding dct8.asm and dct8.h to CMakeLists
24291 * source/common/x86/const-a.asm:
24292 Adding constant table used for dct4
24295 * source/common/x86/dct8.asm, source/common/x86/dct8.h:
24296 asm: assembly code for dct4x4
24299 * source/common/x86/pixel-util.asm:
24300 asm: Correct number of xmm registers for weight_sp routine.
24303 2013-11-26 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
24305 * source/common/x86/asm-primitives.cpp,
24306 source/common/x86/intrapred.asm, source/common/x86/intrapred.h:
24307 asm: assembly code for intra_pred_planar[8x8]
24310 2013-11-26 Murugan Vairavel <murugan@multicorewareinc.com>
24312 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
24313 source/common/x86/pixel.h:
24314 asm: code for pixel_sse_sp_16xN
24317 * source/common/pixel.cpp, source/common/primitives.h,
24318 source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
24319 source/common/x86/pixel.h, source/encoder/ratecontrol.cpp,
24320 source/test/pixelharness.cpp:
24321 asm: removed unused code in pixel_var module
24324 2013-11-26 Min Chen <chenm003@163.com>
24326 * source/common/dct.cpp:
24327 fix: in 14bpp mode, maximum shift is 10
24330 * source/common/pixel.cpp, source/common/primitives.h,
24331 source/common/x86/asm-primitives.cpp,
24332 source/encoder/framefilter.cpp, source/test/pixelharness.cpp,
24333 source/test/pixelharness.h:
24334 asm: active x264 ssim code
24336 Side effect: Remove ssim_t to avoid conflict with x264 asm code we
24337 use int64_t when HIGH_BIT_DEPTH enable, but x264 always 'int'
24340 2013-11-25 Steve Borho <steve@borho.org>
24342 * source/common/vec/pixel-sse41.cpp:
24343 pixel: remove intrinsic pixel weight functions, we have asm coverage
24346 2013-11-26 Steve Borho <steve@borho.org>
24349 api: document a few rate control settings
24352 2013-11-26 Min Chen <chenm003@163.com>
24354 * source/common/x86/pixel-a.asm, source/common/x86/pixel-util.asm,
24355 source/common/x86/pixel.h:
24356 asm: fix build error on x64
24359 2013-11-26 chenm003 <chenm003@163.com>
24361 * source/common/dct.cpp, source/common/x86/asm-primitives.cpp:
24362 合并 multicoreware/x265 到 default
24365 2013-11-25 Murugan Vairavel <murugan@multicorewareinc.com>
24367 * source/common/pixel.cpp, source/common/x86/asm-primitives.cpp,
24368 source/common/x86/pixel-a.asm, source/common/x86/pixel.h:
24369 asm: code for pixel_var_16xN
24372 2013-11-25 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
24374 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
24375 asm: assembly code for pixel_sse_ss_32xN
24378 2013-11-25 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
24380 * source/common/x86/asm-primitives.cpp,
24381 source/common/x86/intrapred.asm, source/common/x86/intrapred.h:
24382 asm: assembly code for intra_pred_planar[4x4]
24385 2013-11-25 Murugan Vairavel <murugan@multicorewareinc.com>
24387 * source/common/pixel.cpp, source/common/x86/asm-primitives.cpp,
24388 source/common/x86/pixel-a.asm, source/common/x86/pixel.h:
24389 asm: code for pixel_var_8xN
24392 2013-11-25 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
24394 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
24395 asm: assembly code for pixel_sse_ss_12x16
24398 2013-11-25 Murugan Vairavel <murugan@multicorewareinc.com>
24400 * source/test/pixelharness.cpp, source/test/pixelharness.h:
24401 Test bench: code for pixel_var
24404 2013-11-25 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
24406 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
24407 source/common/x86/pixel.h:
24408 asm: assembly code for sse_ss - 4xN, 8xN, 16xN
24411 2013-11-25 Nabajit Deka <nabajit@multicorewareinc.com>
24413 * source/test/pixelharness.cpp:
24414 Test bench modifications for weight_sp() asm routine
24417 * source/common/vec/pixel-sse41.cpp, source/common/x86/asm-
24418 primitives.cpp, source/common/x86/pixel.h:
24419 Adding asm function declaration and initialization for weight_sp asm
24423 * source/common/x86/pixel-util.asm:
24424 asm : routine for weight_sp().
24427 2013-11-25 Min Chen <chenm003@163.com>
24429 * source/common/x86/const-a.asm, source/common/x86/ipfilter8.asm:
24430 asm: move constant 8192 to const-a.asm for share
24433 2013-11-25 Nabajit Deka <nabajit@multicorewareinc.com>
24435 * source/common/vec/pixel-sse41.cpp, source/common/x86/asm-
24436 primitives.cpp, source/common/x86/pixel.h:
24437 Adding asm function declaration and initialization for weight_pp asm
24441 * source/test/pixelharness.cpp:
24442 Test bench modifications for weight_pp() asm routine.
24445 * source/common/x86/pixel-util.asm:
24446 asm : routine for weight_pp(), for input width in multiples of 16
24449 2013-11-25 Praveen Tiwari <praveen@multicorewareinc.com>
24451 * source/common/x86/asm-primitives.cpp:
24452 cleanup the temporary function pointer initialization
24455 2013-11-25 Min Chen <chenm003@163.com>
24457 * source/common/dct.cpp, source/common/x86/asm-primitives.cpp,
24458 source/common/x86/pixel-util.asm, source/common/x86/pixel.h:
24459 asm: assembly code for dequant_normal
24462 * source/common/x86/mc-a.asm:
24463 cleanup: remove unused code in mc-a.asm
24466 2013-11-24 Min Chen <chenm003@163.com>
24468 * source/common/x86/pixel-a.asm:
24469 cleanup: remove unused constant in pixel-a.asm
24472 * source/common/x86/pixel-a.asm:
24473 cleanup: remove unused code in pixel-a.asm
24476 * source/common/x86/mc-a2.asm:
24477 cleanup: remove unused code in mc-a2.asm
24480 2013-11-25 Steve Borho <steve@borho.org>
24482 * source/encoder/encoder.cpp:
24483 encoder: do not warn of b-pyramid and small bframe value
24485 Many default presets can do this, it is harmless
24488 * source/encoder/encoder.cpp:
24489 log: shorten Planar to P
24492 * source/encoder/encoder.cpp:
24493 log: do not output statistics for disabled features
24496 * source/common/dct.cpp:
24497 dct: remove unused static array
24500 * source/encoder/encoder.cpp:
24501 encoder: compilers can't agree on how to print long longs
24504 2013-11-25 Kavitha Sampath <kavitha@multicorewareinc.com>
24506 * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp,
24507 source/encoder/encoder.cpp:
24508 log: improve statistics display
24510 represent 4x4 statistics for I frame, combine I frame log in single
24511 line, preserve space in log
24514 2013-11-24 Steve Borho <steve@borho.org>
24516 * source/common/x86/asm-primitives.cpp:
24517 asm: repair ICL compile on Windows
24520 2013-11-22 Steve Borho <steve@borho.org>
24522 * source/common/vec/vec-primitives.cpp:
24523 clang: remove compilation guards around
24524 Setup_Vec_IPredPrimitives_sse41()
24526 Now that a number of primitives have been replace by assembly, the
24527 functions are safe.
24530 * source/common/CMakeLists.txt, source/common/vec/pixel-sse3.cpp,
24531 source/common/vec/pixel-ssse3.cpp, source/common/vec/vec-
24533 cmake: merge pixel-sse3.cpp into pixel-ssse3.cpp
24535 Both files only had one primitive each, and they will both probably
24539 * source/common/vec/pixel-ssse3.cpp:
24540 pixel-ssse3: remove scale1D_128to64, we have ASM
24543 * source/common/vec/pixel-sse41.cpp:
24544 pixel-sse41: cleanup intrinsic weight function names
24547 * source/common/vec/intra-sse41.cpp:
24548 vec: remove intrinsic predDCFiltering() and intra_pred_dc(), we have
24552 * source/common/x86/asm-primitives.cpp:
24553 asm: remove assignements to square block sa8d[] methods
24555 These are handled specially in x265_setup_primitives()
24558 2013-11-22 Aarthi Thirumalai <Aarthi Thirumalai>
24560 * source/encoder/ratecontrol.cpp:
24561 crf: bug fix. regulate qp of first frame based on ABR_INIT_QP.
24564 2013-11-22 Deepthi Nandakumar <deepthi@multicorewareinc.com>
24569 2013-11-20 Sumalatha Polureddy <Sumalatha Polureddy>
24571 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
24572 source/encoder/compress.cpp:
24573 no-rdo: implemented topskip algorithm
24575 It is basically setting the starting depth from which the
24576 partitioning should happen for particular CU. The starting depth for
24577 particular CU in present frame is selected form the previous frame's
24578 colocated CU minimum depth.
24580 the performance, bitrate increase and psnr comparison are given
24581 below CLI: x265.exe input.y4m -o abc.hevc -r recon.y4m --rd 1 --ref
24582 1 a. Early exit OFF and Top Skip OFF b. Early exit OFF and Top Skip
24585 BasketballDrive_1920x1080_50 Timetaken to encode: 681/639s bitrate:
24586 3650/3657 kb/s PSNR: 36.7/36.703 perf improvement: 6.16% (compared
24587 to TopSkip OFF and ON) Bitrate increase: 0.19% (compared to TopSkip
24590 Cactus_1920x1080_50 Timetaken to encode: 530/492s bitrate: 2787/2795
24591 kb/s PSNR: 35.527/35.529 perf improvement: 7.16% (compared to
24592 TopSkip OFF and ON) Bitrate increase: 0.28% (compared to TopSkip OFF
24595 Kimono1_1920x1080_24 Timetaken to encode: 278/264s bitrate:
24596 1243/1246 kb/s PSNR: 38.16/38.16 perf improvement: 5.03% (compared
24597 to TopSkip OFF and ON) Bitrate increase: 0.24% (compared to TopSkip
24600 FourPeople_1280x720_60 Timetaken to encode: 173/163s bitrate:
24601 486/492 kb/s PSNR: 39.097/39.094 perf improvement: 5.78% (compared
24602 to TopSkip OFF and ON) Bitrate increase: 1.2% (compared to TopSkip
24605 PartyScene_832x480_50 Timetaken to encode: 134/119s bitrate:
24606 1652/1661 kb/s PSNR: 31.374/31.377 perf improvement: 11.16%
24607 (compared to TopSkip OFF and ON) Bitrate increase: 0.544% (compared
24608 to TopSkip OFF and ON)
24610 big_buck_bunny_360p24 Timetaken to encode: 1772/1477s bitrate:
24611 174/175 kb/s PSNR: 37.798/37.797 perf improvement: 16.6% (compared
24612 to TopSkip OFF and ON) Bitrate increase: 0.5% (compared to TopSkip
24616 2013-11-22 Deepthi Nandakumar <deepthi@multicorewareinc.com>
24618 * source/encoder/slicetype.cpp:
24619 lookahead primitives: fix bug that caused wrong cost estimates in
24623 2013-11-22 Steve Borho <steve@borho.org>
24625 * source/common/vec/pixel-sse41.cpp:
24626 pixel: drop intrinsic sse_pp functions, we have ASM coverage
24629 * source/test/pixelharness.cpp:
24630 pixelharness: fix the other header buffer
24633 2013-11-22 Praveen Tiwari <praveen@multicorewareinc.com>
24635 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h:
24636 TComYuv::addClipChroma, integrated pixel_add_ps function
24639 2013-11-22 Murugan Vairavel <murugan@multicorewareinc.com>
24641 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
24642 source/common/x86/pixel.h:
24643 asm: code of sse_pp routine for 64x32, 64x48 and 64x64 blocks
24646 2013-11-22 Praveen Tiwari <praveen@multicorewareinc.com>
24648 * source/common/x86/asm-primitives.cpp:
24649 added blockcopy_sp function pointers
24652 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h:
24653 TComYuv::addClip, integrated luma_add_ps
24656 2013-11-22 Murugan Vairavel <murugan@multicorewareinc.com>
24658 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
24659 source/common/x86/pixel.h:
24660 asm: code of sse_pp routine for 48x64 and 64x16 blocks
24663 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
24664 source/common/x86/pixel.h:
24665 asm: code for sse_pp_24x32 routine
24668 2013-11-22 Praveen Tiwari <praveen@multicorewareinc.com>
24670 * source/common/x86/asm-primitives.cpp:
24671 asm-primitives.cpp, removed temporary function pointer
24672 initialization, generated through macro calls
24675 * source/common/x86/asm-primitives.cpp,
24676 source/common/x86/pixeladd8.asm:
24677 pixel_add_ps_64xN, asm code
24680 * source/common/x86/asm-primitives.cpp,
24681 source/common/x86/pixeladd8.asm:
24682 pixel_add_ps_48x64, asm code
24685 * source/common/x86/asm-primitives.cpp,
24686 source/common/x86/pixeladd8.asm:
24687 pixel_add_ps_12x16, asm code
24690 2013-11-22 Murugan Vairavel <murugan@multicorewareinc.com>
24692 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
24693 source/common/x86/pixel.h:
24694 asm: code for sse_pp_12x16 routine
24697 2013-11-22 Min Chen <chenm003@163.com>
24699 * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/dct.cpp,
24700 source/common/primitives.h, source/common/vec/dct-sse41.cpp,
24701 source/test/mbdstharness.cpp, source/test/mbdstharness.h:
24702 split dequant to normal and scaling path
24705 * source/test/pixelharness.cpp:
24706 fix bug for testbench string buffer overflow
24709 2013-11-22 Steve Borho <steve@borho.org>
24711 * source/common/cpu.cpp:
24712 cpu: fix non-Windows build with ASM disabled
24715 * source/CMakeLists.txt:
24716 cmake: backout cmake_policy(); cmake is idiotic
24718 Why would you issue an error if your version of cmake doesn't know
24719 about the given policy? Especially if the selected policy is OLD?
24723 2013-11-21 Steve Borho <steve@borho.org>
24725 * source/CMakeLists.txt, source/Lib/TLibEncoder/TEncSearch.cpp,
24726 source/common/CMakeLists.txt:
24727 cmake: almost revive Xcode support
24729 # macbrew based instructions brew install cmake --HEAD cmake -G
24730 Xcode ../source open x265.xcodeproj
24732 > cmake --version cmake version 2.8.12.20131121
24734 The static library is still not linking properly, so the cli does
24735 not link as well; but it does build the shared library
24738 * source/encoder/motion.cpp, source/encoder/motion.h:
24739 motion: use fast weighted subpel refine
24741 Don't do the full-blown weighted motion compensation for ME. Just
24742 interpolate the weighted full pel pixels. It is not 100% accurate to
24743 the pixels that will be used to encode the final prediction; but
24744 close enough for ME.
24746 Testing with sintel_trailer_2k_720p24.y4m at medium preset and all
24747 defaults x265 [info]: 651 of 1124 (57.92%) P frames weighted
24749 before: 1253 frames in 512.74s (2.44 fps), 223.51 kb/s, Global PSNR:
24750 50.552 after: 1253 frames in 410.25s (3.05 fps), 223.59 kb/s, Global
24754 * source/common/vec/intra-sse41.cpp:
24755 intra: fix 16bpp builds
24758 2013-11-21 Praveen Tiwari <Praveen Tiwari>
24760 * source/common/x86/pixeladd8.asm:
24761 pixel_add_ps, 32xN corrected xmm register count
24764 2013-11-21 Steve Borho <steve@borho.org>
24766 * source/test/pixelharness.cpp, source/test/pixelharness.h:
24767 pixelharness: cleanup check function names
24770 * source/test/intrapredharness.cpp, source/test/pixelharness.cpp,
24771 source/test/testharness.h:
24772 testbench: re-line up test results to improve readability
24775 * source/Lib/TLibCommon/TComWeightPrediction.cpp,
24776 source/common/pixel.cpp, source/common/primitives.h,
24777 source/common/vec/pixel-sse41.cpp, source/encoder/motion.cpp,
24778 source/encoder/reference.cpp, source/encoder/slicetype.cpp,
24779 source/test/pixelharness.cpp, source/test/pixelharness.h:
24780 primitive: rename weight primitives to match our naming convention
24782 weight_pp -> weight pixels to pixels weight_sp -> weight shorts to
24786 * source/encoder/slicetype.cpp:
24787 slicetype: prevent gcc 4.8.1 compiler error
24790 * source/Lib/TLibCommon/TComPrediction.cpp:
24791 TComPrediction: fixup planar size index
24794 * source/encoder/slicetype.cpp:
24795 slicetype: remove hungarian pointer prefixes and unnecessary pixel
24799 * source/common/intrapred.cpp:
24800 intrapred: cleanup intra C references
24803 * source/common/x86/asm-primitives.cpp:
24804 asm: remove cmp templated wrapper function
24807 * source/Lib/TLibCommon/TComPrediction.cpp:
24808 TComPrediction: nits
24811 2013-11-21 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
24813 * source/Lib/TLibCommon/TComPrediction.cpp,
24814 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/intrapred.cpp,
24815 source/common/primitives.h, source/common/vec/intra-sse41.cpp,
24816 source/encoder/compress.cpp, source/encoder/slicetype.cpp,
24817 source/test/intrapredharness.cpp:
24818 remove width arg from intra_pred_planar
24821 2013-11-21 Santhoshini Sekar <santhoshini@multicorewareinc.com>
24823 * source/encoder/encoder.cpp:
24824 bug fix: print Mean psnr Y,U,V properly
24827 2013-11-21 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
24829 * source/common/x86/asm-primitives.cpp:
24830 asm: added sa8d-4x4,4x8,8x4,4x16,16x4,12x16,16x12 to asm-
24834 2013-11-21 Praveen Tiwari <praveen@multicorewareinc.com>
24836 * source/common/x86/asm-primitives.cpp,
24837 source/common/x86/pixeladd8.asm:
24838 pixel_add_ps_32x64, asm code
24841 * source/common/x86/asm-primitives.cpp,
24842 source/common/x86/pixeladd8.asm:
24843 pixel_add_ps_16x64, asm code
24846 * source/common/x86/asm-primitives.cpp,
24847 source/common/x86/pixeladd8.asm:
24848 pixel_add_ps, asm code
24851 * source/common/x86/asm-primitives.cpp,
24852 source/common/x86/pixeladd8.asm:
24853 asm: pixel_add_ps,32xN
24856 * source/common/x86/asm-primitives.cpp,
24857 source/common/x86/pixeladd8.asm:
24858 pixel_add_ps, 16x8, 16x12, 16x16, 16x32 asm code
24861 2013-11-21 Murugan Vairavel <murugan@multicorewareinc.com>
24863 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
24864 source/common/x86/pixel.h:
24865 asm: code for transpose_64x64 routine
24868 * source/common/x86/pixel-a.asm:
24869 asm: Improvement by replace macro extend by function call
24872 2013-11-21 Praveen Tiwari <praveen@multicorewareinc.com>
24874 * source/common/x86/asm-primitives.cpp,
24875 source/common/x86/pixeladd8.asm:
24876 pixel_add_ps_2x8 asm code
24879 2013-11-21 Min Chen <chenm003@163.com>
24881 * source/common/x86/asm-primitives.cpp,
24882 source/common/x86/pixeladd8.asm:
24883 [asm]: pixel_add_ps_2x4
24886 2013-11-21 Praveen Tiwari <praveen@multicorewareinc.com>
24888 * source/common/x86/asm-primitives.cpp,
24889 source/common/x86/pixeladd8.asm:
24890 pixel_add_ps_6x8, asm code
24893 * source/common/x86/pixeladd8.asm:
24894 pixeladd8.asm, removed unsed header 'x86util.asm'
24897 * source/common/x86/asm-primitives.cpp,
24898 source/common/x86/pixeladd8.asm:
24899 pixel_add_ps_16x4, asm code
24902 2013-11-21 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
24904 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
24905 asm: assembly code for pixel_sa8d_8x32
24908 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
24909 asm: assembly code for pixel_sa8d_32x8
24912 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
24913 asm: assembly code for pixel_sa8d_24x32
24916 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
24917 asm: assembly code for pixel_sa8d_32x24
24920 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
24921 asm: assembly code for pixel_sa8d_8x16 and pixel_sa8d_16x8
24924 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
24925 asm: assembly code for pixel_sa8d_16x64
24928 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
24929 asm: assembly code for pixel_sa8d_64x16
24932 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
24933 asm: assembly code for pixel_sa8d_48x64
24936 2013-11-21 Min Chen <chenm003@163.com>
24938 * source/test/ipfilterharness.cpp:
24939 testbench: initialize output buffer to solve lumz_sp[] mistake
24943 2013-11-21 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
24945 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
24946 asm: assembly code for pixel_sa8d_64x48
24949 2013-11-21 Dnyaneshwar G <dnyaneshwar@multicorewareinc.com>
24951 * source/common/x86/asm-primitives.cpp,
24952 source/common/x86/intrapred.asm, source/common/x86/intrapred.h,
24953 source/test/intrapredharness.cpp:
24954 asm: assembly code for IntraPred_DC[32x32]
24957 * source/common/x86/asm-primitives.cpp,
24958 source/common/x86/intrapred.asm, source/common/x86/intrapred.h:
24959 asm: assembly code for IntraPred_DC[16x16]
24962 * source/common/x86/asm-primitives.cpp,
24963 source/common/x86/intrapred.asm, source/common/x86/intrapred.h:
24964 asm: assembly code for IntraPred_DC[8x8]
24967 2013-11-20 Steve Borho <steve@borho.org>
24969 * source/common/primitives.h:
24973 * source/common/pixel.cpp, source/common/primitives.h,
24974 source/common/vec/blockcopy-sse3.cpp, source/test/pixelharness.cpp,
24975 source/test/pixelharness.h:
24976 primitive: remove dead blockcpy_sp
24979 * source/common/pixel.cpp, source/common/primitives.h,
24980 source/common/vec/blockcopy-sse3.cpp, source/test/pixelharness.cpp,
24981 source/test/pixelharness.h:
24982 primitive: remove dead pixelsub_ps
24985 * source/common/ipfilter.cpp, source/common/primitives.h,
24986 source/common/vec/ipfilter-sse41.cpp, source/common/vec/ipfilter-
24987 ssse3.cpp, source/test/ipfilterharness.cpp,
24988 source/test/ipfilterharness.h:
24989 primitive: remove dead ipfilter_s2p
24992 * source/common/ipfilter.cpp, source/common/primitives.h,
24993 source/common/vec/ipfilter-sse41.cpp, source/common/vec/ipfilter-
24994 ssse3.cpp, source/test/ipfilterharness.cpp,
24995 source/test/ipfilterharness.h:
24996 primitive: remove dead ipfilter_p2s
24999 * source/Lib/TLibCommon/TComSlice.h:
25003 * source/Lib/TLibCommon/TComPic.cpp,
25004 source/Lib/TLibCommon/TComPrediction.cpp,
25005 source/Lib/TLibCommon/TComSlice.cpp,
25006 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TypeDef.h,
25007 source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp,
25008 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/TShortYUV.cpp,
25009 source/common/common.cpp, source/common/ipfilter.cpp,
25010 source/common/pixel.cpp, source/common/primitives.cpp,
25011 source/common/primitives.h, source/common/vec/ipfilter-sse41.cpp,
25012 source/common/x86/asm-primitives.cpp, source/encoder/encoder.cpp,
25013 source/input/y4m.cpp, source/test/ipfilterharness.cpp,
25014 source/test/pixelharness.cpp, source/x265.cpp, source/x265.h:
25018 * source/cmake/CMakeASM_YASMInformation.cmake:
25019 cmake: fix cygwin builds - yasm must output windows object files
25022 * source/test/testbench.cpp:
25023 test: bump pixel depth to 12 for HIGH_BIT_DEPTH builds
25026 * source/common/vec/blockcopy-sse3.cpp, source/common/vec/dct-
25027 sse3.cpp, source/common/vec/dct-sse41.cpp, source/common/vec/dct-
25028 ssse3.cpp, source/common/vec/intra-sse41.cpp, source/common/vec
25030 vec: fix compile warnings with clang at 16bpp - remove dead
25034 2013-11-20 Praveen Tiwari <Praveen Tiwari>
25036 * source/common/x86/asm-primitives.cpp,
25037 source/common/x86/pixeladd8.asm:
25038 pixel_add_ps, 8x8, 8x16, 8x32 asm code
25041 * source/common/x86/asm-primitives.cpp,
25042 source/common/x86/pixeladd8.asm:
25043 pixel_add_ps_8x6, asm code
25046 * source/common/x86/asm-primitives.cpp,
25047 source/common/x86/pixeladd8.asm:
25048 pixel_add_ps_8x4, asm code
25051 * source/common/x86/asm-primitives.cpp,
25052 source/common/x86/pixeladd8.asm:
25053 pixel_add_ps_8x2, asm code
25056 * source/common/primitives.h, source/common/x86/pixel.h:
25057 pixel.h and primitives.h, int replaced with intptr_t
25060 * source/common/x86/asm-primitives.cpp,
25061 source/common/x86/pixeladd8.asm:
25062 asm code for pixel_add_ps_4x2
25065 * source/common/x86/pixeladd8.asm:
25066 pixel_add_pp_4x4, merged movd and pmovzxbw
25069 * source/common/x86/pixeladd8.asm:
25070 pixel_add_pp: 4x8, 4x16, merged movd and pmovzxbw instructions
25073 * source/common/x86/pixel.h:
25074 added pixel_add_ps chroma function definitions
25077 * source/common/x86/pixeladd8.asm:
25078 pixeladd8.asm, int replaced with intptr_t for strides data type
25081 * source/common/x86/asm-primitives.cpp,
25082 source/common/x86/pixeladd8.asm:
25083 asm code for pixel_add_ps, 4x8 and 4x16
25086 * source/common/CMakeLists.txt, source/common/x86/asm-primitives.cpp,
25087 source/common/x86/pixel.h, source/common/x86/pixeladd8.asm:
25088 asm code for pixeladd_ps_4x4 and testbench integration
25091 * source/test/pixelharness.cpp, source/test/pixelharness.h:
25092 unit test code for pixel_add_ps
25095 * source/common/pixel.cpp, source/common/primitives.h:
25096 added pixel_add_ps_c as a primitve
25099 2013-11-20 Steve Borho <steve@borho.org>
25101 * source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp,
25102 source/Lib/TLibEncoder/TEncBinCoderCABAC.h:
25103 TEncBinCABAC: fix naming prefix convention of bIsCounter
25106 * source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TComPic.h,
25107 source/Lib/TLibCommon/TComRdCost.h,
25108 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
25109 source/Lib/TLibCommon/TypeDef.h,
25110 source/Lib/TLibEncoder/TEncBinCoderCABAC.h,
25111 source/Lib/TLibEncoder/TEncSearch.cpp,
25112 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp,
25113 source/encoder/encoder.cpp, source/encoder/framefilter.cpp,
25114 source/encoder/ratecontrol.cpp:
25115 TypeDef: replace UInt64 with uint64_t
25118 * source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
25119 source/Lib/TLibCommon/TComSlice.h,
25120 source/Lib/TLibCommon/TComTrQuant.cpp,
25121 source/Lib/TLibCommon/TypeDef.h,
25122 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
25123 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
25124 source/Lib/TLibEncoder/WeightPredAnalysis.cpp,
25125 source/Lib/TLibEncoder/WeightPredAnalysis.h:
25126 TypeDef: replace Int64 with int64_t
25129 * source/common/x86/asm-primitives.cpp:
25130 asm: white-space nits
25133 2013-11-20 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
25135 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
25136 asm: assembly code for pixel_sa8d_32x64
25139 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
25140 asm: assembly code for pixel_sa8d_64x32
25143 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
25144 asm: assembly code for pixel_sa8d_16x32
25147 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
25148 asm: assembly code for pixel_sa8d_32x16
25151 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
25152 asm: assembly code for pixel_sa8d_64x64
25155 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
25156 asm: assembly code for pixel_sa8d_32x32
25159 2013-11-20 Min Chen <chenm003@163.com>
25161 * source/Lib/TLibCommon/TComPrediction.cpp,
25162 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/CMakeLists.txt,
25163 source/common/intrapred.cpp, source/common/primitives.h,
25164 source/common/vec/intra-sse41.cpp, source/common/x86/asm-
25165 primitives.cpp, source/common/x86/intrapred.asm,
25166 source/common/x86/intrapred.h, source/encoder/compress.cpp,
25167 source/encoder/slicetype.cpp, source/test/intrapredharness.cpp,
25168 source/test/intrapredharness.h:
25169 asm: assembly code for IntraPred_DC[4x4]
25172 2013-11-20 Steve Borho <steve@borho.org>
25174 * source/common/primitives.h, source/common/vec/pixel-sse3.cpp:
25175 primitive: remove unused cvt16to16_shl
25178 * source/common/vec/dct-sse41.cpp:
25179 vec: drop intrinsic quant primitive, we have assembly code
25182 * source/common/vec/pixel-sse3.cpp:
25183 vec: drop intrinsic transpose primitives, we have assembly code
25186 2013-11-20 Min Chen <chenm003@163.com>
25188 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
25189 util.asm, source/common/x86/pixel.h, source/test/mbdstharness.cpp:
25190 asm: assembly code for quant
25193 2013-11-20 Murugan Vairavel <murugan@multicorewareinc.com>
25195 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
25196 source/common/x86/pixel.h:
25197 asm: code for transpose_32x32 routine
25200 * source/common/x86/pixel-a.asm:
25201 asm: cleanup routines of transpose module for 4x4, 8x8 and 16x16
25204 2013-11-20 Gopu Govindaswamy <gopu@multicorewareinc.com>
25206 * source/encoder/slicetype.cpp:
25207 bpyramid: Support for b-pyramid with b-adapt 0
25209 Test results for reference when enable and disable the b-pyramid
25212 Cli option : --bframes=10 --b-adapt=0 --b-pyramid=1 -f 100 Enable
25213 B-references : --b-pyramid=1 Disable B-references : --b-pyramid=0
25215 Results: Enable / Disable
25217 clip - BasketballDrive_1920x1080_50 Total time taken - 57.84s (1.73
25218 fps) / 51.74s (1.93 fps) Bitrates - 4725.37 / 5660.68 PSNR - 37.178
25221 Clip - Cactus_1920x1080_50 Total time taken - 41.90s (2.39 fps) /
25222 47.08s (2.12 fps) Bitrates - 3800.62 / 4838.73 PSNR - 35.640 /
25225 Clip - Johnny_1280x720_60 Total time taken - 10.41s (9.61 fps) /
25226 10.34s (9.67 fps) Bitrates - 327.21 / 383.25 PSNR - 40.674 / 40.631
25228 Clip - FourPeople_1280x720_60 Total time taken - 10.72s (9.33 fps) /
25229 10.18s (9.82 fps) Bitrates - 547.18 / 640.88 PSNR - 39.808 / 39.789
25232 2013-11-19 Steve Borho <steve@borho.org>
25234 * source/Lib/TLibCommon/TComYuv.cpp, source/common/TShortYUV.cpp:
25235 clang: fix build warnings
25238 2013-11-19 Praveen Tiwari <Praveen Tiwari>
25240 * source/common/TShortYUV.cpp, source/common/TShortYUV.h:
25241 blockcpy_sp asm integration
25244 * source/common/pixel.cpp, source/common/primitives.h,
25245 source/common/x86/asm-primitives.cpp, source/test/pixelharness.cpp:
25246 csp support for blockcopy_sp
25249 * source/Lib/TLibCommon/TComYuv.cpp:
25250 blockcopy_ps, asm integration
25253 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
25254 source/Lib/TLibEncoder/TEncSearch.cpp:
25255 TComYuv::copyPartToPartChroma, blockcopy_ps asm integration
25258 * source/common/pixel.cpp, source/common/primitives.h,
25259 source/common/x86/asm-primitives.cpp, source/test/pixelharness.cpp:
25260 csp support for blockcopy_ps
25263 * source/Lib/TLibCommon/TComYuv.cpp:
25264 TComYuv::copyPartToPartChroma, blockcopy_pp asm integration
25267 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h:
25268 TComYuv::copyToPicLuma, blockcopy_pp asm integration
25271 2013-11-19 Murugan Vairavel <murugan@multicorewareinc.com>
25273 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
25274 source/common/x86/pixel.h:
25275 asm: code for transpose_16x16 routine
25278 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
25279 source/common/x86/pixel.h:
25280 asm: code for transpose_8x8 routine
25283 2013-11-18 Murugan Vairavel <murugan@multicorewareinc.com>
25285 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
25286 source/common/x86/pixel.h:
25287 asm: code for transpose4x4 routine
25290 2013-11-19 Steve Borho <steve@borho.org>
25292 * source/common/common.cpp, source/x265.h:
25293 api: enable weightp by default, disable for ultrafast
25297 api: fix typos and improve chroma qp offset descriptions
25300 * source/common/common.cpp, source/x265.h:
25301 api: enable b-pyramid by default
25303 The only reason for it to be disabled is if the decoder/use case
25308 cli: fix warning in CLI help
25311 * source/common/common.cpp:
25315 * source/common/common.cpp:
25316 common: validate --subme value
25320 api: cleanup x265_param orderings, add full comments
25323 2013-11-18 Steve Borho <steve@borho.org>
25325 * source/encoder/encoder.cpp:
25326 encoder: simplify size variables
25333 * source/encoder/encoder.cpp, source/encoder/encoder.h,
25334 source/x265.cpp, source/x265.h:
25335 api: make x265_encoder_get_stats() somewhat future proof
25337 By passing in the size of x265_stats as the user application knows
25338 about the encoder can know not to try to set new fields that were
25339 added to the end of x265_stats. This requires some discipline on our
25340 part to only append to the structure and to always check the size
25341 for any new fields we might add.
25345 api: remove old suffix and prefix from C symbols in comment, reflow
25348 * source/encoder/encoder.cpp, source/x265.cpp, source/x265.h:
25349 api: remove hungarian prefixes from x265_nal members
25351 These particular prefixes came from x264 originally
25355 api: remove reserved NAL enums and C++ style comments from public
25359 2013-11-19 Steve Borho <steve@borho.org>
25361 * source/x265.cpp, source/x265.h:
25362 api: cleanup bpyramid
25365 2013-11-19 Gopu Govindaswamy <gopu@multicorewareinc.com>
25367 * source/common/common.cpp, source/encoder/dpb.cpp,
25368 source/encoder/encoder.cpp, source/encoder/slicetype.cpp,
25369 source/x265.cpp, source/x265.h:
25370 b-pyramid implementation: Allow the use of B-frames as references
25371 for non B and B frames
25373 when we enable the b-pyramid the bitrates efficienctly reduced and
25374 there is not much diff in the performance and the PSNR 00. increased
25375 some of the clips and decreased some of clips
25377 Test results for reference when enable and disable the b-pyramid:
25378 cli option : -b 10 --hash=1 -f 100 --b-pyramid=1 --b-adapt=2 Enable
25379 B-reference : --b-pyramid=1 Disable B-reference : --b-pyramid=0
25381 Results: Enable / Disable
25383 Clips - Johnny_1280x720_60.y4m Total time taken - 11.19s (8.94 fps)
25384 / 13.44s (7.44 fps) Bitrates - 303.52 kb/s / 326.79 kb/s PSNR -
25387 Clips - Cactus_1920x1080_50.y4m Total Time taken - 44.61s (2.24 fps)
25388 / 48.23s (2.07 fps) Bitrates - 3420.80 kb/s / 3575.20 kb/s PSNR -
25391 Clips - BasketballDrive_1920x1080_50.y4m Total time taken - 54.15s
25392 (1.85 fps) / 53.72s (1.86 fps) Bitrates - 4114.07 kb/s / 4310.45
25393 kb/s PSNR - 37.283 / 37.290
25395 Clips - FourPeople_1280x720_60 Total time taken - 11.79s (8.48 fps)
25396 / 12.16s (8.23 fps) Bitrates - 514.90 kb/s / 539.08 kb/s PSNR -
25400 2013-11-18 Steve Borho <steve@borho.org>
25402 * source/common/common.cpp:
25403 log: do not show aq-strength if AQ is disabled
25406 * source/common/common.cpp:
25407 preset: return superfast/ultrafast lookahead depths to 10
25410 2013-11-18 Aarthi Thirumalai <aarthi@multicorewareinc.com>
25412 * source/common/common.cpp, source/x265.cpp:
25413 cli: add aq-strength to cli input options, add validations for aq
25417 2013-11-18 Steve Borho <steve@borho.org>
25419 * source/encoder/frameencoder.cpp:
25420 frameencoder: fix initialization order to prevent warnings
25423 2013-11-18 Praveen Tiwari <Praveen Tiwari>
25425 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h:
25426 TComYuv::copyPartToPartYuv, blockcopy_pp asm integration
25429 2013-11-18 Murugan Vairavel <murugan@multicorewareinc.com>
25431 * source/test/pixelharness.cpp, source/test/pixelharness.h:
25432 Test bench code for transpose routine
25435 * source/common/TShortYUV.cpp, source/common/TShortYUV.h,
25436 source/common/pixel.cpp, source/common/primitives.h,
25437 source/common/x86/asm-primitives.cpp, source/test/pixelharness.cpp:
25438 TShortYUV: asm code integration for pixelsub_ps
25441 2013-11-18 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
25443 * source/common/x86/pixel-a.asm:
25444 asm: fix the bug caused on 32-bit linux due to satd routines.
25447 2013-11-18 Kavitha Sampath <kavitha@multicorewareinc.com>
25449 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
25450 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/common.h,
25451 source/encoder/compress.cpp, source/encoder/encoder.cpp,
25452 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
25454 Encoder statistics: Inter[% (2Nx2N %2NxN %Nx2N %AMP)] Intra[% (%DC
25455 %PLANAR %ANG)] Split[%] Skip[%]
25458 2013-11-18 Nabajit Deka <Nabajit Deka>
25460 * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.h:
25461 Adding asm function declarations and initializations for chroma hps
25465 2013-11-18 Deepthi Nandakumar <deepthi@multicorewareinc.com>
25467 * source/Lib/TLibCommon/TComPrediction.cpp,
25468 source/Lib/TLibCommon/TComPrediction.h:
25469 TComPrediction: cleanup, remove unused buffers
25472 2013-11-17 Steve Borho <steve@borho.org>
25474 * source/test/ipfilterharness.cpp:
25475 testbench: quit zeroing buffers before every test
25478 * source/common/vec/ipfilter-sse41.cpp:
25479 vec: disable 16bpp ipfilter_ps[] functions, not 10bit pixel safe
25482 * source/common/vec/intra-ssse3.cpp:
25483 clang: fix ambiguous * operator in intra-ssse3.cpp
25486 2013-11-16 Steve Borho <steve@borho.org>
25488 * source/common/common.cpp:
25489 common: remove thread counts from param2string
25492 * source/common/common.cpp, source/common/common.h, source/x265.cpp,
25494 cli: allow string argument names for --me, generalize
25497 * source/common/vec/pixel-sse3.cpp:
25498 vec: drop blockfill intrinsic primitives, we have ASM
25501 * source/common/pixel.cpp, source/common/vec/pixel-sse3.cpp:
25502 vec: drop residual and recon intrinsic primitives, we have ASM
25505 * source/common/x86/pixel-util.asm:
25506 fix eoln of pixel-util.asm
25509 2013-11-16 Min Chen <chenm003@163.com>
25511 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/primitives.h,
25512 source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
25513 util.asm, source/common/x86/pixel.h:
25514 asm: assembly code for calcresidual[]
25517 * source/common/pixel.cpp, source/common/vec/pixel-sse3.cpp,
25518 source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
25519 util.asm, source/common/x86/pixel.h:
25520 cleanup: remove unused 64x64 functions
25523 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/x86/pixel-
25525 asm: residual buffer is alignment to size, so we can use alignment
25529 2013-11-16 Steve Borho <steve@borho.org>
25531 * source/encoder/encoder.cpp, source/encoder/slicetype.cpp:
25532 repair -i0 behavior
25535 * source/encoder/slicetype.cpp:
25536 slicetype: hoist intra cost estimate out of weightsAnalyze
25539 2013-11-15 Praveen Tiwari <Praveen Tiwari>
25541 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h:
25542 TComYuv::copyPartToYuv, asm code integration for blockcopy_pp
25545 * source/Lib/TLibCommon/TComYuv.cpp:
25546 TComYuv::copyToPartYuv, asm integration for blockcopy_pp
25549 * source/common/primitives.cpp, source/common/primitives.h,
25550 source/test/pixelharness.cpp:
25551 checking for all supported csp values
25554 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
25555 source/common/pixel.cpp, source/common/primitives.h,
25556 source/common/x86/asm-primitives.cpp, source/test/pixelharness.cpp:
25557 TComYuv::copyFromPicLuma, asm integration for chroma blockcopy_pp
25560 2013-11-15 Nabajit Deka <Nabajit Deka>
25562 * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.h:
25563 Adding asm function declarations and initializations for luma vss
25567 * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.h:
25568 Adding asm function declarations and initializations for chroma vss
25572 * source/common/x86/ipfilter8.asm:
25573 asm: routines for luma vss filter functions for all block sizes.
25576 * source/common/x86/ipfilter8.asm:
25577 asm: routines for chroma vss filter functions for all block sizes
25580 * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h:
25581 Adding test bench code for luma vss filter functions.
25584 * source/common/ipfilter.cpp, source/common/primitives.h:
25585 Adding function pointer array and C primitive initializations for
25586 luma vss filter functions
25589 * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h:
25590 Adding test bench code for chroma vss filter functions
25593 * source/common/ipfilter.cpp:
25594 Adding C primitive for chroma vss filter functions
25597 * source/common/primitives.h:
25598 Adding function pointer type & array declaration for chroma vss
25602 2013-11-16 Steve Borho <steve@borho.org>
25604 * source/CMakeLists.txt, source/common/CMakeLists.txt:
25605 cmake: disable some flags for clang, old versions balk at them
25608 2013-11-15 Praveen Tiwari <Praveen Tiwari>
25610 * source/Lib/TLibCommon/TComPrediction.cpp:
25611 reverted chroma_copy_pp asm integration to avoid csp break
25614 2013-11-15 Steve Borho <steve@borho.org>
25616 * source/Lib/TLibCommon/TComPic.cpp, source/common/lowres.cpp,
25617 source/common/lowres.h, source/encoder/slicetype.cpp,
25618 source/encoder/slicetype.h:
25619 slicetype: hoist weightp analysis above dosearch checks
25622 * source/Lib/TLibCommon/TComPrediction.cpp:
25623 TComPrediction: cleanup hugarian notations and redundant vars
25626 * source/Lib/TLibCommon/TComSlice.h:
25627 fix variable shadow warning
25630 2013-11-15 Deepthi Nandakumar <deepthi@multicorewareinc.com>
25635 * source/common/common.cpp:
25636 presets: fix bugs, better spread out the efficiency/speed data
25641 x265: whitespace nit
25644 2013-11-14 Steve Borho <steve@borho.org>
25646 * source/encoder/slicetype.cpp:
25647 slicetype: correct non-denom round, improve some comments
25650 * source/encoder/slicetype.cpp:
25651 slicetype: remove unnecessary lines, simplify a few things
25654 * source/encoder/slicetype.cpp:
25655 slicetype: use x265 style camelCase auto vars
25658 * source/encoder/slicetype.cpp:
25659 slicetype: since w is an auto-var there is no need to zero at early-
25663 * source/encoder/slicetype.cpp, source/encoder/slicetype.h:
25664 slicetype: optimize away mcWeight helper function
25667 2013-11-14 Shazeb Nawaz Khan <shazeb@multicorewareinc.com>
25669 * source/common/lowres.cpp, source/common/lowres.h,
25670 source/encoder/slicetype.cpp, source/encoder/slicetype.h:
25671 Using weighted lowres ref frames in cost estimation in lookahead
25674 * source/Lib/TLibCommon/TComSlice.h, source/encoder/slicetype.cpp,
25675 source/encoder/slicetype.h:
25676 Pulling x264 weight decision into x265 lookahead
25679 2013-11-14 Min Chen <chenm003@163.com>
25681 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
25682 util.asm, source/common/x86/pixel.h, source/test/pixelharness.cpp:
25683 asm: assembly code for calcrecon[]
25686 2013-11-14 Sumalatha Polureddy <Sumalatha Polureddy>
25688 * source/encoder/compress.cpp:
25689 no-rdo early exit: giving weightage to the cost of that CU and
25690 neighbour CU's for early exit
25692 Early exit is done when CU cost at depth "n" is lessthan sum of 60%
25693 of avgcost of that CU at same depth and 40% of avgcost of neighbour
25694 CU's at same depth.
25696 the performance, bitrate increase and psnr comparison are given
25697 below CLI: x265.exe input.y4m -o abc.hevc -r recon.y4m --rd 1 --ref
25700 BasketballDrive_1920x1080_50 Timetaken to encode: 704/585/564s
25701 bitrate: 3650/3696/3696 PSNR: 36.7/36.67/36.67 perf improvement:
25702 16.9% (compared to early exit OFF and already existing early exit)
25703 perf improvement: 19.8% (compared to early exit OFF and new early
25706 Cactus_1920x1080_50 Timetaken to encode: 526/443/436s bitrate:
25707 2787/2831/2833 PSNR: 35.527/35.48/35.48 perf improvement: 15.7%
25708 (compared to early exit OFF and already existing early exit) perf
25709 improvement: 17.1% (compared to early exit OFF and new early exit)
25711 Kimono1_1920x1080_24 Timetaken to encode: 279/235/238s bitrate:
25712 1243/1252/1252 PSNR: 38.16/38.158/38.159 perf improvement: 15.7%
25713 (compared to early exit OFF and already existing early exit) perf
25714 improvement: 14.6% (compared to early exit OFF and new early exit)
25716 FourPeople_1280x720_60 Timetaken to encode: 169/157/157s 16.9%/19.8%
25717 bitrate: 486/489/489 PSNR: 39.09/39.052/39.042 perf improvement:
25718 7.1% (compared to early exit OFF and already existing early exit)
25719 perf improvement: 7.1% (compared to early exit OFF and new early
25722 big_buck_bunny_360p24 Timetaken to encode: 1739/1511/1505s
25723 16.9%/19.8% bitrate: 174.9/175.38/175.5 PSNR: 37.798/37.746/37.752
25724 perf improvement: 13.1% (compared to early exit OFF and already
25725 existing early exit) perf improvement: 13.4% (compared to early exit
25726 OFF and new early exit)
25728 PartyScene_832x480_50 Timetaken to encode: 123/120/120s 16.9%/19.8%
25729 bitrate: 208/208/208 PSNR: 40.344/40.33/40.332 perf improvement:
25730 2.4% (compared to early exit OFF and already existing early exit)
25731 perf improvement: 2.4% (compared to early exit OFF and new early
25735 2013-11-14 Praveen Tiwari <Praveen Tiwari>
25737 * source/Lib/TLibEncoder/TEncSearch.cpp:
25738 reverted chroma_copy_pp asm integration code, avoiding csp break
25741 2013-11-14 Murugan Vairavel <murugan@multicorewareinc.com>
25743 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
25744 source/common/x86/pixel.h:
25745 asm: code for scale1D_128to64 routine
25748 * source/test/pixelharness.cpp, source/test/pixelharness.h:
25749 Unit test code for Pixel scaling
25752 2013-11-14 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
25754 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
25755 asm: assembly code for pixel_satd_32x64 and pixel_satd_48x64
25758 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
25759 asm: assembly code for pixel_satd_64x64
25762 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
25763 asm: assembly code for pixel_satd_64x32 and pixel_satd_64x48
25766 2013-11-13 Steve Borho <steve@borho.org>
25768 * source/Lib/TLibEncoder/TEncSearch.cpp:
25772 2013-11-13 Nabajit Deka <Nabajit Deka>
25774 * source/common/x86/ipfilter8.asm:
25775 asm: routines for chroma vps filter functions for 2x4 and 2x8 block
25779 2013-11-13 Derek Buitenhuis <derek.buitenhuis@gmail.com>
25781 * source/Lib/TLibEncoder/TEncSearch.cpp:
25782 Reindent after last commit
25785 * source/Lib/TLibEncoder/TEncSearch.cpp,
25786 source/Lib/TLibEncoder/TEncSearch.h:
25787 TEncSearch: Fix parameter type of xEstimateResidualQT
25789 Fixes compilation with g++.
25792 2013-11-13 Nabajit Deka <Nabajit Deka>
25794 * source/common/x86/asm-primitives.cpp,
25795 source/common/x86/ipfilter8.asm, source/common/x86/ipfilter8.h:
25796 Change minimum architecture to sse4 as chroma vsp functions for
25797 block sizes(2x4,2x8 and 6x8) need faster SSE4 instructions.
25800 * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.h:
25801 Adding asm function declarations and initializations for chroma vps
25805 * source/common/x86/ipfilter8.asm:
25806 asm: routines for chroma vps filter functions for 32xN block sizes.
25809 * source/common/x86/ipfilter8.asm:
25810 asm: routines for chroma vps filter function for 24x32 block size.
25813 * source/common/x86/ipfilter8.asm:
25814 asm: routines for chroma vps filter functions for 16xN block sizes.
25817 * source/common/x86/ipfilter8.asm:
25818 asm: routines for chroma vps filter functions for 6x8 and 12x16
25822 * source/common/x86/ipfilter8.asm:
25823 asm: routines for chroma vps filter functions for 8xN block sizes
25826 * source/common/x86/ipfilter8.asm:
25827 asm: routines for chroma vps filter functions for 4xN block sizes.
25830 * source/common/x86/ipfilter8.asm:
25831 asm: routines for chroma hps filter functions for 16xN, 24xN and
25835 * source/common/x86/ipfilter8.asm:
25836 asm: routines for chroma hps filter functions for 8xN block sizes.
25839 * source/common/x86/ipfilter8.asm:
25840 asm: Proper indentation and function prototype updation for chroma
25841 hps filter functions for 2xN, 4xN, 6x8 and 12x16 block sizes.
25844 2013-11-13 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
25846 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
25847 asm: assembly code for pixel_satd_64x16
25850 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
25851 asm: assembly code for pixel_satd_32x32
25854 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
25855 asm: assembly code for pixel_satd_24x32
25858 2013-11-12 Murugan Vairavel <murugan@multicorewareinc.com>
25860 * source/common/pixel.cpp, source/common/primitives.h,
25861 source/common/x86/asm-primitives.cpp, source/common/x86/pixel.h,
25862 source/test/pixelharness.cpp, source/test/pixelharness.h:
25863 asm: Unit test code for pixelsub_ps function
25866 2013-11-13 Murugan Vairavel <murugan@multicorewareinc.com>
25868 * source/common/x86/pixel-a.asm:
25869 asm: pixelsub_ps routine for all block sizes
25872 2013-11-12 sagarkotecha <sagarkotecha>
25874 * source/common/ipfilter.cpp:
25875 Bug fix : In ipfilter for 10 bit yuv support
25878 2013-11-12 Shazeb Nawaz Khan <shazeb@multicorewareinc.com>
25880 * source/encoder/ratecontrol.cpp:
25881 Adding initialisation for ssd/sum values for lowress frame
25884 2013-11-12 Nabajit Deka <Nabajit Deka>
25886 * source/test/ipfilterharness.cpp:
25887 Adding test bench code for chroma vps filter functions.
25890 * source/common/ipfilter.cpp, source/common/primitives.h:
25891 Adding function pointer array and C primitive initializations for
25892 chroma vps filter functions.
25895 * source/common/x86/ipfilter8.asm:
25896 asm: routines for chroma hps filter functions for 2xN, 4xN, 6x8 and
25900 * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h:
25901 Adding test bench code for chroma hps filter functions.
25904 * source/common/ipfilter.cpp, source/common/primitives.h:
25905 Adding function pointer array and initializations for chroma hps
25909 * source/common/x86/asm-primitives.cpp:
25910 Adding function pointer initializations for asm chroma vsp
25914 * source/common/x86/ipfilter8.h:
25915 Adding asm function declarations for chroma vsp filter functions.
25918 * source/common/x86/ipfilter8.asm:
25919 asm: routines for chroma vsp filter functions for all block sizes.
25922 * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h:
25923 Adding test bench code for chroma vsp filter functions.
25926 * source/common/ipfilter.cpp, source/common/primitives.h:
25927 Adding function pointer array and initializations for chroma vsp
25931 2013-11-12 Min Chen <chenm003@163.com>
25933 * source/common/x86/asm-primitives.cpp, source/common/x86/mc-a.asm,
25934 source/common/x86/pixel.h:
25935 asm: assembly code for x265_pixel_avg_12x16
25938 2013-11-12 Praveen Tiwari <Praveen Tiwari>
25940 * source/Lib/TLibCommon/TComYuv.cpp:
25941 TComYuv.cpp, use new luma_copy_ps asm primitives where feasible
25944 * source/Lib/TLibCommon/TComYuv.cpp:
25945 TComYuv.cpp, use new blockcopy_pp luma primitives where feasible
25948 * source/Lib/TLibCommon/TComYuv.cpp:
25949 TComYuv::copyFromPicLuma, blockcopy_pp luma asm code integration
25952 * source/Lib/TLibCommon/TComYuv.cpp:
25953 TComYuv::copyToPicLuma, blockcopy_pp asm code integration
25956 2013-11-12 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
25958 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
25959 asm: assembly code for pixel_satd_12x16
25962 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
25963 asm: assembly code for satd_16x32, satd_16x64, satd_8x32
25966 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
25967 asm: assembly code for pixel_satd_16x4
25970 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
25971 asm: assembly code for pixel_satd_16x12
25974 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
25975 asm: assembly code for pixel_satd_32x24 and rearranged the functions
25978 2013-11-11 Steve Borho <steve@borho.org>
25980 * source/encoder/compress.cpp:
25981 compress: fix shadow warning from GCC
25984 * source/Lib/TLibEncoder/TEncSearch.cpp:
25985 TEncSearch: use luma block copy (luma part size) if bChromaSame
25988 2013-11-12 Deepthi Nandakumar <deepthi@multicorewareinc.com>
25990 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
25991 source/encoder/compress.cpp:
25992 Backout: Causing non-determinism in rd 0 and 1. Needs to be further
25996 2013-11-12 Min Chen <chenm003@163.com>
25998 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/TShortYUV.cpp:
25999 cleanup: hardcoded m_qtTempTComYuv[qtLayer].m_width to MAX_CU_SIZE
26002 2013-11-12 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
26004 * source/common/x86/asm-primitives.cpp, source/common/x86/mc-a.asm,
26005 source/common/x86/pixel.h:
26006 asm: pixel_avg_48x64, pixel_avg_8x32
26009 * source/common/x86/asm-primitives.cpp, source/common/x86/mc-a.asm,
26010 source/common/x86/pixel.h:
26011 asm: asm: pixel_avg_24x32
26014 * source/common/x86/asm-primitives.cpp, source/common/x86/mc-a.asm,
26015 source/common/x86/pixel.h:
26016 asm: pixel_avg_64x(64,48,16)
26019 * source/common/x86/asm-primitives.cpp, source/common/x86/mc-a.asm,
26020 source/common/x86/pixel.h:
26021 asm: pixel_avg_32x(64,32,24,8)
26024 2013-11-12 Sumalatha Polureddy <Sumalatha Polureddy>
26026 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
26027 source/encoder/compress.cpp:
26028 no-rdo early exit: giving weightage to the cost of all CU's and
26029 neighbour CU's for early exit
26031 Early exit is done when CU cost at depth "n" is lessthan sum of 60%
26032 of avgcost of all CU's and 40% of avgcost of neighbour CU's at same
26036 2013-11-11 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
26038 * source/Lib/TLibEncoder/TEncSearch.cpp:
26039 no-rdo: cleanups. Remove unnecessary memsets, rearrange
26043 2013-11-11 Steve Borho <steve@borho.org>
26045 * source/Lib/TLibCommon/TComYuv.h:
26046 TComYuv: de-hungarian nits
26049 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/motion.cpp,
26050 source/encoder/ratecontrol.cpp:
26051 asm: use new block copy primitives where feasible
26054 * source/Lib/TLibCommon/TComPrediction.cpp,
26055 source/common/ipfilter.cpp, source/common/primitives.h,
26056 source/common/vec/ipfilter-sse41.cpp, source/common/x86/asm-
26057 primitives.cpp, source/common/x86/ipfilter8.asm,
26058 source/common/x86/ipfilter8.h, source/encoder/motion.cpp:
26059 asm: hookup luma_vsp primitive, drop asm and intrinsic non-block
26063 2013-11-11 Nabajit Deka <Nabajit Deka>
26065 * source/common/x86/asm-primitives.cpp:
26066 Adding function pointer initializations for luma vsp functions.
26069 * source/common/x86/ipfilter8.h:
26070 Adding asm function declarations for luma vsp filter functions.
26073 * source/common/x86/ipfilter8.asm:
26074 asm: routines for luma vsp filter functions for all block sizes.
26077 2013-11-11 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
26079 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
26080 asm: assembly code for x265_pixel_satd_32x16
26083 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
26084 asm: assembly code for x265_pixel_satd_32x8
26087 2013-11-11 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
26089 * source/common/x86/asm-primitives.cpp, source/common/x86/mc-a.asm,
26090 source/common/x86/pixel.h:
26091 asm: enabled pixel_avg_16x(64,32,12,4) assembly functions
26094 2013-11-11 Min Chen <chenm003@163.com>
26096 * source/Lib/TLibEncoder/TEncSearch.cpp:
26097 use fixed stride/size on m_qtTempTComYuv, to reduce number of
26098 calcRecon() parameters
26101 * source/common/x86/asm-primitives.cpp, source/common/x86/mc-a.asm,
26102 source/common/x86/pixel.h:
26103 asm: pixel_avg[32x16]
26106 2013-11-11 Praveen Tiwari <Praveen Tiwari>
26108 * source/common/x86/asm-primitives.cpp:
26109 added macro call for luma partition blockcopy_ps function
26112 * source/common/x86/asm-primitives.cpp,
26113 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
26114 asm code for blockcopy_ps_64xN
26117 * source/common/x86/asm-primitives.cpp,
26118 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
26119 asm code for luma blockcopy_ps_48x64
26122 * source/common/x86/asm-primitives.cpp,
26123 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
26124 asm code for luma blockcopy_ps_32x64
26127 * source/common/x86/asm-primitives.cpp,
26128 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
26129 added asm function for luma blockcopy_ps_16x64
26132 * source/common/x86/asm-primitives.cpp,
26133 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
26134 added asm code blockcopy_ps_4x16 and invoked function pointer
26135 initialization with macro
26138 * source/common/x86/asm-primitives.cpp,
26139 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
26140 asm code for blockcopy_ps_6x8
26143 * source/common/x86/asm-primitives.cpp,
26144 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
26145 asm code for blockcopy_ps_2x8
26148 * source/common/x86/asm-primitives.cpp,
26149 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
26150 asm code for blockcopy_ps_2x4
26153 * source/common/x86/asm-primitives.cpp,
26154 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
26155 asm code for blockcopy_ps_24x32
26158 * source/common/x86/asm-primitives.cpp,
26159 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
26160 asm code for blockcopy_ps_4x8
26163 * source/common/x86/asm-primitives.cpp,
26164 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
26165 asm code for blockcopy_ps_4x4
26168 * source/common/x86/asm-primitives.cpp,
26169 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
26170 asm code for blockcopy_ps_4x2
26173 * source/common/x86/asm-primitives.cpp,
26174 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
26175 asm code for blockcopy_ps_12x16
26178 * source/common/x86/asm-primitives.cpp,
26179 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
26180 asm code for blockcopy_ps_32xN
26183 * source/common/x86/asm-primitives.cpp,
26184 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
26185 blockcopy_ps_16x4, asm code is now sse4
26188 * source/common/x86/blockcopy8.asm:
26189 eliminated register copy from BLOCKCOPY_PS_W16_H4 macro
26192 * source/common/x86/asm-primitives.cpp,
26193 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
26194 asm code for asm code for blockcopy_ps,16x8, 16x12, 16x16, 16x32
26197 * source/common/x86/asm-primitives.cpp,
26198 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
26199 asm code for blockcopy_ps_16x4
26202 * source/common/x86/asm-primitives.cpp,
26203 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
26204 asm code for blockcopy_ps, 8x6, 8x16 and 8x32
26207 * source/common/x86/asm-primitives.cpp,
26208 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
26209 asm code for blockcopy_ps_8x6
26212 2013-11-11 Steve Borho <steve@borho.org>
26214 * source/encoder/compress.cpp:
26215 compress: white-space nits
26218 2013-11-11 Mahesh Doijade <maheshdoijade@multicorewareinc.com>
26220 * source/encoder/compress.cpp:
26221 TEncCu: cleanup xComputeCostIntraInInter to use 32x32 logic for
26225 2013-11-11 Min Chen <chenm003@163.com>
26227 * source/test/pixelharness.cpp:
26228 bugfix: PixelHarness::check_pixelavg_pp() output buffer did not
26232 * source/common/x86/asm-primitives.cpp, source/common/x86/mc-a.asm:
26233 re-enable asm code for pixel_avg, the problem is miss EMMS
26236 2013-11-11 Praveen Tiwari <Praveen Tiwari>
26238 * source/common/x86/asm-primitives.cpp,
26239 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
26240 asm code for blockcopy_ps_8x4
26243 * source/common/x86/asm-primitives.cpp,
26244 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
26245 asm code for blockcopy_ps_8x2
26248 * source/test/pixelharness.cpp, source/test/pixelharness.h:
26249 unit test code for block_copy_ps function
26252 * source/common/pixel.cpp, source/common/primitives.h:
26253 added blockcopy_ps c primitive and function pointes
26256 2013-11-11 Nabajit Deka <Nabajit Deka>
26258 * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h:
26259 Adding test bench code for luma vsp filter functions.
26262 * source/common/ipfilter.cpp:
26263 Adding C primitive for luma vsp filter functions.
26266 * source/common/primitives.h:
26267 Adding function pointer type & array definition for luma vsp filter
26271 2013-11-11 Deepthi Nandakumar <deepthi@multicorewareinc.com>
26273 * source/common/vec/dct-sse3.cpp, source/common/vec/dct-sse41.cpp:
26274 16bpp primitives: disabling dct/idct/dst/idst primitives
26277 2013-11-09 Steve Borho <steve@borho.org>
26279 * source/test/testbench.cpp:
26280 testbench: set g_bitDepth to 10 for HIGH_BIT_DEPTH builds
26282 This more accurately tests our optimized primitives vs the C ref,
26283 and several of them now fail validation. The intrinsic primitives
26284 need to be updated to the changes made in commit b24d05dd4990 and/or
26285 disabled for 16bpp.
26288 * source/common/vec/dct-sse3.cpp:
26289 dct: white-space cleanup
26292 * source/output/y4m.cpp:
26293 y4m: fix 8bpp build
26296 * source/Lib/TLibCommon/TComPicYuv.cpp:
26297 TComPicYuv: add a comment for future optimizations
26300 * source/input/yuv.cpp:
26301 yuv: pic.stride should be in units of pixels, not bytes
26304 * source/Lib/TLibCommon/TComPicYuv.cpp:
26305 csp: fix allocation size calculation of chroma planes
26308 * source/Lib/TLibCommon/TComPicYuv.cpp,
26309 source/Lib/TLibCommon/TComPicYuv.h:
26310 TComPicYuv: remove unused luma-oriented functions, cleanup destroy
26314 * source/Lib/TLibCommon/TComPicYuv.cpp,
26315 source/Lib/TLibCommon/TComPicYuv.h:
26316 TComPicYuv: remove unused copy methods
26319 * source/Lib/TLibCommon/TComPicYuv.cpp:
26320 TComPicYuv: cleanup prefixes
26323 * source/Lib/TLibCommon/TComPicYuv.cpp,
26324 source/Lib/TLibCommon/TComPicYuv.h:
26325 TComPicYuv: remove unused dump function
26328 * source/output/output.cpp, source/output/y4m.cpp,
26329 source/output/y4m.h, source/output/yuv.cpp, source/x265.cpp:
26330 cli: file writers should validate output bitdepth, if any is
26334 * source/common/CMakeLists.txt, source/common/vec/pixel-avx2.cpp,
26335 source/common/vec/vec-primitives.cpp:
26336 pixel: remove AVX2 vector class SAD primitives
26338 These are superceded by assembly - the ASM doesn't use AVX2 yet but
26339 it's already faster
26342 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h:
26343 TComYuv: remove unused removeHighFreq()
26346 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
26347 source/common/pixel.cpp, source/common/primitives.h,
26348 source/common/vec/blockcopy-sse3.cpp, source/test/pixelharness.cpp,
26349 source/test/pixelharness.h:
26350 primitive: remove pixeladd_pp and TComYuv::addClip()
26352 These were used by the old HM bidir search
26355 2013-11-08 Steve Borho <steve@borho.org>
26357 * source/input/input.h, source/input/y4m.cpp, source/input/y4m.h,
26358 source/input/yuv.cpp, source/input/yuv.h:
26359 input: drop unthreaded reader paths for simplicity
26362 * source/input/yuv.cpp:
26363 yuv: simplify framesize usage
26366 * source/input/yuv.cpp:
26367 yuv: initialize pixelbytes as early as possible
26370 * source/input/y4m.cpp, source/input/yuv.cpp:
26371 input: include nits
26375 cli: do not check recon bit depth if no recon file is requested
26377 For now, just enforce our current requirement that the output
26378 bitdepth must match the input bit depth. If the recon file writers
26379 ever support depth conversions, these checks can be revisited
26382 * source/common/common.cpp:
26383 common: set default params to match medium preset, keep star search
26387 2013-11-06 Steve Borho <steve@borho.org>
26389 * source/common/common.cpp:
26390 presets: adjust presets to increase spread and align closer with
26394 2013-11-08 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
26396 * source/Lib/TLibEncoder/TEncSearch.cpp,
26397 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp:
26398 no-rdo: refactor enodeResandCalcRDInterCU function
26400 Divide estimateBits and modeDecision inside the function.
26401 EstimateBits uses a pseudo encode. Bitstream changes with this patch
26405 2013-11-08 Steve Borho <steve@borho.org>
26407 * source/Lib/TLibCommon/TComPicYuv.cpp:
26408 TComPicYuv: fixup 16x16 picture padding by using unpadded width as
26412 2013-11-08 Mahesh Doijade <Mahesh Doijade>
26414 * source/Lib/TLibEncoder/TEncSearch.cpp:
26415 TEncSearch: cleanup estIntraPredQT to use 32x32 logic for 64x64
26419 2013-11-08 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
26421 * source/common/x86/sad-a.asm:
26422 asm: optimised pixel_sad_xN_24x32 assembly code
26425 2013-11-08 Praveen Tiwari <Praveen Tiwari>
26427 * source/common/x86/blockcopy8.asm:
26428 blockcopy_sp_2x8, optimized asm code
26431 * source/common/x86/blockcopy8.asm:
26432 blockcopy_sp_2x4, optimized asm code
26435 * source/common/x86/blockcopy8.asm:
26436 blockcopy_sp_6x8, optimized asm code
26439 * source/common/x86/blockcopy8.asm:
26440 blockcopy_sp_32xN, optimized asm code
26443 * source/common/x86/blockcopy8.asm:
26444 blockcopy_sp_48x64, optimized asm code
26447 * source/common/x86/blockcopy8.asm:
26448 blockcopy_sp_64xN, optimized asm code
26451 * source/common/x86/blockcopy8.asm:
26452 blockcopy_sp_24x32, optimized asm code
26455 * source/common/x86/blockcopy8.asm:
26456 blockcopy_sp_16xN, optimized asm code
26459 * source/common/x86/blockcopy8.asm:
26460 blockcopy_sp_12x16, optimized asm code
26463 * source/common/x86/blockcopy8.asm:
26464 blockcopy_sp_8x16, optimized asm code
26467 * source/common/x86/blockcopy8.asm:
26468 blockcopy_sp_8x8, optimized asm code
26471 * source/common/x86/blockcopy8.asm:
26472 blockcopy_sp_8x2, optimized asm code
26475 * source/common/x86/blockcopy8.asm:
26476 blockcopy_sp_8x6, optimized asm code
26479 * source/common/x86/blockcopy8.asm:
26480 blockcopy_sp_8x4, optimized asm code
26483 * source/common/x86/blockcopy8.asm:
26484 blockcopy_sp_4x8, optimized asm code
26487 * source/common/x86/blockcopy8.asm:
26488 blockcopy_sp_4x16, optimized asm code
26491 * source/common/x86/blockcopy8.asm:
26492 blockcopy_sp_4x4, optimized asm code according to modified C
26496 * source/common/x86/blockcopy8.asm:
26497 blockcopy_sp_4x2, optimized asm code according to modified C
26501 2013-11-08 Steve Borho <steve@borho.org>
26503 * source/common/ipfilter.cpp, source/common/primitives.h,
26504 source/common/vec/ipfilter-sse41.cpp,
26505 source/test/ipfilterharness.cpp, source/test/ipfilterharness.h:
26506 primitives: remove unused ipfilter_pp_t funcdef and C and intrinsic
26509 These are now completely replaced by block based assembly code
26512 * source/common/vec/pixel-sse41.cpp:
26513 linux: re-enable sse_12x16 for clang and gcc
26516 2013-11-08 Min Chen <chenm003@163.com>
26518 * source/common/vec/pixel-sse41.cpp:
26519 fix bug in sse_sp12
26522 * source/test/pixelharness.cpp, source/test/pixelharness.h:
26523 testbench: update for blockcopy, these function use dynamic range
26527 2013-11-07 Steve Borho <steve@borho.org>
26530 cli: add missing --version long option for -V, and -? short option
26535 cli: report a warning on preset or tune string mismatches
26538 * source/common/vec/pixel-sse41.cpp:
26539 linux: disable sse_12x16 for GCC and clang
26542 * source/test/pixelharness.cpp:
26543 linux: fix pixelharness on linux which has full-range rand()
26546 * source/common/vec/blockcopy-sse3.cpp:
26547 vec: remove use of deleted primitive for 16bpp
26550 * source/common/lowres.h:
26551 lowres: reorder members of Lowres struct for clarity
26554 * source/common/lowres.h, source/common/mv.h,
26555 source/encoder/motion.cpp, source/encoder/reference.h:
26556 lowres: move ReferencePlanes from mv.h to lowres.h
26559 * source/common/mv.h, source/encoder/motion.cpp,
26560 source/encoder/slicetype.cpp:
26561 lowres: pull lowres motion compensation and residual costs into
26565 2013-11-07 Min Chen <chenm003@163.com>
26567 * source/common/TShortYUV.cpp, source/common/pixel.cpp,
26568 source/common/primitives.h, source/common/vec/blockcopy-sse3.cpp,
26569 source/test/pixelharness.cpp, source/test/pixelharness.h:
26570 rename: pixelsub_sp to pixelsub_ps, because it sub two Pixel and
26574 2013-11-07 Praveen Tiwari <Praveen Tiwari>
26576 * source/common/x86/asm-primitives.cpp,
26577 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
26578 asm code for blockfil_s, 32x32
26581 * source/common/x86/asm-primitives.cpp,
26582 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
26583 asm code for blockfill_s, 16x16
26586 * source/common/x86/asm-primitives.cpp,
26587 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
26588 asm code for blockfill_s, 8x8
26591 * source/common/x86/asm-primitives.cpp,
26592 source/common/x86/blockcopy8.asm, source/common/x86/blockcopy8.h:
26593 asm code for blockfill_s, 4x4
26596 * source/test/pixelharness.cpp, source/test/pixelharness.h:
26597 unit test code for blockfill_s_c function
26600 2013-11-07 Steve Borho <steve@borho.org>
26602 * source/Lib/TLibCommon/TComPrediction.cpp, source/encoder/motion.cpp:
26603 asm: enable luma_vpp block MC functions
26606 2013-11-07 Nabajit Deka <Nabajit Deka>
26608 * source/common/x86/ipfilter8.asm:
26609 Bug fix for luma vpp asm routines.Also incorporated review comment
26613 2013-11-07 Min Chen <chenm003@163.com>
26615 * source/common/pixel.cpp, source/common/primitives.h,
26616 source/common/vec/blockcopy-sse3.cpp, source/test/pixelharness.cpp,
26617 source/test/pixelharness.h:
26618 cleanup: remove unused blockcpy_sc
26621 * source/common/pixel.cpp:
26622 asm: the pixel value in blockcopy_ps is saturation by calcRecon, so
26623 asm can use packuswb
26626 2013-11-07 Aarthi Thirumalai <Aarthi Thirumalai>
26628 * source/Lib/TLibCommon/TComPicYuv.cpp:
26629 tcompicyuv: add right boundary padding while applying bottom row
26633 * source/Lib/TLibCommon/TComPicYuv.cpp, source/common/lowres.cpp,
26634 source/encoder/frameencoder.cpp:
26635 aq: bug fix, extend right and bot of TComPic::m_origPicYuv to a
26639 2013-11-07 Steve Borho <steve@borho.org>
26641 * source/common/vec/pixel-sse41.cpp:
26642 pixel: remove last remaining intrinsic SAD primitives
26645 2013-11-07 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
26647 * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm:
26648 asm: assembly code for pixel_sad_x4_64xN
26651 * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm:
26652 asm: assembly code for pixel_sad_x3_64xN
26655 * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm:
26656 asm: assembly code for pixel_sad_x4_48x64
26659 * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm:
26660 asm: assembly code for pixel_sad_x3_48x64
26663 2013-11-07 Gopu Govindaswamy <gopu@multicorewareinc.com>
26665 * source/Lib/TLibCommon/TComPicYuv.cpp:
26666 tcompicyuv: improvement for Extend the right if width is not
26667 multiple of min CU size
26670 2013-11-07 Min Chen <chenm003@163.com>
26672 * source/common/pixel.cpp:
26673 asm: the pixel value in blockcopy_ps is saturation by calcRecon, so
26674 asm can use packuswb
26677 2013-11-07 Gopu Govindaswamy <gopu@multicorewareinc.com>
26679 * source/Lib/TLibCommon/TComPicYuv.cpp:
26680 tcompicyuv: fix for copyFromPicture() when HIGH_BIT_DEPTH enable,
26681 sizeof(Pel)=2 and pic.bitDepth=8
26684 2013-11-07 Steve Borho <steve@borho.org>
26686 * source/encoder/encoder.cpp:
26687 api: output x265_picture.bitDepth should reflect actual internal
26690 And not sizeof(pixel) * 8.
26693 2013-11-06 Steve Borho <steve@borho.org>
26695 * source/common/common.cpp, source/encoder/encoder.cpp,
26696 source/x265.cpp, source/x265.h:
26697 api: simplistic auto-determination of frame thread count
26700 * source/encoder/motion.cpp:
26701 motion: fixup weightp - use unweighted reference pixels as
26702 interpolation source
26706 cli: do not lookup a colorspace name if not supplied
26709 * source/common/common.cpp:
26710 common: set a default color space of I420
26713 * source/Lib/TLibCommon/TComPrediction.cpp, source/encoder/motion.cpp:
26714 asm: use new block based single-pass H-filter motion compensation
26718 * source/Lib/TLibCommon/TComPrediction.cpp:
26719 asm: use new block based chroma single-pass MC primitives
26722 * source/common/CMakeLists.txt, source/common/x86/asm-primitives.cpp,
26723 source/common/x86/blockcopy8.h, source/common/x86/pixel.h:
26724 asm: move block copy funcdefs into blockcopy8.h
26727 * source/common/x86/asm-primitives.cpp:
26728 asm: move _sse4 block copy function pointer assignments into SSE4
26732 2013-11-06 Praveen Tiwari <Praveen Tiwari>
26734 * source/common/x86/blockcopy8.asm:
26735 blockcopy_sp, corrected number of xmm registers
26738 * source/common/x86/asm-primitives.cpp,
26739 source/common/x86/blockcopy8.asm:
26740 asm code for blockcopy_sp, 64xN
26743 * source/common/x86/blockcopy8.asm:
26744 blockcopy_sp, 48x64 changed the macro name according to width
26747 * source/common/x86/asm-primitives.cpp,
26748 source/common/x86/blockcopy8.asm:
26749 asm code for blockcopy_sp, 48x64
26752 * source/common/x86/asm-primitives.cpp,
26753 source/common/x86/blockcopy8.asm:
26754 blockcopy_sp, added 16x64 block size
26757 * source/common/x86/asm-primitives.cpp,
26758 source/common/x86/blockcopy8.asm:
26759 asm code for blockcopy_sp, 32x64
26762 * source/common/x86/asm-primitives.cpp,
26763 source/common/x86/blockcopy8.asm, source/common/x86/pixel.h:
26764 used sse4 for 2x4, 2x8 and 6x8
26767 * source/common/x86/asm-primitives.cpp,
26768 source/common/x86/blockcopy8.asm:
26769 asm code for blockcopy_sp, 6x8
26772 * source/common/x86/asm-primitives.cpp,
26773 source/common/x86/blockcopy8.asm:
26774 asm code for blockcopy_sp, 2x8
26777 * source/common/x86/asm-primitives.cpp,
26778 source/common/x86/blockcopy8.asm:
26779 asm code for blockcopy_sp, 2x4
26782 * source/common/x86/asm-primitives.cpp,
26783 source/common/x86/blockcopy8.asm:
26784 asm code for blockcopy_sp, 12x16 block
26787 * source/common/x86/asm-primitives.cpp,
26788 source/common/x86/blockcopy8.asm:
26789 asm code for blockcopy_sp, 32xN
26792 2013-11-06 Gopu Govindaswamy <gopu@multicorewareinc.com>
26794 * source/Lib/TLibCommon/TComDataCU.cpp:
26795 tcomdatacu: partStartIdx is always negative, no need to have else
26799 * source/Lib/TLibCommon/TComDataCU.cpp:
26800 tcomdatacu: remove the for loop in InitCU(), which will never
26803 partStartIdx is always zero or negative, and the numElements is also
26804 always zero or negative the for will never executed if numElements
26805 is zero or negative, removed the for loop block in initCU()
26808 2013-11-06 Steve Borho <steve@borho.org>
26810 * source/Lib/TLibCommon/TComSlice.cpp,
26811 source/Lib/TLibCommon/TComSlice.h:
26815 * source/common/x86/pixel.h:
26819 2013-11-06 Min Chen <chenm003@163.com>
26821 * source/Lib/TLibCommon/TComPrediction.cpp,
26822 source/common/ipfilter.cpp, source/common/primitives.h,
26823 source/common/x86/asm-primitives.cpp,
26824 source/common/x86/ipfilter8.asm, source/common/x86/ipfilter8.h,
26825 source/encoder/motion.cpp, source/test/ipfilterharness.cpp,
26826 source/test/ipfilterharness.h:
26827 asm: ipfilter_ss[FILTER_V_S_S_8]
26830 2013-11-06 Deepthi Nandakumar <deepthi@multicorewareinc.com>
26832 * source/output/y4m.cpp, source/output/yuv.cpp:
26833 YUV, Y4M Output: bitdepth confusion resolved
26836 2013-11-06 Praveen Tiwari <Praveen Tiwari>
26838 * source/common/x86/asm-primitives.cpp,
26839 source/common/x86/blockcopy8.asm:
26840 asm code for blockcopy_sp, 24x32 block
26843 * source/common/x86/asm-primitives.cpp,
26844 source/common/x86/blockcopy8.asm:
26845 asm code for blockcopy_sp, 16xN blocks
26848 2013-11-06 Nabajit Deka <Nabajit Deka>
26850 * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.h:
26851 Adding asm function declaration and function pointer initializations
26852 for luma hps functions.
26855 * source/common/x86/ipfilter8.asm:
26856 asm: routines for luma hps filter functions for all block sizes.
26859 2013-11-06 Deepthi Nandakumar <deepthi@multicorewareinc.com>
26864 * source/output/yuv.cpp:
26865 YUV Output: more rext merge bugs
26868 * source/output/yuv.cpp:
26869 YUV output: correct a rext merge issue
26872 2013-11-06 Praveen Tiwari <Praveen Tiwari>
26874 * source/common/x86/asm-primitives.cpp,
26875 source/common/x86/blockcopy8.asm:
26876 asm code for blockcopy_sp, 4xN blocks
26879 * source/common/x86/asm-primitives.cpp,
26880 source/common/x86/blockcopy8.asm:
26881 asm code for blockcopy_sp, 8xN blocks
26884 2013-11-06 Nabajit Deka <Nabajit Deka>
26886 * source/test/ipfilterharness.cpp:
26887 Adding test bench code for luma hps filter functions.
26890 * source/common/ipfilter.cpp, source/common/primitives.h:
26891 Adding function pointer array and C primitive for luma hps filter
26895 2013-11-06 Gopu Govindaswamy <gopu@multicorewareinc.com>
26897 * source/Lib/TLibCommon/TComDataCU.cpp:
26898 tcomdatacu: remove memset in initSubCU()
26900 m_trCoeffY, m_trCoeffCb, m_trCoeffCr, m_iPCMSampleY, m_iPCMSampleCb
26901 and m_iPCMSampleCr buffers are getting initialized in initCU(), and
26902 its not required to set 0 in initSubCU()
26905 * source/Lib/TLibCommon/TComDataCU.cpp:
26906 tcomdatacu: remove memset in initEstData()
26908 m_trCoeffY, m_trCoeffCb, m_trCoeffCr, m_iPCMSampleY, m_iPCMSampleCb
26909 and m_iPCMSampleCr buffers are getting initialized in initCU(), and
26910 its not required to set 0 in initEstData()
26913 * source/Lib/TLibCommon/TComDataCU.cpp,
26914 source/Lib/TLibCommon/TComDataCU.h:
26915 tcomdatacu: remove unused set functions
26918 2013-11-06 Steve Borho <steve@borho.org>
26920 * source/encoder/motion.cpp, source/encoder/motion.h:
26921 motion: simplify subpel refine, drop height+1 interpolation
26923 This is in preparation of enabling assembly versions of
26924 interpolation functions
26927 2013-11-05 Steve Borho <steve@borho.org>
26929 * source/encoder/motion.cpp:
26930 motion: simplify lowres subpel refine
26933 2013-11-06 Steve Borho <steve@borho.org>
26935 * source/encoder/slicetype.cpp:
26936 slicetype: move lastNonB set outside if expression for both I and P
26940 2013-11-05 Steve Borho <steve@borho.org>
26942 * source/encoder/motion.cpp:
26943 motion: move StarPatternSearch higher in the file, no behavior
26947 2013-11-06 Steve Borho <steve@borho.org>
26949 * source/CMakeLists.txt:
26950 cmake: link platform libraries into the shared library (fixes PPA
26954 2013-11-05 Steve Borho <steve@borho.org>
26956 * source/cmake/CMakeDetermineASM_YASMCompiler.cmake:
26957 cmake: use detected yasm executable for CMAKE_ASM_YASM_COMPILER
26961 * source/Lib/TLibCommon/TComDataCU.cpp,
26962 source/Lib/TLibCommon/TComDataCU.h,
26963 source/Lib/TLibCommon/TComPattern.cpp,
26964 source/Lib/TLibCommon/TComPic.cpp,
26965 source/Lib/TLibCommon/TComPicSym.cpp,
26966 source/Lib/TLibCommon/TComPicSym.h,
26967 source/Lib/TLibCommon/TComPicYuv.cpp,
26968 source/Lib/TLibCommon/TComPicYuv.h,
26969 source/Lib/TLibCommon/TComPrediction.cpp,
26970 source/Lib/TLibCommon/TComPrediction.h,
26971 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
26972 source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCfg.h,
26973 source/Lib/TLibEncoder/TEncCu.cpp,
26974 source/Lib/TLibEncoder/TEncSearch.cpp,
26975 source/Lib/TLibEncoder/TEncSearch.h, source/common/TShortYUV.cpp,
26976 source/common/TShortYUV.h, source/common/common.cpp,
26977 source/common/common.h, source/encoder/cturow.cpp,
26978 source/encoder/encoder.cpp, source/input/input.h,
26979 source/input/y4m.cpp, source/input/y4m.h, source/input/yuv.cpp,
26980 source/input/yuv.h, source/output/output.cpp,
26981 source/output/output.h, source/output/y4m.cpp, source/output/y4m.h,
26982 source/output/yuv.cpp, source/output/yuv.h, source/x265.cpp,
26984 rext: partial support for 4:2:2 and 4:4:4 color spaces
26986 reconFileBitDepth did not need to be a member of x265_param, and the
26987 comment for inputBitDepth needed to mention that it also determined
26988 the internal bit depth of the encoder.
26991 * source/common/common.cpp, source/common/version.cpp,
26992 source/encoder/encoder.cpp, source/input/input.cpp,
26993 source/input/input.h, source/input/y4m.cpp, source/input/y4m.h,
26994 source/input/yuv.cpp, source/input/yuv.h, source/output/y4m.cpp,
26995 source/x265.cpp, source/x265.h:
26996 main10: allow pixel sizes of 10 and 12 for HIGH_BIT_DEPTH builds
26998 Removes param.internalBitDepth and uses inputBitDepth to mean both
26999 the size of input pixels and internal pixels (x265 will do no color
27003 * source/common/dct.cpp, source/common/ipfilter.cpp:
27004 main10: fix dct and MC primitives to correctly respect larger pixel
27008 * source/Lib/TLibCommon/ContextTables.h,
27009 source/Lib/TLibCommon/TComDataCU.h,
27010 source/Lib/TLibCommon/TComPicYuv.cpp,
27011 source/Lib/TLibCommon/TComPicYuv.h,
27012 source/Lib/TLibCommon/TComPicYuvMD5.cpp,
27013 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
27014 source/Lib/TLibCommon/TComTrQuant.cpp,
27015 source/Lib/TLibCommon/TComTrQuant.h,
27016 source/Lib/TLibEncoder/NALwrite.h,
27017 source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp,
27018 source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
27019 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
27020 source/Lib/TLibEncoder/TEncSearch.cpp,
27021 source/Lib/TLibEncoder/TEncSearch.h, source/common/common.cpp,
27022 source/common/cpu.cpp, source/common/dct.cpp,
27023 source/common/ipfilter.cpp, source/common/lowres.cpp,
27024 source/common/lowres.h, source/common/pixel.cpp, source/common/vec
27025 /dct-sse41.cpp, source/common/vec/intra-sse41.cpp, source/common/vec
27026 /intra-ssse3.cpp, source/common/vec/ipfilter-sse41.cpp,
27027 source/common/vec/ipfilter-ssse3.cpp, source/common/vec/pixel-
27028 avx2.cpp, source/common/vec/pixel16-sse41.cpp, source/common/x86
27029 /asm-primitives.cpp, source/common/x86/ipfilter8.h,
27030 source/common/x86/mc.h, source/common/x86/pixel.h,
27031 source/encoder/bitcost.cpp, source/encoder/compress.cpp,
27032 source/encoder/cturow.cpp, source/encoder/encoder.cpp,
27033 source/encoder/encoder.h, source/encoder/frameencoder.cpp,
27034 source/encoder/frameencoder.h, source/encoder/framefilter.cpp,
27035 source/encoder/ratecontrol.cpp, source/input/y4m.cpp,
27036 source/input/y4m.h, source/input/yuv.cpp, source/input/yuv.h,
27037 source/output/y4m.cpp, source/output/yuv.cpp,
27038 source/test/ipfilterharness.cpp, source/test/pixelharness.h,
27039 source/test/testbench.cpp, source/x265.cpp:
27040 uncrustify source tree
27043 * source/encoder/slicetype.cpp:
27044 slicetype: better fix for --b-adapt 0
27046 Don't allow an IDR to be re-ordered
27050 cli: re-introduce x265_setup_primitives() call prior to
27053 This way --cpuid N is properly respected. This orders the output of
27054 the log messages, but the total number is the same.
27057 * source/encoder/encoder.cpp:
27061 * source/encoder/encoder.cpp:
27062 log: cleanup Encoder::printSummary()
27065 * source/encoder/slicetype.cpp:
27066 slicetype: do not force P before I with --b-adapt 0
27068 I don't remember what bug this was covering up, but it's no longer
27069 necessary and it was breaking the later code which expected a single
27073 * source/common/primitives.cpp:
27074 log: only log primitve status if some primitives are missing
27076 Don't waste a line of log output to report everything is normal
27079 2013-11-05 Aarthi Thirumalai <aarthi@multicorewareinc.com>
27081 * source/common/common.cpp, source/x265.cpp, source/x265.h:
27082 cli: add option to turn on AQ
27085 2013-11-05 Steve Borho <steve@borho.org>
27087 * source/encoder/encoder.cpp:
27088 log: white-space nit
27091 2013-10-30 Kurtnoise <kurtnoise@free.fr>
27094 Display also version info during encoding instead of primitives
27098 2013-11-05 Gopu Govindaswamy <gopu@multicorewareinc.com>
27100 * source/Lib/TLibEncoder/TEncCu.cpp:
27101 tenccu: remove calling outTempCU->initEstData() multiple time
27102 without modifying outTempCU
27105 * source/Lib/TLibCommon/TComDataCU.cpp:
27106 tcomdatacu: Remove memset from create(), these variables are
27107 initialized in initCU()
27110 * source/Lib/TLibCommon/TComDataCU.cpp,
27111 source/Lib/TLibCommon/TComDataCU.h:
27112 tcomdatacu: remove unused copySubCU() function
27115 * source/Lib/TLibCommon/TComDataCU.cpp,
27116 source/Lib/TLibCommon/TComDataCU.h:
27117 tcomdatacu: remove unused copyInterPredInfoFrom() function
27120 * source/Lib/TLibCommon/TComDataCU.cpp,
27121 source/Lib/TLibCommon/TComDataCU.h:
27122 tcomdatacu: remove unused setOutsideCUPart() function
27125 2013-11-05 Praveen Tiwari <Praveen Tiwari>
27127 * source/common/x86/pixel.h:
27128 changed the naming convention for blockcopy_sp
27131 * source/common/pixel.cpp, source/common/primitives.h,
27132 source/test/pixelharness.cpp, source/test/pixelharness.h:
27133 changed naming convention and added unit test code for blockcopy_sp
27137 2013-11-02 Neil Piken <neilpiken@gmail.com>
27139 * build/README.txt:
27140 cmake: document minimum cmake required version for VC12
27143 2013-11-05 Steve Borho <steve@borho.org>
27150 cli: use 64bit byte counter (closes #1)
27151 [3c15a9f74091] <stable>
27153 2013-11-05 Gopu Govindaswamy <gopu@multicorewareinc.com>
27155 * source/input/y4m.cpp, source/input/yuv.cpp:
27156 input:reset the file pointer before return in guessFrameCount()
27159 * source/Lib/TLibEncoder/TEncCu.cpp:
27160 tenccu:remove calling outTempCU->initEstData() multiple time without
27161 changing outTempCU from xCompressIntraCU
27164 2013-11-05 Nabajit Deka <Nabajit Deka>
27166 * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.h:
27167 Adding asm function declaration and function pointer initializations
27168 for luma vps functions.
27171 * source/common/x86/ipfilter8.asm:
27172 asm: routines for luma vps filter functions for all block sizes.
27175 * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h:
27176 Adding test bench code for luma vps filter functions.
27179 * source/common/ipfilter.cpp:
27180 Adding C primitive for luma vps filter functions.
27183 * source/common/primitives.h:
27184 Adding function pointer type & array definition for luma vps filter
27188 2013-11-05 Steve Borho <steve@borho.org>
27190 * source/encoder/encoder.cpp, source/encoder/encoder.h, source/x265.h:
27191 api: use uint64_t to accumulate bits
27194 2013-11-05 Santhoshini Sekar <santhoshini@multicorewareinc.com>
27196 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
27197 source/Lib/TLibCommon/TComSlice.cpp,
27198 source/Lib/TLibCommon/TComSlice.h,
27199 source/Lib/TLibEncoder/TEncAnalyze.h, source/encoder/CMakeLists.txt,
27200 source/encoder/encoder.cpp, source/encoder/encoder.h,
27201 source/encoder/framefilter.cpp:
27202 collect global stats of psnr and ssim
27205 2013-11-04 Steve Borho <steve@borho.org>
27207 * source/encoder/slicetype.cpp:
27208 slicetype: make b-adapt 0 set lastNonB, leadingBframes, and
27212 * source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicSym.h,
27213 source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.h,
27214 source/Lib/TLibEncoder/TEncSearch.cpp:
27215 white-space fixes following UInt->uint32_t search and replace
27218 * source/input/y4m.cpp:
27219 y4m: fix two more while loops
27222 * source/input/y4m.cpp:
27223 y4m: fix eof detection during header parsing
27225 Evaluating an istream as a bool returns the file status. When ifs
27226 was converted to a stream pointer, these while loops needed to be
27227 changed because a bool evaluation of a pointer is always true if the
27228 pointer is not NULL
27231 * source/test/pixelharness.cpp:
27232 pixelharness: shorten copy primitive names for consistency
27235 2013-11-04 Praveen Tiwari <Praveen Tiwari>
27237 * source/test/pixelharness.cpp:
27238 corrected buffer name for chroma_copy_pp
27241 * source/common/x86/pixel.h:
27242 pixel.h, added asm function decleration for blockcopy_ps_c
27245 * source/common/pixel.cpp:
27246 pixel.cpp, initialization of function pointer table for
27247 blockcopy_ps_c partitions
27250 * source/common/pixel.cpp, source/common/primitives.h:
27251 added C primitive for blockcopy_p_s and function pointer creation
27255 * source/common/CMakeLists.txt, source/common/x86/asm-primitives.cpp,
27256 source/common/x86/blockcopy8.asm, source/common/x86/pixel.h,
27257 source/test/pixelharness.cpp:
27258 asm code and test bench integration code for blockcopy_pp_c
27262 2013-11-04 Min Chen <chenm003@163.com>
27264 * source/common/x86/ipfilter8.asm, source/test/ipfilterharness.cpp:
27265 fix bug in chroma_p2s and testbench
27268 * source/test/ipfilterharness.cpp:
27269 update authors header
27272 2013-11-04 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
27274 * source/Lib/TLibCommon/TComTrQuant.cpp,
27275 source/Lib/TLibCommon/TComTrQuant.h,
27276 source/Lib/TLibEncoder/TEncSearch.cpp,
27277 source/Lib/TLibEncoder/TEncSearch.h:
27278 RDOQ : pass a parameter to temporarily disable RDOQ.
27280 default value of parameter is true, that means RDOQ is not disabled.
27281 Outputs mustnot change in any rd levels.
27284 2013-11-04 Shazeb Nawaz Khan <shazeb@multicorewareinc.com>
27286 * source/Lib/TLibCommon/TComDataCU.cpp, source/common/lowres.cpp,
27287 source/common/lowres.h, source/encoder/frameencoder.cpp,
27288 source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp:
27289 Dropping the 'm_' prefix from names used for members of struct type
27293 2013-11-04 Steve Borho <steve@borho.org>
27295 * source/common/x86/asm-primitives.cpp:
27296 asm: re-enable sad_x3 following alignment workaround
27299 2013-11-04 Shazeb Nawaz Khan <shazeb@multicorewareinc.com>
27301 * source/common/lowres.h, source/encoder/encoder.cpp,
27302 source/encoder/ratecontrol.cpp:
27303 Generating sum & ssd values for weightp decision in lookahead
27306 2013-11-02 Wenju He <wenju@multicorewareinc.com>
27308 * source/encoder/motion.cpp:
27309 fix vec/asm crash in COST_MV_X3_DIR: costs+3 is not aligned
27312 2013-10-30 idxa <idxa@sina.com>
27314 * source/common/common.cpp, source/encoder/encoder.cpp,
27315 source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h,
27316 source/x265.cpp, source/x265.h:
27317 rc: add CRF ratecontrol
27319 1. add a parameter of "--crf" to the command line
27321 2. modify the running branches of rateControlStart, using
27322 "if(isAbr)" instead of "switch (cfg->param.rc.rateControlMode)", for
27323 the logic of classifying the combination of multiple ratecontrol
27324 methods is very complex, it is not only based on rateControlMode, so
27325 porting x264's way looks feasible.
27327 3. add crf method into x265
27330 2013-11-01 Steve Borho <steve@borho.org>
27332 * source/common/CMakeLists.txt:
27333 cmake: cleanup intrinc primitives
27336 * source/common/CMakeLists.txt:
27337 cmake: more asm simplifications
27340 * source/encoder/ratecontrol.cpp:
27341 rc: replace tabs with spaces
27344 * source/CMakeLists.txt:
27345 cmake: drop STLport support, it is no longer necessary
27348 2013-10-27 Neil Piken <neilpiken@gmail.com>
27350 * build/vc12-x86/build-all.bat, build/vc12-x86/make-solutions.bat,
27351 build/vc12-x86_64/build-all.bat, build/vc12-x86_64/make-
27353 cmake: add Visual Studio 2013 build folder
27356 2013-11-01 Steve Borho <steve@borho.org>
27358 * source/common/CMakeLists.txt:
27359 cmake: remove obsolete build flags
27362 2013-10-31 Steve Borho <steve@borho.org>
27364 * source/CMakeLists.txt, source/common/CMakeLists.txt:
27365 cmake: remove assembly library to fix MSVC static lib
27367 This fixes the static library built by VisualStudio to include the
27368 assembly objects. It has the side effect of causing the assembly
27369 objects to be built once for the static lib and once for the shared
27370 lib, which can be avoided by unloading the shared lib project while
27371 you are working on assembly within VisualStudio
27374 * source/cmake/CMakeDetermineASM_YASMCompiler.cmake:
27375 cmake: fix warning about ASM_YASM compiler being unknown
27379 cli: tweaks for command line help
27382 * source/common/common.cpp:
27383 common: fix int typecast to operate on results of float expression
27386 * source/common/common.cpp, source/common/primitives.cpp,
27387 source/common/vec/vec-primitives.cpp, source/x265.h:
27392 api: give structs the same name as their typedef
27394 This allows them to be forward-decl'd.
27395 [30a0c2c5fcbd] <stable>
27397 * source/common/cpu.cpp, source/common/vec/vec-primitives.cpp:
27398 cpu: move ASM fallback functions out of vec-primitives.cpp
27400 This fixes link errors when ASM and vector primitives are both
27402 [e1dde58cf6e1] <stable>
27404 * source/common/common.cpp:
27405 common: disable MSVC warning that is exposed when compiling without
27407 [01e77fde7194] <stable>
27409 * source/common/primitives.cpp:
27410 primitives: fix compile warning exposed when ASM and instrincs are
27412 [ad6d6ddd7037] <stable>
27414 * source/common/common.cpp, source/x265.h:
27415 api: add zero-latency tune target
27417 This just disables lookahead and B frames at the moment.
27420 * source/common/x86/asm-primitives.cpp:
27421 asm: disable more sad_x3 functions which cause crashes on Haswell
27424 * source/common/x86/asm-primitives.cpp:
27425 asm: disable sad_x3[LUMA_32xN], they cause crashes on Haswell
27427 Seen crashes on Windows, Mac, and Linux. The only constant is
27431 * source/common/common.cpp:
27432 common: lower search range for higher presets with max CTU size 32
27435 2013-10-30 Steve Borho <steve@borho.org>
27437 * source/CMakeLists.txt, source/common/common.cpp, source/x265.cpp,
27438 source/x265.def.in, source/x265.h:
27439 api: introduce performance presets
27442 2013-10-31 Steve Borho <steve@borho.org>
27444 * source/common/x86/asm-primitives.cpp:
27445 disable two avx2 routines which fail unit tests
27448 * source/common/vec/pixel-sse41.cpp:
27449 clang: re-disable 12x16, sse_pp_12x16 testbench fails
27452 2013-10-31 Min Chen <chenm003@163.com>
27454 * source/common/x86/ipfilter8.asm:
27455 asm: fix typo bug in chroma_p2s
27458 2013-10-31 Nabajit Deka <Nabajit Deka>
27460 * source/common/x86/asm-primitives.cpp,
27461 source/common/x86/ipfilter8.asm:
27462 asm: routines for vertical luma filter for all block sizes
27465 * source/test/ipfilterharness.cpp:
27466 Ensure that the destination buffer is not overwritten. 64 is added
27467 as it is the maximum width supported for luma filter.
27470 2013-10-31 Steve Borho <steve@borho.org>
27472 * source/common/vec/pixel-sse41.cpp:
27473 remove clang prevention for 12x16 pixel primitives
27476 * source/common/vec/pixel-sse41.cpp:
27477 pixel: remove sad_x3_12 and sad_x4_16 intrinsic functions
27480 * source/encoder/ratecontrol.cpp:
27481 aq: remove unnecessary double->float->double conversions
27484 * source/encoder/ratecontrol.cpp:
27485 aq: fixes for loop over 16x16 blocks
27487 This loop was busted when maxCUSize was not 64. It still has a
27488 problem with pictures that are not even multiples of 16. The
27489 lookahead will extend out the frame during lowres init to an even
27490 multiple of 16 pixels, so it's lowres CU width will be wider than
27491 the AQ code will use, so the block_xy offsets will be wrong for
27492 lookahead analysis.
27494 The pixel extension needs to be moved earlier so AQ and the
27495 lookahead have a consistent 16x16 CU width
27498 * source/encoder/ratecontrol.cpp:
27499 aq: simplify acEnergyCu
27501 EMMS was in the wrong place, there were a few white-space issues.
27504 * source/encoder/ratecontrol.cpp:
27505 aq: use more explicit chroma variance stride
27508 * source/encoder/slicetype.cpp:
27509 aq: fix NULL pointer check
27512 2013-10-31 Aarthi Thirumalai <Aarthi Thirumalai>
27514 * source/Lib/TLibCommon/TComDataCU.cpp,
27515 source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/encoder.cpp,
27516 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
27517 aq: set qp, lambda for every CU in the row before processing the CU
27519 enabled bUseDQP flag when AQ is mode is ON.
27522 2013-10-31 Deepthi Nandakumar <deepthi@multicorewareinc.com>
27524 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
27525 source/encoder/compress.cpp:
27526 compress: cleanup, remove unused data structs
27529 2013-10-31 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
27531 * source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp:
27532 no-rdo: Use entropy encoder for bit estimation.
27534 Instead of me-bit estimation, use entropy encoder.
27537 2013-10-31 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
27539 * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm:
27540 assembly code for pixel_sad_x4_12x16
27543 * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm:
27544 assembly code for pixel_sad_x3_12x16
27547 2013-10-31 Min Chen <chenm003@163.com>
27549 * source/Lib/TLibCommon/TComPrediction.cpp,
27550 source/common/ipfilter.cpp, source/common/primitives.h,
27551 source/common/x86/asm-primitives.cpp,
27552 source/common/x86/ipfilter8.asm, source/common/x86/ipfilter8.h,
27553 source/test/ipfilterharness.cpp, source/test/ipfilterharness.h:
27554 asm: chroma_p2s to replace ipfilter_p2s
27557 * source/Lib/TLibCommon/TComPrediction.cpp,
27558 source/common/x86/ipfilter8.asm, source/test/ipfilterharness.cpp:
27559 asm: fix bug in luma_p2s and active it in encoder
27562 * source/common/x86/ipfilter8.asm:
27563 asm: less code size by reduce constant offset
27566 * source/common/x86/sad-a.asm:
27567 asm: fix stack broken bug
27570 2013-10-31 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
27572 * source/common/x86/sad-a.asm:
27573 asm: reduce large code size in sad_16xN, sad_32xN for better cache
27577 * source/common/x86/sad-a.asm:
27578 asm: reduce large code size in pixel_sad_8x32 for better cache
27582 2013-10-31 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
27584 * source/common/x86/sad-a.asm:
27585 asm: fix the bug which occured at win32 compile
27588 2013-10-31 Steve Borho <steve@borho.org>
27590 * source/test/testpool.cpp:
27591 testpool: add missing stdio.h for printf
27594 2013-10-30 Steve Borho <steve@borho.org>
27596 * source/common/vec/ipfilter-sse41.cpp:
27597 ipfilter: fix 16bpp build following f0eea23735a6
27600 * source/encoder/framefilter.cpp:
27601 fix shadowed variable warning
27604 2013-10-30 Praveen Tiwari <Praveen Tiwari>
27606 * source/common/pixel.cpp:
27607 added blockcopy_pp_c primitive according to modified argument list
27610 * source/common/primitives.h, source/test/pixelharness.cpp,
27611 source/test/pixelharness.h:
27612 added test code for blockcopy_pp function
27615 2013-10-30 Steve Borho <steve@borho.org>
27617 * source/common/vec/pixel-sse41.cpp:
27618 pixel: remove sad_12, sad_48, and sad_64
27620 All single sads have asm coverage
27623 * source/common/vec/pixel-sse41.cpp:
27624 pixel: remove 24 and 32 width sad intrinsic functions
27626 These are now covered by assembly. Only 12, 48, and 64 remain
27627 because they still lack x3 and x4 versions.
27630 2013-10-30 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
27632 * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm:
27633 assembly code for pixel_sad_x4_32xN
27636 * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm:
27637 assembly code for pixel_sad_x3_32xN
27640 * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm:
27641 assembly code for pixel_sad_x4_24x32
27644 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel.h,
27645 source/common/x86/sad-a.asm:
27646 assembly code for pixel_sad_x3_24x32
27649 2013-10-30 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
27651 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel.h,
27652 source/common/x86/sad-a.asm:
27653 asm: assembly code for pixel_sad_12x16
27656 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel.h,
27657 source/common/x86/sad-a.asm:
27658 asm: assembly code for pixel_sad_24x32
27661 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel.h,
27662 source/common/x86/sad-a.asm:
27663 asm: assembly code for pixel_sad_48x64
27666 2013-10-30 Min Chen <chenm003@163.com>
27668 * source/Lib/TLibCommon/TComPrediction.cpp,
27669 source/common/ipfilter.cpp, source/common/primitives.h,
27670 source/common/x86/asm-primitives.cpp,
27671 source/common/x86/ipfilter8.asm, source/common/x86/ipfilter8.h,
27672 source/test/ipfilterharness.cpp, source/test/ipfilterharness.h:
27673 asm: filterConvertPelToShort
27676 2013-10-30 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
27678 * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm:
27679 asm: assembly code for pixel_sad_64x48 and pixel_sad_64x64
27682 * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm:
27683 asm: assembly code for pixel_sad_64x32
27686 * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm:
27687 asm: assembly code for pixel_sad_64x16
27690 * source/common/x86/sad-a.asm:
27691 asm: modified common macro for pixel_sad_64xN
27694 2013-10-30 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
27696 * source/Lib/TLibEncoder/TEncSearch.cpp,
27697 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp:
27698 no-rdo: use bit estimates from ME to calculate RDcost.
27700 bits estimated in ME stored in CU and used for calculating rdcost
27701 along with distortion. This results in better bitrate with no-rdo,
27702 with small drop in PSNR.
27705 2013-10-30 Praveen Tiwari <Praveen Tiwari>
27707 * source/common/x86/asm-primitives.cpp,
27708 source/common/x86/ipfilter8.asm:
27709 chroma interp_4tap_vert_pp all blocks asm code
27712 2013-10-30 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
27714 * source/common/x86/pixel.h:
27715 asm: declare asm function pointers for sad_64xN partitions
27718 2013-10-30 Steve Borho <steve@borho.org>
27720 * source/common/vec/pixel-sse41.cpp:
27721 pixel: remove sad_x3_4x16 and sad_x4_4x16, no longer HAVE_MMX
27724 2013-10-30 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
27726 * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm:
27727 assembly code for pixel_sad_x3_4x16 and pixel_sad_x4_4x16
27730 2013-10-30 Santhoshini Sekar <santhoshini@multicorewareinc.com>
27732 * source/Lib/TLibEncoder/NALwrite.cpp,
27733 source/Lib/TLibEncoder/NALwrite.h, source/encoder/frameencoder.cpp:
27734 rename variable name m_Bitstream to m_bitstream
27737 * source/encoder/encoder.cpp, source/encoder/frameencoder.cpp,
27738 source/encoder/frameencoder.h:
27739 writing hash SEI messages in frameencoder
27742 2013-10-30 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
27744 * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm:
27745 asm: assembly code for pixel_sad_16x12
27748 2013-10-30 Steve Borho <steve@borho.org>
27750 * source/common/vec/pixel-sse41.cpp:
27751 pixel: remove sad_8, sad_x3_8, sad_x4_8 intrinsic functions
27754 2013-10-30 Min Chen <chenm003@163.com>
27756 * source/test/ipfilterharness.cpp:
27757 testbench: upgrade for check_IPFilter_primitive, don't pass wrong
27758 (width, height, stride) to asm
27761 2013-10-29 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
27763 * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm:
27764 asm: assembly code for pixel_sad_8x32
27767 * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm:
27768 asm: assembly code for pixel_sad_32x64
27771 * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm:
27772 asm: assembly code for pixel_sad_32x16
27775 * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm:
27776 asm: assembly code for pixel_sad_32x32
27779 * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm:
27780 asm: assembly code for pixel_sad_32x24
27783 * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm:
27784 asm: assembly code for pixel_sad_32x8
27787 * source/common/x86/sad-a.asm:
27788 asm: created comman asm macro for pixel_sad_32xN functions
27791 2013-10-29 Steve Borho <steve@borho.org>
27793 * source/common/vec/pixel-sse41.cpp:
27794 pixel: remove sad_16, sad_x3_16 and sad_x4_16
27796 We have assembly coverage for everything but sad_16x12; which I've
27797 put on the top of our TODO list.
27800 2013-10-29 Murugan Vairavel <murugan@multicorewareinc.com>
27802 * source/common/ipfilter.cpp, source/encoder/motion.cpp,
27803 source/test/intrapredharness.cpp:
27804 refactor: Check need for signed/unsigned int16_t
27807 2013-10-29 Steve Borho <steve@borho.org>
27812 2013-10-29 Gopu Govindaswamy <gopu@multicorewareinc.com>
27814 * source/Lib/TLibCommon/TComDataCU.cpp:
27815 TComDataCU: Remove initializations in initCU() already initialized
27818 currently m_partSizes, m_mvpIdx[0] and m_mvpIdx[1] all three
27819 variables initialized using memset in TComDataCU::create() and same
27820 initialization in done in TComDataCU::initCU(), removed the memset
27821 in initCU() to avoid the duplicate initilization
27824 2013-10-29 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
27826 * source/Lib/TLibCommon/TComMotionInfo.cpp:
27827 cleanups: Remove unnecessary reset.
27829 If refIdx is set to NOT_VALID, mv will not be used. Hence resetting
27830 MVs to 0 can be safely removed.
27833 * source/Lib/TLibEncoder/TEncSearch.cpp:
27834 Cleanups: Remove call to setALLMVField, and set only required
27838 * source/Lib/TLibCommon/TComMotionInfo.h:
27839 Cleanups: MVField - make members public.
27841 set and clear methods take many cycles, where most of the time only
27842 one index need to be set. By giving public access, caller can set
27846 2013-10-29 Sumalatha Polureddy <Sumalatha Polureddy>
27848 * source/Lib/TLibCommon/TComDataCU.cpp,
27849 source/Lib/TLibCommon/TComDataCU.h, source/encoder/compress.cpp:
27850 no_rdo: implementation of new early exit
27852 early exit is done when the RD cost of best mode at depth "n" is
27853 less than the average of RD cost of the CU's at depth "n" of
27854 previosuly coded CU's(CUAbove, CUAboveRight, CUAoveLeft, CULeft,
27855 CUColocated). For HD videos performance improvement of 20 to 27%
27856 bitrate increases by 0.75 to 0.02%
27859 2013-10-29 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
27861 * source/common/x86/pixel.h:
27862 asm: declare asm function pointers for sad_32xN partitions
27865 2013-10-29 Min Chen <chenm003@163.com>
27867 * source/common/x86/ipfilter8.asm:
27868 asm: improvement on chroma_hpp{2,4} by reduce memory operator
27871 2013-10-29 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
27873 * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm:
27874 asm: assembly code for pixel_sad_16x4
27877 2013-10-29 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
27879 * source/encoder/compress.cpp:
27880 no-rdo: add no-residue candidate in merge2Nx2N
27883 2013-10-29 Steve Borho <steve@borho.org>
27885 * source/common/common.cpp, source/common/primitives.h,
27886 source/encoder/ratecontrol.cpp:
27891 Added tag 0.5 for changeset 69acb3cb777f
27892 [9eef2952ea16] <stable>
27894 2013-10-28 idxa <idxa>
27896 * source/common/common.cpp, source/encoder/ratecontrol.cpp:
27897 rc: improvements for ABR
27899 1. modify rateTolerance from 0.1 to 1.0, in order to allow the final
27900 bitrate to fluctuate more(CBR to ABR)
27902 2. ncu in initialization of ratecontrol is set according to 16x16
27903 block size which is same to x264, for the empirical formula in x264
27906 3. do more modification to make ratecontrol algorithm of x265 more
27907 similar to x264 for x264 has been developed for about 10 years and
27908 is very mature , it is reasonale to take its method firstly.
27909 [69acb3cb777f] [0.5] <stable>
27911 2013-10-25 Steve Borho <steve@borho.org>
27913 * source/encoder/encoder.cpp:
27914 encoder: prevent divide by zero in elapsedVideoTime calculation
27915 [6528ab023062] <stable>
27917 2013-10-29 Steve Borho <steve@borho.org>
27919 * source/common/primitives.h:
27920 primitives: fix ordering of LUMA_4x16 LUMA_16x4 to match other AMP
27923 This also fixes the testbench to properly represent 16x4 and 4x16
27924 partition primitives
27925 [9713ec98fa8a] <stable>
27927 2013-10-29 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
27929 * source/encoder/compress.cpp:
27930 no-rdo: add no-residue candidate in merge2Nx2N
27933 2013-10-29 Murugan Vairavel <murugan@multicorewareinc.com>
27935 * source/Lib/TLibCommon/TComTrQuant.cpp,
27936 source/Lib/TLibCommon/TComTrQuant.h,
27937 source/Lib/TLibCommon/TypeDef.h:
27938 Cleanups: Replacing Ushort with uint16_t
27941 2013-10-29 Steve Borho <steve@borho.org>
27943 * source/common/primitives.h:
27944 primitives: fix ordering of LUMA_4x16 LUMA_16x4 to match other AMP
27947 This also fixes the testbench to properly represent 16x4 and 4x16
27948 partition primitives
27951 2013-10-29 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
27953 * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm:
27954 asm: assembly code for pixel_sad_16x64
27957 * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm:
27958 asm: assembly code for pixel_sad_16x32
27961 2013-10-29 Steve Borho <steve@borho.org>
27963 * source/common/vec/vec-primitives.cpp:
27964 vec: fix VC9 build with ASM disabled but intrinsics enabled
27967 * source/common/threadpool.cpp, source/input/y4m.cpp,
27968 source/input/yuv.cpp:
27969 use correct _WIN32 build guard
27972 2013-10-29 Min Chen <chenm003@163.com>
27974 * source/common/x86/asm-primitives.cpp,
27975 source/common/x86/ipfilter8.asm, source/common/x86/ipfilter8.h,
27976 source/test/ipfilterharness.cpp:
27977 asm: interp_8tap_v_sp for ipfilter_sp[FILTER_V_S_P_8]
27980 2013-10-28 Min Chen <chenm003@163.com>
27982 * source/Lib/TLibCommon/TComPrediction.cpp,
27983 source/common/ipfilter.cpp, source/common/primitives.h,
27984 source/common/vec/ipfilter-sse41.cpp, source/encoder/motion.cpp,
27985 source/test/ipfilterharness.cpp:
27986 replace pointer to coeff by coeffIdx in ipfilter_sp
27989 * source/encoder/motion.cpp:
27990 disable interpolate horizontal merge
27992 we need width is multiple of 4 in asm code, the maskmovq is very
27996 * source/common/ipfilter.cpp, source/common/primitives.h,
27997 source/common/x86/asm-primitives.cpp,
27998 source/common/x86/ipfilter8.asm, source/common/x86/ipfilter8.h,
27999 source/test/ipfilterharness.cpp, source/test/ipfilterharness.h:
28000 asm: interp_8tap_hv_pp_8x8() for Interpolate_HV_8x8
28003 2013-10-28 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
28005 * source/common/x86/asm-primitives.cpp, source/common/x86/sad-a.asm:
28006 asm code for pixel_sad_x3_16x64 and pixel_sad_x4_16x64
28009 2013-10-28 Aarthi Thirumalai <Aarthi Thirumalai>
28011 * source/common/lowres.cpp, source/common/lowres.h,
28012 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
28013 source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h,
28014 source/encoder/slicetype.cpp:
28015 rc: implement qp with Aq for each Cu before encoding them.
28018 2013-10-28 Kavitha Sampath <kavitha@multicorewareinc.com>
28020 * source/encoder/encoder.cpp, source/input/input.h,
28021 source/input/y4m.cpp, source/input/y4m.h, source/input/yuv.cpp,
28022 source/input/yuv.h, source/output/output.cpp,
28023 source/output/output.h, source/output/yuv.cpp, source/output/yuv.h,
28024 source/x265.cpp, source/x265.h:
28025 refactor: (Input/Output files) - Check need of signed/unsigned int
28028 2013-10-28 murugan <murugan@multicorewareinc.com Murugan Vairavel>
28030 * source/output/y4m.cpp, source/output/yuv.cpp:
28031 refactor: use unsigned int16 types where applicable
28034 2013-10-28 Kavitha Sampath <kavitha@multicorewareinc.com>
28036 * source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/SEI.h,
28037 source/Lib/TLibCommon/TComBitCounter.h,
28038 source/Lib/TLibCommon/TComBitStream.cpp,
28039 source/Lib/TLibCommon/TComBitStream.h,
28040 source/Lib/TLibCommon/TComDataCU.cpp,
28041 source/Lib/TLibCommon/TComDataCU.h,
28042 source/Lib/TLibCommon/TComLoopFilter.cpp,
28043 source/Lib/TLibCommon/TComLoopFilter.h,
28044 source/Lib/TLibCommon/TComMotionInfo.cpp,
28045 source/Lib/TLibCommon/TComMotionInfo.h,
28046 source/Lib/TLibCommon/TComPattern.cpp,
28047 source/Lib/TLibCommon/TComPattern.h,
28048 source/Lib/TLibCommon/TComPic.h,
28049 source/Lib/TLibCommon/TComPicSym.cpp,
28050 source/Lib/TLibCommon/TComPicSym.h,
28051 source/Lib/TLibCommon/TComPicYuv.cpp,
28052 source/Lib/TLibCommon/TComPicYuv.h,
28053 source/Lib/TLibCommon/TComPicYuvMD5.cpp,
28054 source/Lib/TLibCommon/TComPrediction.cpp,
28055 source/Lib/TLibCommon/TComPrediction.h,
28056 source/Lib/TLibCommon/TComRdCost.h,
28057 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
28058 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
28059 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
28060 source/Lib/TLibCommon/TComSlice.cpp,
28061 source/Lib/TLibCommon/TComSlice.h,
28062 source/Lib/TLibCommon/TComTrQuant.cpp,
28063 source/Lib/TLibCommon/TComTrQuant.h,
28064 source/Lib/TLibCommon/TComWeightPrediction.cpp,
28065 source/Lib/TLibCommon/TComWeightPrediction.h,
28066 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
28067 source/Lib/TLibCommon/TypeDef.h,
28068 source/Lib/TLibEncoder/NALwrite.cpp,
28069 source/Lib/TLibEncoder/NALwrite.h,
28070 source/Lib/TLibEncoder/SEIwrite.cpp,
28071 source/Lib/TLibEncoder/SyntaxElementWriter.cpp,
28072 source/Lib/TLibEncoder/SyntaxElementWriter.h,
28073 source/Lib/TLibEncoder/TEncAnalyze.h,
28074 source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp,
28075 source/Lib/TLibEncoder/TEncBinCoderCABAC.h,
28076 source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp,
28077 source/Lib/TLibEncoder/TEncCu.h,
28078 source/Lib/TLibEncoder/TEncEntropy.cpp,
28079 source/Lib/TLibEncoder/TEncEntropy.h,
28080 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
28081 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
28082 source/Lib/TLibEncoder/TEncSbac.cpp,
28083 source/Lib/TLibEncoder/TEncSbac.h,
28084 source/Lib/TLibEncoder/TEncSearch.cpp,
28085 source/Lib/TLibEncoder/TEncSearch.h,
28086 source/Lib/TLibEncoder/WeightPredAnalysis.cpp,
28087 source/Lib/TLibEncoder/WeightPredAnalysis.h,
28088 source/common/common.cpp, source/common/dct.cpp,
28089 source/common/lowres.cpp, source/common/lowres.h,
28090 source/common/pixel.cpp, source/common/primitives.h,
28091 source/common/threading.h, source/common/vec/dct-sse3.cpp,
28092 source/common/vec/dct-sse41.cpp, source/common/vec/dct-ssse3.cpp,
28093 source/common/vec/intra-sse41.cpp, source/common/vec/pixel-avx2.cpp,
28094 source/common/vec/pixel-sse3.cpp, source/common/vec/pixel-sse41.cpp,
28095 source/common/vec/pixel16-sse41.cpp, source/compat/getopt/getopt.c,
28096 source/compat/getopt/getopt.h, source/encoder/compress.cpp,
28097 source/encoder/cturow.cpp, source/encoder/cturow.h,
28098 source/encoder/encoder.cpp, source/encoder/frameencoder.cpp,
28099 source/encoder/framefilter.cpp, source/encoder/ratecontrol.cpp,
28100 source/encoder/slicetype.cpp:
28101 refactor: replace int pointers with int32_t and UInt with uint32_t
28104 * source/Lib/TLibCommon/TComDataCU.cpp,
28105 source/Lib/TLibCommon/TComDataCU.h,
28106 source/Lib/TLibCommon/TComPrediction.cpp,
28107 source/Lib/TLibCommon/TComPrediction.h,
28108 source/Lib/TLibCommon/TComSlice.cpp,
28109 source/Lib/TLibCommon/TComSlice.h,
28110 source/Lib/TLibCommon/TComWeightPrediction.cpp,
28111 source/Lib/TLibCommon/TComWeightPrediction.h,
28112 source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCu.cpp,
28113 source/Lib/TLibEncoder/TEncEntropy.cpp,
28114 source/Lib/TLibEncoder/TEncEntropy.h,
28115 source/Lib/TLibEncoder/TEncSbac.cpp,
28116 source/Lib/TLibEncoder/TEncSbac.h,
28117 source/Lib/TLibEncoder/TEncSearch.cpp,
28118 source/Lib/TLibEncoder/TEncSearch.h,
28119 source/Lib/TLibEncoder/WeightPredAnalysis.cpp,
28120 source/encoder/compress.cpp, source/encoder/dpb.cpp,
28121 source/encoder/encoder.cpp, source/encoder/frameencoder.cpp:
28122 refactor: replace ternary operator with loop variable and enum with
28126 2013-10-28 Santhoshini Sekar <santhoshini@multicorewareinc.com>
28128 * source/Lib/TLibCommon/TComPic.h,
28129 source/Lib/TLibCommon/TComPicYuv.cpp,
28130 source/Lib/TLibCommon/TComPicYuv.h,
28131 source/Lib/TLibCommon/TComPicYuvMD5.cpp, source/encoder/encoder.cpp,
28132 source/encoder/framefilter.cpp, source/encoder/framefilter.h:
28133 row wise generation of hash in framefilter
28136 2013-10-28 Steve Borho <steve@borho.org>
28138 * source/input/input.cpp, source/input/input.h, source/x265.cpp:
28139 cli: add --y4m option to force Y4M stream parser
28142 2013-10-28 Gopu Govindaswamy <gopu@multicorewareinc.com>
28144 * source/input/y4m.cpp, source/input/y4m.h:
28145 input: read y4m input from stdin if filename is passed as "-"
28148 * source/input/y4m.cpp:
28149 y4m : bug fix for calculating framesize in skipFrames()
28152 2013-10-28 Steve Borho <steve@borho.org>
28154 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/primitives.h,
28155 source/encoder/compress.cpp, source/encoder/motion.cpp,
28156 source/encoder/slicetype.cpp, source/test/pixelharness.cpp:
28157 primitives: lower case partitionFromSizes() function to follow
28161 2013-10-27 Steve Borho <steve@borho.org>
28163 * source/common/primitives.cpp, source/common/primitives.h:
28164 primitives: micro optimizations of PartitionFromSizes()
28167 * change lookup table to uint8_t
28168 * make function inlined
28171 2013-10-27 Wenju He <wenju@multicorewareinc.com>
28173 * source/Lib/TLibEncoder/TEncSearch.cpp:
28174 need not compute chroma in xGetInterPredictionError
28177 * source/Lib/TLibEncoder/TEncSearch.cpp:
28178 fix variable name, msg to mrg
28181 2013-10-25 Steve Borho <steve@borho.org>
28183 * source/input/y4m.cpp, source/input/yuv.cpp:
28184 input: do not check for inactive read thread until read queue is
28188 * source/input/yuv.cpp:
28189 yuv: set binary mode on stdin on Windows
28192 * source/input/y4m.cpp, source/input/yuv.cpp:
28193 input: do not use ifstream.good(), use ifstream.ignore() for
28198 cli: improve handling of encoder start failures; no pictures encoded
28201 * source/encoder/encoder.cpp:
28202 encoder: prevent divide by zero in elapsedVideoTime calculation
28205 * source/input/y4m.cpp, source/input/yuv.cpp:
28206 input: prevent more deadlocks on file read errors
28209 * source/input/yuv.cpp:
28210 yuv: fix --skip behavior for stdin
28213 * source/cmake/version.cmake:
28214 cmake: improve .hg_archive parsing
28216 Patch submitted by HaaeeD via pull request
28222 * Merge with stable
28226 cli: improve handling of unknown input frame count
28227 [0c8e2580b410] <stable>
28229 * source/encoder/encoder.cpp:
28230 encoder: calculate encoded video time in floating point
28231 [9c26397ec80c] <stable>
28233 * source/common/ipfilter.cpp:
28234 Merged in mcwmurugan/x265 (pull request #5)
28236 CleanUps: Replacing Short with int16_t
28239 2013-10-25 Murugan <murugan@multicorewareinc.com>
28241 * source/Lib/TLibCommon/TComLoopFilter.cpp,
28242 source/Lib/TLibCommon/TComPrediction.cpp,
28243 source/Lib/TLibCommon/TComPrediction.h,
28244 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
28245 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
28246 source/Lib/TLibCommon/TComTrQuant.cpp,
28247 source/Lib/TLibCommon/TComTrQuant.h,
28248 source/Lib/TLibCommon/TComWeightPrediction.cpp,
28249 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TypeDef.h,
28250 source/Lib/TLibEncoder/TEncSearch.cpp,
28251 source/Lib/TLibEncoder/TEncSearch.h, source/common/TShortYUV.cpp,
28252 source/common/TShortYUV.h, source/common/dct.cpp,
28253 source/common/intrapred.cpp, source/common/ipfilter.cpp,
28254 source/common/pixel.cpp, source/common/primitives.h,
28255 source/common/vec/blockcopy-sse3.cpp, source/common/vec/dct-
28256 sse3.cpp, source/common/vec/dct-sse41.cpp, source/common/vec/dct-
28257 ssse3.cpp, source/common/vec/intra-ssse3.cpp, source/common/vec
28258 /ipfilter-sse41.cpp, source/common/vec/ipfilter-ssse3.cpp,
28259 source/common/vec/pixel-sse3.cpp, source/common/vec/pixel-sse41.cpp,
28260 source/common/x86/pixel.h, source/encoder/motion.cpp,
28261 source/encoder/motion.h, source/output/y4m.cpp,
28262 source/output/yuv.cpp, source/test/intrapredharness.cpp,
28263 source/test/ipfilterharness.cpp, source/test/ipfilterharness.h,
28264 source/test/mbdstharness.cpp, source/test/mbdstharness.h,
28265 source/test/pixelharness.cpp, source/test/pixelharness.h:
28266 CleanUps: Replacing Short with int16_t
28269 2013-10-25 Steve Borho <steve@borho.org>
28271 * source/Lib/TLibCommon/TComPicYuv.cpp,
28272 source/encoder/ratecontrol.cpp:
28276 * source/input/yuv.cpp:
28277 yuv: do not attempt to measure size of stdin
28280 * source/Lib/TLibCommon/TComPicYuv.cpp:
28281 TComPicYuv: increase vertical padding to account for
28282 TComDataCU::clipMv() logic
28284 mvmin is clamped to -(g_maxCUHeight + offset + m_cuPelY) where
28286 [9a7c5831ebf8] <stable>
28288 2013-10-25 Aarthi Thirumalai <aarthi@multicorewareinc.com>
28290 * source/encoder/ratecontrol.cpp:
28291 rc: Bug fix. use the slice type from the right context in
28293 [782e2d041d3f] <stable>
28295 2013-10-25 Steve Borho <steve@borho.org>
28297 * source/input/yuv.cpp:
28301 * source/input/yuv.cpp:
28302 yuv: zero ifs pointer if deleted
28305 2013-10-25 Nabajit Deka <Nabajit Deka>
28307 * source/common/ipfilter.cpp, source/common/x86/ipfilter8.h:
28308 Function declarations and function pointers set up for the vertical
28309 luma filter functions.
28312 2013-10-25 Gopu Govindaswamy <gopu@multicorewareinc.com>
28314 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
28315 tenccu : remove unused functions
28318 * source/Lib/TLibCommon/NAL.h:
28319 nal: remove unused helper functions
28322 * source/input/y4m.cpp, source/input/yuv.cpp:
28323 input: initialize the input buffer (buf) pointer
28324 [ba7d3d79c5a3] <stable>
28326 * source/input/yuv.cpp, source/input/yuv.h:
28327 input: read yuv input from stdin if filename is passed as "-"
28330 2013-10-25 Nabajit Deka <Nabajit Deka>
28332 * source/common/primitives.h, source/test/ipfilterharness.cpp:
28333 Test bench code for vertical luma filter.
28336 2013-10-25 Steve Borho <steve@borho.org>
28338 * source/test/pixelharness.cpp:
28339 testbench: differentiate the two weight functions
28342 2013-10-25 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
28344 * source/common/vec/pixel-sse41.cpp:
28345 pixel: modified weightUnidirPixel to match the changes done in c
28349 2013-10-25 Steve Borho <steve@borho.org>
28351 * source/encoder/reference.cpp:
28352 reference: initialize weight buffer pointer
28355 2013-10-25 Min Chen <chenm003@163.com>
28357 * source/common/x86/ipfilter8.asm:
28358 more general on ipfilter macro FILTER_H8_W8
28361 2013-10-25 Steve Borho <steve@borho.org>
28363 * source/CMakeLists.txt, source/compat/getopt/LGPL.txt,
28364 source/compat/getopt/getopt.c, source/compat/getopt/getopt.h,
28365 source/compat/msvc/LGPL.txt, source/compat/msvc/getopt.c,
28366 source/compat/msvc/getopt.h:
28367 cmake: segregate the getopt files into their own compat/ folder
28370 * Merge with stable
28373 * source/CMakeLists.txt:
28374 cmake: add compat/msvc to include path if using our getopt.h
28375 [7cc9e1566162] <stable>
28377 * source/input/y4m.cpp, source/input/yuv.cpp, source/x265.cpp:
28378 input: improve handling of frame count estimation failures
28379 [88f69939bc17] <stable>
28381 2013-10-24 Steve Borho <steve@borho.org>
28383 * source/input/input.h, source/input/y4m.cpp, source/input/y4m.h,
28384 source/input/yuv.cpp, source/input/yuv.h, source/x265.cpp:
28385 input: add explicit startReader() method to prevent file handle use
28387 [6e4ef45441b7] <stable>
28389 * source/encoder/encoder.cpp:
28390 encoder: fix per-frame logging without CSV file
28391 [260bff6100f2] <stable>
28393 * source/input/y4m.cpp:
28394 y4m: directly use member variables while parsing header
28395 [0174ac7bc2b1] <stable>
28397 * source/output/yuv.cpp:
28398 yuv: fix VC9 compile warning - possible loss of precision
28399 [34c9951b15fa] <stable>
28401 * source/common/common.cpp:
28405 * source/CMakeLists.txt:
28406 cmake: use system native stdint.h and getopt if they are found
28407 [1ab80557656a] <stable>
28409 * source/common/vec/pixel-sse41.cpp:
28410 pixel: sse_sp[LUMA_12x16] fails tests on clang, disable it
28411 [17195e65e91b] <stable>
28413 * source/input/y4m.cpp, source/input/yuv.cpp:
28414 input: add missing carriage returns from error log messages
28415 [63ca0173f8cb] <stable>
28417 * source/input/y4m.cpp:
28418 y4m: disable file reader thread on frame header errors
28420 Prevents deadlocks from malformed Y4M files
28421 [776c2ec26a5f] <stable>
28423 * source/common/common.cpp:
28424 common: hoist x265_mdate above using namespace x265
28426 I do not understand why, but this fixes cli linkage on Mac
28427 [4ac43db2d640] <stable>
28429 * source/encoder/reference.cpp, source/encoder/reference.h:
28430 reference: more robust initialization, remove m_startPad member
28433 m_startPad was only used in the init() function so it could be an
28437 * source/Lib/TLibCommon/TComPicYuv.cpp, source/encoder/reference.cpp:
28441 * source/Lib/TLibEncoder/WeightPredAnalysis.cpp:
28442 weightp: use source reference frames for weight analysis
28444 This fixes weightp when used in combination with frame parallelism,
28445 where the reference's reconstructed picture is most likely not yet
28448 Some measurements using the sintel 480p clip no-weightp -F1: 408.47s
28449 (3.07 fps), 144.63 kb/s, Global PSNR: 48.956 no-weightp -F3: 361.14s
28450 (3.47 fps), 144.01 kb/s, Global PSNR: 48.746
28452 Prior to this change (recon refs used for weightp analysis): weightp
28453 -F1: 402.84s (3.11 fps), 131.09 kb/s, Global PSNR: 49.908 x265
28454 [info]: 278 of 687 (40.47%) P frames weighted weightp -F3: 355.88s
28455 (3.52 fps), 132.09 kb/s, Global PSNR: 49.768 x265 [info]: 242 of 687
28456 (35.23%) P frames weighted
28458 After this change (source refs used for weightp analysis): weightp
28459 -F1: 404.83s (3.10 fps), 131.82 kb/s, Global PSNR: 49.414 x265
28460 [info]: 325 of 687 (47.31%) P frames weighted weightp -F3: 348.32s
28461 (3.60 fps), 131.01 kb/s, Global PSNR: 49.957 x265 [info]: 325 of 687
28462 (47.31%) P frames weighted
28464 Because of the lower bitrate, enabling weightp actually makes this
28465 clip encode faster. No idea why -F1 has so much less PSNR than -F3;
28466 needs investigation.
28467 [a44b48b74d6f] <stable>
28469 * source/Lib/TLibCommon/TComPicYuv.cpp, source/common/reference.cpp:
28470 TComPicYuv: fix padding of picture buffers
28472 Ensure row starts are at a multiple of 32, this causes strides to be
28473 multiple of 64. Before this patch, strides we capable of being
28474 multiples of 8, causing alignment exceptions for some videos.
28475 [0315cf14deda] <stable>
28477 * source/Lib/TLibCommon/TComPicYuv.cpp:
28478 TComPicYuv: remove unused include
28479 [a54a9fa53063] <stable>
28481 * source/Lib/TLibCommon/TComSlice.cpp,
28482 source/Lib/TLibCommon/TComSlice.h, source/encoder/frameencoder.cpp,
28483 source/encoder/slicetype.cpp:
28487 2013-10-24 Min Chen <chenm003@163.com>
28489 * source/Lib/TLibCommon/TComTrQuant.cpp,
28490 source/Lib/TLibCommon/TComTrQuant.h:
28491 improvement xGetRateLast by remove reduce double operator
28494 * source/Lib/TLibCommon/TComTrQuant.cpp,
28495 source/Lib/TLibCommon/TComTrQuant.h,
28496 source/Lib/TLibEncoder/TEncSbac.cpp:
28497 improvement getSigCoeffGroupCtxInc by merge pointer calculate
28500 * source/Lib/TLibCommon/TComTrQuant.cpp,
28501 source/Lib/TLibCommon/TComTrQuant.h,
28502 source/Lib/TLibEncoder/TEncSbac.cpp:
28503 improvement TComTrQuant::calcPatternSigCtx
28505 1. replace width/height by size, since there are only NxN 2. use
28506 mask operatior to avoid condition and branch
28509 * source/Lib/TLibCommon/TComTrQuant.cpp:
28510 improvement TComTrQuant::getSigCtxInc by lookup table for 'cnt'
28513 2013-10-24 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
28515 * source/encoder/slicetype.cpp:
28516 lookahead: fix reference initialization for intra prediction
28518 buffer size of pAbove/pLeft is height+1+width = 2*cusize+1
28519 [1aaa596bb20b] <stable>
28521 2013-10-24 Gopu Govindaswamy <gopu@multicorewareinc.com>
28523 * source/input/y4m.cpp:
28524 input: If Any error in reading frame from file, deactivate the
28525 thread and exit encoder gracefully
28526 [b69e4433cc97] <stable>
28528 * source/output/y4m.cpp, source/output/yuv.cpp:
28529 output: use 64bit file offsets to prevent overflow with 4k video
28530 [f94f18950283] <stable>
28532 2013-10-24 Steve Borho <steve@borho.org>
28534 * source/encoder/encoder.cpp:
28535 encoder: fix bitrate statistic (accBits is a bit count, not byte
28537 [98bf7e4154f5] <stable>
28539 2013-10-24 Shazeb Nawaz Khan <shazeb@multicorewareinc.com>
28541 * source/Lib/TLibCommon/TComSlice.cpp,
28542 source/Lib/TLibCommon/TComSlice.h, source/encoder/encoder.cpp,
28543 source/encoder/encoder.h, source/encoder/frameencoder.cpp,
28545 Displaying the number of weighted P frames used in console log
28546 [e8992549a970] <stable>
28548 2013-10-24 Min Chen <chenm003@163.com>
28550 * source/Lib/TLibEncoder/TEncSbac.h:
28554 2013-10-24 Steve Borho <steve@borho.org>
28556 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel.h,
28557 source/common/x86/sad-a.asm:
28558 asm: instantiate some sad_x3 and sad_x4 functions for HEVC
28562 2013-10-23 Steve Borho <steve@borho.org>
28564 * source/Lib/TLibCommon/TComSlice.cpp,
28565 source/Lib/TLibCommon/TComSlice.h:
28566 TComSlice: remove unused copySliceInfo
28569 * source/Lib/TLibCommon/TComSlice.cpp,
28570 source/Lib/TLibCommon/TComSlice.h:
28571 TComSlice: remove unused m_bEqualRef and helper functions
28574 * source/Lib/TLibCommon/TComSlice.cpp,
28575 source/Lib/TLibCommon/TComSlice.h,
28576 source/Lib/TLibEncoder/TEncSbac.cpp, source/encoder/dpb.cpp:
28577 TComSlice: remove unused TComRefPicListModification
28580 * source/Lib/TLibCommon/TComPicYuv.cpp,
28581 source/Lib/TLibCommon/TComPicYuv.h,
28582 source/Lib/TLibCommon/TComPrediction.cpp,
28583 source/Lib/TLibCommon/TComPrediction.h,
28584 source/Lib/TLibCommon/TComSlice.h,
28585 source/Lib/TLibEncoder/TEncSearch.cpp,
28586 source/Lib/TLibEncoder/TEncSearch.h, source/common/CMakeLists.txt,
28587 source/common/lowres.h, source/common/mv.h,
28588 source/common/reference.cpp, source/common/reference.h,
28589 source/encoder/CMakeLists.txt, source/encoder/dpb.cpp,
28590 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
28591 source/encoder/reference.cpp, source/encoder/reference.h:
28592 reference: cache MotionReference instances in each FrameEncoder
28594 This prevents these structures from being allocated over and over
28595 for each frame The source files were moved into the encoder folder
28596 where they've belonged but couldn't live in the past because
28597 TComPicYuv needed to know their contents.
28600 2013-10-24 Steve Borho <steve@borho.org>
28602 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
28603 source/common/common.cpp, source/common/common.h,
28604 source/common/primitives.cpp:
28608 2013-10-23 Steve Borho <steve@borho.org>
28610 * source/Lib/TLibCommon/TComPicYuv.cpp,
28611 source/Lib/TLibCommon/TComPicYuv.h,
28612 source/Lib/TLibEncoder/TEncCfg.h, source/common/common.cpp,
28613 source/common/common.h, source/common/primitives.cpp,
28614 source/dllmain.cpp, source/encoder/encoder.cpp,
28615 source/encoder/encoder.h, source/input/input.h,
28616 source/input/y4m.cpp, source/input/y4m.h, source/input/yuv.cpp,
28617 source/input/yuv.h, source/output/output.h, source/output/y4m.cpp,
28618 source/output/y4m.h, source/output/yuv.cpp, source/output/yuv.h,
28619 source/x265.cpp, source/x265.h:
28620 api: drop _t suffix from public data types, for POSIX compatibility
28622 x265_t was changed to x265_encoder, since x265 is too short and
28623 would collide with our namespace.
28624 [b07c29e930fe] <stable>
28627 api: white-space cleanups in x265.h
28628 [7beeab25a8fb] <stable>
28630 * source/CMakeLists.txt, source/Lib/TLibCommon/CommonDef.h,
28631 source/common/common.cpp, source/dllmain.cpp,
28632 source/encoder/encoder.cpp, source/encoder/encoder.h,
28633 source/x265.cpp, source/x265.def.in, source/x265.h:
28634 api: large reorg of logging and statistics
28636 * move all CSV logging into the encoder so API users can take
28638 * remove hacky global PSNR return value from x265_encoder_close
28639 * add time and bitrate values to x265_stats_t
28640 * remove some dead HM code
28641 * use x265_log in the CLI
28642 [3e53b004a8f8] <stable>
28644 2013-10-23 Kavitha Sampath <kavitha@multicorewareinc.com>
28646 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
28647 source/common/common.cpp, source/common/common.h,
28648 source/encoder/encoder.cpp, source/encoder/encoder.h,
28649 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
28650 source/x265.cpp, source/x265.h:
28651 CSV log: Enable frame-by-frame CSV logging
28652 [0c8dbda94696] <stable>
28654 2013-10-22 Steve Borho <steve@borho.org>
28656 * source/CMakeLists.txt, source/x265.pc.in:
28657 cmake: generate and install pkgconfig file
28659 This installs the x265.pc into /usr/local/lib/pkgconfig/ with these
28662 prefix=/usr/local exec_prefix=${prefix} libdir=${exec_prefix}/lib
28663 includedir=${prefix}/include
28665 Name: x265 Description: H.265/HEVC video encoder Version: 0.4.1
28666 Libs: -L${libdir} -lx265 Libs.private: -lstdc++ -lm -lc -lpthread
28667 -lrt Cflags: -I${includedir}
28669 The pkg-config file is only generated and installed if CMake finds
28672 Q1: it seems unwise to hard-code "/lib" in a few places, what if
28673 lib64 is used or something else? Q2: Should x265.pc have a version
28674 number like x265-0.4.1.pc?
28675 [b2fcb1bf7b75] <stable>
28677 2013-10-23 Min Chen <chenm003@163.com>
28679 * source/Lib/TLibCommon/ContextModel.cpp,
28680 source/Lib/TLibCommon/ContextModel.h,
28681 source/Lib/TLibCommon/ContextTables.h,
28682 source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp,
28683 source/Lib/TLibEncoder/TEncBinCoderCABAC.h,
28684 source/Lib/TLibEncoder/TEncEntropy.h,
28685 source/Lib/TLibEncoder/TEncSbac.cpp,
28686 source/Lib/TLibEncoder/TEncSbac.h, source/common/CMakeLists.txt,
28687 source/common/primitives.cpp:
28688 cabac: cleanup and convert class ContextModel to struct
28691 * source/Lib/TLibCommon/ContextModel.cpp,
28692 source/Lib/TLibCommon/ContextModel.h:
28693 cabac: move static table to global space
28696 * source/Lib/TLibCommon/ContextModel.h,
28697 source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp:
28698 cabac: imprvement by merge context status update path
28701 2013-10-23 Steve Borho <steve@borho.org>
28703 * source/Lib/TLibCommon/TComRom.h, source/common/CMakeLists.txt,
28704 source/encoder/slicetype.cpp:
28708 * source/common/CMakeLists.txt, source/common/vec/blockcopy-avx2.cpp,
28709 source/common/vec/vec-primitives.cpp:
28710 remove blockcopy-avx2.cpp - not worth the trouble to convert and
28714 2013-10-23 Aarthi Thirumalai <Aarthi Thirumalai>
28716 * source/encoder/slicetype.cpp:
28717 slicetype: bug fix for estimated frame costs
28719 By the time rate control queries the estimated frame cost, lastNonB
28720 might have moved. Use the slice's actual L0 reference.
28721 [6a7383b8cbf0] <stable>
28723 2013-10-23 Steve Borho <steve@borho.org>
28725 * source/common/vec/intra-ssse3.cpp:
28726 intra: move 8x8 and 16x16 into their final order
28728 None of the 8bpp intra primitives use vector clases any more.
28729 blockcopy-avx2 is the last 8bpp vector primitive.
28732 * source/common/vec/intra-ssse3.cpp:
28733 intra: remove unused macros
28736 2013-10-23 Min Chen <chenm003@163.com>
28738 * source/common/vec/intra-ssse3.cpp:
28739 Fix memory write beyond bound bug in intraPredAng8x8()
28742 2013-10-23 Jan Ekström <jeebjp@gmail.com>
28744 * source/Lib/TLibCommon/TComRom.h, source/common/CMakeLists.txt:
28745 Fix compilation with Visual Studio 2013
28747 The <algorithm> header is needed for std::min and friends, and the
28748 CMakeLists.txt modification makes the version check match what is
28749 used in the source code.
28751 Unfortunately cmake does not seem to contain a GREATER_OR_EQUAL
28752 macro, so NOT(LESS) has to be used.
28753 [4922bf148182] <stable>
28755 2013-10-23 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
28757 * source/common/vec/intra-ssse3.cpp:
28758 intra: converted intraPredAng16x16 vector class functin to intrinsic
28761 2013-10-23 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
28763 * source/common/vec/intra-ssse3.cpp:
28764 intra-ssse3: intra angular 8x8 vector to intrinsic
28767 2013-10-23 Steve Borho <steve@borho.org>
28769 * source/common/vec/pixel-avx2.cpp:
28770 pixel: remove vector class include from pixel-avx2.cpp
28773 2013-10-23 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
28775 * source/common/vec/pixel-avx2.cpp:
28776 pixel: converted sad_avx2_x4_64 vector class to intrinsic
28779 * source/common/vec/pixel-avx2.cpp:
28780 pixel: converted sad_avx2_x4_32 vector class to intrinsic
28783 2013-10-22 Aarthi Thirumalai <aarthi@multicorewareinc.com>
28785 * source/encoder/slicetype.cpp:
28786 slicetype: calculate weighted frame costs for Aq
28789 2013-10-22 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
28791 * source/common/vec/pixel-avx2.cpp:
28792 pixel: converted some sad_avx2 vector class functions to intrinsic
28795 2013-10-22 Steve Borho <steve@borho.org>
28797 * source/common/CMakeLists.txt, source/common/vec/intra-sse3.cpp,
28798 source/common/vec/intra-ssse3.cpp, source/common/vec/vec-
28800 intra: rename intra-sse3.cpp to intra-ssse3.cpp
28803 * source/common/vec/intra-sse3.cpp:
28804 intra: move 32x32 angular prediction function into non-vector
28808 2013-10-22 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
28810 * source/common/vec/intra-sse3.cpp:
28811 intra-sse3.cpp: replace intraPredAng32x32 vector class function with
28815 * source/common/vec/intra-sse3.cpp:
28816 intra-sse3.cpp: replace intraPredAng8x8 vector class function with
28820 2013-10-22 Steve Borho <steve@borho.org>
28822 * source/Lib/TLibEncoder/TEncBinCoder.h,
28823 source/Lib/TLibEncoder/TEncCavlc.cpp,
28824 source/Lib/TLibEncoder/TEncCavlc.h, source/common/common.cpp,
28825 source/encoder/ratecontrol.cpp:
28829 2013-10-22 Min Chen <chenm003@163.com>
28831 * source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp:
28832 cabac: improvement performance by use negative cabac counter
28833 [88b3831ab799] <stable>
28835 * source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp,
28836 source/Lib/TLibEncoder/TEncBinCoderCABAC.h,
28837 source/Lib/TLibEncoder/TEncCavlc.cpp,
28838 source/Lib/TLibEncoder/TEncCavlc.h,
28839 source/Lib/TLibEncoder/TEncSbac.cpp,
28840 source/Lib/TLibEncoder/TEncSbac.h, source/encoder/CMakeLists.txt,
28841 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
28842 cleanup: merge header operator from TEncCavlc into class TEncSbac
28843 [4ec21109440b] <stable>
28845 * source/Lib/TLibEncoder/TEncBinCoder.h,
28846 source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp,
28847 source/Lib/TLibEncoder/TEncBinCoderCABAC.h,
28848 source/Lib/TLibEncoder/TEncSbac.h, source/encoder/CMakeLists.txt,
28849 source/encoder/frameencoder.cpp:
28850 cleanup:remove unused base class TEncBinIf
28851 [b6427fa01195] <stable>
28853 * source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp:
28854 cleanup: remove unused getNumberOfWrittenBits() from
28855 TEncBinCABAC::getNumWrittenBits()
28856 [af1695e1808c] <stable>
28858 * source/common/x86/ipfilter8.asm:
28859 remove reduce register copy in FILTER_H4_w2_2 and FILTER_H4_w4_2
28860 (update for linux build error)
28861 [f1045bead3b5] <stable>
28863 2013-10-22 Steve Borho <steve@borho.org>
28865 * source/encoder/ratecontrol.cpp:
28866 ratecontrol: consistent comment style
28867 [27265ca6dd90] <stable>
28869 2013-10-22 Gopu Govindaswamy <gopu@multicorewareinc.com>
28871 * source/Lib/TLibCommon/TComPicYuv.cpp,
28872 source/Lib/TLibCommon/TComPicYuv.h, source/common/common.cpp,
28873 source/encoder/encoder.cpp:
28874 encoder: auto-padding to min CU size and set conformance window
28875 [27a149b2062c] <stable>
28877 2013-10-22 Shazeb Nawaz Khan <shazeb@multicorewareinc.com>
28879 * source/common/pixel.cpp:
28880 Eliminating decreament in pointer index in weightp primitives
28882 could have been a source of possible crash
28883 [49849de33234] <stable>
28885 2013-10-22 Steve Borho <steve@borho.org>
28887 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
28888 ratecontrol: use cfg->param.frameNumThreads directly; nit cleanups
28889 [cd65a3311df5] <stable>
28891 2013-10-22 Aarthi Thirumalai <Aarthi Thirumalai>
28893 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
28894 rc: Bug fixes for ABR.
28896 remove uninitialized local variables and use values from
28897 cfg.param.rc as required.
28898 [e2dc3ec294a8] <stable>
28900 2013-10-22 Deepthi Nandakumar <deepthi@multicorewareinc.com>
28902 * source/Lib/TLibEncoder/TEncCu.cpp:
28906 2013-10-22 Aarthi Thirumalai <Aarthi Thirumalai>
28908 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
28909 rc: Bug fixes for ABR.
28911 remove uninitialized local variables and use values from
28912 cfg.param.rc as required.
28915 2013-10-21 Steve Borho <steve@borho.org>
28917 * source/common/common.cpp:
28921 * source/common/common.cpp:
28922 common: add --ref to the tool list so it is visible in the log
28923 [40eb6be35caa] <stable>
28925 * source/common/lowres.cpp:
28926 lowres: initialize satdCost to -1
28929 2013-10-21 Aarthi Thirumalai <aarthi@multicorewareinc.com>
28931 * source/common/lowres.cpp, source/common/lowres.h,
28932 source/encoder/slicetype.cpp, source/encoder/slicetype.h:
28933 lowres: Add states to store weighted Aq costs per frame.
28936 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
28937 source/common/common.cpp, source/common/common.h:
28938 add methods to convert qpAqoffsets to qscale
28941 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
28942 source/common/lowres.cpp, source/common/lowres.h,
28943 source/encoder/ratecontrol.cpp:
28944 lowres: move m_qpAqOffset from TComPic to Lowres
28947 2013-10-21 Steve Borho <steve@borho.org>
28949 * doc/README_data-structure.ppt, doc/astyle/AStyle.exe, doc/astyle
28950 /apply-to-all-source.py, doc/astyle/astyle-config.txt, doc/astyle
28951 /drag-astyle.bat, doc/intra/T16.TXT, doc/intra/T32.TXT,
28952 doc/intra/T4.TXT, doc/intra/T8.TXT, doc/software-manual.pdf,
28953 doc/uncrustify/uncrustify.bat, doc/uncrustify/uncrustify.exe,
28954 source/Lib/TLibCommon/AccessUnit.h,
28955 source/Lib/TLibCommon/ContextModel3DBuffer.cpp,
28956 source/Lib/TLibCommon/ContextModel3DBuffer.h,
28957 source/Lib/TLibCommon/TComList.h,
28958 source/Lib/TLibEncoder/TEncBinCoderCABACCounter.cpp,
28959 source/Lib/TLibEncoder/TEncBinCoderCABACCounter.h,
28960 source/Lib/TLibEncoder/TEncTop.cpp,
28961 source/Lib/TLibEncoder/TEncTop.h,
28962 source/VectorClass/instrset_detect.cpp,
28963 source/cmake/mergestaticlibs.cmake,
28964 source/common/vec/CMakeLists.txt, source/common/vec/avx.cpp,
28965 source/common/vec/avx2.cpp, source/common/vec/blockcopy-avx.cpp,
28966 source/common/vec/blockcopy-sse41.cpp, source/common/vec/blockcopy-
28967 ssse3.cpp, source/common/vec/blockcopy-xop.cpp,
28968 source/common/vec/blockcopy.inc, source/common/vec/dct-avx.cpp,
28969 source/common/vec/dct-avx2.cpp, source/common/vec/dct-xop.cpp,
28970 source/common/vec/dct.inc, source/common/vec/intra-avx.cpp,
28971 source/common/vec/intra-avx2.cpp, source/common/vec/intra-ssse3.cpp,
28972 source/common/vec/intra-xop.cpp, source/common/vec/intrapred.inc,
28973 source/common/vec/ipfilter-avx.cpp, source/common/vec/ipfilter-
28974 avx2.cpp, source/common/vec/ipfilter-sse3.cpp, source/common/vec
28975 /ipfilter-xop.cpp, source/common/vec/ipfilter.inc,
28976 source/common/vec/ipfilter16.inc, source/common/vec/ipfilter8.inc,
28977 source/common/vec/pixel-avx.cpp, source/common/vec/pixel-ssse3.cpp,
28978 source/common/vec/pixel-xop.cpp, source/common/vec/pixel.inc,
28979 source/common/vec/pixel16.inc, source/common/vec/pixel8.inc,
28980 source/common/vec/sse.inc, source/common/vec/sse3.cpp,
28981 source/common/vec/sse41.cpp, source/common/vec/ssse3.cpp,
28982 source/common/vec/utils.h, source/common/vec/vecprimitives.inc,
28983 source/common/vec/xop.cpp, source/common/x86/CMakeLists.txt,
28984 source/test/unittest.cpp, source/test/unittest.h, source/x265opts.h:
28985 Merge with default (feature freeze for 0.5)
28986 [f2fcda06d76a] <stable>
28988 2013-10-21 Min Chen <chenm003@163.com>
28990 * source/Lib/TLibCommon/TComDataCU.cpp,
28991 source/Lib/TLibCommon/TComDataCU.h,
28992 source/Lib/TLibEncoder/TEncSbac.cpp,
28993 source/Lib/TLibEncoder/TEncSbac.h,
28994 source/Lib/TLibEncoder/TEncSearch.cpp:
28995 merge multiple encodeBinEP to encodeBinsEP
28998 2013-10-21 Steve Borho <steve@borho.org>
29000 * source/encoder/compress.cpp:
29001 compress: remove a pile of unnecessary intra estimation code
29004 * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp:
29005 compress: remove pointer reference from xComputeCostIntraInInter and
29009 * source/encoder/compress.cpp:
29010 compress: replace magic numbers with proper enums
29013 2013-10-21 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
29015 * source/common/vec/intra-sse3.cpp:
29016 intra-sse3.cpp: replace predIntraAng8_32 vector class function with
29020 2013-10-21 Sumalatha Polureddy <Sumalatha Polureddy>
29022 * source/encoder/compress.cpp:
29023 no-rdo: compute Luma only in MC for cost estimation for mode
29026 luma alone is computed in MC since luma cost alone is used for mode
29027 decision. After best mode is selected, before encoding, chroma MC is
29031 2013-10-21 Shazeb Nawaz Khan <shazeb@multicorewareinc.com>
29033 * source/common/pixel.cpp, source/common/vec/pixel-sse41.cpp:
29034 Adapting weightp primitive for pixel input
29036 By simulating shift & round as in convertPixelToShort primitive. The
29037 SSE4.1 intrinsic primitives are disabled because they no longer
29041 2013-10-21 Steve Borho <steve@borho.org>
29043 * source/common/ipfilter.cpp, source/common/vec/ipfilter-sse41.cpp,
29044 source/common/vec/ipfilter-ssse3.cpp:
29045 ipfilter: cleanup C and intrinsic functions
29048 2013-10-21 Praveen Tiwari <Praveen Tiwari>
29050 * source/common/ipfilter.cpp:
29051 added C code for chroma filter_vpp function
29054 * source/common/x86/ipfilter8.h:
29055 created function declerations for chroma_vpp
29058 * source/test/ipfilterharness.cpp:
29059 ipfilterharness.cpp, modified chroma filter_hpp unit test code to
29063 * source/test/ipfilterharness.cpp:
29064 ipfilterharness.cpp, added measure speed code for ipfilter_vpp
29068 * source/test/ipfilterharness.cpp:
29069 ipfilterharness.cpp, added test correctness code for ipfilter_vpp
29073 * source/common/primitives.h:
29074 added array of function pointers for chroma ipfilter_vpp function
29077 2013-10-21 Gopu Govindaswamy <gopu@multicorewareinc.com>
29079 * source/Lib/TLibCommon/TComPic.cpp,
29080 source/Lib/TLibCommon/TComSlice.h,
29081 source/Lib/TLibEncoder/TEncCavlc.cpp,
29082 source/Lib/TLibEncoder/TEncCfg.h, source/encoder/encoder.cpp:
29083 tcomslice : removed set and get window*offset() methods
29086 * source/Lib/TLibEncoder/TEncCfg.h, source/encoder/encoder.cpp,
29087 source/encoder/framefilter.cpp:
29088 tenccfg : removed unused setpad() and getpad() methods
29091 2013-10-21 Steve Borho <steve@borho.org>
29094 cli: reintroduce -w short option for weightp
29097 2013-10-21 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
29099 * source/encoder/slicetype.cpp:
29100 Lookahead: wavefront bugfix.
29102 conditionally assign estimated cost to avoid overwriting intra cost.
29105 2013-10-21 =?utf-8?b?UmFmYcOrbCBDYXJyw6kgPGZ1bm1hbkB2aWRlb2xhbi5vcmc+?= <=?utf-8?b?UmFmYcOrbCBDYXJyw6kgPGZ1bm1hbkB2aWRlb2xhbi5vcmc+?=>
29107 * source/encoder/ratecontrol.cpp:
29108 [x265] ratecontrol: initialize frameThreads Fix a floating point
29111 --- source/encoder/ratecontrol.cpp | 1 + 1 file changed, 1
29115 2013-10-21 Deepthi Nandakumar <deepthi@multicorewareinc.com>
29117 * source/common/lowres.cpp:
29118 lowres: right and bottom margins are being extended twice?
29121 2013-10-21 Sumalatha Polureddy <Sumalatha Polureddy>
29123 * source/Lib/TLibCommon/TComPrediction.cpp,
29124 source/Lib/TLibCommon/TComWeightPrediction.cpp:
29125 bug fix for passing bLuma and bChroma as separate arguments
29127 if there are default arguments other than bLuma and bChroma, those
29128 default values (bRound, refIdx) are not passed during the function
29129 call(addWeightBi(), xWeightedPredictionUni())
29132 2013-10-21 Deepthi Nandakumar <deepthi@multicorewareinc.com>
29134 * source/common/vec/intra-sse3.cpp:
29135 intra-sse: Fix for HIGH_BIT_DEPTH build error
29138 2013-10-21 Min Chen <chenm003@163.com>
29140 * source/Lib/TLibCommon/ContextModel3DBuffer.cpp,
29141 source/Lib/TLibCommon/ContextModel3DBuffer.h,
29142 source/Lib/TLibCommon/ContextTables.h,
29143 source/Lib/TLibEncoder/TEncSbac.cpp,
29144 source/Lib/TLibEncoder/TEncSbac.h, source/common/CMakeLists.txt:
29145 cabac: cleanup array of cabac context
29148 2013-10-19 Min Chen <chenm003@163.com>
29150 * source/common/x86/ipfilter8.asm:
29151 remove reduce register copy in FILTER_H4_w2_2 and FILTER_H4_w4_2
29154 2013-10-20 Steve Borho <steve@borho.org>
29156 * source/common/vec/intra-sse3.cpp, source/common/vec/intra-sse41.cpp:
29157 intra: move intra_pred_dc to intra-sse41.cpp; it uses SSSE3
29160 We don't have an intra-ssse3.cpp and it seems a waste to create one
29161 just for this one function.
29164 2013-10-18 Steve Borho <steve@borho.org>
29166 * source/common/wavefront.h, source/encoder/encoder.cpp,
29167 source/encoder/slicetype.cpp, source/encoder/slicetype.h:
29168 Lookahead: implement wavefront parallel processing
29171 2013-10-18 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
29173 * source/common/wavefront.cpp, source/common/wavefront.h:
29174 WaveFront: add new function to enable all rows
29177 2013-10-18 Steve Borho <steve@borho.org>
29179 * source/test/ipfilterharness.cpp:
29180 ipfilterharness: simplify filter names
29183 * source/Lib/TLibEncoder/TEncSearch.cpp:
29184 TEncSearch: add x265_emms() after use of pixelavg_pp and satd
29188 2013-10-18 Praveen Tiwari <Praveen Tiwari>
29190 * source/common/x86/asm-primitives.cpp,
29191 source/common/x86/ipfilter8.asm:
29192 asm code for luma filter functions
29195 * source/common/x86/asm-primitives.cpp,
29196 source/common/x86/ipfilter8.asm:
29197 added 24x32 partion size asm code to chroma function
29200 * source/common/x86/asm-primitives.cpp,
29201 source/test/ipfilterharness.cpp:
29202 asm: corrected luma enum variable, testbench fix
29205 * source/common/ipfilter.cpp:
29206 ipfilter.cpp, added code to support luma coefficients too
29209 2013-10-18 Steve Borho <steve@borho.org>
29211 * source/common/vec/intra-sse3.cpp:
29212 intra: isolate last remaining vector class functions (angular intra
29216 * source/common/vec/intra-sse3.cpp:
29217 intra: sane function names and typedefs
29220 * source/common/vec/intra-sse3.cpp:
29224 * source/common/vec/intra-sse3.cpp:
29225 intra: remove SSE3 planar intrinsic functions; they are redundant
29228 2013-10-18 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
29230 * source/common/vec/intra-sse3.cpp:
29231 intra: replace predDCFiltering vector class function with intrinsic
29234 * source/common/vec/intra-sse3.cpp:
29235 intra: replace intra_pred_dc vector class function with intrinsic
29238 2013-10-18 Aarthi Thirumalai <aarthi@multicorewareinc.com>
29240 * source/encoder/ratecontrol.cpp:
29241 rc : removed warning , moved strength to acEnergyCu
29244 2013-10-18 Steve Borho <steve@borho.org>
29246 * source/common/x86/asm-primitives.cpp:
29247 asm: disable remaining pixelavg primitives, they fail against our C
29251 * source/test/pixelharness.cpp:
29252 pixelharness: fix iteration through partition enums
29255 2013-10-18 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
29257 * source/test/pixelharness.cpp, source/test/pixelharness.h:
29258 added pixelavg_pp function to testbench
29261 * source/common/vec/blockcopy-sse3.cpp:
29262 blockcopy-sse3.cpp: removed unnecessary variable.
29265 2013-10-18 Steve Borho <steve@borho.org>
29267 * source/common/CMakeLists.txt:
29268 cmake: msvc yasm dependency fix
29271 2013-10-18 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
29273 * source/test/pixelharness.cpp, source/test/pixelharness.h:
29274 added cvt32to16_shr_sse2 function to testbench.
29276 Speed up measured is almost 14x.
29279 * source/common/vec/blockcopy-sse3.cpp:
29280 blockcopy-sse3.cpp: removed warning: overflow in implicit constant
29284 * source/common/vec/intra-sse3.cpp:
29285 intra-sse3.cpp: replace xPredIntraAng4x4 vector class function with
29289 2013-10-18 Steve Borho <steve@borho.org>
29291 * source/common/vec/intra-sse3.cpp:
29292 intra: remove unused variable
29295 * source/common/x86/asm-primitives.cpp:
29296 asm: fix 32bit build following partition enum carnage
29299 2013-10-17 Min Chen <chenm003@163.com>
29301 * source/common/CMakeLists.txt, source/common/vec/pixel-sse3.cpp,
29302 source/common/x86/asm-primitives.cpp, source/common/x86/pixel-
29303 util.asm, source/common/x86/pixel.h:
29304 asm: add cvt32to16_shr_sse2, remove intrinsic primitive
29307 2013-10-17 Steve Borho <steve@borho.org>
29309 * source/common/common.h:
29310 common: force float and double arguments to logf() and log(),
29313 Fixes warnings on some MSVC versions
29316 * source/common/vec/intra-sse3.cpp:
29317 intra: fix GCC warning about potentially uninitialized sum variable
29320 * source/common/vec/intra-sse3.cpp, source/test/intrapredharness.cpp:
29321 intra: segregate 8bpp from 16bpp functions, drop 16bpp angular, drop
29324 The HIGH_BIT_DEPTH angular function was just a copy of the C
29325 reference, we do not need 64x64 blocks any more
29328 * source/common/vec/intra-sse3.cpp:
29329 intra: remove unused argument to predDCFiltering(), remove static
29331 There's no need to declare the function static, it is within an
29332 anonymous namespace
29335 * source/common/vec/pixel-avx2.cpp,
29336 source/common/vec/pixel16-sse41.cpp, source/test/testbench.cpp,
29337 source/test/testharness.h:
29338 pixel: fix avx2, 16bpp, and testbench following luma enum reorg
29341 2013-10-17 Praveen Tiwari <Praveen Tiwari>
29343 * source/test/ipfilterharness.cpp:
29344 removed unnecessary calculation from chroma REPORT_SPEEDUP function
29347 * source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.h:
29348 asm: fundef creation and function pointer table setup for luma asm
29352 * source/common/ipfilter.cpp:
29353 ipfilter: setup luma function pointers
29356 * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h:
29357 unit test code for luma filter
29360 2013-10-17 Steve Borho <steve@borho.org>
29362 * source/common/primitives.h:
29363 primitives: define luma_hpp block interpolation function pointers
29366 * source/common/CMakeLists.txt, source/common/ipfilter.cpp,
29367 source/common/pixel.cpp, source/common/primitives.cpp,
29368 source/common/primitives.h, source/common/vec/pixel-sse41.cpp,
29369 source/common/x86/asm-primitives.cpp, source/common/x86/ipfilter8.h,
29370 source/common/x86/mc.h, source/common/x86/pixel-a.asm,
29371 source/common/x86/pixel.h, source/encoder/framefilter.cpp,
29372 source/encoder/motion.cpp, source/encoder/ratecontrol.cpp,
29373 source/encoder/slicetype.cpp, source/test/ipfilterharness.cpp,
29374 source/test/pixelharness.cpp, source/test/testharness.h:
29375 primitives: cleanup luma partition enums and primitive
29378 Don't define any enums for partitions which are not used by HEVC.
29379 Line up chroma enums to match luma enums. Stop instantiating C
29380 primitives that are never used. Shorten up the partition enum names.
29381 Prune unused SSD assembly routines, move ASM funcdefs into headers
29384 2013-10-17 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
29386 * source/common/vec/pixel16-sse41.cpp:
29387 pixel16: converted sad_4 from vector class to intrinsic
29390 2013-10-17 Aarthi Thirumalai <aarthi@multicorewareinc.com>
29392 * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp,
29393 source/encoder/ratecontrol.h:
29394 rc: implement Adaptive Quantization.
29396 added functions to compute AC Energy per CU for all planes,
29397 calculate qpAqOffset for each CU
29400 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
29401 source/encoder/encoder.cpp:
29402 TComPic: add m_qpAqOffset to store qp offsets per CU when Aq is
29406 2013-10-17 Steve Borho <steve@borho.org>
29408 * source/common/CMakeLists.txt:
29409 cmake: fix assembly dependency path
29412 2013-10-17 Gopu Govindaswamy <gopu@multicorewareinc.com>
29414 * source/common/common.cpp, source/encoder/encoder.cpp,
29415 source/x265.cpp, source/x265.h:
29416 cli: rename bRDLevel to rdLevel
29419 * source/common/common.cpp, source/common/common.h:
29420 common : Added new function x265_param2string
29423 2013-10-17 Min Chen <chenm003@163.com>
29425 * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/pixel.cpp,
29426 source/common/primitives.h, source/common/vec/pixel-sse3.cpp:
29427 improvement cvt32to16_shr by merge width and height loop
29430 2013-10-17 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
29432 * source/common/vec/pixel-sse3.cpp:
29433 pixel: fix the hash mismatch due to convert32to16_shr
29436 2013-10-17 Min Chen <chenm003@163.com>
29438 * source/common/x86/pixel-a.asm:
29439 x265_pixel_ssd_4x4_ssse3 miss EMMS
29442 2013-10-17 Praveen Tiwari <Praveen Tiwari>
29444 * source/test/ipfilterharness.cpp:
29445 removed unnecessary calculation form rand_srcStride
29448 * source/test/ipfilterharness.cpp:
29449 added genration of random stride in chroma unit test code
29452 * source/common/x86/ipfilter8.asm:
29453 fixed output mismatch problem with chroma 2xN block
29456 2013-10-17 Steve Borho <steve@borho.org>
29458 * source/common/vec/intra-sse3.cpp:
29459 intra: remove dead tables, fix comment typos, and other white-space
29463 * source/encoder/slicetype.cpp:
29464 slicetype: fix pre-calculation of slice cost for ABR
29467 * source/common/vec/intra-sse3.cpp:
29468 intra: add parens to macros to fix auto-alignment
29471 2013-10-16 Steve Borho <steve@borho.org>
29473 * doc/uncrustify/codingstyle.cfg,
29474 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
29475 source/Lib/TLibCommon/TComTrQuant.cpp:
29476 uncrustify: another brace-style tweak
29479 * source/Lib/TLibCommon/ContextModel.h,
29480 source/Lib/TLibCommon/ContextModel3DBuffer.h,
29481 source/Lib/TLibCommon/ContextTables.h,
29482 source/Lib/TLibCommon/TComBitCounter.h,
29483 source/Lib/TLibCommon/TComBitStream.cpp,
29484 source/Lib/TLibCommon/TComDataCU.cpp,
29485 source/Lib/TLibCommon/TComDataCU.h,
29486 source/Lib/TLibCommon/TComLoopFilter.cpp,
29487 source/Lib/TLibCommon/TComPattern.cpp,
29488 source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicSym.h,
29489 source/Lib/TLibCommon/TComPicYuv.cpp,
29490 source/Lib/TLibCommon/TComPicYuv.h,
29491 source/Lib/TLibCommon/TComPicYuvMD5.cpp,
29492 source/Lib/TLibCommon/TComPrediction.cpp,
29493 source/Lib/TLibCommon/TComPrediction.h,
29494 source/Lib/TLibCommon/TComRom.cpp,
29495 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
29496 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
29497 source/Lib/TLibCommon/TComSlice.cpp,
29498 source/Lib/TLibCommon/TComSlice.h,
29499 source/Lib/TLibCommon/TComTrQuant.cpp,
29500 source/Lib/TLibCommon/TComTrQuant.h,
29501 source/Lib/TLibCommon/TComWeightPrediction.cpp,
29502 source/Lib/TLibCommon/TComYuv.cpp,
29503 source/Lib/TLibEncoder/NALwrite.cpp,
29504 source/Lib/TLibEncoder/NALwrite.h,
29505 source/Lib/TLibEncoder/SyntaxElementWriter.cpp,
29506 source/Lib/TLibEncoder/TEncAnalyze.h,
29507 source/Lib/TLibEncoder/TEncBinCoderCABAC.h,
29508 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
29509 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
29510 source/Lib/TLibEncoder/TEncSbac.cpp,
29511 source/Lib/TLibEncoder/TEncSbac.h,
29512 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/TShortYUV.cpp,
29513 source/common/common.cpp, source/common/common.h,
29514 source/common/cpu.h, source/common/ipfilter.cpp,
29515 source/common/lowres.cpp, source/common/lowres.h,
29516 source/common/piclist.cpp, source/common/piclist.h,
29517 source/common/pixel.cpp, source/common/primitives.cpp,
29518 source/common/reference.cpp, source/common/threading.cpp,
29519 source/common/threading.h, source/common/vec/blockcopy-avx2.cpp,
29520 source/common/vec/blockcopy-sse3.cpp, source/common/vec/dct-
29521 sse3.cpp, source/common/vec/dct-sse41.cpp, source/common/vec/intra-
29522 sse3.cpp, source/common/vec/intra-sse41.cpp, source/common/vec
29523 /ipfilter-sse41.cpp, source/common/vec/ipfilter-ssse3.cpp,
29524 source/common/vec/pixel-avx2.cpp, source/common/vec/pixel-sse3.cpp,
29525 source/common/vec/pixel-sse41.cpp, source/common/vec/pixel-
29526 ssse3.cpp, source/common/vec/pixel16-sse41.cpp, source/common/vec
29527 /vec-primitives.cpp, source/common/x86/asm-primitives.cpp,
29528 source/common/x86/pixel.h, source/dllmain.cpp,
29529 source/encoder/compress.cpp, source/encoder/cturow.h,
29530 source/encoder/dpb.cpp, source/encoder/encoder.cpp,
29531 source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp,
29532 source/encoder/motion.cpp, source/encoder/motion.h,
29533 source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp,
29534 source/input/y4m.cpp, source/input/y4m.h, source/input/yuv.cpp,
29535 source/input/yuv.h, source/test/intrapredharness.cpp,
29536 source/test/ipfilterharness.cpp, source/test/pixelharness.cpp,
29537 source/test/pixelharness.h, source/test/testbench.cpp,
29538 source/test/testharness.h, source/x265.cpp, source/x265.h:
29539 uncrustify entire source tree
29542 * doc/uncrustify/apply-to-all-source.py:
29543 uncrustify: allow uncrustify to process .cpp and .h in common/x86
29546 * doc/uncrustify/codingstyle.cfg:
29547 uncrustify: do not remove whitespace in an empty brace section {}
29552 2013-10-14 Steve Borho <steve@borho.org>
29554 * source/CMakeLists.txt, source/compat/msvc/LGPL.txt,
29555 source/compat/msvc/getopt.c, source/compat/msvc/getopt.h:
29556 getopt: grab an unambiguously LGPL version of getopt
29558 Found at: https://github.com/Tietew/mediawiki-
29559 xml2sql/tree/master/getopt
29561 The only change made was to move getopt_long() into getopt.c from
29564 # HG changeset patch # User Steve Borho <steve@borho.org> # Date
29565 1381776922 18000 # Mon Oct 14 13:55:22 2013 -0500 # Node ID
29566 b6cca1b1a9b700a8ffc316f3186dbf10bc1149cc # Parent
29567 abae6903e0af0d9940bb734ba34dff6928d72e61 getopt: grab an
29568 unambiguously LGPL version of getopt
29570 Found at: https://github.com/Tietew/mediawiki-
29571 xml2sql/tree/master/getopt
29573 The only change made was to move getopt_long() into getopt.c from
29577 2013-10-16 Steve Borho <steve@borho.org>
29579 * source/common/vec/pixel-sse3.cpp:
29580 pixel: disable intrinsic cvt32to16_shr; it is causing hash
29584 * source/common/ipfilter.cpp:
29585 ipfilter: gcc preprocessor does not allow ## use for non-symbols
29587 The ## in this case was totally unnecessary
29591 cli: add missing --cpuid handler
29594 * source/test/ipfilterharness.cpp:
29595 test: revert accidental change to 64 dims so testbench passes
29598 * source/common/vec/dct-sse41.cpp:
29599 dct: remove SSE41 dct 8x8, 16x16 and 32x32 intrinsic primitives
29601 These were adapted from vector class functions but were much slower
29602 than the hand-tuned dct SSSE3 functions written by Min.
29605 * source/common/primitives.h, source/common/vec/vec-primitives.cpp,
29606 source/common/x86/asm-primitives.cpp:
29607 primitives: do not include the public API header in primitives.h
29609 This was necessary in the past for the CPU level enums but those are
29610 now gone. Only vec-primitives.cpp and asm-primitives.cpp need the
29611 CPU capability defines and they can include x265.h themselves.
29614 2013-10-16 Praveen Tiwari <Praveen Tiwari>
29616 * source/test/ipfilterharness.cpp:
29617 check_IPFilterChroma_primitive, stride made equal to min width 2
29619 short-term workaround for 2XN blocks
29622 2013-10-16 Steve Borho <steve@borho.org>
29625 cli: tighten up command line help, remove redundancies and save
29630 cli: pull CLIOptions methods out of struct definition (cleanup)
29632 Remove i_ hungarian notation from variables
29635 * build/vc10-x86/make-solutions.bat, build/vc10-x86_64/make-
29636 solutions.bat, build/vc11-x86/make-solutions.bat, build/vc11-x86_64
29637 /make-solutions.bat, build/vc9-x86/make-solutions.bat,
29638 build/vc9-x86_64/make-solutions.bat:
29639 build: wtf is a Visual Studion?
29642 2013-10-16 Sumalatha Polureddy <Sumalatha Polureddy>
29644 * source/Lib/TLibCommon/TComPrediction.cpp,
29645 source/Lib/TLibCommon/TComPrediction.h,
29646 source/Lib/TLibCommon/TComWeightPrediction.cpp,
29647 source/Lib/TLibCommon/TComWeightPrediction.h,
29648 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
29649 source/Lib/TLibEncoder/TEncSearch.cpp,
29650 source/Lib/TLibEncoder/TEncSearch.h:
29651 pass bLuma and bChroma parameters for functions
29653 Based on the values of two parameters, luma and chroma operations
29654 are done. Default value for both is set as true todo both operations
29657 2013-10-16 Gopu Govindaswamy <gopu@multicorewareinc.com>
29659 * source/CMakeLists.txt, source/x265opts.h:
29660 cli: remove unused x265opts.h
29664 cli: long_options structure initialization without using x265opts.h
29668 cli: implemented do_help() without using x265opts.h
29671 * source/common/common.cpp, source/x265.cpp, source/x265.def.in,
29673 api: add x265_param_parse() function based on x264_param_parse()
29676 2013-10-16 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
29678 * source/Lib/TLibEncoder/TEncSearch.cpp:
29679 bidir: fix for hash mismatch with B-frames
29681 Use seperate variables for mvp and mvpidx used for zero mv
29682 candidates. Also copy the corresponding AMVPinfo for each
29686 2013-10-16 Praveen Tiwari <Praveen Tiwari>
29688 * source/common/x86/asm-primitives.cpp,
29689 source/common/x86/ipfilter8.asm:
29690 asm: update chroma interpolation primitives
29693 * source/common/ipfilter.cpp, source/test/ipfilterharness.cpp,
29694 source/test/ipfilterharness.h:
29695 primitive: added C primitive and unit test code for one chroma
29699 * source/common/primitives.h:
29700 primitive: chroma partition enums by full dimension and function
29704 2013-10-16 Sumalatha Polureddy <Sumalatha Polureddy>
29706 * source/Lib/TLibEncoder/TEncCu.cpp,
29707 source/Lib/TLibEncoder/TEncSearch.cpp:
29708 no-rdo: remove unused checks
29711 2013-10-16 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
29713 * source/common/vec/intra-sse3.cpp:
29714 intra-sse3.cpp: Remove unused vector class macros
29717 2013-10-16 Min Chen <chenm003@163.com>
29719 * source/Lib/TLibEncoder/TEncCavlc.h,
29720 source/Lib/TLibEncoder/TEncEntropy.h,
29721 source/Lib/TLibEncoder/TEncSbac.cpp,
29722 source/Lib/TLibEncoder/TEncSbac.h:
29723 cleanup: remove unused updateContextTables()
29726 2013-10-16 Kavitha Sampath <kavitha@multicorewareinc.com>
29728 * source/input/yuv.cpp, source/input/yuv.h:
29729 yuv: make file reading threaded
29732 2013-10-16 Steve Borho <steve@borho.org>
29734 * source/common/x86/asm-primitives.cpp:
29735 asm: disable the use of x264 pixel weighting functions
29737 These are breaking lowres qpel generation
29740 2013-10-16 Aarthi Thirumalai <aarthi@multicorewareinc.com>
29742 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
29743 source/encoder/framefilter.cpp, source/encoder/framefilter.h:
29744 move ssim calculation to frameFilters
29747 2013-10-15 Steve Borho <steve@borho.org>
29749 * source/Lib/TLibEncoder/TEncSearch.cpp:
29750 TEncSearch: remove unused static MV arrays
29753 * source/Lib/TLibEncoder/TEncSearch.cpp:
29757 * source/Lib/TLibCommon/TComSlice.cpp,
29758 source/Lib/TLibCommon/TComSlice.h,
29759 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/dpb.cpp:
29760 TComSlice: remove unused m_list1IdxToList0Idx and methods
29763 * source/Lib/TLibEncoder/TEncSearch.cpp:
29764 TEncSearch: remove unused variables
29767 * source/Lib/TLibEncoder/TEncSearch.cpp:
29768 TEncSearch: rename refList -> list, refIdxTmp -> idx (more readable)
29771 * source/Lib/TLibEncoder/TEncSearch.cpp:
29772 TEncSearch: simplify unidirectional search logic
29774 There was a lot of extra code to check if an L0 pic was in the L1
29775 list and was already searched. We do not copy our L0 pics into the
29776 L1 list so this isn't an issue.
29779 * source/Lib/TLibEncoder/TEncSearch.cpp:
29780 TEncSearch: remove unnecessary memsets
29783 * source/Lib/TLibEncoder/TEncSearch.cpp,
29784 source/encoder/frameencoder.cpp:
29785 TEncSearch: hoist setSourcePlane() to be called just once per frame
29788 * source/Lib/TLibEncoder/TEncSearch.cpp:
29789 TEncSearch: move variables closer to their use
29792 * source/Lib/TLibCommon/ContextModel3DBuffer.cpp,
29793 source/Lib/TLibCommon/ContextModel3DBuffer.h,
29794 source/Lib/TLibCommon/TComDataCU.h,
29795 source/Lib/TLibCommon/TComTrQuant.cpp,
29796 source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp,
29797 source/Lib/TLibEncoder/TEncCavlc.cpp,
29798 source/Lib/TLibEncoder/TEncEntropy.cpp,
29799 source/Lib/TLibEncoder/TEncEntropy.h,
29800 source/Lib/TLibEncoder/TEncSbac.cpp,
29801 source/Lib/TLibEncoder/TEncSbac.h, source/encoder/framefilter.cpp:
29802 global search and replace for common hungarian prefixed variables
29805 * source/Lib/TLibEncoder/WeightPredAnalysis.cpp,
29806 source/Lib/TLibEncoder/WeightPredAnalysis.h:
29807 WeightPredAnalysis: remove hungarian prefixes
29810 * source/Lib/TLibEncoder/TEncCavlc.cpp,
29811 source/Lib/TLibEncoder/TEncCavlc.h:
29812 TEncCavlc: remove hungarian prefixes
29815 * source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp,
29816 source/Lib/TLibEncoder/TEncBinCoderCABAC.h:
29817 TEncBinCABAC: remove hungarian prefixes
29820 * source/common/CMakeLists.txt:
29821 cmake: fix gcc 16bpp build
29824 * source/Lib/TLibCommon/TComPic.h, source/encoder/encoder.cpp,
29826 api: pass presentation timestamp through the encoder
29829 2013-10-15 Min Chen <chenm003@163.com>
29831 * source/Lib/TLibCommon/TComBitStream.cpp:
29832 faster grow buffer size to reduce number of memcpy
29835 * source/Lib/TLibCommon/TComBitCounter.h,
29836 source/Lib/TLibCommon/TComBitStream.cpp,
29837 source/Lib/TLibCommon/TComBitStream.h,
29838 source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp:
29839 cabac: writeByte() for faster CABAC output
29842 * source/Lib/TLibCommon/ContextModel.h,
29843 source/Lib/TLibCommon/ContextModel3DBuffer.cpp,
29844 source/Lib/TLibCommon/ContextModel3DBuffer.h,
29845 source/Lib/TLibCommon/ContextTables.h,
29846 source/Lib/TLibCommon/TypeDef.h,
29847 source/Lib/TLibEncoder/TEncSbac.cpp:
29848 cleanup:reduce ContextModel3DBuffer to 1D
29851 2013-10-15 Praveen Tiwari <Praveen Tiwari>
29853 * source/common/primitives.h:
29854 primitives: add chroma partition widths and interpolation function
29858 2013-10-15 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
29860 * source/common/vec/pixel-sse41.cpp:
29861 pixel-sse41.cpp: Modified PROCESS_SSE_SS4x1 macro with faster
29865 2013-10-15 Kavitha Sampath <kavitha@multicorewareinc.com>
29867 * source/input/input.h, source/input/y4m.cpp, source/input/y4m.h:
29868 y4m: make file reading threaded
29871 2013-10-15 Santhoshini Sekar <santhoshini@multicorewareinc.com>
29873 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
29874 source/encoder/encoder.cpp, source/encoder/frameencoder.cpp,
29875 source/encoder/framefilter.cpp, source/encoder/framefilter.h:
29876 PSNR: row-by-row PSNR measurement with SSD accumulators in TComPic
29879 2013-10-15 Deepthi Nandakumar <deepthi@multicorewareinc.com>
29881 * source/common/vec/ipfilter-sse41.cpp:
29882 ipfilter: Fix for 16bpp build
29885 2013-10-15 Steve Borho <steve@borho.org>
29887 * source/common/vec/pixel-sse41.cpp:
29888 pixel: fix 16bpp build
29891 2013-10-15 sairam <sairam@multicorewareinc.com>
29893 * source/encoder/motion.cpp:
29894 Fixed the --me 4 cli option error
29897 2013-10-15 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
29899 * source/common/vec/pixel-sse41.cpp:
29900 pixel: cleared the bug in sse_sp8, through sse_sp64
29903 * source/common/vec/pixel-sse41.cpp:
29904 pixel: modified weightUnidir to clear the bug.
29907 * source/common/vec/pixel-sse41.cpp:
29908 pixel: cleared the bug in sse_sp4.
29911 2013-10-15 Steve Borho <steve@borho.org>
29913 * source/common/CMakeLists.txt, source/common/vec/pixel-sse41.cpp,
29914 source/common/vec/pixel16-sse41.cpp, source/common/vec/pixel16.inc:
29915 cmake: give 16bpp vector sad primitives their own C++ file
29918 * source/CMakeLists.txt:
29919 cmake: do not query clang version, it is not used
29922 2013-10-14 Steve Borho <steve@borho.org>
29924 * source/Lib/TLibEncoder/TEncSearch.cpp:
29925 TEncSearch: fix comment for TEncSearch::predInterSearch
29928 * source/CMakeLists.txt:
29929 cmake: move X265_BUILD definition to near top of main CMakeLists.txt
29931 This is just to make it easier to find
29934 * source/common/CMakeLists.txt, source/common/common.cpp,
29935 source/common/version.cpp:
29936 version: move export variables into version.cpp
29939 * source/CMakeLists.txt:
29940 cmake: allow MinGW to rename x265-static to x265
29942 MinGW uses libx265.dll.a for the shim loader library, which does not
29943 collide with libx265.a, so it is ok. Only MSVC wants to use x265.lib
29947 * source/common/CMakeLists.txt:
29948 cmake: fix 32bit GCC compile
29951 * source/CMakeLists.txt:
29952 cmake: drop x265 folder suffix to archive install path
29955 2013-10-13 Steve Borho <steve@borho.org>
29957 * source/common/common.cpp, source/common/common.h,
29958 source/common/lowres.h, source/encoder/slicetype.h:
29959 common: sanity check some lookahead settings
29962 2013-09-10 Steve Borho <steve@borho.org>
29964 * source/common/lowres.cpp, source/common/lowres.h,
29965 source/encoder/slicetype.cpp, source/encoder/slicetype.h:
29966 slicetype: fill in missing detail from slicetypeDecide()
29968 This moves slicetypeDecide() to make the file more readable. It also
29969 adds stubs for features that we do not support yet including
29970 weightp, B-pyramid, intra refresh, user-supplied slice types, etc
29973 2013-10-13 Steve Borho <steve@borho.org>
29975 * source/common/CMakeLists.txt:
29976 cpu: disable -Wnarrowing for cpu.cpp
29978 This C99 code from x264 causes warnings when compiled for C++
29981 2013-10-13 Min Chen <chenm003@163.com>
29983 * source/Lib/TLibCommon/TComDataCU.cpp,
29984 source/Lib/TLibCommon/TComDataCU.h,
29985 source/Lib/TLibEncoder/TEncBinCoder.h,
29986 source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp,
29987 source/Lib/TLibEncoder/TEncBinCoderCABAC.h,
29988 source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp,
29989 source/encoder/cturow.cpp:
29990 cabac: cleanup unused code
29993 * source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp,
29994 source/Lib/TLibEncoder/TEncBinCoderCABAC.h,
29995 source/Lib/TLibEncoder/TEncBinCoderCABACCounter.cpp,
29996 source/Lib/TLibEncoder/TEncBinCoderCABACCounter.h,
29997 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
29998 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
29999 source/Lib/TLibEncoder/TEncSbac.h, source/encoder/CMakeLists.txt,
30000 source/encoder/cturow.cpp, source/encoder/cturow.h,
30001 source/encoder/framefilter.cpp, source/encoder/framefilter.h:
30002 cabac: cleanup TEncBinCoderCABACCounter to reduce C++ feature
30005 2013-10-12 Steve Borho <steve@borho.org>
30007 * source/common/vec/vec-primitives.cpp:
30008 vec: it seems clang has its own set of intrinsic generation bugs
30010 If clang is allowed to run the instrinsic functions it builds in
30011 these two files it causes SEGVs
30014 * source/common/primitives.cpp:
30015 primitives: show capabilities used even when cpuid is specified
30018 * source/test/testbench.cpp:
30019 testbench: repair --cpuid command line argument
30022 * source/common/vec/ipfilter-sse41.cpp:
30023 ipfilter: move 16bpp primitives into a separate area of the file
30025 This isolates the remaining vector primitives from the intrinsic
30029 2013-10-10 Steve Borho <steve@borho.org>
30031 * source/VectorClass/instrset.h,
30032 source/VectorClass/instrset_detect.cpp,
30033 source/common/CMakeLists.txt, source/common/cpu.cpp,
30034 source/common/cpu.h, source/common/primitives.cpp,
30035 source/common/primitives.h, source/common/vec/vec-primitives.cpp,
30036 source/common/x86/asm-primitives.cpp, source/test/testbench.cpp,
30038 asm: adopt x264 CPU detection and flags
30041 2013-10-12 Steve Borho <steve@borho.org>
30043 * source/CMakeLists.txt, source/common/CMakeLists.txt,
30044 source/common/common.cpp, source/common/common.h, source/x265.cpp,
30045 source/x265.def.in, source/x265.h:
30046 api: add exported strings which describe version and build info
30048 It seemed more useful for this data to be in the x265 library rather
30052 * source/CMakeLists.txt, source/cmake/cmake_uninstall.cmake.in:
30053 cmake: add uninstall rule for non-Windows platforms
30055 CMake on Windows doesn't appear to generate an install manifest file
30058 * source/CMakeLists.txt, source/common/CMakeLists.txt,
30059 source/encoder/CMakeLists.txt:
30060 cmake: enable vim syntax hightlighting
30063 * source/cmake/version.cmake:
30064 cmake: nit cleanups in version.cmake
30067 * source/CMakeLists.txt, source/cmake/version.cmake, source/x265.def,
30068 source/x265.def.in, source/x265.h, source/x265_config.h.in:
30069 cmake: add install targets, machine generate x265.def and
30072 Now X265_BUILD is maintained in just a single place,
30073 souce/CMakeLists.txt.
30075 The shared library is only installed if a valid tag is found;
30076 meaning the user must be building a Mercurial clone or a release
30077 tarball with .hg_archive.txt file in it (otherwise they must install
30078 the shared library themselves)
30081 * source/common/common.h:
30082 common: properly report clang compiled by version
30085 2013-10-12 Deepthi Nandakumar <deepthi@multicorewareinc.com>
30087 * source/test/pixelharness.cpp, source/test/testharness.h:
30088 testbench fix: short buffers now have short values
30091 2013-10-11 Steve Borho <steve@borho.org>
30093 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
30094 ratecontrol: use param.rc.rateControlMode, from duplicate RC var
30097 * source/common/vec/intra-sse41.cpp:
30098 intra: remove vector class header include from intra-sse41.cpp
30100 intra-sse3.cpp is the last file with 8bpp (non-AVX2) vector class
30104 * source/common/vec/blockcopy-sse3.cpp:
30105 blockcopy-sse3: consistent naming convention
30108 * source/common/vec/blockcopy-sse3.cpp:
30109 blockcopy-sse3: remove vector class use from last 16bpp intrinsic
30111 blockcopy files are now vector class clean
30114 * source/common/vec/blockcopy-sse3.cpp:
30115 blockcopy-sse3: consistent naming convention
30118 * source/common/vec/intra-sse3.cpp:
30119 intra: prevent variable shadow warnings from GCC
30122 2013-10-11 Aarthi Thirumalai <Aarthi Thirumalai>
30124 * source/common/pixel.cpp, source/common/primitives.h:
30125 primitves: add c primitives for the following :
30127 compute AC energy for each block copy pixels of chroma plane
30130 * source/common/common.cpp, source/x265.h:
30131 param: added rc states for setting Aq mode and Aq strength
30134 * source/encoder/encoder.cpp, source/encoder/ratecontrol.cpp,
30135 source/encoder/ratecontrol.h:
30136 rc: added TEncCfg instance to RateControl to reuse all the rc params
30140 2013-10-11 Shazeb Nawaz Khan <shazeb@multicorewareinc.com>
30142 * source/common/reference.cpp, source/encoder/motion.cpp:
30143 Some fixes in applyWeight() function
30145 These wont fix the PSNR drop but are necessary
30148 2013-10-11 Steve Borho <steve@borho.org>
30150 * source/common/vec/dct-ssse3.cpp:
30151 dct-ssse3: remove vector class includes; dct files are now clean
30154 * source/common/vec/dct-sse3.cpp:
30155 dct-sse3: don't compile dct4 for 16bpp builds when it is not used
30158 * source/common/vec/dct-sse41.cpp:
30159 dct-sse41: reorder functions for clarity - no code change
30162 * source/common/vec/dct-sse3.cpp:
30163 dct-sse3: remove idst4; it uses SSE4.1 but dct-sse41.cpp already has
30167 2013-10-11 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
30169 * source/common/vec/dct-sse3.cpp:
30170 dct: Replaced inversedst vector class function to intrinsic
30173 2013-10-11 Steve Borho <steve@borho.org>
30175 * source/common/vec/pixel-sse3.cpp:
30176 pixel-sse3: move convert32to16_shr to top of file, remove vector
30180 2013-10-11 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
30182 * source/common/vec/pixel-sse3.cpp:
30183 pixel-sse3.cpp: Replace convert32to16_shr vector class function with
30187 2013-10-11 Steve Borho <steve@borho.org>
30189 * source/common/vec/dct-sse3.cpp, source/common/vec/dct-sse41.cpp:
30190 dct: move dct32 to dct-sse41.cpp, inline convert16to32
30193 2013-10-11 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
30195 * source/common/vec/dct-sse3.cpp:
30196 dct: Replaced partialButterfly32 vector class function to intrinsic
30199 2013-10-11 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
30201 * source/common/vec/intra-sse3.cpp:
30202 intra-sse3.cpp: Replace PredIntraAng4_m_32 vector class function
30206 * source/common/vec/intra-sse3.cpp:
30207 intra-sse3.cpp: Replace PredIntraAng4_m_26 vector class function
30211 * source/common/vec/intra-sse3.cpp:
30212 intra-sse3.cpp: Replace PredIntraAng4_m_21 vector class function
30216 * source/common/vec/intra-sse3.cpp:
30217 intra-sse3.cpp: Replace PredIntraAng4_m_17 vector class function
30221 * source/common/vec/intra-sse3.cpp:
30222 intra-sse3.cpp: Replace PredIntraAng4_m_13 vector class function
30226 * source/common/vec/intra-sse3.cpp:
30227 intra-sse3.cpp: Replace PredIntraAng4_m_9 vector class function with
30231 * source/common/vec/intra-sse3.cpp:
30232 intra-sse3.cpp: Replace PredIntraAng4_m_5 vector class function with
30236 * source/common/vec/intra-sse3.cpp:
30237 intra-sse3.cpp: Replace PredIntraAng4_m_2 vector class function with
30241 * source/common/vec/intra-sse3.cpp:
30242 intra-sse3.cpp: Replace PredIntraAng4_2 vector class function with
30246 * source/common/vec/intra-sse3.cpp:
30247 intra-sse3.cpp: Replace PredIntraAng4_5 vector class function with
30251 * source/common/vec/intra-sse3.cpp:
30252 intra-sse3.cpp: Replace PredIntraAng4_9 vector class function with
30256 * source/common/vec/intra-sse3.cpp:
30257 intra-sse3.cpp: Replace PredIntraAng4_13 vector class function with
30261 * source/common/vec/intra-sse3.cpp:
30262 intra-sse3.cpp: Replace PredIntraAng4_17 vector class function with
30266 2013-10-11 Steve Borho <steve@borho.org>
30268 * source/common/vec/dct-sse3.cpp, source/common/vec/dct-sse41.cpp:
30269 dct: move dct8 to dct-sse41.cpp, inline convert16to32
30272 2013-10-11 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
30274 * source/common/vec/dct-sse3.cpp:
30275 dct: Replaced partialButterfly16 vector class function to intrinsic
30278 2013-10-11 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
30280 * source/common/vec/intra-sse3.cpp:
30281 intra-sse3.cpp: Replace PredIntraAng4_21 vector class function with
30285 2013-10-11 Min Chen <chenm003@163.com>
30287 * source/common/x86/ipfilter8.asm:
30288 asm: improvement filterHorizontal_p_p_4 by reorder intermedia data
30290 1. repleace phaddw to paddw 2. use extra load operator to split data
30291 dependency and reduce table size
30294 * source/common/x86/ipfilter8.asm:
30295 asm: fix bug in filterHorizontal_p_p_4 with width less than 8 (seed
30299 2013-10-11 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
30301 * source/common/vec/intra-sse3.cpp:
30302 intra-sse3.cpp: Replace PredIntraAng4_26 vector class function with
30303 intrinsic using intrinsic macros PRED_INTRA_ANGLE_4_START and
30304 PRED_INTRA_ANGLE_4_END.
30307 * source/common/vec/intra-sse3.cpp:
30308 intra-sse3.cpp: Created common macros PRED_INTRA_ANGLE_4_START,
30309 PRED_INTRA_ANGLE_4_END for PredIntraAng4_[ANGLE] function.
30312 2013-10-11 Steve Borho <steve@borho.org>
30314 * source/common/vec/dct-sse41.cpp:
30315 dct: manually inline convert16to32, for 10% improvement
30318 2013-10-11 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
30320 * source/common/vec/dct-sse41.cpp:
30321 dct: modified block copy used in dct8 with convert16to32 inline
30325 2013-10-11 Steve Borho <steve@borho.org>
30327 * source/common/vec/dct-sse3.cpp:
30328 dct: fix 16bpp, dct primitives are not 16bpp safe
30331 2013-10-10 Steve Borho <steve@borho.org>
30333 * source/common/piclist.cpp:
30334 piclist: ensure a TComPic is not enqueued in two lists at once
30337 2013-10-11 Steve Borho <steve@borho.org>
30339 * source/common/pixel.cpp, source/common/primitives.h,
30340 source/common/vec/pixel-sse3.cpp:
30341 pixel: remove unreferenced cvt16to32_t and cvt32to16_t primitives
30344 * source/common/vec/pixel-sse41.cpp:
30345 pixel: remove unreferenced sse_pp4 function
30348 2013-10-10 Steve Borho <steve@borho.org>
30350 * source/common/vec/pixel-avx2.cpp:
30351 pixel: allow clang to build AVX2 pixel primitives functions
30354 2013-10-11 Min Chen <chenm003@163.com>
30356 * source/cmake/version.cmake:
30357 cmake: default value for X265_VERSION
30360 2013-10-10 Steve Borho <steve@borho.org>
30362 * source/CMakeLists.txt, source/common/CMakeLists.txt:
30363 cmake: repair ICL nmake builds - do not use yasm custom rule with
30367 2013-10-11 Steve Borho <steve@borho.org>
30369 * source/CMakeLists.txt, source/common/CMakeLists.txt:
30370 cmake: make intel C++ compiler detection independent of env vars
30373 2013-10-10 Steve Borho <steve@borho.org>
30375 * source/CMakeLists.txt, source/common/CMakeLists.txt:
30376 cmake: cleanup compiler determination
30379 * source/common/CMakeLists.txt:
30380 cmake: add parens to fix icpc builds of intrinsic primitives
30383 * source/Lib/TLibCommon/TComSlice.h:
30384 TComSlice: add missing cstring include for memcpy
30387 * source/Lib/TLibCommon/TComSlice.h:
30388 TComSlice: remove unreferenced member variable
30391 * source/Lib/TLibEncoder/NALwrite.cpp:
30392 NALwrite: reintroduce include of cstring, required for memcpy on
30396 * source/encoder/CMakeLists.txt:
30397 cmake: merge TLibEncoderH source group into TLibEncoder
30399 They are both small enough now that they are manageable as a single
30403 * source/CMakeLists.txt:
30404 cmake: link PPA and other libs into x265-shared and x265-static
30407 * source/common/vec/dct-sse3.cpp, source/common/vec/dct-sse41.cpp:
30408 dct: add comments for future opts/code reuse
30411 * source/common/vec/dct-sse41.cpp:
30412 dct: remove vector class includes from dct-sse41.cpp, it is clean
30415 * source/common/vec/dct-sse3.cpp, source/common/vec/dct-sse41.cpp:
30416 dct: move functions which require SSE4.1 from dct-sse3.cpp to dct-
30420 * source/common/vec/dct-sse3.cpp:
30421 dct: move last vector dct function into its own section
30424 2013-10-10 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
30426 * source/common/vec/dct-sse3.cpp:
30427 dct: replaced partialButterfly8 vector class function with intrinsic
30430 * source/common/vec/dct-sse3.cpp:
30431 dct: replace dequant vector class function with intrinsic
30434 2013-10-10 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
30436 * source/common/vec/intra-sse3.cpp:
30437 intra-sse3.cpp: Replace PredIntraAng4_32 vector class function with
30441 2013-10-10 Steve Borho <steve@borho.org>
30443 * source/common/vec/blockcopy-sse3.cpp:
30444 blockcopy: move intrinsic function out of vector-class section
30447 2013-10-10 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
30449 * source/common/vec/blockcopy-sse3.cpp:
30450 blockcopy-sse3.cpp: Replace pixeladd_pp vector class function with
30454 2013-10-10 Gopu Govindaswamy <gopu@multicorewareinc.com>
30456 * source/Lib/TLibCommon/TComTrQuant.cpp,
30457 source/Lib/TLibCommon/TComTrQuant.h:
30458 tcomtrquant:remove unused methods
30461 * source/Lib/TLibCommon/CommonDef.h,
30462 source/Lib/TLibCommon/TComDataCU.h,
30463 source/Lib/TLibEncoder/NALwrite.cpp,
30464 source/Lib/TLibEncoder/TEncSbac.cpp, source/common/dct.cpp,
30465 source/common/pixel.cpp, source/common/vec/dct-sse3.cpp,
30466 source/common/vec/dct-sse41.cpp, source/x265.cpp:
30467 remove unused <algorithm> includes
30470 * source/Lib/TLibCommon/TComSlice.cpp,
30471 source/Lib/TLibCommon/TComSlice.h, source/encoder/frameencoder.cpp:
30472 tcomslice:remove unused set methods
30475 * source/Lib/TLibCommon/TComSlice.cpp,
30476 source/Lib/TLibCommon/TComSlice.h:
30477 tcomslice: removed unused set methods in TComReferencePictureSet
30481 2013-10-10 Steve Borho <steve@borho.org>
30483 * source/common/vec/pixel-sse41.cpp, source/common/vec/sse.inc:
30484 sse: move last SSE function into vector-class section of pixel-
30488 * source/common/vec/ipfilter-ssse3.cpp:
30489 ipfilter: remove vector class headers from ipfilter-ssse3.cpp
30492 2013-10-10 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
30494 * source/common/vec/ipfilter-ssse3.cpp:
30495 ipfilter-ssse3.cpp: Replace filterConvertPelToShort vector class
30496 function with intrinsic.
30499 * source/common/vec/ipfilter-ssse3.cpp:
30500 ipfilter-ssse3.cpp: Replace filterConvertShortToPel vector class
30501 function with intrinsic.
30504 2013-10-10 Steve Borho <steve@borho.org>
30506 * source/common/vec/pixel-sse41.cpp, source/common/vec/sse.inc:
30507 sse: move intrinsic functions to pixel-sse41.cpp
30510 2013-10-10 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
30512 * source/common/vec/sse.inc:
30513 pixel: replace sse_sp64 vector class with intrinsic
30516 * source/common/vec/sse.inc:
30517 pixel: replace sse_sp48 vector class with intrinsic
30520 * source/common/vec/sse.inc:
30521 pixel: replace sse_sp32 vector class with intrinsic
30524 * source/common/vec/sse.inc:
30525 pixel: replace sse_sp24 vector class with intrinsic
30528 * source/common/vec/sse.inc:
30529 pixel: replace sse_sp16 vector class with intrinsic
30532 * source/common/vec/sse.inc:
30533 pixel: modified sse_sp8 with a comman macro SSE_SP8x1
30536 2013-10-10 Min Chen <chenm003@163.com>
30538 * source/Lib/TLibEncoder/TEncSearch.cpp:
30539 TEncSeach: add alignment to bidir output buffer
30541 fixes crash in x265_pixel_avg_w16_sse2 from aligned writes to the
30545 2013-10-10 Steve Borho <steve@borho.org>
30547 * source/x265.def, source/x265.h:
30548 api: make notice of how the build number now must be echoed in
30552 * source/encoder/encoder.cpp:
30553 encoder: silence idiotic compiler warning from VC10
30556 2013-10-09 Steve Borho <steve@borho.org>
30559 api: add API version to x265_encoder_open to prevent dynamic library
30562 Gratefully borrowed from x264
30565 * source/common/CMakeLists.txt, source/common/vec/vec-primitives.cpp:
30566 cmake: enable clang to compile intrinsic primitives without version
30570 * source/common/vec/blockcopy-sse3.cpp:
30571 blockcopy: isolate vector class routines together (firing squad)
30574 * source/VectorClass/vectori128.h, source/VectorClass/vectori256.h,
30575 source/VectorClass/vectori256e.h:
30576 vector: bypass a number of functions we do not use when compiled by
30579 The sooner these classes go away the better
30582 * source/common/vec/pixel-ssse3.cpp:
30583 pixel: remove vector class headers from pixel-ssse3.cpp
30586 * source/common/vec/intra-sse3.cpp:
30587 intra: remove an unreferenced function
30590 * source/common/vec/ipfilter-sse41.cpp:
30591 ipfilter: remove two unreferenced functions
30594 * source/common/ipfilter.cpp:
30595 ipfilter: remove two unused functions
30598 * source/CMakeLists.txt:
30599 cmake: detect clang compiler anf fix some link issues
30602 * source/CMakeLists.txt:
30603 cmake: bump minimum required version to 2.8.8
30606 * source/CMakeLists.txt:
30607 cmake: add -ffast-math to GCC compile flags
30610 * source/Lib/TLibCommon/TComSlice.h:
30611 TComSlice: linux build fix, include <cstring> for memcpy
30614 2013-10-09 Sumalatha Polureddy <Sumalatha Polureddy>
30616 * source/encoder/compress.cpp:
30617 no-rdo(early exit): update the memory with info from m_interCU_NxN
30619 The encoding and prediction details which are updated in the
30620 m_interCU_NxN in NxN calculation are updated in the m_tempCU
30623 2013-10-09 Steve Borho <steve@borho.org>
30625 * source/common/vec/dct-ssse3.cpp, source/encoder/bitcost.cpp:
30626 remove more <algorithm> includes
30629 * source/Lib/TLibEncoder/TEncCu.cpp:
30630 TEncCu: replace <algorithm> with X265_MIN, X265_MAX
30633 * source/Lib/TLibCommon/ContextModel.cpp:
30634 ContextModel: replace <algorithm> with X265_MIN, X265_MAX
30637 * source/Lib/TLibEncoder/NALwrite.cpp:
30638 NALwrite: remove "using namespace std"
30641 * source/test/unittest.cpp, source/test/unittest.h:
30642 remove unused unittest class (is not even compiled today)
30646 cli: remove "using namespace std"
30649 * source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/SEI.h,
30650 source/Lib/TLibCommon/TComBitStream.cpp,
30651 source/Lib/TLibCommon/TComBitStream.h,
30652 source/Lib/TLibCommon/TComDataCU.h,
30653 source/Lib/TLibEncoder/NALwrite.cpp:
30654 remove a pile of unused STL includes, reorder includes for clarity
30657 * source/Lib/TLibEncoder/TEncSbac.cpp:
30658 TEncSBac: remove unused #include <map>
30661 * source/Lib/TLibCommon/TComSlice.cpp,
30662 source/Lib/TLibCommon/TComSlice.h:
30663 TComSlice: remove unused ParameterSetMap and #include<map>
30666 2013-10-09 Gopu Govindaswamy <gopu@multicorewareinc.com>
30668 * source/Lib/TLibCommon/TComList.h, source/Lib/TLibCommon/TComSlice.h,
30669 source/common/CMakeLists.txt, source/encoder/encoder.cpp:
30670 TLibCommon: Removed unused TComList
30673 * source/Lib/TLibCommon/TComSlice.cpp,
30674 source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp,
30675 source/encoder/dpb.h, source/encoder/encoder.h:
30676 dpb and TComSlice: replaced TComList with PicList
30679 2013-10-09 Shazeb Nawaz Khan <shazeb@multicorewareinc.com>
30681 * source/common/reference.cpp, source/common/reference.h,
30682 source/encoder/frameencoder.cpp, source/encoder/motion.cpp,
30683 source/encoder/motion.h:
30684 Enabling weight prediction for half and full pel
30687 2013-10-09 Steve Borho <steve@borho.org>
30689 * source/common/vec/pixel-sse3.cpp, source/common/vec/pixel-sse41.cpp,
30690 source/common/vec/pixel.inc, source/common/vec/pixel8.inc:
30691 pixel: fixup GCC builds, remove pixel8.inc and pixel.inc
30694 2013-10-09 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
30696 * source/common/vec/pixel8.inc:
30697 pixel: Replace weightUnidir vector class function with intrinsic.
30700 * source/common/vec/sse.inc:
30701 pixel: replace sse_sp12 vector class with intrinsic
30704 * source/common/vec/sse.inc:
30705 pixel: replace sse_sp8 vector class with intrinsic
30708 * source/common/vec/sse.inc:
30709 pixel: replace sse_sp4 vector class with intrinsic
30712 2013-10-09 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
30714 * source/common/vec/sse.inc:
30715 sse.inc: Modified sse_ss64 intrinsic function. Removed redundancy
30716 using comman macro PROCESS_SSE_SS4x1.
30719 * source/common/vec/sse.inc:
30720 sse.inc: Modified sse_ss48 intrinsic function. Removed redundancy
30721 using comman macro PROCESS_SSE_SS4x1.
30724 * source/common/vec/sse.inc:
30725 sse.inc: Modified sse_ss32 intrinsic function. Removed redundancy
30726 using comman macro PROCESS_SSE_SS4x1.
30729 * source/common/vec/sse.inc:
30730 sse.inc: Modified sse_ss24 intrinsic function. Removed redundancy
30731 using comman macro PROCESS_SSE_SS4x1.
30734 * source/common/vec/sse.inc:
30735 sse.inc: Modified sse_ss16 intrinsic function. Removed redundancy
30736 using comman macro PROCESS_SSE_SS4x1.
30739 * source/common/vec/sse.inc:
30740 sse.inc: Modified sse_ss12 intrinsic function. Removed redundancy
30741 using comman macro PROCESS_SSE_SS4x1.
30744 * source/common/vec/sse.inc:
30745 sse.inc: Modified sse_ss8 intrinsic function. Removed redundancy
30746 using comman macro PROCESS_SSE_SS4x1.
30749 * source/common/vec/sse.inc:
30750 pixel.inc: Modified sse_ss4 intrinsic function. Removed redundancy
30751 using comman macro PROCESS_SSE_SS4x1.
30754 * source/common/vec/sse.inc:
30755 sse.inc: Created comman macro PROCESS_SSE_SS4x1 for functions
30756 sse_ss4, sse_ss8, sse_ss16, sse_ss24, sse_ss32, sse_ss48, sse_ss64.
30759 * source/common/vec/pixel8.inc:
30760 pixel8.inc: Replace weightUnidirPixel vector class function with
30764 * source/common/vec/pixel-sse3.cpp:
30765 pixel-sse3.cpp: Modified calcRecons function argument names. Removed
30766 hungarian prefixes.
30769 * source/common/vec/pixel-sse3.cpp:
30770 pixel-sse3.cpp: Modified calcRecons8 function argument names.
30771 Removed hungarian prefixes.
30774 * source/common/vec/pixel-sse3.cpp:
30775 pixel-sse3.cpp: Modified calcRecons4 function argument names.
30776 Removed hungarian prefixes.
30779 2013-10-09 Steve Borho <steve@borho.org>
30781 * source/Lib/TLibEncoder/TEncCavlc.h,
30782 source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
30783 source/Lib/TLibEncoder/TEncSbac.cpp,
30784 source/Lib/TLibEncoder/TEncSbac.h,
30785 source/Lib/TLibEncoder/TEncTop.cpp,
30786 source/Lib/TLibEncoder/TEncTop.h, source/encoder/CMakeLists.txt,
30787 source/encoder/cturow.cpp, source/encoder/cturow.h,
30788 source/encoder/encoder.cpp, source/encoder/encoder.h,
30789 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
30790 source/encoder/framefilter.cpp, source/encoder/framefilter.h:
30791 pull TEncTop code into Encoder class in encoder.cpp, encoder.h
30793 The TEncTop in our repo bears little resemblance to the original HM
30794 class, so I think it is applicable to move this code into one of our
30795 files where it makes the most sense. Some methods were renamed to
30796 our naming style in the process.
30799 2013-10-09 Gopu Govindaswamy <gopu@multicorewareinc.com>
30801 * source/encoder/slicetype.cpp, source/encoder/slicetype.h:
30802 slicetype: removed TComList(std::list) and used PicList to store the
30806 2013-10-09 Steve Borho <steve@borho.org>
30808 * source/CMakeLists.txt:
30809 cmake: this time for reals
30812 2013-10-08 Steve Borho <steve@borho.org>
30814 * source/CMakeLists.txt:
30815 cmake: fixes for non-assembly builds and windows builds
30818 * source/CMakeLists.txt:
30819 cmake: tweak static library names to avoid conflict
30821 MSVC was trying to write both the static library and the DLL shim
30822 loader to x265.lib. After this change, the static library is now
30823 x265-static.lib and the shim loader is x265.lib (corresponding with
30827 2013-10-07 Steve Borho <steve@borho.org>
30829 * source/CMakeLists.txt, source/cmake/mergestaticlibs.cmake,
30830 source/common/CMakeLists.txt, source/common/common.cpp,
30831 source/common/common.h, source/common/primitives.cpp,
30832 source/common/vec/CMakeLists.txt, source/common/x86/CMakeLists.txt,
30833 source/encoder/CMakeLists.txt, source/encoder/encoder.cpp,
30834 source/test/CMakeLists.txt, source/x265.cpp, source/x265.def,
30836 cmake: use cmake 2.8 OBJECT target type to manage static and share
30839 With the OBJECT target type, the common and encoder folders are
30840 compiled to object files but not linked until main static or shared
30841 library is built. This removes the need for mergestatic.cmake and
30842 cleans up a lot of messy problems - at the cost of requiring a
30843 somewhat recent cmake.
30845 For MSVC (and presumably Xcode) we must keep the assembly as a
30846 static lib since it uses custom build commands which do not work
30847 with OBJECT target types. This static lib is then linked with the
30848 main x265.lib or x265.dll
30850 The X265_EXPORT macro is no longer necessary since we are generating
30851 both the static library and shared library from one compile we are
30852 forced to use an x265.def file to define DLL exports. x265.exe must
30853 link with the static library because on Windows the static lib will
30854 be empty if no EXE links with it.
30856 x265_mdate() was moved into the CLI x265.cpp so the CLI could link
30857 with the shared library if necessary (x265_mdate is not exported)
30860 2013-10-08 Steve Borho <steve@borho.org>
30862 * source/common/vec/pixel-sse3.cpp, source/common/vec/pixel-sse41.cpp,
30863 source/common/vec/pixel8.inc:
30864 pixel: move intrinsic residual and recon functions to pixel-sse3.cpp
30867 2013-10-08 Shazeb Nawaz Khan <shazeb@multicorewareinc.com>
30869 * source/common/reference.cpp:
30870 Check against numRows in applyweight
30872 applyWeight() processes rows a 'refLag' number of rows in advance as
30873 compared to the current iteration in compressCTURows()
30876 * source/common/reference.cpp:
30877 Fix for possible memory access violation in applyWeight()
30880 * source/Lib/TLibCommon/TComPrediction.cpp:
30881 Use unweighted pixels before interpolation for Luma in Motion
30885 2013-10-08 Steve Borho <steve@borho.org>
30887 * source/common/piclist.cpp, source/common/piclist.h:
30888 piclist: pass non-optional pictures by reference to avoid NULL
30892 2013-10-08 Gopu Govindaswamy <gopu@multicorewareinc.com>
30894 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
30895 source/common/CMakeLists.txt, source/common/piclist.cpp,
30896 source/common/piclist.h:
30897 piclist: add class PicList for picture list manipulations
30899 Created new file piclist.cpp and piclist.h for linked list
30900 manipulation, there will be no intermediate storage in piclist,
30901 PicList just links TComPic objects together.
30903 PicList will be used to replace TComList<TComPic> and this will
30904 remove std::list dependency in x265
30907 2013-10-08 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
30909 * source/common/vec/pixel8.inc:
30910 pixel: replace getResidual64 from vector class to intrinsic
30913 * source/common/vec/pixel8.inc:
30914 pixel: replace getResidual32 from vector class to intrinsic
30917 * source/common/vec/pixel8.inc:
30918 pixel: replace getResidual16 from vector class to intrinsic
30921 2013-10-08 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
30923 * source/common/vec/pixel8.inc:
30924 pixel8.inc: replace calcRecons vector class function with intrinsic.
30927 * source/common/vec/pixel8.inc:
30928 pixel8.inc: replace calcRecons8 vector class function with
30932 * source/common/vec/pixel8.inc:
30933 pixel8.inc: replace calcRecons4 vector class function with
30937 2013-10-08 Gopu Govindaswamy <gopu@multicorewareinc.com>
30939 * source/Lib/TLibCommon/TComSlice.cpp,
30940 source/Lib/TLibCommon/TComSlice.h:
30941 tcomslice: removed un-used sortPicList() function
30944 * source/Lib/TLibCommon/TComSlice.cpp,
30945 source/Lib/TLibCommon/TComSlice.h:
30946 tcomslice: removed un-used checkThatAllRefPicsAreAvailable()
30950 * source/Lib/TLibCommon/TComSlice.cpp,
30951 source/Lib/TLibCommon/TComSlice.h:
30952 TComSlice: Removed un-used
30953 createExplicitReferencePictureSetFromReference() Method
30956 2013-10-08 Min Chen <chenm003@163.com>
30958 * source/test/testpool.cpp:
30959 Update testbench for threadpool
30962 2013-10-08 Aarthi Thirumalai <Aarthi Thirumalai>
30964 * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/frameencoder.cpp,
30965 source/encoder/frameencoder.h:
30966 calculate SSIM for each Row after deblock, sao
30969 * source/common/pixel.cpp, source/common/primitives.h:
30970 primitives: added C primitives to compute SSIM
30973 2013-10-08 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
30975 * source/encoder/slicetype.cpp:
30976 slicetype: Bidir cost estimation added to lookahead
30979 2013-10-08 Gopu Govindaswamy <gopu@multicorewareinc.com>
30981 * source/Lib/TLibCommon/TComBitStream.cpp:
30982 tcombitstream: bug fix for count StartCodeEmulations to calculate
30986 2013-10-07 Gopu Govindaswamy <gopu@multicorewareinc.com>
30988 * source/Lib/TLibCommon/TComDataCU.cpp,
30989 source/Lib/TLibCommon/TComDataCU.h,
30990 source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
30991 source/encoder/frameencoder.cpp:
30992 tcomdatacu: Removed Un-used NDBFBlockInfo - Non-deblocking filter
30993 processing block information
30995 1.setNDBFilterBlockBorderAvailability() 2.createNonDBFilterInfo()
30996 3.createNonDBFilterInfoLCU() 4.destroyNonDBFilterInfo()
30998 All the above methods are used to set and destroy the
30999 NDBFBlockInformation, but NDBFBlockInfo m_vNDFBlock is not getting
31000 used encoding process
31003 2013-10-07 Steve Borho <steve@borho.org>
31005 * source/common/common.cpp:
31006 common: rename AILIGNBYTES to avoid conflict with apple i386/param.h
31009 * source/CMakeLists.txt:
31010 cmake: white-space nit
31013 * source/CMakeLists.txt, source/test/CMakeLists.txt:
31014 cmake: simplify test build structure
31017 * source/common/vec/pixel-sse3.cpp:
31018 pixel: wrap primitives in anononymous namespace (file static)
31021 * source/common/vec/pixel-sse3.cpp:
31022 pixel: fix spelling of blockfill functions, add calcresidual
31026 * source/common/vec/pixel-sse3.cpp, source/common/vec/pixel-sse41.cpp,
31027 source/common/vec/pixel8.inc:
31028 pixel: move intrinsic getResidual4 and getResidual8 to pixel-
31032 2013-10-07 Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
31034 * source/common/vec/pixel8.inc:
31035 pixel: replace getResidual8 vector class with intrinsic
31038 * source/common/vec/pixel8.inc:
31039 pixel: replace Residual4 vector class with intrinsic
31042 2013-10-07 Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
31044 * source/common/vec/pixel-sse41.cpp:
31045 pixel: simplify sad_x4_32 to make it easier to maintain
31048 * source/common/vec/pixel-sse41.cpp:
31049 pixel: simplify sad_x4_24 to make it easier to maintain
31052 * source/common/vec/pixel-sse41.cpp:
31053 pixel: simplify sad_x4_12 to make it easier to maintain
31056 * source/common/vec/pixel-sse41.cpp:
31057 pixel: simplify sad_x3_32 to make it easier to maintain
31060 * source/common/vec/pixel-sse41.cpp:
31061 pixel: simplify sad_x3_24 to make it easier to maintain
31064 * source/common/vec/pixel-sse41.cpp:
31065 pixel: simplify sad_12 to make easier to maintain
31068 * source/common/vec/pixel-sse41.cpp:
31069 pixel: simplify sad_x3_12 to make it easier to maintain
31072 * source/common/vec/pixel-sse41.cpp:
31073 pixel: simplify sad_32 to make it easier to maintain
31076 * source/common/vec/pixel-sse41.cpp:
31077 pixel: simplify sad_24 to make easier to maintain
31080 2013-10-06 Steve Borho <steve@borho.org>
31082 * source/Lib/TLibCommon/TComTrQuant.cpp,
31083 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp,
31084 source/common/primitives.h, source/common/vec/pixel-sse3.cpp:
31085 primitives: rename blockfil_s to blockfill_s_c
31088 * source/common/primitives.h:
31089 primitives: remove unused function decl
31092 * source/common/primitives.h:
31093 primitives: remove obsolete FilterConf enum
31096 * source/common/ipfilter.cpp, source/common/primitives.h:
31097 ipfilter: remove unused filterRow primitives
31100 2013-10-07 Steve Borho <steve@borho.org>
31102 * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h:
31103 ipfilterharness: remove test harnesses for removed primitives
31106 2013-10-06 Steve Borho <steve@borho.org>
31108 * source/common/ipfilter.cpp, source/common/primitives.h,
31109 source/common/vec/ipfilter-sse41.cpp:
31110 ipfilter: remove unused weighted interpolation primitives
31113 * source/CMakeLists.txt:
31114 cmake: use add_definitions() instead of modifying CMAKE_CXX_FLAGS
31118 2013-10-02 Steve Borho <steve@borho.org>
31120 * source/CMakeLists.txt, source/common/common.cpp,
31121 source/common/primitives.cpp, source/dllmain.cpp,
31122 source/encoder/encoder.cpp, source/x265.h:
31123 cmake: add ENABLE_SHARED build option for creating a shared library
31127 2013-10-06 Steve Borho <steve@borho.org>
31129 * source/common/vec/pixel-avx2.cpp:
31130 pixel: fix eoln damage to pixel-avx2.cpp
31133 * source/common/x86/asm-primitives.cpp:
31134 asm: simplify setup of HEVC partitions for SATD primitives
31137 * source/common/vec/pixel-sse41.cpp:
31138 pixel: simplify sad_x3_16 and sad_x4_16 to make them easier to
31142 2013-10-05 Steve Borho <steve@borho.org>
31144 * source/common/vec/pixel-sse41.cpp:
31145 pixel: simplify sad_16 to make it easier to maintain
31148 * source/common/vec/pixel-sse41.cpp, source/common/x86/asm-
31150 pixel: fix HIGH_BIT_DEPTH builds
31153 * source/common/vec/pixel-sse41.cpp:
31154 pixel: add missing sse_pp_12x16, untemplatize others
31157 * source/common/x86/asm-primitives.cpp:
31158 asm: don't build wrappers for functions with intrinsic
31162 * source/common/vec/pixel-sse41.cpp:
31163 pixel: drop SSE primitives that have assembly
31166 * source/common/x86/asm-primitives.cpp:
31167 asm: cleanup the assignment of SSD primitives
31170 * source/common/x86/asm-primitives.cpp:
31171 asm: simplify generation of sa8d_inter functions from 8x8 and 16x16
31175 * source/test/testbench.cpp:
31176 testbench: fix off-by one initialization of primitives
31179 * source/common/vec/pixel-sse41.cpp:
31180 pixel: add back intrinsics for sad_x3_4x16 and sad_x4_4x16
31182 These routines do not yet have assembly code
31185 * source/common/primitives.cpp:
31186 primitives: fix off-by one initialization of primitives
31189 * source/common/primitives.cpp:
31190 primitives: fixup 12x16 and 16x2 sa8d_inter pointers
31192 32x12 isn't used but 12x16 and 16x12 are (for AMP)
31195 * source/common/primitives.cpp, source/common/x86/asm-primitives.cpp:
31196 primitives: setup square sa8d_inter function pointers from sa8d
31200 * source/common/x86/asm-primitives.cpp:
31201 asm: use x265_pixel_satd_8x4_xop for p.satd[PARTITION_16x4] for 32
31204 On 64bit builds, we have native sse2 functions
31207 * source/common/primitives.cpp, source/common/x86/asm-primitives.cpp:
31208 primitives: move small block sa8d_inter setup to primitives.cpp
31210 This hack didn't belong in the assembly setup function
31213 * source/test/pixelharness.cpp:
31214 pixelharness: report sad, sad_x3, and sad_x4 scores together
31217 * source/common/x86/asm-primitives.cpp:
31218 asm: quit instantiating functions which are not necessary
31220 Re-order functions for more clarity
31223 * source/common/vec/pixel-sse41.cpp:
31224 pixel: stop building 16x16, 16x8, and 8x16 intrinsic primitives
31227 * source/common/vec/pixel-sse41.cpp:
31228 pixel: limit sad_8 routines to just height 32
31230 8x4, 8x8, and 8x16 are handled by x264 assembly, only 8x32 remains
31231 for the intrinsic function to cover
31234 * source/common/vec/pixel-sse41.cpp:
31235 pixel: eliminate width 48 SAD code for height != 64
31238 * source/common/vec/pixel-sse41.cpp:
31239 pixel: simplify sad_32 primitives to a single loop
31241 32 width blocks will only be height 8, 16, 24, or 32. Having an
31242 8-row loop is just fine
31245 * source/common/vec/pixel-sse41.cpp:
31246 pixel: simplify sad_64 primitives to a single loop
31248 64 width blocks will only be height 16, 32, 48, or 64. Having an
31249 8-row loop is just fine
31252 * source/common/vec/pixel-sse41.cpp:
31253 pixel: remove sad_*_4<> intrinsic functions, they are covered by
31256 x264 assembly code covers 4x4, 4x8, and 4x16 and those are the only
31257 4-width partitions used by x265.
31260 * source/common/vec/pixel-sse41.cpp:
31261 pixel: eliminate width 24 SAD code for height != 32
31264 * source/common/vec/pixel-sse41.cpp:
31265 pixel: eliminate width 12 SAD code for height != 16
31268 * source/common/vec/pixel-avx2.cpp, source/common/vec/pixel-sse3.cpp,
31269 source/common/vec/pixel-sse41.cpp, source/common/vec/pixel.inc:
31270 pixel: only compile partition sizes that are used by the encoder
31273 * source/test/pixelharness.cpp, source/test/pixelharness.h:
31274 pixelharness: only test partition sizes plausibly used by the
31278 * source/common/vec/pixel-sse41.cpp:
31279 pixel: use unaligned loads for reference pixels in sad_12
31282 * source/common/vec/pixel-sse41.cpp:
31283 pixel: fix typo which was copied and pasted 36 times
31286 * source/common/vec/pixel-sse41.cpp:
31287 pixel: use unaligned loads for reference pixels in sad_24
31290 2013-10-05 Min Chen <chenm003@163.com>
31292 * source/encoder/framefilter.cpp:
31293 fix bug on SAO initialize
31296 2013-10-04 Steve Borho <steve@borho.org>
31298 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp,
31299 source/common/primitives.h, source/common/x86/CMakeLists.txt,
31300 source/common/x86/asm-primitives.cpp, source/common/x86/mc-a.asm,
31301 source/encoder/motion.cpp:
31302 use x264 pixel average assembly routines for bidir and lowres QPEL
31304 This required adding a weight parameter and re-ordering arguments.
31305 Bidir might eventually use the weighting feature so this didn't seem
31306 like a bad trade-off.
31308 This commit naively pulls in all of mc-a.asm from x264 for just this
31309 one set of assembly functions.
31312 * source/encoder/motion.cpp:
31313 motion: use new pixelavg_pp primitive for lowres QPEL pixel
31317 * source/encoder/motion.cpp:
31318 motion: remove NULL checks prior to X265_FREE calls
31321 * source/common/x86/CMakeLists.txt:
31322 cmake: add ASM files to MSVC solution so they are easily edited
31324 this has no effect on the build
31327 2013-10-04 Shazeb Nawaz Khan <shazeb@multicorewareinc.com>
31329 * source/common/vec/pixel.inc, source/common/vec/pixel8.inc,
31330 source/test/pixelharness.cpp:
31331 Fix for Testbench fail in weightpUni for Pixel input
31334 * source/Lib/TLibCommon/TComWeightPrediction.cpp,
31335 source/common/pixel.cpp, source/common/primitives.h,
31336 source/common/vec/pixel.inc, source/test/pixelharness.cpp:
31337 Using int16_t rather than uint16_t in weightpUni primitive; inputs
31341 2013-10-04 Aarthi Thirumalai <Aarthi Thirumalai>
31343 * source/encoder/ratecontrol.cpp:
31344 rc : bug fix for quality drop with larger number of frame threads.
31347 2013-10-04 Dnyaneshwar <Dnyaneshwar>
31349 * source/common/vec/blockcopy-sse3.cpp:
31350 Replace "pixeladd_ss" vector class function with intrinsic.
31351 Performance measured is same as that of vector function.
31354 * source/common/vec/blockcopy-sse3.cpp:
31355 replace "pixelsub_sp" vector class function with intrinsic.
31356 Performance is same as that of vector function.
31359 * source/common/vec/blockcopy-sse3.cpp:
31360 replace blockcopy_s_p (pixel to short) vector class function with
31361 intrinsic. Performance is same as that of vector class function.
31364 * source/common/vec/blockcopy-sse3.cpp:
31365 replace block_copy_p_s (short to pixel) vector class function with
31366 intrinsic. Performance measured is same as that of vector function.
31369 * source/common/vec/blockcopy-sse3.cpp:
31370 replace block_copy_p_p vector class function with intrinsic code.
31371 Performance is almost same as that of vector function.
31374 2013-10-04 Steve Borho <steve@borho.org>
31376 * source/common/vec/pixel-sse41.cpp, source/common/vec/pixel8.inc:
31377 pixel: move SSE4.1 functions from pixel8.inc to pixel-sse41.cpp
31380 2013-10-04 yuvaraj <yuvaraj>
31382 * source/common/vec/pixel8.inc:
31383 Replace sad_x4_64 vector class function with intrinsic.
31386 * source/common/vec/pixel8.inc:
31387 Replace sad_x4_48 vector class function with intrinsic.
31390 * source/common/vec/pixel8.inc:
31391 Replace sad_x3_64 vector class function with intrinsic.
31394 * source/common/vec/pixel8.inc:
31395 Replace sad_x3_48 vector class function with intrinsic.
31398 * source/common/vec/pixel8.inc:
31399 Replace sad_64 vector class function with intrinsic.
31402 * source/common/vec/pixel8.inc:
31403 Replace sad_48 vector class function with intrinsic.
31406 2013-10-04 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
31408 * source/Lib/TLibEncoder/TEncSearch.cpp:
31409 TEncSearch: remove unused code
31412 * source/Lib/TLibEncoder/TEncSearch.cpp:
31413 Bidir ME: store bits required for bidir which will be used for merge
31417 * source/Lib/TLibEncoder/TEncSearch.cpp:
31418 TEncSearch: fix for gcc warning
31421 2013-10-04 Steve Borho <steve@borho.org>
31423 * source/common/vec/pixel.inc, source/common/vec/pixel16.inc:
31424 pixel: remove 16bpp vector class satd functions
31426 They were not competitive with assembly and were unlikely to be
31427 competitive as intrinsics
31430 * source/common/vec/pixel-avx2.cpp, source/common/vec/pixel-sse3.cpp,
31431 source/common/vec/pixel-sse41.cpp:
31432 pixel: comment nits
31435 * source/common/vec/pixel-sse3.cpp:
31436 pixel: move vector class include to bottom of the file
31438 the clearly segregates vector class primitives from intrinsic
31442 * source/common/vec/pixel-sse41.cpp, source/common/vec/pixel8.inc,
31443 source/common/vec/sse.inc:
31444 pixel: move SSE4.1 intrinsic primitives into pixel-sse41.cpp
31447 * source/common/vec/pixel-sse3.cpp, source/common/vec/pixel.inc,
31448 source/common/vec/pixel8.inc:
31449 pixel: move SSE3 intrinsic primitives into pixel-sse3.cpp
31451 This improves compile time slightly
31454 * source/common/vec/CMakeLists.txt, source/common/vec/pixel-ssse3.cpp,
31455 source/common/vec/pixel.inc, source/common/vec/pixel8.inc,
31456 source/common/vec/vec-primitives.cpp:
31457 cmake: move SSSE3 routines into pixel-ssse3.cpp
31460 2013-10-03 Steve Borho <steve@borho.org>
31462 * source/common/vec/pixel.inc, source/common/vec/pixel8.inc:
31463 pixel: cleanup pixel.inc
31465 Remove copy of C primitive transpose Move 8bpp-only functions to
31466 pixel8.inc cleanup setup function
31469 * source/common/vec/CMakeLists.txt, source/common/vec/pixel-xop.cpp,
31470 source/common/vec/vec-primitives.cpp:
31471 cmake: drop pixel-xop.cpp
31473 Now that there are very few vector class intrinsics left, there is
31474 almost no point to compiling pixel.inc with the XOP flag enabled.
31475 This saves compile time. It's setup function wasn't even being
31479 * source/common/vec/pixel-avx2.cpp, source/common/vec/pixel8.inc:
31480 pixel: move avx2 functions into pixel-avx2.cpp
31483 2013-10-03 Dnyaneshwar <Dnyaneshwar>
31485 * source/common/vec/pixel8.inc:
31486 replace sad_x4_32 vector class function with intrinsic.
31489 * source/common/vec/pixel8.inc:
31490 replace sad_x4_24 vector class function with intrinsic.
31493 * source/common/vec/pixel8.inc:
31494 replace sad_x4_12 vector class function with intrinsic.
31497 * source/common/vec/pixel8.inc:
31498 replace sad_x3_32 vector class function with intrinsic.
31501 * source/common/vec/pixel8.inc:
31502 replace sad_x3_24 vector class function with intrinsic.
31505 * source/common/vec/pixel8.inc:
31506 replace sad_x3_12 vector class function with intrinsic.
31509 * source/common/vec/pixel8.inc:
31510 replace sad_32 vector class function with intrinsic.
31513 * source/common/vec/pixel8.inc:
31514 replace sad_24 vector class function with intrinsic.
31517 * source/common/vec/pixel8.inc:
31518 replace sad_12 vector class function with intrinsic.
31521 2013-10-03 Steve Borho <steve@borho.org>
31523 * source/Lib/TLibEncoder/TEncSearch.cpp,
31524 source/Lib/TLibEncoder/TEncSearch.h:
31525 TEncSearch: remove methods unreachable after bidir replacement
31528 * source/Lib/TLibEncoder/TEncSearch.cpp,
31529 source/Lib/TLibEncoder/TEncSearch.h, source/common/common.cpp,
31530 source/x265.h, source/x265opts.h:
31531 api: remove dead bipredSearchRange parameter and CLI option
31534 2013-10-03 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
31536 * source/Lib/TLibEncoder/TEncSearch.cpp:
31537 Bidir ME: add (0,0) candidate
31540 * source/Lib/TLibEncoder/TEncCu.cpp,
31541 source/Lib/TLibEncoder/TEncSearch.cpp,
31542 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp:
31543 Bidir ME: new logic adapted from x264
31545 L0 and L1 MVs from unidir ME used for bidir MV. bidir cost is
31546 calculated from the average of references.
31549 * source/common/pixel.cpp, source/common/primitives.h:
31550 primitives: add pixelavg primitive
31553 2013-10-03 Gopu Govindaswamy <gopu@multicorewareinc.com>
31555 * source/Lib/TLibCommon/TComBitStream.cpp,
31556 source/Lib/TLibCommon/TComBitStream.h,
31557 source/Lib/TLibEncoder/NALwrite.cpp, source/common/common.h:
31558 Tcombitstream: Encoded Bit stream storage (fifo) moved from
31559 std::vector to Non STL Class
31561 1.Removed std::vector Class from Tcombitstream 2.Removed
31562 std::search_n algorithm from Tcombitstream 3.Implemented fifo using
31563 Pointers to an array - Encoded Bit stream storage
31566 2013-10-03 Sumalatha Polureddy <Sumalatha Polureddy>
31568 * source/encoder/compress.cpp:
31569 no rdo: Turn OFF the early exit code
31571 Turning off the early exit code since it increases the bitrate by 2%
31572 This will be enabled when the hash mismatch issue is solved for the
31573 reuse of NxN calculataion in early exit code
31576 2013-10-01 Shazeb Nawaz Khan <shazeb@multicorewareinc.com>
31578 * source/common/reference.cpp, source/common/reference.h:
31579 reference: add applyWeight method to MotionReference
31581 to generate weighted full pel pixels for one or more CTU rows
31584 2013-10-02 Shazeb Nawaz Khan <shazeb@multicorewareinc.com>
31586 * source/Lib/TLibCommon/TComWeightPrediction.cpp,
31587 source/common/pixel.cpp, source/common/primitives.h,
31588 source/common/vec/pixel.inc, source/common/vec/pixel8.inc,
31589 source/test/pixelharness.cpp, source/test/pixelharness.h:
31590 primitives: weightUnidir primitive to support pixel or uint16 inputs
31593 2013-10-01 Steve Borho <steve@borho.org>
31595 * source/common/primitives.cpp:
31596 primitives: shorten log message to prevent 80char terminal wrap
31599 * source/common/common.cpp:
31600 common: tighten up tool descriptions; save horizontal space
31603 2013-10-01 Aarthi Thirumalai <Aarthi Thirumalai>
31605 * source/Lib/TLibEncoder/TEncTop.cpp,
31606 source/Lib/TLibEncoder/TEncTop.h, source/encoder/encoder.cpp,
31607 source/x265.cpp, source/x265.h:
31608 api: added x265_stats_t structure and x265_encoder_stats() function
31611 * source/Lib/TLibCommon/TComSlice.cpp,
31612 source/Lib/TLibCommon/TComSlice.h,
31613 source/Lib/TLibEncoder/TEncTop.cpp,
31614 source/Lib/TLibEncoder/TEncTop.h:
31615 added states for storing ssim values per frame and globally at
31619 2013-10-01 Shazeb Nawaz Khan <shazeb@multicorewareinc.com>
31621 * source/Lib/TLibCommon/TComPicYuv.cpp, source/common/reference.cpp,
31622 source/common/reference.h:
31623 Adding few checks and an init() function in MotionRefrence class
31625 to properly signal malloc failure for 'fpelPlane'; handling to be
31629 * source/x265opts.h:
31630 Enable cli parameters for unidirectional weighted prediction
31632 As part of re-enabling unidirectional weighted prediction after
31633 introduction of frame parallelism
31636 2013-09-30 Min Chen <chenm003@163.com>
31638 * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/cturow.h,
31639 source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp:
31640 get deterministic output when frame threading is enabled (for all
31643 Output mistake reasons:
31645 1. CABAC Table Initialize The HM have decide best table for CABAC,
31646 but in frame parallelism, we can't get this information before
31647 thread start, we have to disable it now. Side effect: maybe lost
31648 some compress performance
31650 2. SAO Global Disable The HM decide SAO global disable flag depend
31651 previous same type of slice. but here, we can get right statistics
31652 informat before start, so we have to disable it. Side effect: more
31653 computer cost since we always try SAO on every LCU
31655 3. CABAC status m_frac not reset. This HM bug still alive, we found
31659 2013-09-30 Steve Borho <steve@borho.org>
31661 * source/test/pixelharness.cpp:
31662 pixelharness: always use STRIDE for source buffers
31664 Because they are allocated based on that dimension and the max
31668 * source/common/vec/blockcopy-sse3.cpp:
31669 blockcopy: fix missing stride checks
31672 * source/common/x86/asm-primitives.cpp:
31673 asm: use named defines rather than hard-coded values
31676 2013-09-27 Steve Borho <steve@borho.org>
31678 * source/common/x86/ipfilter8.asm:
31679 ipfilter: remove needless width==0 check
31682 2013-09-27 praveen Tiwari <praveen Tiwari>
31684 * source/common/x86/CMakeLists.txt, source/common/x86/asm-
31685 primitives.cpp, source/common/x86/ipfilter8.asm:
31686 asm code for ipfilterH_pp, 4 tap filter
31689 2013-09-28 Aarthi Thirumalai <Aarthi Thirumalai>
31691 * source/common/common.cpp, source/x265.h, source/x265opts.h:
31692 cli: add options for toggling PSNR and SSIM metrics (currently
31695 By default (for now) PSNR is turned on, SSIM is off.
31698 2013-09-28 Steve Borho <steve@borho.org>
31700 * source/common/common.h:
31701 common: white-space nit
31704 * source/common/common.h:
31705 common: directly call x265_malloc from CHECKED_MALLOC, fix malloc
31709 2013-09-27 Steve Borho <steve@borho.org>
31711 * source/common/vec/intra-sse3.cpp:
31712 intra: fix eoln damage
31715 2013-09-26 Steve Borho <steve@borho.org>
31717 * source/common/primitives.cpp, source/test/testbench.cpp:
31718 primitives: build primitive list iteratively
31720 Rather than collect all intrinsic primitives and then collect all
31721 assembly primitives, do the process iteratively for each CPU
31722 capability. This plausibly allows an SSE41 intrinsic primitive to
31723 have higher priority than an SSE assembly primitive.
31726 * source/common/primitives.cpp, source/common/primitives.h,
31727 source/common/x86/asm-primitives.cpp, source/test/testbench.cpp:
31728 primitives: convert Setup_Assembly_Primitives to a CPU mask instead
31731 This allows the testbench to isolate the functions added for a given
31735 * source/common/primitives.cpp, source/common/primitives.h,
31736 source/common/vec/vec-primitives.cpp, source/test/testbench.cpp:
31737 primitives: convert Setup_Vector_Primitives to a CPU mask instead of
31740 This allows the testbench to isolate the functions added for a given
31744 2013-09-27 Steve Borho <steve@borho.org>
31746 * source/common/vec/intra-sse3.cpp:
31747 intra: re-enable __forceinline for MSVC to recover perf of angular
31751 * source/common/vec/intra-sse41.cpp:
31752 intra: remove redundant intra angular prediction functions
31755 * source/common/vec/intra-sse41.cpp:
31756 intra: remove redundant 16bpp angular prediction code
31759 * source/common/vec/vec-primitives.cpp:
31760 vec: prevent link errors on older compilers, do not try to call
31764 * source/common/vec/intra-sse41.cpp:
31765 intra: merge consecutive 8bpp regions and remove dead code
31768 * source/common/vec/intra-sse41.cpp:
31769 intra: remove redundant planar primitives
31772 2013-09-26 Steve Borho <steve@borho.org>
31774 * source/common/vec/intra-sse41.cpp:
31775 intra: remove redundant copy of intra_pred_dc
31778 * source/common/vec/vec-primitives.cpp:
31779 vec: add missing call to Setup_Vec_IPredPrimitives_sse3()
31782 * source/common/vec/ipfilter-ssse3.cpp:
31783 ipfilter: don't use 8bpp primitives for 16bpp builds
31786 * source/common/vec/blockcopy-avx2.cpp, source/common/vec/dct-
31788 vec: prevent unreferenced parameter warnings for 16bpp builds
31791 * source/common/vec/intra-sse41.cpp:
31792 intra: remove unused extern
31795 * source/encoder/motion.cpp:
31796 motion: fix shadow warnings
31799 2013-09-25 Steve Borho <steve@borho.org>
31801 * source/common/vec/CMakeLists.txt, source/common/vec/avx2.cpp,
31802 source/common/vec/sse3.cpp, source/common/vec/sse41.cpp,
31803 source/common/vec/ssse3.cpp, source/common/vec/vec-primitives.cpp,
31804 source/common/vec/xop.cpp:
31805 combine per-architecture files into vec-primitives.cpp
31808 * source/common/vec/CMakeLists.txt, source/common/vec/pixel.inc,
31809 source/common/vec/utils.h:
31810 inline utils.h into the last place it is included
31813 * source/common/vec/CMakeLists.txt, source/common/vec/avx.cpp,
31814 source/common/vec/pixel-avx.cpp, source/common/vec/pixel-ssse3.cpp,
31815 source/common/vec/ssse3.cpp, source/common/vec/vec-primitives.cpp:
31816 remove ssse3 and avx pixel files, which makes avx.cpp redundant
31819 * source/common/vec/CMakeLists.txt, source/common/vec/avx.cpp,
31820 source/common/vec/avx2.cpp, source/common/vec/ipfilter-avx.cpp,
31821 source/common/vec/ipfilter-avx2.cpp, source/common/vec/ipfilter-
31822 sse3.cpp, source/common/vec/ipfilter-sse41.cpp, source/common/vec
31823 /ipfilter-ssse3.cpp, source/common/vec/ipfilter-xop.cpp,
31824 source/common/vec/ipfilter.inc, source/common/vec/ipfilter16.inc,
31825 source/common/vec/ipfilter8.inc, source/common/vec/sse3.cpp,
31826 source/common/vec/xop.cpp:
31827 split ipfilter.inc into ssse3 and sse41 CPP files
31830 * source/common/vec/CMakeLists.txt, source/common/vec/avx.cpp,
31831 source/common/vec/avx2.cpp, source/common/vec/intra-avx.cpp,
31832 source/common/vec/intra-avx2.cpp, source/common/vec/intra-sse3.cpp,
31833 source/common/vec/intra-sse41.cpp, source/common/vec/intra-
31834 ssse3.cpp, source/common/vec/intra-xop.cpp,
31835 source/common/vec/intrapred.inc, source/common/vec/ssse3.cpp,
31836 source/common/vec/xop.cpp:
31837 split intrapred.inc into sse3 and sse41 CPP files
31840 * source/common/vec/CMakeLists.txt, source/common/vec/avx.cpp,
31841 source/common/vec/avx2.cpp, source/common/vec/dct-avx.cpp,
31842 source/common/vec/dct-avx2.cpp, source/common/vec/dct-sse3.cpp,
31843 source/common/vec/dct-sse41.cpp, source/common/vec/dct-ssse3.cpp,
31844 source/common/vec/dct-xop.cpp, source/common/vec/dct.inc,
31845 source/common/vec/xop.cpp:
31846 split dct.inc into sse3, sse41, ssse3 CPP files
31849 2013-09-26 Steve Borho <steve@borho.org>
31851 * source/common/vec/blockcopy-sse3.cpp:
31852 blockcopy: fix INSTRSET define for SSE3
31855 2013-09-25 Steve Borho <steve@borho.org>
31857 * source/common/vec/CMakeLists.txt, source/common/vec/avx.cpp,
31858 source/common/vec/avx2.cpp, source/common/vec/blockcopy-avx.cpp,
31859 source/common/vec/blockcopy-avx2.cpp, source/common/vec/blockcopy-
31860 sse3.cpp, source/common/vec/blockcopy-sse41.cpp, source/common/vec
31861 /blockcopy-ssse3.cpp, source/common/vec/blockcopy-xop.cpp,
31862 source/common/vec/blockcopy.inc, source/common/vec/sse3.cpp,
31863 source/common/vec/sse41.cpp, source/common/vec/ssse3.cpp,
31864 source/common/vec/vecprimitives.inc, source/common/vec/xop.cpp:
31865 merge blockcopy.inc into blockcopy-sse3.cpp and -avx2.cpp
31867 This is the first step towards four goals:
31869 1 - reduce compile time, no more redundant primitive compiles 2 -
31870 reduce redirections / templating of intrinsic primitives 3 - move
31871 away from vector class library's INSTRSET CPU level define 4 - make
31872 the test bench faster, only validate each primitive once
31875 2013-09-26 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
31877 * source/encoder/dpb.cpp:
31878 Force numPics in RPS <= maxDecPicBuffering - 1
31880 because maxDecPicBuffering is now set to numReferences+1
31883 2013-09-25 Shazeb Nawaz Khan <shazeb@multicorewareinc.com>
31885 * source/common/common.cpp, source/encoder/dpb.h,
31886 source/encoder/encoder.cpp, source/x265.h, source/x265opts.h:
31887 Added support for multiple references
31889 Added a commandline parameter '--ref <max number of references>'.
31890 DPB size adjusted to use number of references.
31893 2013-09-25 Steve Borho <steve@borho.org>
31895 * source/common/common.cpp, source/encoder/encoder.cpp,
31896 source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp:
31900 2013-09-25 Min Chen <chenm003@163.com>
31902 * source/common/vec/ipfilter8.inc:
31903 Avoid VS2008 X64 compiler bug
31906 * source/common/vec/ipfilter8.inc, source/encoder/motion.cpp,
31907 source/encoder/motion.h:
31908 Merge HPEL interpolations with the same HPEL offsets
31910 In the square1[9], the candidate HPEL offsets are:
31914 The main idea is two HPEL distances makes one FPEL so we can merge
31915 1-2, 3-4, 5-6, and 7-8 into one interpolation each by adding 1 extra
31916 row/col to the interpolation
31919 2013-09-25 Steve Borho <steve@borho.org>
31921 * source/encoder/encoder.cpp:
31922 encoder: range check number of NAL units
31925 2013-09-25 Min Chen <chenm003@163.com>
31927 * source/common/common.cpp, source/encoder/encoder.cpp,
31928 source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp:
31929 fix hash mistake from --sao-lcu-opt=0 --frame-threads 2
31931 Delay all deblock and SAO until the entire frame is available. Frame
31932 SAO and frame parallelism will now generate correct results, but it
31933 will have very poor performance, so the hard check is relaxed to a
31935 [2d77d4a2c31b] <stable>
31937 2013-09-25 Steve Borho <steve@borho.org>
31939 * source/encoder/encoder.cpp:
31940 encoder: disable lookahead for all-intra encodes
31942 This works around a bug in the current Lookahead::slicetypeDecide().
31943 I have a patch in the works which fixes this properly, but I think
31944 this is a reasonable workaround. Tested with ABR and it works ok.
31945 [b8658deb4a77] <stable>
31947 2013-09-25 Gopu Govindaswamy <gopu@multicorewareinc.com>
31949 * source/Lib/TLibCommon/NAL.h, source/Lib/TLibEncoder/NALwrite.cpp,
31950 source/Lib/TLibEncoder/NALwrite.h:
31951 NAL: Remove unused NALUnitEBSP functions
31953 Removed the unused NALUnitEBSP(OutputNALUnit& nalu) and
31954 copyNaluData() methods from NAL
31957 * source/Lib/TLibCommon/AccessUnit.h,
31958 source/Lib/TLibEncoder/TEncTop.h, source/common/CMakeLists.txt,
31959 source/encoder/frameencoder.h:
31960 Accessunit: Remove unused accessUnit class
31962 AccessUnit class derived from std template list, Accessunit class
31963 replaced with pointers to an array
31966 2013-09-24 Steve Borho <steve@borho.org>
31968 * source/encoder/encoder.cpp:
31969 encoder: ensure returned NAL count matches output array size
31971 On CHECKED_MALLOC failure, m_packetData and/or m_nals will be NULL
31972 and thus the returned count must be 0. Also, do not free the packet
31973 data from within this utility function. It is cleaner to release
31974 that memory in the function which declared the pointers on the
31978 * source/encoder/frameencoder.cpp:
31979 frameencoder: do not cause deadlock on malloc fail
31982 * source/Lib/TLibEncoder/TEncTop.cpp:
31983 TEncTop: prevent divide by zero if no frames were output by stream
31986 2013-09-24 Gopu Govindaswamy <gopu@multicorewareinc.com>
31988 * source/Lib/TLibEncoder/TEncTop.cpp,
31989 source/Lib/TLibEncoder/TEncTop.h, source/encoder/encoder.cpp,
31990 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
31991 encoder: do not use std::list for the class AccessUnit
31994 * source/Lib/TLibCommon/TComBitStream.cpp,
31995 source/Lib/TLibCommon/TComBitStream.h:
31996 bitstream: remove unused std::vector class code
31999 2013-09-24 Steve Borho <steve@borho.org>
32001 * source/encoder/slicetype.cpp:
32006 Added tag 0.4.1 for changeset 93707bc4fccd
32007 [ddb7abf83f98] <stable>
32009 * source/common/vec/CMakeLists.txt:
32010 cmake: ignore icpc warnings about EMMS from pixelcmp primitives
32011 [93707bc4fccd] [0.4.1] <stable>
32013 * source/encoder/slicetype.cpp:
32014 slicetype: fix variable shadow warning
32015 [3a77059e1ebf] <stable>
32017 2013-09-24 Min Chen <chenm003@163.com>
32019 * source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp:
32020 Reset CABAC status to get same output between single and multi
32024 2013-09-24 Deepthi Nandakumar <deepthi@multicorewareinc.com>
32026 * source/common/CMakeLists.txt:
32030 * source/common/CMakeLists.txt:
32031 MinGW: build fix for common.cpp
32032 [f56cd5c652ef] <stable>
32034 2013-09-24 Steve Borho <steve@borho.org>
32036 * source/encoder/slicetype.cpp:
32040 2013-09-24 sumalatha polureddy <sumalatha polureddy>
32042 * source/encoder/ratecontrol.cpp:
32043 RateControl : Bug fix when previous estimated frame cost is zero
32044 [2824b8e732e9] <stable>
32046 2013-09-23 Steve Borho <steve@borho.org>
32048 * source/common/common.cpp:
32049 common: prevent an API race hazard
32051 The public API should be thread-safe for a given encoder or param
32052 object (they are distinct data structures). However x265 has a small
32053 number of global vars that are configured on first use and must be
32054 the same for all encoders in the same process (max CTU size and
32055 pixel bit-depth). Using an atomic compare-and- swap here prevents
32056 simultaneous encoder creations from violating those rules.
32059 * source/common/common.cpp:
32060 common: rename CONFIRM macro to CHECK
32062 The logic of the macro is: if (expr) fail So CONFIRM is highly
32066 2013-09-20 Gopu Govindaswamy <gopu@multicorewareinc.com>
32068 * source/Lib/TLibCommon/NAL.h, source/Lib/TLibEncoder/NALwrite.h,
32069 source/common/common.h, source/encoder/encoder.cpp,
32070 source/encoder/frameencoder.cpp:
32071 frameencoder: use CHECKED_MALLOC in getStreamHeaders()
32074 2013-09-24 Steve Borho <steve@borho.org>
32076 * source/encoder/slicetype.cpp:
32078 [46cc93c497c5] <stable>
32080 2013-09-23 Steve Borho <steve@borho.org>
32082 * doc/intra/T16.TXT, doc/intra/T32.TXT, doc/intra/T4.TXT,
32083 doc/intra/T8.TXT, doc/intra/intra-16x16.txt, doc/intra/intra-
32084 32x32.txt, doc/intra/intra-4x4.txt, doc/intra/intra-8x8.txt:
32085 rename intra docs, switch to unix eoln
32088 * build/README.txt, build/regression/commandlines-example.txt,
32089 build/regression/config-example.txt, build/regression/email-csv.py,
32090 doc/uncrustify/apply-to-all-source.py,
32091 doc/uncrustify/codingstyle.cfg, source/Lib/README.txt,
32092 source/VectorClass/README.txt, source/VectorClass/vectorclass.h,
32093 source/VectorClass/vectori128.h, source/VectorClass/vectori256.h,
32094 source/VectorClass/vectori256e.h:
32095 use unix EOLN for all non-bat files
32098 * .hgignore, doc/uncrustify/drag-uncrustify.bat,
32099 doc/uncrustify/uncrustify.bat, doc/uncrustify/uncrustify.exe:
32100 prune uncrustify.exe; ignore any executable copied into that folder
32102 uncrustify.bat was unused, so it was also removed
32105 * doc/README_data-structure.ppt, doc/software-manual.pdf:
32106 remove binary documentation files leftover from HM source tree
32109 * doc/astyle/AStyle.exe, doc/astyle/apply-to-all-source.py, doc/astyle
32110 /astyle-config.txt, doc/astyle/drag-astyle.bat:
32111 remove obsolete astyle scripts and tools
32114 * source/common/lowres.cpp:
32115 lowres: fixup bad merge/patch re-import
32118 * source/encoder/encoder.cpp:
32119 encoder: explicitly disable AMP if rectangular modes are disabled
32121 In the mode decision logic, asymmetrical motion prediction is
32122 implicitly disabled when rectangular modes are disabled. This makes
32123 the disabling more explicit, AMP will not appear as enabled in the
32124 "encoding tools" log line.
32127 2013-09-23 Min Chen <chenm003@163.com>
32129 * source/common/vec/ipfilter8.inc:
32130 Replace (maskmovq) by (blendvb + movq)
32133 * source/common/vec/ipfilter8.inc:
32134 Replace combo padd(32)+psra(6) by pmulhrsw
32137 2013-09-23 Steve Borho <steve@borho.org>
32139 * source/common/lowres.cpp:
32140 lowres: remove NULL pointer checks, x265_free does this internally
32143 * source/common/lowres.cpp:
32144 lowres: white-space nits and minor cleanup
32147 * source/common/lowres.cpp:
32151 2013-09-23 Shazeb Nawaz Khan <shazeb@multicorewareinc.com>
32153 * source/common/lowres.cpp:
32154 Adapting lowress frame dimensions to multiples of lowress CU size.
32156 The full res frame is required to be extended accordingly to achieve
32157 a lowres frame with dimensions in multiples of lowres CU size.
32158 [90be63021e7d] <stable>
32160 2013-09-23 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
32162 * source/common/lowres.cpp:
32163 lowres: bug fix - move initialization from create() to init()
32165 lowres objects are reused, hence they should be re-initialized.
32166 [bba314600ed0] <stable>
32168 2013-09-23 Shazeb Nawaz Khan <shazeb@multicorewareinc.com>
32170 * source/common/lowres.cpp:
32171 Adapting lowress frame dimensions to multiples of lowress CU size.
32173 The full res frame is required to be extended accordingly to achieve
32174 a lowres frame with dimensions in multiples of lowres CU size.
32177 2013-09-20 Steve Borho <steve@borho.org>
32179 * source/encoder/encoder.cpp:
32180 encoder: hoist declaration of offset var to fix GCC goto warnings,
32184 * source/encoder/encoder.cpp:
32185 encoder: white-space fixes
32188 * source/encoder/encoder.cpp:
32189 encoder: remove NULL checks prior to X265_FREE, which does its own
32192 * source/encoder/encoder.cpp:
32193 encoder: fix indentation of extract_naldata
32196 * source/CMakeLists.txt:
32197 cmake: force creation of ENABLE_PRIMITIVES_ASM option for all yasm
32201 * Merge with stable
32204 2013-09-20 Aarthi Thirumalai <Aarthi Thirumalai>
32206 * source/encoder/ratecontrol.cpp:
32207 Bug Fix - copy last Recq value to thread local rce object
32209 Missed this out in previous patch.
32210 [1311936ef9cf] <stable>
32212 2013-09-19 Steve Borho <steve@borho.org>
32214 * source/CMakeLists.txt:
32215 cmake: fix auto-link issues with MSVC
32217 If you tell MSVC to link with the static lib, the dependencies
32218 somehow fail and x265.exe is not re-linked properly when the static
32220 [d47ef13cb735] <stable>
32222 2013-09-20 Steve Borho <steve@borho.org>
32224 * source/encoder/encoder.cpp:
32225 encoder: style nits, no logic change
32228 2013-09-20 Gopu Govindaswamy <gopu@multicorewareinc.com>
32230 * source/encoder/encoder.cpp:
32231 encoder: Do not use X265_MALLOC use CHECKED_MALLOC
32233 Currently X265_MALLOC did't validate the returned pointer,
32234 CHECKED_MALLOC Always validate the returned pointer and print the
32235 Log message and jumps to fail lable if returned pointer is not
32239 * source/common/common.cpp, source/common/common.h:
32240 common: add CHECKED_MALLOC macro that logs malloc failures and jumps
32244 2013-09-20 Aarthi Thirumalai <Aarthi Thirumalai>
32246 * source/encoder/ratecontrol.cpp:
32247 Bug Fix - copy last Recq value to thread local rce object
32249 Missed this out in previous patch.
32252 2013-09-19 Steve Borho <steve@borho.org>
32254 * source/encoder/slicetype.cpp:
32255 slicetype: fix shadow warning reported by GCC
32258 * source/CMakeLists.txt:
32259 cmake: fix auto-link issues with MSVC
32261 If you tell MSVC to link with the static lib, the dependencies
32262 somehow fail and x265.exe is not re-linked properly when the static
32266 * source/common/CMakeLists.txt:
32267 cmake: use explicit file list for HM TLibCommon files
32270 * source/encoder/CMakeLists.txt:
32271 cmake: use explicit file list for HM TLibEncoder files
32273 This prevents issues when HM files are deleted; we simply remove
32274 them from this list and then CMake automatically regenerates
32275 projects or Makefiles. With globs, you have to know to poke CMake to
32276 regenerate the files, but most do not know this.
32279 * source/common/common.cpp:
32280 common: white-space logging nit
32283 * source/common/common.cpp:
32284 common: improve logging string for lookahead configuration - conveys
32288 * Merge with stable
32292 Added tag 0.4 for changeset 2ba6ec553f21
32293 [85219cda3127] <stable>
32295 * source/encoder/slicetype.cpp:
32296 slicetype: respect --bframes count when --b-adapt is 0
32298 --b-adapt 0 --bframes 3 => IPBBBPBBBPBBB
32299 --b-adapt 0 --bframes 4 => IPBBBBPBBBBPBBBB
32301 This is a stop-gap feature until --b-adapt 1 and 2 are fully
32303 [2ba6ec553f21] [0.4] <stable>
32305 * source/encoder/slicetype.cpp:
32306 slicetype: remove x265_ prefix from internal functions
32308 These were adapted from x264 functions, and the prefix was
32309 incorrectly preserved
32310 [4c97a2025103] <stable>
32312 * build/linux/batch.py, source/Lib/TLibCommon/SEI.cpp:
32314 [9d97cddc0fac] <stable>
32316 2013-09-20 Aarthi Thirumalai <Aarthi Thirumalai>
32318 * source/encoder/ratecontrol.cpp:
32319 tuned up ABR logic to better adapt for frame parallelism
32321 Rate control needs to be more aggressive based on actual ecoded
32322 bits cost rather than estimated costs from concurrent threads .Tuned
32323 up some parameters to effect this idea.
32326 2013-09-19 Aarthi Thirumalai <Aarthi Thirumalai>
32328 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
32329 RateControl bug fixes for frame parallelism
32331 1. Added lastRceq in ratecotrol structure and copied the value into
32332 thread local rate control entry obj so that Bframes can get latest
32335 2. Added framesDone state - to maintain a serial order of frames in
32336 RateCotrol to get a correct estimate of wantedBits.
32339 2013-09-19 Steve Borho <steve@borho.org>
32342 cli: use strerror to report signal error
32345 * source/Lib/TLibEncoder/TEncTop.cpp:
32346 top: fix leak of output NALs on CTRL+C aborts
32349 2013-09-18 Steve Borho <steve@borho.org>
32351 * source/Lib/TLibCommon/SEI.cpp, source/Lib/TLibCommon/SEI.h:
32352 sei: remove unused SEIMessages type define
32354 After this, and after AccessUnit is replaced with a simple pointer
32355 array, TComList is the only type derived from std::list, so we would
32356 no longer need a templated list class. TComList could be replaced
32357 with a simple list class that suits our exact needs.
32359 This also removes another HM file
32362 * source/common/common.cpp, source/x265.cpp, source/x265.h:
32363 api: introduce an x265_picture_init() function
32366 * source/Lib/TLibEncoder/TEncTop.cpp, source/common/lowres.cpp,
32367 source/common/lowres.h, source/encoder/slicetype.cpp,
32368 source/encoder/slicetype.h:
32369 lowres: pass poc and user slice type to lowres::init()
32372 * source/common/lowres.h:
32373 lowres: group fields by type, remove trailing white-space
32376 * source/common/lowres.cpp, source/common/lowres.h,
32377 source/encoder/dpb.cpp, source/encoder/slicetype.cpp:
32378 lowres: change int keyframe to bool bKeyframe
32381 * source/common/lowres.cpp, source/common/lowres.h,
32382 source/encoder/slicetype.cpp:
32383 lowres: change int scenecut to bool bScenecut
32386 2013-09-19 Min Chen <chenm003@163.com>
32388 * source/encoder/framefilter.cpp, source/encoder/framefilter.h,
32390 framefilter: allow SAO to be disabled independently of deblock
32394 2013-09-19 Steve Borho <steve@borho.org>
32397 cli: fix memory leaks on early exits
32400 * source/common/common.cpp:
32401 sao: prevent picture based SAO to be used in combination with frame
32405 2013-09-19 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
32407 * source/encoder/slicetype.cpp:
32408 lookahead: fix crash for I frame cost estimation
32411 2013-09-19 Deepthi Nandakumar <deepthi@multicorewareinc.com>
32413 * source/test/intrapredharness.cpp, source/test/ipfilterharness.cpp,
32414 source/test/mbdstharness.cpp, source/test/pixelharness.cpp,
32415 source/test/testbench.cpp, source/test/testharness.h:
32416 testharness cleanup: Testharness uses the same malloc/free wrapper
32417 as the rest of the encoder.
32419 Aligned mallocs in testharness use the wrapper (X265_MALLOC/FREE)
32420 defined in CommonDef.h. Remove alignedMalloc/Free definitions in the
32424 2013-09-18 Steve Borho <steve@borho.org>
32426 * source/encoder/slicetype.cpp:
32427 slicetype: fix bug in intra estimation in
32428 Lookahead::estimateCUCost()
32430 # HG changeset patch # User Steve Borho <steve@borho.org> # Date
32431 1379538813 18000 # Wed Sep 18 16:13:33 2013 -0500 # Node ID
32432 5bab261d0dd7ac68c4af3837853d48d56017d4d6 # Parent
32433 197dd6d2f54d7193d7dcf28d03a0b3dccb353fad slicetype: fix bug in intra
32434 estimation in Lookahead::estimateCUCost()
32437 * source/common/common.cpp, source/x265.h:
32438 white-space and comment nits
32442 cli: report errors from registering signal handler
32445 * source/Lib/TLibEncoder/TEncSbac.h:
32446 TEncSbac: remove exit() calls from unsupported functions
32449 * source/Lib/TLibEncoder/TEncTop.cpp:
32450 TEncTop: replace debugging exit() call with abort(), use x265_log
32453 * source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComDataCU.cpp,
32454 source/Lib/TLibCommon/TComLoopFilter.cpp,
32455 source/Lib/TLibCommon/TComPicSym.cpp,
32456 source/Lib/TLibCommon/TComPrediction.cpp,
32457 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
32458 source/Lib/TLibCommon/TComSlice.cpp,
32459 source/Lib/TLibCommon/TComTrQuant.cpp,
32460 source/Lib/TLibEncoder/TEncCu.cpp,
32461 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
32462 source/Lib/TLibEncoder/TEncSearch.cpp,
32463 source/Lib/TLibEncoder/TEncTop.cpp, source/common/wavefront.cpp,
32464 source/encoder/bitcost.cpp, source/input/y4m.cpp,
32465 source/input/yuv.cpp, source/output/y4m.cpp, source/output/yuv.cpp,
32466 source/test/testpool.cpp:
32467 do not check for NULL prior to delete, do not reset pointers in
32470 A lot of our classes have destroy() methods. In those we try to zero
32471 deleted pointers since there is a chance for multiple destroy()
32472 calls. But in destructors the pointer storage itself will be
32473 released when the function exits
32477 cli: use sig_atomic_t type for variable modified by SIGINT handler
32480 * removed unused b_exit_on_ctrl_c
32481 * removed unnecessary static initializer
32484 2013-09-18 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
32486 * source/encoder/slicetype.cpp:
32487 lookahead: fix cost estimation, use previous result when calculation
32491 2013-09-17 Aarthi Thirumalai <Aarthi Thirumalai>
32493 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
32494 ABR - Removed unused states, cleaned up the comments.
32496 Removed states that are not used in ABR or CQP rate contnrol modes.
32499 2013-09-18 Min Chen <chenm003@163.com>
32501 * source/encoder/frameencoder.cpp:
32502 frameencoder: disable filter/extend lag when SAO and deblocking are
32505 This improves frame parallelism when all loop filtering is disabled
32506 (aka: benchmark mode)
32509 2013-09-18 Deepthi Nandakumar <deepthi@multicorewareinc.com>
32511 * source/encoder/slicetype.cpp:
32512 lookahead: change const bool to const int, so as to use it safely as
32516 2013-09-17 Wenju He <wenju@multicorewareinc.com>
32518 * source/input/y4m.cpp:
32519 fix allocation crash if input y4m file is not found
32522 2013-09-17 Min Chen <chenm003@163.com>
32524 * source/common/wavefront.cpp, source/encoder/frameencoder.cpp,
32525 source/encoder/frameencoder.h:
32526 Resolve some patching issues for previous patch (deadlock).
32529 2013-09-17 funman <funman@videolan.org Rafaël Carré>
32532 [x265] [PATCH] library header: use #ifdef __cplusplus Remove a
32533 warning when using from C
32536 2013-09-16 Min Chen <chenm003@163.com>
32538 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
32539 source/encoder/framefilter.cpp, source/encoder/framefilter.h:
32540 Use mixed bitmap between FrameEncoder and FrameFilter to Fix crash
32541 and hash mistake in WPP mode
32543 I change task schedult bitmap to mixed FrameEncoder and FrameFilter
32544 because there catch two bugs, and I want to reduce latency of Frame
32545 Parallelism. The new bitmap mapping 2N+0 to FrameEncoder and 2N+1 to
32548 Side effect: 1. We can remove the lock from FrameFilter. 2. Mixed
32549 bitmap let us do Filter early, so reduce latency of Frame
32552 Solved bugs: 1. CRASH: the reason is sometime two of threads finish
32553 in same time, so they will enter Filter in wrong order and sent
32554 Finished Event early. when main thread dequeue JobProvider and
32555 execute FrameFilter, we will catch a crash!
32557 2. HASH MISTAKE: the reason is same as below, but last row is right
32558 order, we will got worng reconst image.
32561 2013-09-16 Deepthi Nandakumar <deepthi@multicorewareinc.com>
32563 * source/common/common.cpp:
32564 CLI Options: reset x265_param_default to extern "C"
32570 * source/common/common.cpp, source/encoder/encoder.cpp,
32572 CLI options: Eliminate rdoqts option; cleanup
32574 1. Eliminate rdoqts CLI option: enabled when rdoq and ts are both
32575 enabled. 2. Rearrange default initialisations in x265_param_ t
32579 * source/encoder/framefilter.cpp:
32580 framefilter: Fix memcpy for pel-pixel datatype change
32583 * source/encoder/framefilter.cpp:
32584 framefilter: Fix memcpy for pel-pixel datatype change
32587 2013-09-16 Gopu Govindaswamy <gopu@multicorewareinc.com>
32589 * source/Lib/TLibCommon/AccessUnit.h,
32590 source/Lib/TLibCommon/CommonDef.h,
32591 source/Lib/TLibCommon/ContextModel.h,
32592 source/Lib/TLibCommon/ContextModel3DBuffer.h,
32593 source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibCommon/NAL.h,
32594 source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComBitCounter.h,
32595 source/Lib/TLibCommon/TComBitStream.h,
32596 source/Lib/TLibCommon/TComDataCU.h,
32597 source/Lib/TLibCommon/TComList.h,
32598 source/Lib/TLibCommon/TComLoopFilter.h,
32599 source/Lib/TLibCommon/TComMotionInfo.h,
32600 source/Lib/TLibCommon/TComPattern.h,
32601 source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicSym.h,
32602 source/Lib/TLibCommon/TComPicYuv.h,
32603 source/Lib/TLibCommon/TComPrediction.h,
32604 source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TComRom.h,
32605 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
32606 source/Lib/TLibCommon/TComSlice.h,
32607 source/Lib/TLibCommon/TComTrQuant.h,
32608 source/Lib/TLibCommon/TComWeightPrediction.h,
32609 source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibCommon/TypeDef.h,
32610 source/Lib/TLibEncoder/NALwrite.h,
32611 source/Lib/TLibEncoder/SEIwrite.h,
32612 source/Lib/TLibEncoder/SyntaxElementWriter.h,
32613 source/Lib/TLibEncoder/TEncAnalyze.h,
32614 source/Lib/TLibEncoder/TEncBinCoder.h,
32615 source/Lib/TLibEncoder/TEncBinCoderCABAC.h,
32616 source/Lib/TLibEncoder/TEncBinCoderCABACCounter.h,
32617 source/Lib/TLibEncoder/TEncCavlc.h,
32618 source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.h,
32619 source/Lib/TLibEncoder/TEncEntropy.h,
32620 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
32621 source/Lib/TLibEncoder/TEncSbac.h,
32622 source/Lib/TLibEncoder/TEncSearch.h,
32623 source/Lib/TLibEncoder/TEncTop.h,
32624 source/Lib/TLibEncoder/WeightPredAnalysis.h,
32625 source/common/TShortYUV.h, source/common/common.h,
32626 source/common/lowres.h, source/common/md5.h, source/common/mv.h,
32627 source/common/reference.h, source/common/threading.h,
32628 source/common/threadpool.h, source/common/wavefront.h,
32629 source/compat/msvc/getopt.h, source/encoder/bitcost.h,
32630 source/encoder/cturow.h, source/encoder/dpb.h,
32631 source/encoder/frameencoder.h, source/encoder/framefilter.h,
32632 source/encoder/motion.h, source/encoder/ratecontrol.h,
32633 source/encoder/slicetype.h, source/input/input.h,
32634 source/input/y4m.h, source/input/yuv.h, source/output/output.h,
32635 source/output/y4m.h, source/output/yuv.h, source/x265.h:
32636 X265: header guards format Changed to X265_<FILENAME>_H
32638 Globally all the x265 header files header guards format changed into
32642 2013-09-13 sumalatha polureddy <sumalatha polureddy>
32644 * source/encoder/ratecontrol.cpp:
32645 ratecontrol: Tweak to better handle short term compensation
32647 Increase the coefficient cplxrSum is adjusted by so that short term
32648 compensation does not suffer as much.
32650 Also, clip the QP for the first frame.
32652 Overall improvement is about 5%.
32655 2013-09-13 Steve Borho <steve@borho.org>
32657 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
32658 frameencoder: move threadMain() into cpp file
32661 * source/encoder/slicetype.cpp:
32662 slicetype: increase baseline bframe bias by 10%
32664 Our estimateFrameCost() function is not yet checking bidir
32665 candidates (because bidir search in the main encoder needs to be
32666 replaced first) and since B frame estimates cannot use intra modes
32667 either this tends to make B frame scores relatively higher than what
32668 x264 finds. So our default bias needs to be a bit higher in order
32669 for the lookahead to select B paths.
32672 * source/cmake/mergestaticlibs.cmake:
32673 cmake: whitespace cleanups in mergestaticlibs.cmake (should not
32676 this file was borrowed from another project, and wasn't scrubbed for
32677 our cmake script style (no tabs, 4 spaces, unix eoln, lower case cmd
32681 2013-09-13 Derek Buitenhuis <derek.buitenhuis@gmail.com>
32683 * source/cmake/mergestaticlibs.cmake:
32684 cmake: Don't rely on non-POSIX ar functionality
32686 Fixes build on stricter systems like FreeBSD.
32689 * source/Lib/TLibEncoder/NALwrite.cpp:
32690 NALwrite: Include forgotten header
32692 Fixes build on Linux, where memcpy is not global.
32695 2013-09-13 Steve Borho <steve@borho.org>
32697 * source/encoder/framefilter.cpp:
32698 ppa: remove redundant PPA event
32700 The PPAScopeEvent macro causes a bar to appear in our profiler with
32701 the given name, associated with the CPU core and start/stop time.
32702 The problem with this particular instance is that the function was
32703 copy-pasted from another in this file and this profile scope came
32704 along for the ride and since they both have the same name and one
32705 calls the other it is essentially a NOP
32708 * source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp:
32709 framefilter: comment cleanups, use pixel data type
32712 * source/test/CMakeLists.txt:
32713 cmake: fix test bench builds following static lib reorg
32716 2013-09-13 Deepthi Nandakumar <deepthi@multicorewareinc.com>
32718 * source/encoder/encoder.cpp:
32719 Encoder: Remove x265_ prefix from NAL data extract functions.
32722 * source/encoder/encoder.cpp:
32723 Encoder: Factor out duplicated code in NAL data extraction [Gopu]
32726 2013-09-12 Gopu Govindaswamy <gopu@multicorewareinc.com>
32728 * source/Lib/TLibCommon/NAL.h, source/Lib/TLibEncoder/NALwrite.cpp,
32729 source/Lib/TLibEncoder/NALwrite.h,
32730 source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp:
32731 NAL : std::ostringstream replaced
32734 2013-09-12 Derek Buitenhuis <derek.buitenhuis@gmail.com>
32736 * source/common/threading.h:
32737 threading: Include fcntl.h on POSIX systems
32739 This is where O_CREAT and O_EXCL are defined.
32742 2013-09-11 Steve Borho <steve@borho.org>
32744 * source/CMakeLists.txt:
32745 cmake: set MACOS build flag on mac builds (fixes CPU count
32749 * source/common/threading.cpp, source/common/threading.h:
32750 threading: use named semaphores for POSIX events
32752 Mac OS X does not support unnamed semaphores. It's not clear what
32753 the performance implications of this are on Linux (or Mac). Also,
32754 this method is not very robust. If x265 crashes, it leaves named
32755 semaphores in the system until the kernel is restarted.
32758 * build/linux/batch.py:
32759 build: remove obsolete test script
32762 * source/common/ipfilter.cpp:
32763 ipfilter: remove two unused file-static functions
32765 Xcode reported these as warnings; Xcode build is now 100% clean
32768 * source/common/x86/CMakeLists.txt:
32769 cmake: add Xcode hacks for YASM integration (is there a better way?)
32772 * source/CMakeLists.txt:
32773 cmake: detect Xcode generator, avoid static lib failure
32776 * build/xcode/make-project.sh:
32777 cmake: add xcode build folder
32780 2013-09-12 Steve Borho <steve@borho.org>
32782 * source/encoder/framefilter.cpp, source/encoder/framefilter.h:
32783 framefilter: prevent row filter overlap race hazards
32786 2013-09-11 Wenju He <Wenju He>
32788 * source/Lib/TLibEncoder/TEncCu.cpp:
32789 check before delete
32792 2013-09-12 Steve Borho <steve@borho.org>
32794 * source/common/CMakeLists.txt, source/common/vec/CMakeLists.txt,
32795 source/common/x86/CMakeLists.txt, source/encoder/CMakeLists.txt:
32796 cmake: mark project libs as static
32799 2013-09-11 Steve Borho <steve@borho.org>
32801 * source/CMakeLists.txt, source/common/CMakeLists.txt,
32802 source/encoder/CMakeLists.txt:
32803 cmake: link primitive projects into libx264 directly, not through
32807 * build/icl32/build-all.bat, build/icl32/make-makefile.bat,
32808 build/icl64/build-all.bat, build/icl64/make-makefile.bat:
32809 cmake: detect and use ICL version 14
32812 2013-09-12 Deepthi Nandakumar <deepthi@multicorewareinc.com>
32817 * source/x265opts.h:
32818 cli: moving rd option description to rate distortion section.
32821 * source/common/common.cpp, source/encoder/encoder.cpp, source/x265.h,
32823 cli: replacing no-rdo and no-rdoq options with rd: 0 means
32824 nordo,nordoq. 1 means nordo,rdoq and 2 means rdo, rdoq.
32827 2013-09-11 Deepthi Nandakumar <deepthi@multicorewareinc.com>
32830 cli: clarifying enum comment in No-RDO.
32833 2013-09-11 Steve Borho <steve@borho.org>
32835 * source/CMakeLists.txt:
32836 cmake: quiet ICL warnings from STLport's use of pragmas
32839 2013-09-11 Min Chen <chenm003@163.com>
32841 * source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp:
32842 framefilter: Make code clearer
32844 We do not need the row delay when the loopfilter is disabled.
32847 2013-09-11 Deepthi Nandakumar <deepthi@multicorewareinc.com>
32849 * source/encoder/compress.cpp:
32850 compress: fast-no-rdo is stable enough to be a part of regular no-
32855 cli: Add enum RDOLevel to list of rate distortion modes.
32858 2013-09-11 Steve Borho <steve@borho.org>
32860 * source/encoder/slicetype.cpp:
32861 slicetype: remove extra parens (Mac GCC reports this as a warning)
32864 2013-09-09 Steve Borho <steve@borho.org>
32866 * source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp,
32867 source/encoder/framefilter.h:
32868 framefilter: run filters synchronously at end of each row
32871 2013-09-10 Steve Borho <steve@borho.org>
32873 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
32874 source/Lib/TLibEncoder/TEncTop.cpp, source/common/lowres.cpp,
32875 source/common/lowres.h, source/encoder/dpb.cpp,
32876 source/encoder/slicetype.cpp:
32877 lowres: don't use bframes member var to store allocation count
32879 x264 used a bframes variable here to hold the number of leading B
32880 frames encoded before an I or a P (I assume for rate control use)
32883 * source/Lib/TLibEncoder/TEncSearch.cpp:
32884 TEncSearch: clamp mvmin.y to reflag distance as well
32887 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
32888 ratecontrol: remove unused bframes (this was probably not the
32892 * source/x265opts.h:
32893 cli: move fast-no-rdo next to the other rdo options
32896 * source/CMakeLists.txt:
32897 cmake: generate libx265 unconditionally
32900 * source/CMakeLists.txt:
32904 * source/encoder/compress.cpp:
32905 compress: remove unnecessary line (GCC warning)
32908 * source/CMakeLists.txt, source/input/CMakeLists.txt,
32909 source/output/CMakeLists.txt:
32913 * source/CMakeLists.txt:
32914 cmake: rename x265 project to cli, force output name to x265. use
32918 * source/encoder/encoder.cpp:
32919 encoder: replace long with UInt
32922 2013-09-10 Deepthi Nandakumar <deepthi@multicorewareinc.com>
32924 * source/encoder/compress.cpp:
32925 compress: different lambdas for P and B slices, no efficiency drop.
32928 * source/encoder/compress.cpp:
32929 compress: replace early exit macro with fast-no-rdo option
32932 * source/common/common.cpp, source/x265.h, source/x265opts.h:
32933 compress: Introducing option fast no-rdo, only when no-rdo mode is
32937 * source/encoder/compress.cpp:
32938 compress: Intra mode checked only in P frames
32941 * source/encoder/compress.cpp:
32942 compress: Enabling early exit macro.
32945 2013-09-09 Steve Borho <steve@borho.org>
32947 * source/common/vec/ipfilter8.inc:
32948 ipfilter: remove unused maxVal variable
32949 [98f0f7dde384] <stable>
32951 * source/Lib/TLibCommon/CommonDef.h,
32952 source/Lib/TLibCommon/TComMotionInfo.cpp,
32953 source/Lib/TLibCommon/TComRom.cpp,
32954 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
32955 source/Lib/TLibCommon/TComTrQuant.cpp,
32956 source/Lib/TLibCommon/TComYuv.cpp,
32957 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
32958 source/VectorClass/instrset.h, source/common/TShortYUV.cpp,
32959 source/common/common.h, source/common/pixel.cpp,
32960 source/common/threading.h:
32961 convert stdlib.h includes to <cstdlib> to avoid namespace conflicts
32962 [cfd76423dbf4] <stable>
32964 * source/CMakeLists.txt, source/input/CMakeLists.txt,
32965 source/output/CMakeLists.txt:
32966 cmake: merge InputFiles and OutputFiles projects into cli project
32968 [60dec1deb894] <stable>
32970 * doc/LookaheadGuide.txt, doc/LookaheadPlan.txt,
32971 source/Lib/TLibCommon/TComCABACTables.cpp,
32972 source/Lib/TLibCommon/TComCABACTables.h,
32973 source/Lib/TLibCommon/TComRdCost.cpp,
32974 source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp,
32975 source/Lib/TLibCommon/TComRdCostWeightPrediction.h,
32976 source/Lib/TLibEncoder/AnnexBwrite.h,
32977 source/Lib/TLibEncoder/TEncGOP.cpp,
32978 source/Lib/TLibEncoder/TEncGOP.h,
32979 source/Lib/TLibEncoder/TEncRateCtrl.cpp,
32980 source/Lib/TLibEncoder/TEncRateCtrl.h,
32981 source/Lib/TLibEncoder/TEncSlice.cpp,
32982 source/Lib/TLibEncoder/TEncSlice.h, source/common/vec/blockcopy-
32983 sse42.cpp, source/common/vec/dct-sse42.cpp, source/common/vec/intra-
32984 sse42.cpp, source/common/vec/ipfilter-sse42.cpp, source/common/vec
32985 /pixel-sse42.cpp, source/common/vec/sse42.cpp,
32986 source/encoder/encoder.h:
32987 merge default into stable; feature freeze
32988 [1efd146deeeb] <stable>
32991 cli: add version id into CSV output
32995 cli: report global PSNR on summary line
32998 * source/common/common.cpp:
32999 common: fix lookahead check
33002 * source/CMakeLists.txt:
33003 cmake: do not use -fPIC on MinGW64
33006 * source/CMakeLists.txt:
33007 cmake: fix eoln damage
33010 * source/CMakeLists.txt:
33011 cmake: add STLport build option
33014 * source/input/input.h, source/input/y4m.h, source/input/yuv.h,
33016 stl: fix warnings/errors reported by STLport headers
33019 * source/common/common.cpp:
33020 common: fix lookahead depth dependency
33023 * source/encoder/slicetype.cpp:
33024 slicetype: disable lookahead for all-P frame runs
33027 * source/common/common.cpp:
33028 common: enable -b3 by default to match x264
33030 Use -b0 to get the previous all-P frame default behavior
33033 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
33034 ratecontrol: remove rce member variable pointer
33036 Pass RateControlEntry to functions that need it. It was pretty
33037 misleading to pass in an argument named m_rce.
33040 2013-09-09 Deepthi Nandakumar <deepthi@multicorewareinc.com>
33042 * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/ratecontrol.cpp,
33043 source/encoder/ratecontrol.h:
33044 ratecontrol: move lastRceq and qpaRc to RateControlEntry().
33047 * doc/LookaheadGuide.txt, doc/LookaheadPlan.txt:
33051 * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/frameencoder.h,
33052 source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
33053 ratecontrol: rateControlEntry is now a member of FrameEncoder.
33056 2013-09-09 Steve Borho <steve@borho.org>
33058 * doc/LookaheadGuide.txt, doc/LookaheadPlan.txt:
33059 doc: remove obsolete planning docs
33062 * source/encoder/slicetype.cpp:
33063 slicetype: enable lookahead by default. --b-adapt 0 or --rc-
33064 lookahead 0 disables
33067 * source/x265opts.h:
33068 cli: add --b-adapt CLI option
33071 2013-09-08 Min Chen <chenm003@163.com>
33073 * source/encoder/framefilter.cpp:
33074 support diable both thread and lft/sao
33077 * source/encoder/frameencoder.cpp:
33078 support both diable thread and lft/sao
33081 * source/encoder/framefilter.cpp, source/encoder/framefilter.h:
33082 simplify by processRowPost()
33085 2013-09-07 Steve Borho <steve@borho.org>
33087 * source/encoder/motion.cpp:
33088 motion: subpel offsets table needs a 'no-motion' entry
33091 * source/Lib/TLibEncoder/TEncSearch.cpp,
33092 source/Lib/TLibEncoder/TEncSearch.h:
33093 TEncSearch: remove unused m_searchRange
33096 * source/Lib/TLibEncoder/TEncSearch.cpp,
33097 source/Lib/TLibEncoder/TEncSearch.h:
33098 TEncSearch: remove unused m_searchMethod
33101 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/common.cpp,
33102 source/encoder/motion.cpp, source/encoder/motion.h,
33103 source/encoder/slicetype.cpp, source/x265.cpp, source/x265.h,
33105 api: add -m/--subme to adjust level of subpel refine
33107 This is very similar to x264, but ours has no effect on RD analysis,
33108 it only affects the amount of HPEL and QPEL refinement for motion
33112 * source/Lib/TLibCommon/TComPic.h, source/Lib/TLibEncoder/TEncTop.cpp,
33113 source/x265.cpp, source/x265.h:
33114 api: pass through a void* user data pointer through the encoder
33117 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
33118 source/encoder/cturow.h, source/encoder/frameencoder.cpp:
33119 cturow: move completed column counter back into CTURow class (from
33124 cli: initialize input picture slice type
33127 * source/Lib/TLibEncoder/TEncTop.h:
33128 TEncTop: remove dead meathod declaration
33131 * source/Lib/TLibEncoder/TEncTop.cpp:
33132 TEncTop: prevent deadlocks on CTRL+C aborts
33135 * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/slicetype.cpp,
33136 source/encoder/slicetype.h:
33137 lookahead: do not leak pictures left in lookahead queues on abort
33140 * source/Lib/TLibCommon/TComSlice.cpp,
33141 source/Lib/TLibCommon/TComSlice.h, source/encoder/frameencoder.cpp:
33142 TComSlice: remove unused lambda variables
33145 * source/encoder/frameencoder.cpp:
33146 frameencoder: use a more refined depth for SAO
33149 * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
33150 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
33151 source/encoder/frameencoder.cpp:
33155 * source/Lib/TLibCommon/TComSlice.cpp,
33156 source/Lib/TLibCommon/TComSlice.h,
33157 source/Lib/TLibEncoder/TEncSearch.cpp,
33158 source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/frameencoder.cpp:
33159 slice: finally remove slice 'depth' parameter, use slice type to
33162 Instead of relying on a fixed depth cadence, apply all the high-
33163 depth hacks to only B slices.
33166 * source/encoder/encoder.cpp:
33167 log: concise is almost always better
33170 * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp:
33171 TEncSampleAdaptiveOffset: remove hungarian prefixes
33174 * source/encoder/frameencoder.cpp:
33175 frameencoder: update a TODO comment
33178 * source/encoder/compress.cpp:
33179 compress: enable SSD based merge decisions for --no-rdo path
33182 * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp:
33186 2013-09-07 Aarthi Thirumalai <aarthi@multicorewareinc.com>
33188 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
33189 source/encoder/compress.cpp:
33190 TEncCu: optimized merge routine xcomputeCostmerge2x2N
33193 2013-09-07 Steve Borho <steve@borho.org>
33195 * source/common/common.cpp, source/encoder/encoder.cpp:
33196 log: combine all threading info into one log line
33199 2013-09-07 Min Chen <chenm003@163.com>
33201 * source/encoder/encoder.cpp, source/encoder/frameencoder.cpp,
33202 source/encoder/framefilter.cpp:
33203 framepp: Support NO-WPP + FrameParallelism Mode
33206 * source/Lib/TLibEncoder/TEncBinCoderCABAC.h,
33207 source/Lib/TLibEncoder/TEncSbac.h, source/encoder/frameencoder.cpp,
33208 source/encoder/framefilter.cpp, source/encoder/framefilter.h:
33209 framepp: let sao use own context
33212 2013-09-07 Steve Borho <steve@borho.org>
33214 * source/Lib/TLibEncoder/TEncSearch.cpp,
33215 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
33216 frameencoder: remove broadcast methods, inline row initializations
33219 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
33220 frameencoder: remove unused accessor methods, inline scaling list
33224 * source/encoder/frameencoder.h:
33225 frameencoder: remove unused accessor methods
33228 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
33229 frameencoder: inline resetEncoder
33232 * source/encoder/frameencoder.h:
33233 frameencoder: improve comments
33236 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
33240 * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/frameencoder.cpp,
33241 source/encoder/frameencoder.h:
33242 frameencoder: move lambda initialization into the frame worker
33246 * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/dpb.cpp,
33247 source/encoder/dpb.h:
33248 dpb: we don't need to pass the FrameEncoder to DPB::prepareEncode()
33251 * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/ratecontrol.cpp,
33252 source/encoder/ratecontrol.h:
33253 ratecontrol: avoid lookahead overhead for CQP
33256 * source/encoder/ratecontrol.cpp:
33257 ratecontrol: avoid some operations in CQP mode
33260 * source/encoder/ratecontrol.cpp:
33261 ratecontrol: remove redundant clip and double conversions
33264 2013-09-07 Aarthi Thirumalai <aarthi@multicorewareinc.com>
33266 * source/encoder/ratecontrol.cpp:
33267 ratecontrol: bug fix - qp for ABR cant exceed MAX_QP = 51
33270 2013-09-06 Steve Borho <steve@borho.org>
33272 * source/Lib/TLibEncoder/TEncTop.cpp:
33273 TEncTop: lookAheadCost is a somewhat confusing variable name
33277 cli: assign poc on input pictures (ignored by encoder, but good
33281 * source/common/vec/vec-primitives.cpp:
33282 vec: simplify externs, fix MSVC compiler version dependencies
33285 * source/Lib/TLibEncoder/TEncCfg.h,
33286 source/Lib/TLibEncoder/TEncTop.cpp:
33287 TEncCfg: use param.decodedPictureHashSEI directly without accessor
33290 * source/Lib/TLibEncoder/TEncCfg.h, source/x265.h, source/x265opts.h:
33291 api: rename bEnableDecodedPictureHashSEI (not a bool)
33294 * source/Lib/TLibEncoder/TEncTop.cpp, source/x265.h:
33295 api: add sliceType to output pictures
33298 * source/common/lowres.h, source/x265.h:
33299 api: move slice type macros to public API
33307 x265: print unrecognized short options as char instead of hex
33311 x265: emit a warning message if a short option is invalid
33315 x265: remove -w short option for disabled weightp command
33318 2013-09-06 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
33320 * source/encoder/slicetype.cpp:
33321 slicetype: Handle Bframes immediately preceding an IDR correctly.
33324 * source/common/lowres.cpp, source/common/lowres.h,
33325 source/encoder/dpb.cpp, source/encoder/dpb.h,
33326 source/encoder/slicetype.cpp:
33327 Set all I frames as keyframes, change nalunittype decision
33331 * source/encoder/slicetype.cpp:
33332 slicetype: uncrustified
33335 * source/encoder/slicetype.cpp:
33336 slicetype: B-frames analysis integrated
33339 * source/encoder/slicetype.cpp:
33340 slicetype: Remove unnecessary initialization
33343 2013-09-06 Min Chen <chenm003@163.com>
33345 * source/common/vec/ipfilter8.inc, source/test/ipfilterharness.cpp:
33346 review: improvement filterVertical_p_p and filterHorizontal_p_p
33349 2013-09-06 Steve Borho <steve@borho.org>
33351 * source/CMakeLists.txt:
33352 cmake: MSVC does not understand -fPIC
33355 2013-09-06 Rafaël Carré <funman@videolan.org>
33357 * source/CMakeLists.txt, source/cmake/CMakeASM_YASMInformation.cmake:
33358 Always use -DPIC/-fPIC when targetting x64
33360 Fix link failure when making a shared object on Linux
33363 2013-09-06 Steve Borho <steve@borho.org>
33365 * source/encoder/slicetype.cpp:
33369 2013-09-06 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
33371 * source/common/lowres.cpp, source/encoder/slicetype.cpp:
33372 Scenecut detection functional with no bframes
33375 2013-09-05 Steve Borho <steve@borho.org>
33377 * source/Lib/TLibCommon/TComDataCU.cpp,
33378 source/Lib/TLibCommon/TComDataCU.h,
33379 source/Lib/TLibEncoder/TEncSearch.cpp,
33380 source/Lib/TLibEncoder/TEncSearch.h,
33381 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
33382 TEncSearch: clip mvmax by a fixed ammount for frame parallelism
33384 When frame parallelism is enabled, we enforce at least merange +
33385 interpolation half-length of reconstructed reference pixels to be
33386 available in all reference frames before allowing the encoder to
33387 begin compressing a given row. So we cannot allow the motion search
33388 to extend beyond merange past the colocated ref block (regardless of
33389 the MVP search starting location).
33391 We can't use the actual number of rows available because this
33392 results in non- determinism.
33396 ppa: use scoped PPA event for writeNALs
33400 x265: remove redundant help output line
33403 * source/encoder/frameencoder.cpp:
33404 frameencoder: poke idle thread after enabling a row
33406 This ensures at least one worker thread sees the state transition
33409 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/bitcost.cpp,
33410 source/encoder/bitcost.h, source/encoder/slicetype.cpp:
33411 bitcost: always use non-I lambda table to seed bitcost table
33414 * source/encoder/frameencoder.cpp:
33418 2013-09-03 Steve Borho <steve@borho.org>
33420 * source/encoder/frameencoder.cpp:
33421 frameencoder: start encoding CU rows once minimum reference row lag
33425 2013-09-05 Steve Borho <steve@borho.org>
33427 * source/encoder/encoder.cpp:
33428 encoder: declare destructor virtual
33431 * source/Lib/TLibEncoder/TEncTop.h:
33435 * source/Lib/TLibEncoder/TEncTop.cpp,
33436 source/Lib/TLibEncoder/TEncTop.h:
33437 TEncTop: statistics lock was no longer necessary, always runs in API
33441 * source/Lib/TLibEncoder/TEncTop.h:
33445 2013-09-06 Aarthi Thirumalai <aarthi@multicorewareinc.com>
33447 * source/encoder/ratecontrol.cpp:
33448 tighten rate control logic for ABR
33451 2013-09-05 Min Chen <chenm003@163.com>
33453 * source/Lib/TLibCommon/TComDataCU.cpp,
33454 source/Lib/TLibCommon/TComDataCU.h,
33455 source/Lib/TLibCommon/TComMotionInfo.cpp,
33456 source/Lib/TLibCommon/TComMotionInfo.h,
33457 source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
33458 source/encoder/framefilter.cpp:
33459 improvement: replace compressMV by index mapping
33462 * source/Lib/TLibCommon/TComDataCU.cpp,
33463 source/Lib/TLibCommon/TComDataCU.h,
33464 source/Lib/TLibCommon/TComMotionInfo.cpp,
33465 source/Lib/TLibCommon/TComMotionInfo.h,
33466 source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp:
33467 framepp: move compressMV into loop
33470 2013-09-05 Gopu Govindaswamy <gopu@multicorewareinc.com>
33472 * source/Lib/TLibCommon/SEI.h, source/Lib/TLibEncoder/SEIwrite.cpp,
33473 source/encoder/frameencoder.cpp:
33474 SEI: Replaced STL Classes
33477 * source/encoder/encoder.cpp:
33478 encoder: Added pad size in Malloc
33481 2013-09-05 Deepthi Nandakumar <deepthi@multicorewareinc.com>
33483 * source/common/common.cpp:
33484 common: keyframeMax should always be >=0
33487 * source/x265opts.h:
33488 bOpenGOP: remove option openGOP, we only support closed GOP now;
33492 * source/encoder/encoder.cpp:
33493 bOpenGOP: Open GOP has nothing to do with keyframe interval
33497 bOpenGOP: clarify in comment
33500 2013-09-05 Steve Borho <steve@borho.org>
33502 * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/frameencoder.cpp:
33503 TEncTop: hoist compressFrame trigger back into encode() function
33506 * source/Lib/TLibEncoder/TEncTop.cpp,
33507 source/Lib/TLibEncoder/TEncTop.h, source/encoder/frameencoder.cpp,
33508 source/encoder/frameencoder.h:
33509 frameencoder: set QP and lambda on the correct FrameEncoder
33512 * source/Lib/TLibEncoder/TEncTop.cpp:
33513 TEncTop: hold a reference for frames connected to FrameEncoders
33516 * source/encoder/encoder.cpp:
33517 encoder: uncrustify
33520 2013-09-05 Gopu Govindaswamy <gopu@multicorewareinc.com>
33522 * source/encoder/encoder.cpp:
33523 Encoder: removed STL Container classes
33526 2013-09-05 Min Chen <chenm003@163.com>
33528 * doc/intra/T16.TXT, doc/intra/T32.TXT, doc/intra/T4.TXT,
33529 doc/intra/T8.TXT, source/common/vec/intrapred.inc:
33530 doc: intra all angles algorithm
33533 2013-09-05 Steve Borho <steve@borho.org>
33535 * source/encoder/slicetype.cpp:
33536 slicetype: handle odd keyframe intervals better
33539 2013-09-05 Gopu Govindaswamy <gopu@multicorewareinc.com>
33542 x265Cli: Removed std::string in log
33545 2013-09-05 Steve Borho <steve@borho.org>
33547 * source/PPA/ppaCPUEvents.h, source/encoder/frameencoder.cpp:
33548 ppa: measure a different FrameEncoder method
33551 2013-09-04 Steve Borho <steve@borho.org>
33553 * source/common/common.cpp, source/encoder/encoder.cpp,
33555 encoder: make rate control mode implicit from other configs
33558 * source/Lib/TLibEncoder/TEncCfg.h, source/encoder/dpb.cpp,
33559 source/encoder/encoder.cpp:
33560 TEncCfg: remove fixed GOP structures
33563 * source/Lib/TLibEncoder/TEncTop.cpp:
33564 TEncTop: require --log 4 to dump hash strings
33566 I don't see them being useful for display except for regression
33570 * source/encoder/dpb.cpp:
33571 dpb: do not use fixed GOP cadence to select colocated direction
33574 * source/Lib/TLibEncoder/TEncCfg.h, source/encoder/encoder.cpp:
33575 TEncCfg: remove unused dQP table
33578 * source/Lib/TLibEncoder/TEncCfg.h, source/encoder/encoder.cpp:
33579 TEncCfg: remove obsolete configurables
33582 * source/encoder/dpb.cpp:
33586 * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/frameencoder.cpp,
33587 source/encoder/ratecontrol.cpp:
33588 do not configure QP and lambda twice
33591 * source/encoder/ratecontrol.cpp:
33592 ratecontrol: assign qp correctly
33595 * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/ratecontrol.cpp,
33596 source/encoder/ratecontrol.h:
33597 ratecontrol: move CQP support into our code
33600 * source/encoder/frameencoder.cpp:
33601 FrameEncoder: remove min gop size from depth calculation
33604 * source/Lib/TLibEncoder/TEncTop.cpp:
33605 TEncTop: hard code setNumRefIdxL0DefaultActive() and L1 default
33607 This was failing in debug with -i1
33610 * source/Lib/TLibEncoder/TEncTop.cpp, source/common/lowres.h,
33611 source/encoder/dpb.cpp, source/encoder/frameencoder.cpp,
33612 source/encoder/frameencoder.h, source/encoder/slicetype.cpp:
33613 slicetype: remove gopIdx from lookahead output, simplify fake
33616 CQP uses a simple offset for non-I slices (temporary hack)
33619 * source/Lib/TLibEncoder/TEncCu.cpp,
33620 source/Lib/TLibEncoder/TEncEntropy.cpp,
33621 source/Lib/TLibEncoder/TEncEntropy.h,
33622 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
33623 source/encoder/compress.cpp, source/encoder/frameencoder.cpp:
33624 TEncEntropy: remove hungarian prefixes
33627 * source/Lib/TLibEncoder/TEncTop.cpp:
33628 TEncTop: remove hungarian prefixes from function arguments
33631 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
33632 FrameEncoder: stop passing pic pointer to methods, use m_pic
33635 * source/encoder/frameencoder.cpp:
33636 FrameEncoder: remove extra white-space
33639 * source/Lib/TLibEncoder/TEncTop.cpp:
33640 TEncTop: remove trailing white-space
33643 * source/Lib/TLibEncoder/SyntaxElementWriter.cpp:
33644 SEI: remove hungarian prefixes
33647 * source/Lib/TLibCommon/TComSlice.cpp:
33648 TComSlice: missed deletion
33651 2013-09-04 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
33653 * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/dpb.cpp,
33654 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
33655 source/encoder/slicetype.cpp:
33656 using slicetypes from lookahead
33659 2013-09-04 Min Chen <chenm003@163.com>
33661 * source/encoder/framefilter.cpp:
33662 Fix bug in PCM mode
33665 2013-09-04 Gopu Govindaswamy <gopu@multicorewareinc.com>
33667 * source/Lib/TLibCommon/TComSlice.h, source/encoder/frameencoder.cpp:
33668 TComSlice : Removed Unused std::vector Variable
33671 2013-09-04 Steve Borho <steve@borho.org>
33673 * source/common/common.cpp:
33674 common: replace std::string with const char *
33677 * source/CMakeLists.txt:
33678 cmake: make -Werror on GCC a build option defaulting to off
33680 It can be enabled on build-bots, etc, but not block typical
33684 * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/frameencoder.cpp:
33688 2013-09-04 sumalatha <sumalatha>
33690 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
33691 source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/frameencoder.cpp:
33692 QP- Lambda table -x265_lambda2_tab_I , x265_lambda2_tab_non_ I : for
33693 inter and intra blocks
33696 2013-09-04 Deepthi Nandakumar <deepthi@multicorewareinc.com>
33698 * source/encoder/dpb.cpp:
33699 dpb: encode structure limitations
33701 Min GOP size for IP config is 4, for B frames it is 8. Keyframe
33702 interval should be a multiple of min GOP size.
33705 * source/Lib/TLibEncoder/TEncCfg.h,
33706 source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/dpb.cpp,
33707 source/encoder/frameencoder.cpp, source/encoder/slicetype.cpp:
33708 TEncCfg: rename getGopSize to getGopSizeMin()
33711 * source/Lib/TLibEncoder/TEncCfg.h, source/encoder/dpb.cpp,
33712 source/encoder/encoder.cpp:
33713 dpb: rename m_gopsize in TEncCfg.h to gopsizeMin
33716 * source/common/common.cpp:
33717 framepp: number of frame threads always less than lookahead depth
33720 2013-09-04 Steve Borho <steve@borho.org>
33722 * source/Lib/TLibCommon/TypeDef.h:
33723 TypeDef: give explicit namespace to X265_DEPTH for 16bpp builds
33726 2013-09-03 Steve Borho <steve@borho.org>
33728 * source/common/common.cpp:
33729 common: prune default search length to 60, for optimal frame
33733 * source/encoder/frameencoder.cpp:
33734 frameencoder: clear enabled row bitmask at the start of each frame
33737 * source/common/wavefront.cpp, source/common/wavefront.h:
33738 wavefront: add a method to clear the enabled bitmask
33741 * source/encoder/frameencoder.cpp:
33742 frameencoder: remove TODO comment, it was already done
33745 * source/Lib/TLibCommon/TComPrediction.cpp:
33746 TComPrediction: use pre-allocated temp buffer for weighted and
33750 * source/Lib/TLibCommon/TComDataCU.h,
33751 source/Lib/TLibCommon/TComMotionInfo.h,
33752 source/Lib/TLibCommon/TComPic.h,
33753 source/Lib/TLibCommon/TComPicYuv.cpp,
33754 source/Lib/TLibCommon/TComPicYuv.h,
33755 source/Lib/TLibCommon/TComPrediction.cpp,
33756 source/Lib/TLibCommon/TComPrediction.h,
33757 source/Lib/TLibCommon/TComSlice.h,
33758 source/Lib/TLibCommon/TComTrQuant.cpp,
33759 source/Lib/TLibCommon/TComWeightPrediction.cpp,
33760 source/Lib/TLibCommon/TComYuv.cpp,
33761 source/Lib/TLibEncoder/TEncSearch.cpp,
33762 source/Lib/TLibEncoder/TEncSearch.h,
33763 source/Lib/TLibEncoder/TEncTop.cpp,
33764 source/Lib/TLibEncoder/TEncTop.h, source/common/lowres.cpp,
33765 source/common/primitives.cpp, source/common/vec/blockcopy.inc,
33766 source/common/x86/asm-primitives.cpp, source/encoder/compress.cpp,
33767 source/encoder/dpb.cpp, source/encoder/dpb.h,
33768 source/encoder/encoder.cpp, source/encoder/frameencoder.h,
33769 source/encoder/slicetype.cpp, source/test/intrapredharness.cpp,
33770 source/test/intrapredharness.h, source/test/ipfilterharness.cpp,
33771 source/test/ipfilterharness.h, source/test/mbdstharness.h,
33772 source/test/pixelharness.cpp, source/test/pixelharness.h,
33773 source/test/testharness.h, source/x265.cpp:
33774 remove redundant x265 namespace qualifiers
33777 * source/Lib/TLibCommon/TComDataCU.cpp:
33781 * source/Lib/TLibCommon/TComDataCU.cpp,
33782 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
33783 source/Lib/TLibCommon/TComSlice.cpp,
33784 source/Lib/TLibCommon/TComTrQuant.cpp,
33785 source/Lib/TLibEncoder/TEncCavlc.cpp,
33786 source/Lib/TLibEncoder/TEncEntropy.cpp,
33787 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
33788 source/Lib/TLibEncoder/TEncSbac.cpp,
33789 source/Lib/TLibEncoder/TEncSearch.cpp,
33790 source/encoder/frameencoder.cpp:
33791 use X265_MIN/X265_MAX to avoid GCC warnings
33794 * source/Lib/TLibEncoder/TEncAnalyze.h,
33795 source/Lib/TLibEncoder/TEncCu.cpp,
33796 source/Lib/TLibEncoder/TEncTop.cpp:
33797 TEncAnalyze: cleanup hungarian notation and other issues
33801 COPYING: add a mention to our available commercial license
33804 * source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/SEI.h,
33805 source/Lib/TLibCommon/TComDataCU.cpp,
33806 source/Lib/TLibCommon/TComDataCU.h,
33807 source/Lib/TLibCommon/TComLoopFilter.cpp,
33808 source/Lib/TLibCommon/TComLoopFilter.h,
33809 source/Lib/TLibCommon/TComPattern.cpp,
33810 source/Lib/TLibCommon/TComPattern.h,
33811 source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
33812 source/Lib/TLibCommon/TComPicYuv.cpp,
33813 source/Lib/TLibCommon/TComPicYuv.h,
33814 source/Lib/TLibCommon/TComPrediction.cpp,
33815 source/Lib/TLibCommon/TComPrediction.h,
33816 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
33817 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
33818 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
33819 source/Lib/TLibCommon/TComSlice.cpp,
33820 source/Lib/TLibCommon/TComSlice.h,
33821 source/Lib/TLibCommon/TComTrQuant.cpp,
33822 source/Lib/TLibCommon/TComTrQuant.h,
33823 source/Lib/TLibCommon/TComWeightPrediction.cpp,
33824 source/Lib/TLibCommon/TComWeightPrediction.h,
33825 source/Lib/TLibCommon/TypeDef.h,
33826 source/Lib/TLibEncoder/SEIwrite.cpp,
33827 source/Lib/TLibEncoder/TEncBinCoderCABAC.h,
33828 source/Lib/TLibEncoder/TEncCavlc.cpp,
33829 source/Lib/TLibEncoder/TEncCavlc.h,
33830 source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp,
33831 source/Lib/TLibEncoder/TEncCu.h,
33832 source/Lib/TLibEncoder/TEncEntropy.cpp,
33833 source/Lib/TLibEncoder/TEncEntropy.h,
33834 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
33835 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
33836 source/Lib/TLibEncoder/TEncSbac.cpp,
33837 source/Lib/TLibEncoder/TEncSbac.h,
33838 source/Lib/TLibEncoder/TEncSearch.cpp,
33839 source/Lib/TLibEncoder/TEncSearch.h,
33840 source/Lib/TLibEncoder/TEncTop.cpp,
33841 source/Lib/TLibEncoder/TEncTop.h,
33842 source/Lib/TLibEncoder/WeightPredAnalysis.cpp,
33843 source/Lib/TLibEncoder/WeightPredAnalysis.h,
33844 source/encoder/compress.cpp, source/encoder/dpb.cpp,
33845 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
33846 source/encoder/framefilter.cpp, source/test/intrapredharness.cpp:
33847 reorg: replace HM's Bool typedef globally with C++ bool
33850 * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
33851 source/Lib/TLibCommon/TypeDef.h:
33852 reorg: replace HM's Float typedef globally with C float
33855 * source/Lib/TLibCommon/ContextModel3DBuffer.cpp,
33856 source/Lib/TLibCommon/TComRdCost.h,
33857 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
33858 source/Lib/TLibCommon/TComSlice.h,
33859 source/Lib/TLibCommon/TComTrQuant.cpp,
33860 source/Lib/TLibCommon/TComTrQuant.h,
33861 source/Lib/TLibCommon/TypeDef.h,
33862 source/Lib/TLibEncoder/TEncAnalyze.h,
33863 source/Lib/TLibEncoder/TEncCfg.h,
33864 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
33865 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
33866 source/Lib/TLibEncoder/TEncSearch.cpp,
33867 source/Lib/TLibEncoder/TEncSearch.h,
33868 source/Lib/TLibEncoder/TEncTop.cpp,
33869 source/Lib/TLibEncoder/TEncTop.h,
33870 source/Lib/TLibEncoder/WeightPredAnalysis.cpp,
33871 source/encoder/encoder.cpp, source/encoder/frameencoder.cpp:
33872 reorg: replace HM's Double typedef globally with C double
33875 * source/Lib/TLibCommon/ContextModel.cpp,
33876 source/Lib/TLibCommon/ContextModel.h,
33877 source/Lib/TLibCommon/ContextModel3DBuffer.cpp,
33878 source/Lib/TLibCommon/ContextModel3DBuffer.h,
33879 source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/SEI.h,
33880 source/Lib/TLibCommon/TComBitStream.cpp,
33881 source/Lib/TLibCommon/TComBitStream.h,
33882 source/Lib/TLibCommon/TComDataCU.cpp,
33883 source/Lib/TLibCommon/TComDataCU.h,
33884 source/Lib/TLibCommon/TComLoopFilter.cpp,
33885 source/Lib/TLibCommon/TComLoopFilter.h,
33886 source/Lib/TLibCommon/TComMotionInfo.cpp,
33887 source/Lib/TLibCommon/TComMotionInfo.h,
33888 source/Lib/TLibCommon/TComPattern.cpp,
33889 source/Lib/TLibCommon/TComPattern.h,
33890 source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
33891 source/Lib/TLibCommon/TComPicSym.cpp,
33892 source/Lib/TLibCommon/TComPicSym.h,
33893 source/Lib/TLibCommon/TComPicYuv.cpp,
33894 source/Lib/TLibCommon/TComPicYuv.h,
33895 source/Lib/TLibCommon/TComPrediction.cpp,
33896 source/Lib/TLibCommon/TComPrediction.h,
33897 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
33898 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
33899 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
33900 source/Lib/TLibCommon/TComSlice.cpp,
33901 source/Lib/TLibCommon/TComSlice.h,
33902 source/Lib/TLibCommon/TComTrQuant.cpp,
33903 source/Lib/TLibCommon/TComTrQuant.h,
33904 source/Lib/TLibCommon/TComWeightPrediction.cpp,
33905 source/Lib/TLibCommon/TComWeightPrediction.h,
33906 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
33907 source/Lib/TLibCommon/TypeDef.h,
33908 source/Lib/TLibEncoder/SEIwrite.cpp,
33909 source/Lib/TLibEncoder/SyntaxElementWriter.cpp,
33910 source/Lib/TLibEncoder/SyntaxElementWriter.h,
33911 source/Lib/TLibEncoder/TEncBinCoder.h,
33912 source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp,
33913 source/Lib/TLibEncoder/TEncBinCoderCABAC.h,
33914 source/Lib/TLibEncoder/TEncBinCoderCABACCounter.cpp,
33915 source/Lib/TLibEncoder/TEncBinCoderCABACCounter.h,
33916 source/Lib/TLibEncoder/TEncCavlc.cpp,
33917 source/Lib/TLibEncoder/TEncCavlc.h,
33918 source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp,
33919 source/Lib/TLibEncoder/TEncCu.h,
33920 source/Lib/TLibEncoder/TEncEntropy.cpp,
33921 source/Lib/TLibEncoder/TEncEntropy.h,
33922 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
33923 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
33924 source/Lib/TLibEncoder/TEncSbac.cpp,
33925 source/Lib/TLibEncoder/TEncSbac.h,
33926 source/Lib/TLibEncoder/TEncSearch.cpp,
33927 source/Lib/TLibEncoder/TEncSearch.h,
33928 source/Lib/TLibEncoder/TEncTop.cpp,
33929 source/Lib/TLibEncoder/TEncTop.h,
33930 source/Lib/TLibEncoder/WeightPredAnalysis.cpp,
33931 source/Lib/TLibEncoder/WeightPredAnalysis.h,
33932 source/common/TShortYUV.h, source/common/dct.cpp,
33933 source/common/ipfilter.cpp, source/common/lowres.cpp,
33934 source/common/vec/dct.inc, source/encoder/compress.cpp,
33935 source/encoder/cturow.cpp, source/encoder/dpb.cpp,
33936 source/encoder/dpb.h, source/encoder/encoder.cpp,
33937 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
33938 source/encoder/slicetype.cpp:
33939 reorg: replace HM's Int typedef globally with C int
33942 * source/Lib/TLibCommon/ContextModel.h,
33943 source/Lib/TLibCommon/TComLoopFilter.cpp,
33944 source/Lib/TLibCommon/TComPrediction.cpp,
33945 source/Lib/TLibCommon/TComPrediction.h,
33946 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
33947 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
33948 source/Lib/TLibCommon/TComTrQuant.cpp,
33949 source/Lib/TLibCommon/TComTrQuant.h,
33950 source/Lib/TLibCommon/TComWeightPrediction.cpp,
33951 source/Lib/TLibCommon/TComYuv.cpp,
33952 source/Lib/TLibEncoder/TEncSearch.cpp,
33953 source/Lib/TLibEncoder/TEncSearch.h, source/common/TShortYUV.cpp,
33954 source/common/dct.cpp, source/common/vec/dct.inc,
33955 source/encoder/slicetype.cpp:
33956 reorg: replace HM's Short typedef globally with C short
33959 * source/Lib/TLibCommon/TComBitStream.cpp,
33960 source/Lib/TLibCommon/TComBitStream.h,
33961 source/Lib/TLibCommon/TComDataCU.cpp,
33962 source/Lib/TLibCommon/TComDataCU.h,
33963 source/Lib/TLibCommon/TComMotionInfo.cpp,
33964 source/Lib/TLibCommon/TComMotionInfo.h,
33965 source/Lib/TLibCommon/TComPicYuv.cpp,
33966 source/Lib/TLibCommon/TComPicYuv.h,
33967 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
33968 source/Lib/TLibCommon/TComSlice.cpp,
33969 source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TypeDef.h,
33970 source/Lib/TLibEncoder/NALwrite.cpp,
33971 source/Lib/TLibEncoder/SyntaxElementWriter.cpp,
33972 source/Lib/TLibEncoder/SyntaxElementWriter.h,
33973 source/Lib/TLibEncoder/TEncAnalyze.h,
33974 source/Lib/TLibEncoder/TEncCavlc.cpp,
33975 source/Lib/TLibEncoder/TEncCavlc.h,
33976 source/Lib/TLibEncoder/TEncCfg.h,
33977 source/Lib/TLibEncoder/TEncEntropy.h,
33978 source/Lib/TLibEncoder/TEncSbac.h,
33979 source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp:
33980 reorg: replace HM's Char typedef globally with C char
33983 * source/Lib/TLibCommon/ContextModel.cpp,
33984 source/Lib/TLibCommon/ContextModel.h,
33985 source/Lib/TLibCommon/ContextModel3DBuffer.cpp,
33986 source/Lib/TLibCommon/ContextModel3DBuffer.h,
33987 source/Lib/TLibCommon/SEI.cpp, source/Lib/TLibCommon/SEI.h,
33988 source/Lib/TLibCommon/TComBitCounter.h,
33989 source/Lib/TLibCommon/TComBitStream.cpp,
33990 source/Lib/TLibCommon/TComBitStream.h,
33991 source/Lib/TLibCommon/TComDataCU.cpp,
33992 source/Lib/TLibCommon/TComDataCU.h,
33993 source/Lib/TLibCommon/TComList.h,
33994 source/Lib/TLibCommon/TComLoopFilter.cpp,
33995 source/Lib/TLibCommon/TComLoopFilter.h,
33996 source/Lib/TLibCommon/TComMotionInfo.cpp,
33997 source/Lib/TLibCommon/TComMotionInfo.h,
33998 source/Lib/TLibCommon/TComPattern.cpp,
33999 source/Lib/TLibCommon/TComPattern.h,
34000 source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
34001 source/Lib/TLibCommon/TComPicSym.cpp,
34002 source/Lib/TLibCommon/TComPicSym.h,
34003 source/Lib/TLibCommon/TComPicYuv.cpp,
34004 source/Lib/TLibCommon/TComPicYuv.h,
34005 source/Lib/TLibCommon/TComPrediction.cpp,
34006 source/Lib/TLibCommon/TComPrediction.h,
34007 source/Lib/TLibCommon/TComRdCost.h,
34008 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
34009 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
34010 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
34011 source/Lib/TLibCommon/TComSlice.cpp,
34012 source/Lib/TLibCommon/TComSlice.h,
34013 source/Lib/TLibCommon/TComTrQuant.cpp,
34014 source/Lib/TLibCommon/TComTrQuant.h,
34015 source/Lib/TLibCommon/TComWeightPrediction.cpp,
34016 source/Lib/TLibCommon/TComWeightPrediction.h,
34017 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
34018 source/Lib/TLibCommon/TypeDef.h,
34019 source/Lib/TLibEncoder/NALwrite.cpp,
34020 source/Lib/TLibEncoder/SEIwrite.cpp,
34021 source/Lib/TLibEncoder/SEIwrite.h,
34022 source/Lib/TLibEncoder/SyntaxElementWriter.cpp,
34023 source/Lib/TLibEncoder/SyntaxElementWriter.h,
34024 source/Lib/TLibEncoder/TEncAnalyze.h,
34025 source/Lib/TLibEncoder/TEncBinCoder.h,
34026 source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp,
34027 source/Lib/TLibEncoder/TEncBinCoderCABAC.h,
34028 source/Lib/TLibEncoder/TEncBinCoderCABACCounter.cpp,
34029 source/Lib/TLibEncoder/TEncBinCoderCABACCounter.h,
34030 source/Lib/TLibEncoder/TEncCavlc.cpp,
34031 source/Lib/TLibEncoder/TEncCavlc.h,
34032 source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp,
34033 source/Lib/TLibEncoder/TEncCu.h,
34034 source/Lib/TLibEncoder/TEncEntropy.cpp,
34035 source/Lib/TLibEncoder/TEncEntropy.h,
34036 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
34037 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
34038 source/Lib/TLibEncoder/TEncSbac.cpp,
34039 source/Lib/TLibEncoder/TEncSbac.h,
34040 source/Lib/TLibEncoder/TEncSearch.cpp,
34041 source/Lib/TLibEncoder/TEncSearch.h,
34042 source/Lib/TLibEncoder/TEncTop.cpp,
34043 source/Lib/TLibEncoder/TEncTop.h,
34044 source/Lib/TLibEncoder/WeightPredAnalysis.cpp,
34045 source/Lib/TLibEncoder/WeightPredAnalysis.h,
34046 source/common/TShortYUV.cpp, source/encoder/compress.cpp,
34047 source/encoder/dpb.cpp, source/encoder/dpb.h,
34048 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
34049 reorg: replace HM's Void typedef globally with C void
34052 * source/Lib/TLibCommon/TComCABACTables.cpp,
34053 source/Lib/TLibCommon/TComCABACTables.h,
34054 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
34055 source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp,
34056 source/Lib/TLibEncoder/TEncBinCoderCABAC.h:
34057 merge statically defined CABAC constant tables into TComRom
34060 * source/Lib/TLibEncoder/AnnexBwrite.h:
34061 remove unused AnnexBwrite.h
34064 * source/Lib/TLibCommon/AccessUnit.h,
34065 source/Lib/TLibCommon/ContextModel.cpp,
34066 source/Lib/TLibCommon/ContextModel.h,
34067 source/Lib/TLibCommon/ContextModel3DBuffer.cpp,
34068 source/Lib/TLibCommon/ContextModel3DBuffer.h,
34069 source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibCommon/NAL.h,
34070 source/Lib/TLibCommon/SEI.cpp, source/Lib/TLibCommon/SEI.h,
34071 source/Lib/TLibCommon/TComBitCounter.h,
34072 source/Lib/TLibCommon/TComBitStream.cpp,
34073 source/Lib/TLibCommon/TComBitStream.h,
34074 source/Lib/TLibCommon/TComCABACTables.cpp,
34075 source/Lib/TLibCommon/TComCABACTables.h,
34076 source/Lib/TLibCommon/TComDataCU.cpp,
34077 source/Lib/TLibCommon/TComDataCU.h,
34078 source/Lib/TLibCommon/TComList.h,
34079 source/Lib/TLibCommon/TComLoopFilter.h,
34080 source/Lib/TLibCommon/TComMotionInfo.h,
34081 source/Lib/TLibCommon/TComPattern.cpp,
34082 source/Lib/TLibCommon/TComPattern.h,
34083 source/Lib/TLibCommon/TComPic.h,
34084 source/Lib/TLibCommon/TComPicSym.cpp,
34085 source/Lib/TLibCommon/TComPicSym.h,
34086 source/Lib/TLibCommon/TComPicYuv.h,
34087 source/Lib/TLibCommon/TComPicYuvMD5.cpp,
34088 source/Lib/TLibCommon/TComPrediction.cpp,
34089 source/Lib/TLibCommon/TComPrediction.h,
34090 source/Lib/TLibCommon/TComRdCost.h,
34091 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
34092 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
34093 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
34094 source/Lib/TLibCommon/TComSlice.cpp,
34095 source/Lib/TLibCommon/TComSlice.h,
34096 source/Lib/TLibCommon/TComTrQuant.cpp,
34097 source/Lib/TLibCommon/TComTrQuant.h,
34098 source/Lib/TLibCommon/TComWeightPrediction.cpp,
34099 source/Lib/TLibCommon/TComWeightPrediction.h,
34100 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
34101 source/Lib/TLibCommon/TypeDef.h,
34102 source/Lib/TLibEncoder/NALwrite.cpp,
34103 source/Lib/TLibEncoder/NALwrite.h,
34104 source/Lib/TLibEncoder/SEIwrite.cpp,
34105 source/Lib/TLibEncoder/SEIwrite.h,
34106 source/Lib/TLibEncoder/SyntaxElementWriter.cpp,
34107 source/Lib/TLibEncoder/SyntaxElementWriter.h,
34108 source/Lib/TLibEncoder/TEncAnalyze.h,
34109 source/Lib/TLibEncoder/TEncBinCoder.h,
34110 source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp,
34111 source/Lib/TLibEncoder/TEncBinCoderCABAC.h,
34112 source/Lib/TLibEncoder/TEncBinCoderCABACCounter.cpp,
34113 source/Lib/TLibEncoder/TEncBinCoderCABACCounter.h,
34114 source/Lib/TLibEncoder/TEncCavlc.cpp,
34115 source/Lib/TLibEncoder/TEncCavlc.h,
34116 source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.h,
34117 source/Lib/TLibEncoder/TEncEntropy.cpp,
34118 source/Lib/TLibEncoder/TEncEntropy.h,
34119 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
34120 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
34121 source/Lib/TLibEncoder/TEncSbac.cpp,
34122 source/Lib/TLibEncoder/TEncSbac.h,
34123 source/Lib/TLibEncoder/TEncSearch.h,
34124 source/Lib/TLibEncoder/TEncTop.h,
34125 source/Lib/TLibEncoder/WeightPredAnalysis.cpp,
34126 source/Lib/TLibEncoder/WeightPredAnalysis.h,
34127 source/common/TShortYUV.cpp, source/common/TShortYUV.h,
34128 source/common/common.cpp, source/common/dct.cpp,
34129 source/common/intrapred.cpp, source/common/ipfilter.cpp,
34130 source/common/lowres.h, source/common/pixel.cpp,
34131 source/common/primitives.cpp, source/common/reference.h,
34132 source/common/vec/dct.inc, source/common/vec/intrapred.inc,
34133 source/common/vec/ipfilter8.inc, source/encoder/cturow.h,
34134 source/encoder/dpb.h, source/encoder/frameencoder.h,
34135 source/encoder/framefilter.h, source/encoder/ratecontrol.h,
34136 source/encoder/slicetype.h:
34137 reorg: move HM classes and functions under x265 namespace
34139 This makes it possible to link x265 and HM into a single application
34142 2013-09-03 Gopu Govindaswamy <gopu@multicorewareinc.com>
34144 * source/common/ipfilter.cpp:
34145 ipfilter : extendCURowColBorder() performance tuning
34148 2013-09-03 praveen Tiwari <praveen Tiwari>
34150 * source/common/vec/pixel8.inc:
34151 pixel8.inc: VC9 fix for SAD_4, 'pextrd' replaced with 'movd'
34154 2013-09-03 Steve Borho <steve@borho.org>
34156 * source/common/common.cpp:
34160 * source/common/common.cpp, source/common/wavefront.cpp,
34161 source/encoder/dpb.h, source/encoder/frameencoder.cpp,
34162 source/encoder/frameencoder.h, source/encoder/framefilter.cpp,
34163 source/encoder/framefilter.h, source/encoder/slicetype.h:
34167 * source/common/vec/pixel8.inc:
34168 pixel8: sad_x4_16 improvements
34171 * source/common/vec/pixel8.inc:
34172 pixel8: sad_x4_4 improvements
34175 * source/common/vec/pixel8.inc:
34176 pixel8: sad_x3_16 improvements
34179 * source/common/vec/pixel8.inc:
34180 pixel8: sad_x3_8 improvements
34183 * source/common/vec/pixel8.inc:
34184 pixel8: sad_x3_4 improvements
34187 * source/encoder/frameencoder.cpp:
34188 frameencoder: fix initialization order
34191 * source/encoder/slicetype.cpp:
34192 slicetype: fix unsigned/signed comparison
34195 * source/common/lowres.h, source/encoder/slicetype.h:
34196 lowres: move slice type defines into common/
34198 headers in common/ should not include encoder/ headers
34201 2013-09-03 Deepthi Nandakumar <deepthi@multicorewareinc.com>
34203 * source/common/common.cpp:
34204 framepp: Changing output message
34207 2013-09-03 Min Chen <chenm003@163.com>
34209 * source/Lib/TLibCommon/TComDataCU.cpp,
34210 source/Lib/TLibCommon/TComDataCU.h,
34211 source/Lib/TLibCommon/TComPicYuv.cpp,
34212 source/Lib/TLibCommon/TComPicYuv.h,
34213 source/Lib/TLibEncoder/TEncCu.cpp,
34214 source/Lib/TLibEncoder/TEncSearch.cpp,
34215 source/Lib/TLibEncoder/TEncSearch.h,
34216 source/Lib/TLibEncoder/TEncTop.cpp, source/common/common.cpp,
34217 source/common/ipfilter.cpp, source/common/primitives.h,
34218 source/common/wavefront.cpp, source/common/wavefront.h,
34219 source/encoder/dpb.cpp, source/encoder/frameencoder.cpp,
34220 source/encoder/frameencoder.h, source/encoder/framefilter.cpp:
34221 framepp: Active frame parallelism
34224 2013-09-02 Shazeb Nawaz Khan <shazeb@multicorewareinc.com>
34226 * source/encoder/slicetype.cpp:
34227 Used slicetypeAnalyse() in slicetypeDecide()
34229 # HG changeset patch # User Shazeb Nawaz Khan
34230 <shazeb@multicorewareinc.com> # Date 1378118764 -19800 # Mon Sep 02
34231 16:16:04 2013 +0530 # Node ID
34232 e4a57ae74dd96ceb31815a44098b81872e494fff # Parent
34233 e2d93166e034040d61c897264e1dfe7aeeb3d661 Used slicetypeAnalyse() in
34237 * source/encoder/slicetype.cpp:
34238 Fixed slicetypeAnalyse() for no-B config
34240 # HG changeset patch # User Shazeb Nawaz Khan
34241 <shazeb@multicorewareinc.com> # Date 1378118617 -19800 # Mon Sep 02
34242 16:13:37 2013 +0530 # Node ID
34243 e2d93166e034040d61c897264e1dfe7aeeb3d661 # Parent
34244 3ea029900ab3ee58ed6b16c5c5a0a89975ba8c03 Fixed slicetypeAnalyse()
34248 2013-09-02 Gopu Govindaswamy <gopu@multicorewareinc.com>
34250 * source/common/ipfilter.cpp, source/common/primitives.h,
34251 source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc,
34252 source/test/ipfilterharness.cpp, source/test/ipfilterharness.h:
34253 ipfilter : Removed unused filterHorizontalExtendCol from testbench
34257 2013-09-02 praveen Tiwari <praveen Tiwari>
34259 * source/common/vec/pixel8.inc:
34260 pixel8.inc: Optimization with sad_x4 4xn
34263 2013-09-02 Deepthi Nandakumar <deepthi@multicorewareinc.com>
34265 * source/common/common.cpp:
34266 slicetype: keyframe min and max values inported from x264
34269 * source/common/common.cpp:
34270 slicetype: default value for scenecutThreshold pulled in from x264
34273 * source/common/lowres.cpp, source/common/lowres.h,
34274 source/encoder/slicetype.cpp:
34275 slicetype: Double defined macros replaced.
34277 Todo: investigate whether its safe to replace the table with just I,
34278 P, B (2,1,0) according to Table 7-7
34281 2013-09-01 Steve Borho <steve@borho.org>
34283 * source/Lib/TLibCommon/TComPrediction.cpp,
34284 source/Lib/TLibCommon/TComPrediction.h:
34285 TComPrediction: pre-allocate intermediates temp buffer
34288 * source/Lib/TLibCommon/TComPrediction.cpp:
34289 TComPrediction: simplify xPredInterLumaBlk
34292 * source/encoder/motion.cpp:
34293 motion: split mvcost from subpelCompare
34296 * source/encoder/motion.cpp:
34297 replace 64s with MAX_CU_SIZE
34300 * source/CMakeLists.txt, source/cmake/CMakeASM_YASMInformation.cmake,
34301 source/common/vec/CMakeLists.txt, source/common/vec/vec-
34303 cmake: detect and handle Mac OS X 10.8 default compiler
34305 It can't build any of the vector primitives, but at least now it
34306 generates a working x265 exectuable
34309 2013-07-25 Vittorio Giovara <vittorio.giovara@gmail.com>
34311 * source/x265.cpp, source/x265opts.h:
34312 replace --width and --height with --input-res
34315 * source/x265opts.h:
34316 change 'rate' option to 'fps'
34319 2013-09-01 Steve Borho <steve@borho.org>
34321 * source/encoder/motion.cpp:
34322 motion: lowres qpel
34325 * source/encoder/motion.cpp:
34326 motion: simplify subpel logic
34329 * source/encoder/motion.cpp, source/encoder/motion.h:
34330 motion: use lowresPlane for lowres subpel, make pixelcmp_t an
34334 * source/Lib/TLibCommon/TComPicYuv.cpp,
34335 source/Lib/TLibCommon/TComPicYuv.h, source/common/lowres.cpp,
34336 source/common/reference.cpp, source/common/reference.h,
34337 source/encoder/frameencoder.cpp, source/encoder/motion.cpp,
34338 source/encoder/slicetype.cpp:
34339 reference: remove lumaPlane[][] and prior calculation
34342 * source/common/reference.cpp, source/common/reference.h,
34343 source/encoder/motion.cpp, source/encoder/motion.h:
34344 motion: cleanup subpel on-demand generation
34347 * source/encoder/motion.cpp:
34348 motion: fix include slash
34351 * source/common/ipfilter.cpp, source/common/pixel.cpp,
34352 source/common/primitives.h, source/common/vec/ipfilter16.inc,
34353 source/common/vec/ipfilter8.inc, source/common/vec/pixel8.inc:
34354 primitives: use intptr_t for stride arguments
34357 2013-09-01 Deepthi Nandakumar <deepthi@multicorewareinc.com>
34359 * source/Lib/TLibCommon/TComRdCost.cpp,
34360 source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp,
34361 source/Lib/TLibCommon/TComRdCostWeightPrediction.h:
34365 * source/Lib/TLibCommon/TComPicYuv.cpp:
34366 reference: no pre-generating reference planes
34369 * source/encoder/motion.cpp:
34370 motion: replace intermediate values with a tmp buffer.
34373 * source/encoder/motion.cpp:
34374 motion: COST_QMV redefined
34377 * source/common/reference.cpp, source/common/reference.h,
34378 source/encoder/motion.cpp:
34379 motion: correct strides in subpel buffer and intermediate values
34383 2013-08-31 Gopu Govindaswamy <gopu@multicorewareinc.com>
34385 * source/common/reference.cpp, source/common/reference.h,
34386 source/encoder/motion.cpp, source/encoder/motion.h:
34387 Motion :subpel Generation
34390 2013-08-31 Steve Borho <steve@borho.org>
34392 * source/Lib/TLibCommon/TComSlice.cpp:
34393 TComSlice: fix init order for GCC
34396 * source/Lib/TLibCommon/TComRdCost.h:
34397 TComRdCost: add missing include of math.h (sqrt)
34400 * source/CMakeLists.txt, source/cmake/mergestaticlibs.cmake,
34401 source/common/CMakeLists.txt, source/encoder/CMakeLists.txt:
34402 cmake: add ENABLE_STATICLIB build option (requires some black magic)
34405 * source/Lib/TLibCommon/TComRdCost.h:
34406 TComRdCost: remove unused includes
34409 * source/Lib/TLibEncoder/TEncSearch.cpp:
34410 TEncSearch: remove buffer copy for full-pel SATD measurement
34413 * source/Lib/TLibCommon/TComRdCost.cpp,
34414 source/Lib/TLibCommon/TComRdCost.h,
34415 source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp,
34416 source/Lib/TLibCommon/TComRdCostWeightPrediction.h,
34417 source/Lib/TLibEncoder/TEncSearch.cpp,
34418 source/Lib/TLibEncoder/TEncSearch.h:
34419 TComRdCost: remove distortion functions and
34420 TComRdCostWeightPrediction
34422 TComRdCost is now just a pure-inline class with no CPP
34425 2013-08-30 Steve Borho <steve@borho.org>
34427 * source/x265opts.h:
34428 x265: disable weighted unipred CLI option
34430 The recent changes to TComPrediction::xPredInterLumaBlk() to
34431 generate subpel on demand almost certainly busted weighted
34435 * source/x265opts.h:
34436 x265: disable weighted bipred CLI option
34439 * source/Lib/TLibEncoder/TEncSearch.cpp:
34440 TEncSearch: simplify refPic initialization
34443 * source/Lib/TLibEncoder/TEncSearch.cpp,
34444 source/Lib/TLibEncoder/TEncSearch.h:
34445 TEncSearch: use optimized satd primitives for bidir fractional
34449 * source/Lib/TLibEncoder/TEncSearch.cpp:
34450 TEncSearch: fix a typo
34453 * source/Lib/TLibEncoder/TEncSearch.cpp,
34454 source/Lib/TLibEncoder/TEncSearch.h:
34455 TEncSearch: remove m_bc and inline xPatternSearchFracDIF
34458 * source/Lib/TLibCommon/TComRdCost.cpp,
34459 source/Lib/TLibCommon/TComRdCost.h,
34460 source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp,
34461 source/Lib/TLibEncoder/TEncSearch.cpp:
34462 TComRdCost: remove step parameter, always 1, merge setDistParam
34466 * source/Lib/TLibCommon/TComPicYuv.h,
34467 source/Lib/TLibEncoder/TEncSearch.cpp,
34468 source/Lib/TLibEncoder/TEncSearch.h:
34469 TComPicYuv: remove getLumaFilterBlock() methods, generate on demand
34472 TEncSearch::xPatternRefinement() is only used for bidir refinement,
34473 and is on the short-list to be removed once bidir is optimized.
34476 * source/Lib/TLibEncoder/TEncSearch.cpp:
34477 TEncSearch: replace getLumaFilterBlock() use with fpel getLumaAddr()
34479 This returned address is stored in m_distParam but it never actually
34480 used. The fref is overwritten before any calls to SATD
34483 * source/encoder/slicetype.cpp:
34484 slicetype: hard-code 8x8 CU size for intra predictions output buffer
34487 2013-08-30 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
34489 * source/Lib/TLibCommon/TComSlice.cpp:
34490 Fix decoder crash, Initialize m_numberOfReferencePictureSets to 0
34493 2013-08-30 Steve Borho <steve@borho.org>
34495 * source/Lib/TLibCommon/TComRom.cpp:
34496 TComRom: tabs to spaces
34499 2013-08-30 Deepthi Nandakumar <deepthi@multicorewareinc.com>
34501 * source/encoder/ratecontrol.cpp:
34502 ratecontrol: Slightly lower I frame qp to prevent quality drop.
34505 * source/Lib/TLibEncoder/TEncTop.cpp:
34506 ratecontrol: minor edits
34509 * source/Lib/TLibEncoder/TEncTop.cpp:
34510 ratecontrol: fix compile error.
34513 2013-08-30 Aarthi Thirumalai <aarthi@multicorewareinc.com>
34515 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
34516 source/Lib/TLibEncoder/TEncTop.cpp, source/common/common.cpp,
34517 source/encoder/ratecontrol.cpp:
34518 modified x265_lambda2_tab[] , adjusted some rc factors, modifed
34519 chroma weight for chromaLambda
34522 2013-08-30 Deepthi Nandakumar <deepthi@multicorewareinc.com>
34524 * source/Lib/TLibCommon/TComPrediction.cpp:
34525 interpolate: fix hash error bug introduced by block-ip filter.
34528 2013-08-30 Min Chen <chenm003@163.com>
34530 * source/common/ipfilter.cpp, source/common/reference.cpp:
34531 interpolate: fix bug that generate error interpolate pixel in border
34535 2013-08-29 Steve Borho <steve@borho.org>
34537 * source/Lib/TLibCommon/TComPrediction.cpp:
34538 TComPrediction: cleanup xPredInterLumaBlk
34541 * source/Lib/TLibCommon/TComPrediction.cpp:
34542 TComPrediction: rename file static variable
34545 2013-08-29 Gopu Govindaswamy <gopu@multicorewareinc.com>
34547 * source/Lib/TLibCommon/TComPrediction.cpp, source/common/reference.h:
34548 TcomPridiction : IP calculation for a Block and modified the src
34552 2013-08-29 Deepthi Nandakumar <deepthi@multicorewareinc.com>
34554 * source/common/lowres.cpp:
34555 lookahead: Initialise I frame MBs to zero. This parameter gets
34556 incremented in CUcost.
34559 2013-08-29 Steve Borho <steve@borho.org>
34561 * source/encoder/slicetype.cpp:
34562 slicetype: fix eoln
34565 * source/encoder/slicetype.cpp:
34566 slicetype: do not allow edge CUs to contribute to frame cost totals
34568 (x264 does this, it seems to result in better cost estimates
34572 * source/encoder/slicetype.cpp:
34573 slicetype: use satd for lowres intra estimate
34576 2013-08-28 Steve Borho <steve@borho.org>
34578 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
34579 source/encoder/dpb.cpp, source/encoder/frameencoder.cpp,
34580 source/encoder/frameencoder.h, source/encoder/framefilter.cpp:
34581 add partial framework for frame parallelism
34584 * source/Lib/TLibEncoder/TEncSearch.cpp:
34585 TEncSearch: use optimized sad_x4 for bidir full search
34588 * source/encoder/motion.cpp:
34589 motion: fix a typo in full-search
34592 * source/Lib/TLibEncoder/TEncSearch.cpp:
34593 TEncSearch: use optimized sad for bidir full search
34596 * source/common/CMakeLists.txt:
34597 cmake: disable signed/unsigned comparisons from Intel C++ in common/
34600 * source/common/vec/CMakeLists.txt:
34601 cmake: disable some Intel warnings and errors we know are safe
34604 * source/common/threadpool.cpp:
34605 threadpool: fix a warning from InteL C++ compiler
34608 * build/icl/build-all.bat, build/icl/make-makefile.bat, build/icl32
34609 /build-all.bat, build/icl32/make-makefile.bat, build/icl64/build-
34610 all.bat, build/icl64/make-makefile.bat:
34611 cmake: split out 32bit and 64bit ICL nmake configurations
34614 2013-08-28 Deepthi Devaki <deepthidevaki@multicorewareinc.com>
34616 * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/dpb.cpp,
34617 source/encoder/dpb.h:
34618 Remove unused code related to dpb and rps
34621 * source/encoder/dpb.cpp:
34622 dbp.cpp: white-space nits
34625 * source/Lib/TLibCommon/TComSlice.cpp,
34626 source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp,
34627 source/encoder/dpb.h:
34628 Move dpb related functions from TComSlice to DPB
34631 2013-08-28 Steve Borho <steve@borho.org>
34633 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
34634 ratecontrol: we have the param for frame parallelism
34637 * source/encoder/framefilter.cpp:
34638 framefilter: use explicit 0 and 1 in lieu of Windows only FALSE and
34642 2013-08-28 Deepthi Nandakumar <deepthi@multicorewareinc.com>
34644 * source/encoder/framefilter.cpp:
34645 Backout: breaks VC build
34648 2013-08-28 Rafaël Carré <funman@videolan.org>
34650 * source/encoder/framefilter.cpp:
34651 Use C++ true/false rather than Windows TRUE/FALSE
34656 2013-08-27 Shazeb Nawaz Khan <Shazeb Nawaz Khan>
34658 * source/encoder/dpb.cpp:
34659 A minor fix to computeRPS integration
34661 # HG changeset patch # User Shazeb Nawaz Khan # Date 1377595358
34662 -19800 # Tue Aug 27 14:52:38 2013 +0530 # Node ID
34663 8d26028f32cc9a2e5f09882368370689e1f317a0 # Parent
34664 bf72e539f3d8e25ff7fe1bc176ea1516c60a73d3 A minor fix to computeRPS
34668 * source/encoder/dpb.cpp, source/encoder/frameencoder.cpp:
34669 Integrating computeRPS to encoder
34671 # HG changeset patch # User Shazeb Nawaz Khan # Date 1377594214
34672 -19800 # Tue Aug 27 14:33:34 2013 +0530 # Node ID
34673 bf72e539f3d8e25ff7fe1bc176ea1516c60a73d3 # Parent
34674 5245113fa0d66de8933b18ca03fffde4f3fbdef0 Integrating computeRPS to
34678 2013-08-28 Deepthi Nandakumar <deepthi@multicorewareinc.com>
34680 * source/x265opts.h:
34681 ratecontrol: adding bitrate to CLI options
34684 * source/encoder/ratecontrol.cpp:
34685 ratecontrol: adding inits
34688 * source/encoder/ratecontrol.cpp:
34689 ratecontrol: minor edits
34692 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
34693 ratecontrol: fps member var renamed as framerate
34696 2013-08-27 Steve Borho <steve@borho.org>
34698 * source/Lib/TLibEncoder/TEncTop.cpp:
34699 TEncTop: white-space nits
34702 * source/encoder/dpb.cpp:
34703 dpb: fix "statement has no effect" warning
34706 * source/Lib/TLibCommon/TComSlice.cpp:
34707 TComSlice: fix initialization order
34710 2013-08-27 Deepthi Nandakumar <deepthi@multicorewareinc.com>
34712 * source/Lib/TLibEncoder/TEncTop.cpp:
34716 * source/Lib/TLibEncoder/TEncTop.cpp:
34717 ratecontrol: RateControl methods only when ABR is enabled.
34720 2013-08-27 Steve Borho <steve@borho.org>
34722 * source/Lib/TLibEncoder/TEncTop.cpp,
34723 source/Lib/TLibEncoder/TEncTop.h, source/encoder/ratecontrol.cpp:
34724 ratecontrol: fix header warning, replace tabs with spaces,
34728 2013-08-27 Deepthi <Deepthi>
34730 * source/x265opts.h:
34731 ratecontrol: correcting help message, Abr=0 and constQp=1
34734 * source/encoder/ratecontrol.cpp, source/x265.h, source/x265opts.h:
34735 Adding rc-mode to CLI option list
34738 2013-08-27 sumalatha <sumalatha>
34740 * source/Lib/TLibEncoder/TEncTop.cpp:
34741 computeLambdaForQP - using the formulae of HM directly to get the
34745 2013-08-27 Shazeb Nawaz Khan <Shazeb Nawaz Khan>
34747 * source/Lib/TLibCommon/TComSlice.h, source/encoder/dpb.cpp,
34748 source/encoder/dpb.h:
34749 Adding support for RPS generation (not integrated yet)
34751 # HG changeset patch # User Shazeb Nawaz Khan # Date 1377594122
34752 -19800 # Tue Aug 27 14:32:02 2013 +0530 # Node ID
34753 5245113fa0d66de8933b18ca03fffde4f3fbdef0 # Parent
34754 273b1face64ce9e0c391713165776c773ec54774 Adding support for RPS
34755 generation (not integrated yet)
34758 2013-08-27 sumalatha <sumalatha>
34760 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
34761 source/Lib/TLibEncoder/TEncTop.cpp,
34762 source/Lib/TLibEncoder/TEncTop.h, source/encoder/ratecontrol.cpp,
34763 source/encoder/ratecontrol.h:
34764 Included the computeLambdaqp()-- reset the lambda based on new QP
34767 2013-08-27 Deepthi <Deepthi>
34769 * source/encoder/frameencoder.cpp:
34770 ratecontrol: Remove dqp, not relevant until AQ is implemented. Even
34771 then, dqp is an LCU parameter.
34774 2013-08-26 Steve Borho <steve@borho.org>
34776 * source/encoder/slicetype.cpp, source/encoder/slicetype.h:
34777 slicetype: rename member vars for clarity
34780 * source/common/reference.cpp:
34781 reference: correctly handle frames not an even multiple of max CTU
34785 * source/common/lowres.cpp, source/common/lowres.h,
34786 source/encoder/slicetype.cpp:
34787 lowres: use 8x8 blocks for lookahead analysis
34790 * source/encoder/dpb.cpp:
34791 dpb: add default case for switch, remove trailing white-space
34794 * source/common/reference.cpp:
34795 reference: fix member variable shadowing reported by GCC
34798 * source/common/vec/pixel8.inc:
34799 pixel: more explicit HAVE_MMX logic, fixes link errors with VC11 x64
34802 2013-08-26 praveentiwari <praveentiwari>
34804 * source/common/vec/pixel8.inc:
34805 pixel8.inc: Avoiding overlap of _MSC_VER macro
34808 * source/common/vec/pixel8.inc:
34809 pixel8.inc: sad_x3_4 further optimization
34812 * source/common/vec/pixel8.inc:
34813 pixel8.inc: sad_x4_8 further optimization
34816 * source/common/vec/pixel8.inc:
34817 pixel8.inc: Further optimization
34820 * source/common/vec/pixel8.inc:
34821 pixel8.inc: sad_x3_8 further optimization
34824 * source/common/vec/pixel8.inc:
34825 pixel8.inc: sad_x3_4 further optimization
34828 * source/common/vec/pixel8.inc:
34829 pixel8.inc: sad_x4_16, vector replaced with intrinsic
34832 * source/common/vec/pixel8.inc:
34833 pixel8.inc: sad_x4_8, vector replaced with intrinsic
34836 * source/common/vec/pixel8.inc:
34837 pixel8.inc: sad_x4_4, enabled sad_x4_4 code for 32-build except VC
34840 * source/common/vec/pixel8.inc:
34841 pixel8.inc: sad_x3_8 enabled MMX code for 32-bit build except vc
34844 * source/common/vec/pixel8.inc:
34845 pixel8.inc:sad_x3_4 enabled MMX code for 32-build except VC
34848 * source/common/vec/pixel8.inc:
34849 pixel8.inc: sad_8 enabled MMX code for 32-build except VC
34852 * source/common/vec/pixel8.inc:
34853 pixel8.inc: sad_4 cleanup with macro
34856 * source/common/vec/pixel8.inc:
34857 pixel8.inc: Enabled MMX code for 32-bit build except VC [added macro
34858 and swap postions of sse and MMX funtions]
34861 2013-08-26 Steve Borho <steve@borho.org>
34863 * source/encoder/dpb.cpp, source/encoder/dpb.h:
34864 dpb: pass free list by reference (fixes memory leaks)
34866 Passing by copy was resulting in TEncTop::m_freeList never being
34867 used. recycleUnreferenced() was adding the free pictures to a list
34868 that was destroyed as soon as the function returned.
34871 2013-08-26 Deepthi <Deepthi>
34873 * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h:
34874 Testharness: Removing filterV/HMultiplane from test harness.
34877 2013-08-26 Min Chen <chenm003@163.com>
34879 * source/Lib/TLibCommon/TComPicYuv.cpp,
34880 source/Lib/TLibCommon/TComPicYuv.h, source/common/ipfilter.cpp,
34881 source/common/primitives.h, source/common/reference.cpp,
34882 source/common/reference.h, source/common/vec/ipfilter.inc:
34883 framepp: row based interpolate
34886 2013-08-26 Deepthi <Deepthi>
34888 * source/encoder/dpb.cpp:
34889 DPB::prepareEncode - replace code snippet with switch case
34892 * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/dpb.cpp:
34893 TEncTop: Move FrameEncoder->initSlice() to TEncTop::encode
34896 * source/Lib/TLibEncoder/TEncTop.cpp:
34897 TEncTop: (Redundant) setPOC to max value
34900 2013-08-25 Steve Borho <steve@borho.org>
34902 * source/Lib/TLibEncoder/TEncSearch.cpp:
34903 TEncSearch: refIdx typo corrected
34906 * source/Lib/TLibEncoder/TEncSearch.cpp:
34907 TEncSearch: remove redundant bestIdx initialization
34910 * source/Lib/TLibEncoder/TEncSearch.cpp,
34911 source/Lib/TLibEncoder/TEncSearch.h:
34912 TEncSearch: remove bFilled argument from xEstimateMvPredAMVP (always
34916 * source/Lib/TLibEncoder/TEncSearch.cpp:
34920 * source/common/vec/pixel8.inc:
34921 pixel: use unaligned loads for fref pixels
34924 2013-08-25 Min Chen <chenm003@163.com>
34926 * source/common/vec/ipfilter8.inc:
34927 Improvement filterHorizontalMultiplaneExtend
34930 2013-08-25 praveentiwari <praveentiwari>
34932 * source/common/vec/pixel8.inc:
34933 pixel8.inc: Uncrustified
34936 * source/common/vec/pixel8.inc:
34937 pixel8.inc: sad_x4_4 optimized assingment operators
34940 * source/common/vec/pixel8.inc:
34941 pixel8.inc: sad_x3 64-bit build fail fixed
34944 * source/common/vec/pixel.inc, source/common/vec/pixel8.inc:
34945 pixel8.inc: sad_x4_4 vector replaced with intrinsic
34948 * source/common/vec/pixel.inc:
34949 uncrustified pixel.inc
34952 * source/common/vec/pixel8.inc:
34953 pixel8.inc: new line cleanup
34956 * source/common/vec/pixel8.inc:
34957 pixel8.inc: sad_x3_8 avoiding extra condition check
34960 * source/common/vec/pixel8.inc:
34961 pixel8.inc: sad_x3_16 cleanu some newlines
34964 * source/common/vec/pixel8.inc:
34965 pixel8.inc: sad_x3_4 more optimization
34968 * source/common/vec/pixel8.inc:
34969 pixel8.cpp: sad_x3_16 vector replaced with intrinsic
34972 * source/common/vec/pixel8.inc:
34973 pixel8.inc: sad_x3_8 integrated fast MMX 32-bit build code
34976 * source/common/vec/pixel8.inc:
34977 pixel8.inc: sad_x3_4 integrated faster MMX code for 32-bit build
34980 * source/common/vec/pixel8.inc:
34981 pixel8.inc: Uncrustified
34984 2013-08-25 Steve Borho <steve@borho.org>
34986 * source/encoder/CMakeLists.txt:
34987 cmake: force -march=i686 for framefilter.cpp
34990 * source/encoder/ratecontrol.cpp:
34991 ratecontol: fix case sensitive includes
34994 2013-08-23 Steve Borho <steve@borho.org>
34996 * source/common/vec/pixel.inc, source/common/vec/pixel8.inc:
34997 pixel: new 16xN and x3 intrinsic primitives require SSE4.1
35000 2013-08-23 praveentiwari <praveentiwari>
35002 * source/common/vec/pixel8.inc:
35003 sad[16xN]:Intrinsic
35006 * source/common/vec/pixel8.inc:
35007 pixel8inc: sad_x3 8xN, replace vector with intrinsic
35010 * source/common/vec/pixel8.inc:
35011 sad_x3_4[4Xn]:Intrinsic
35014 2013-08-23 Steve Borho <steve@borho.org>
35016 * source/common/threading.h, source/common/wavefront.cpp:
35017 threading: rename CLZ64 to CTZ64 and reverse bit search for GCC
35019 __builtin_ctzll(x) - Returns the number of trailing 0-bits in x,
35020 starting at the least significant bit position. If x is 0, the
35021 result is undefined
35024 * source/common/common.h, source/encoder/ratecontrol.cpp:
35025 common: make log2 functions safe for GCC, use multiply instead of
35029 * source/common/vec/pixel.inc, source/common/vec/pixel8.inc:
35030 pixel: sad primitives now require SSE4.1, properly wrap #pragma
35033 2013-08-23 Deepthi <Deepthi>
35035 * source/common/vec/pixel8.inc:
35036 pixel8inc: sad 4xN, replace vector with intrinsic [Praveen]
35039 * source/common/vec/pixel8.inc:
35040 pixel8inc: sad 8xN, replace vector with intrinsic [Praveen]
35043 * source/common/vec/pixel8.inc:
35044 pixel8inc: Uncrustify [Praveen]
35047 * source/common/ipfilter.cpp, source/common/primitives.h,
35048 source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc,
35049 source/test/ipfilterharness.cpp, source/test/ipfilterharness.h:
35050 FilterExtendCURow: add primitives for horizontal filtering of each
35054 * source/encoder/ratecontrol.cpp:
35055 ratecontrol: replacing more log2 calculations with macro
35058 * source/Lib/TLibEncoder/TEncTop.cpp,
35059 source/Lib/TLibEncoder/TEncTop.h:
35060 ratecontrol: move RCEnd back to TEncTop::encode
35063 * source/encoder/ratecontrol.cpp:
35064 Avoid conversion to float
35067 * source/common/common.h, source/encoder/ratecontrol.cpp:
35068 log2 define from x264
35071 2013-08-23 Aarthi <aarthi@multicorewareinc.com>
35073 * source/encoder/ratecontrol.cpp:
35074 fixed bugs in ABR mode - implemeted log2() instead of log() as
35078 2013-08-22 Steve Borho <steve@borho.org>
35080 * source/encoder/ratecontrol.cpp:
35081 ratecontrol: include all enums in switch statement, avoid GCC
35085 * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
35086 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h:
35087 sao: remove dead rdoSaoUnitAll function
35090 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
35091 ratecontrol: stub in partial code for CQP
35094 * source/encoder/ratecontrol.cpp:
35095 ratecontrol: initialize rce to NULL, prevent invalid free
35098 * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp:
35099 sao: fix GCC warnings about autos shadowing member variables
35102 2013-08-21 sumalatha <sumalatha>
35104 * source/encoder/ratecontrol.cpp:
35105 ratecontrol: added comments, corrected some errors in code
35108 * source/Lib/TLibEncoder/TEncTop.cpp:
35109 made changes to function call - rateControlEnd
35112 2013-08-22 Min Chen <chenm003 at 163.com> <chenm003 at 163.com>
35114 * source/CMakeLists.txt:
35115 fix bug in WinXP mode
35118 * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
35119 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
35120 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
35121 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
35122 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h,
35123 source/encoder/framefilter.cpp, source/encoder/framefilter.h:
35124 framepp: Parallelism of SAO (saoLcuBasedOptimization mode only)
35127 * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
35128 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h:
35129 framepp: replace static class array countPreDblk and
35133 * source/encoder/framefilter.cpp, source/encoder/framefilter.h:
35134 improvement by replace lock to atom operator
35137 2013-08-20 Steve Borho <steve@borho.org>
35139 * source/encoder/slicetype.cpp:
35140 slicetype: do not use backwards L1 for slicetype estimates
35142 The lookahead engine can't really handle it.
35145 * source/encoder/dpb.cpp:
35146 dpb: ensure bframe count same as m_gopSize when fixed GOP is in use
35149 * source/encoder/slicetype.cpp:
35150 slicetype: remove redundant break statements
35153 * source/encoder/slicetype.h:
35154 slicetype: re-order member variables by size
35157 * source/Lib/TLibEncoder/TEncTop.cpp, source/common/common.cpp,
35158 source/encoder/frameencoder.cpp, source/x265.h, source/x265opts.h:
35159 x265: move qp parameter within rc struct, use QP logging line for
35163 * source/common/common.cpp, source/encoder/encoder.cpp:
35164 common: combine WPP logging lines
35167 * source/common/common.cpp:
35168 common: add a summary log line for lookahead configuration
35171 * source/common/common.cpp:
35172 common: shorten "enabled coding tools" to "tools"
35175 2013-08-20 Min Chen <chenm003@163.com>
35177 * source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
35178 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
35179 source/encoder/framefilter.cpp:
35180 cleanup: remove unused function and process row once
35183 * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
35184 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
35185 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp:
35186 cleanup: move temporary pointer from class
35189 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
35190 fix bug correct row delay with '--sao-lcu-bounds 1'
35193 * source/encoder/frameencoder.h, source/encoder/framefilter.cpp,
35194 source/encoder/framefilter.h:
35195 cleanup: remove reduce m_sad since we are single thread now
35198 * source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp,
35199 source/encoder/framefilter.h:
35200 framepp: simplify FrameFilter control logic
35203 * source/common/threading.h, source/common/threadpool.cpp,
35204 source/common/wavefront.cpp:
35205 move ATOM operators to threading.h
35208 2013-08-20 Steve Borho <steve@borho.org>
35210 * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/slicetype.cpp,
35211 source/encoder/slicetype.h:
35212 slicetype: add a method to get estimated frame cost (calculated if
35216 * source/encoder/dpb.cpp:
35217 dpb: remove obsolete TODO
35220 * source/encoder/dpb.cpp:
35221 dpb: remove redundant calls to setNumRefIdx()
35224 * source/encoder/ratecontrol.cpp:
35228 * source/encoder/dpb.cpp, source/encoder/frameencoder.cpp:
35229 dpb: move setNumRefIdx from frameEncoder to DPB for clarity
35232 2013-08-19 Steve Borho <steve@borho.org>
35234 * source/encoder/slicetype.cpp:
35235 slicetype: move special case logic for POC zero out of "fake"
35239 * source/encoder/slicetype.cpp:
35240 slicetype: initialize row satd sums at each row, delay
35241 bIntraCalculated set
35244 * source/encoder/slicetype.cpp, source/encoder/slicetype.h:
35245 slicetype: malloc prediction buffer to avoid stack size issues
35248 * source/encoder/slicetype.cpp:
35249 slicetype: x and y loops were reversed
35252 * source/encoder/slicetype.cpp, source/encoder/slicetype.h:
35253 slicetype: auto-variable cleanup
35256 * source/encoder/slicetype.cpp, source/encoder/slicetype.h:
35257 slicetype: do_search is a bool as well
35260 * source/common/lowres.cpp, source/common/lowres.h,
35261 source/encoder/slicetype.cpp:
35262 lowres: remove redundant stride variable, use
35263 ReferencePlanes::lumaStride
35266 * source/encoder/slicetype.cpp:
35267 slicetype: remove redundant assignment
35270 * source/encoder/slicetype.cpp, source/encoder/slicetype.h:
35271 slicetype: rename last_keyframe to lastKeyframe
35274 * source/encoder/slicetype.cpp, source/encoder/slicetype.h:
35275 slicetype: use cfg->param structure directly, do not copy data items
35278 * source/encoder/slicetype.cpp, source/encoder/slicetype.h:
35279 slicetype: copy bFrameBias from param structure
35282 * source/encoder/slicetype.cpp:
35283 slicetype: fixup bIntraPenalty type
35286 * source/encoder/slicetype.h:
35287 slicetype: remove unused analyze_keyframe variable
35290 * source/encoder/slicetype.cpp:
35291 slicetype: estimate SATD cost of first I frame
35294 * source/encoder/slicetype.cpp, source/encoder/slicetype.h:
35295 slicetype: realScenecut is a bool
35298 * source/encoder/slicetype.cpp:
35299 slicetype: add disabled "real path"
35302 * source/encoder/slicetype.cpp, source/encoder/slicetype.h:
35303 slicetype: change slicetypeAnalyze argument type to bool, fix
35307 * source/encoder/slicetype.cpp:
35308 slicetype: set lowres.frameNum in addPicture()
35311 * source/encoder/slicetype.cpp:
35312 slicetype: fix order of operations, remove obsolete comment
35315 * source/encoder/slicetype.cpp:
35316 slicetype: improve history comment
35319 2013-08-19 Min Chen <chenm003@163.com>
35321 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
35322 source/encoder/frameencoder.cpp, source/encoder/framefilter.cpp,
35323 source/encoder/framefilter.h:
35324 framepp: Refactor loopfilter thread
35327 2013-08-19 Steve Borho <steve@borho.org>
35329 * source/common/wavefront.cpp:
35330 wavefront: use _BitScanForward64 on Windows to get proper bit
35333 Spotted and fixed by Min Chen
35336 * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/dpb.cpp:
35337 dpb: move the pushBack of the frame into DPB::prepareEncode()
35340 * source/Lib/TLibEncoder/TEncAnalyze.h,
35341 source/Lib/TLibEncoder/TEncTop.cpp:
35342 TEncAnalyze: rename setFrmRate to setFrameRate
35345 * source/Lib/TLibEncoder/TEncTop.cpp,
35346 source/Lib/TLibEncoder/TEncTop.h, source/encoder/frameencoder.cpp,
35347 source/encoder/frameencoder.h:
35348 TEncTop: use multiple frame encoders (they do not overlap in
35352 * source/Lib/TLibEncoder/TEncTop.cpp, source/common/common.cpp,
35353 source/common/threadpool.h, source/encoder/frameencoder.cpp,
35354 source/encoder/frameencoder.h, source/x265.cpp, source/x265.h,
35356 x265: add -F/--frame-threads CLI option, param->frameNumThreads
35358 This required allocating an array of FrameEncoder instances, which
35359 required adding a method for initializing the thread pool after
35363 * source/Lib/TLibCommon/TComPic.h, source/common/CMakeLists.txt,
35364 source/common/lookahead.cpp, source/common/lookahead.h,
35365 source/common/lowres.cpp, source/common/lowres.h,
35366 source/encoder/ratecontrol.cpp, source/encoder/slicetype.cpp:
35367 rename lookahead.cpp to lowres.cpp (and also header)
35370 * source/Lib/TLibCommon/TComPic.h, source/common/lookahead.cpp,
35371 source/common/lookahead.h, source/encoder/ratecontrol.cpp,
35372 source/encoder/ratecontrol.h, source/encoder/slicetype.cpp,
35373 source/encoder/slicetype.h:
35374 lookahead: rename LookaheadFrame struct to Lowres, statically
35378 * source/common/CMakeLists.txt:
35379 cmake: add COPYING to common project to remove any ambiguity
35382 * source/Lib/TLibCommon/TComSlice.cpp:
35386 * source/PPA/ppaCPUEvents.h, source/encoder/dpb.cpp,
35387 source/encoder/frameencoder.cpp:
35388 ppa: resolve event names which conflict with method names, add
35392 2013-08-18 Steve Borho <steve@borho.org>
35394 * source/common/lookahead.cpp:
35395 lookahead: re-initialize lowresMvs by dereferencing first MV (nit)
35398 * source/encoder/cturow.cpp:
35399 cturow: remove prefixes from loop autos
35402 * source/encoder/cturow.cpp:
35403 cturow: remove pc prefix from rdSbacCoder
35406 * source/common/lookahead.cpp:
35407 lookahead: fix intraCost data type for malloc
35410 * source/common/lookahead.cpp:
35411 lookahead: re-enable downscale, ensure lowres stride is multiple of
35415 * source/encoder/slicetype.cpp:
35416 slicetype: simplify intra processing
35419 * source/encoder/slicetype.cpp:
35420 slicetype: improve comments
35423 * source/encoder/slicetype.cpp:
35424 slicetype: remove warning disables now that functionality is all
35428 * source/encoder/slicetype.cpp:
35429 slicetype: update authors now that x264 routines are removed
35432 * source/encoder/motion.cpp:
35433 motion: remove hungarian prefixes from temp vars
35436 * source/common/mv.h:
35437 mv: switch from class to struct since member vars do not have m_
35441 * source/Lib/TLibCommon/TComPicYuv.cpp,
35442 source/Lib/TLibCommon/TComPicYuv.h,
35443 source/Lib/TLibCommon/TComPrediction.cpp,
35444 source/common/lookahead.cpp, source/common/reference.cpp,
35445 source/common/reference.h, source/encoder/motion.cpp,
35446 source/encoder/slicetype.cpp:
35447 reference: remove m_ prefix from member variables
35450 * source/common/reference.h:
35451 reference: convert ReferencePlanes from class to struct
35453 I want to remove m_ prefix, and a policy of m_ for class but not for
35454 struct seems reasonable
35457 * source/Lib/TLibEncoder/TEncTop.cpp, source/common/primitives.cpp:
35458 ContextModel: move static initialization out of TEncTop constructor
35461 * source/Lib/TLibCommon/ContextModel.cpp,
35462 source/Lib/TLibCommon/ContextModel.h:
35463 ContextModel: variable name cleanup
35466 * source/common/lookahead.h, source/encoder/slicetype.cpp,
35467 source/encoder/slicetype.h:
35468 slicetype: move cuWidth and cuHeight from LookaheadFrame to
35472 * source/encoder/slicetype.cpp:
35473 slicetype: simplify intra cost check
35476 * source/encoder/motion.cpp:
35477 motion: avoid QPEL refinement during lookahead
35479 Our QPEL plane pointers simply reference the nearest HPEL plane so
35480 doing any QPEL refine would be a waste of time, and add rnadom bits.
35481 We should add an H.264 (A+B+1)>>1 primitive and then use this to
35482 create fake QPEL blocks for refinment during lookahead.
35485 * source/common/lookahead.cpp, source/common/reference.h:
35486 reference: add lowres flag
35489 * source/encoder/slicetype.cpp:
35490 slicetype: establish lowres search bounds
35493 2013-08-16 Min Chen <chenm003@163.com>
35495 * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
35496 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
35497 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
35498 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
35499 source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/frameencoder.cpp,
35500 source/encoder/frameencoder.h, source/encoder/framefilter.cpp,
35501 source/encoder/framefilter.h:
35502 framepp: fix bug with '--sao-lcu-bounds 1' and move part of sao into
35506 2013-08-16 praveentiwari <praveentiwari>
35508 * source/common/vec/sse.inc:
35509 sse_pp8: Eliminated shift
35512 2013-08-16 Steve Borho <steve@borho.org>
35514 * source/encoder/slicetype.cpp:
35515 slicetype: more varname cleanups
35518 * source/encoder/slicetype.cpp:
35519 slicetype: fix GCC nits
35522 * source/encoder/slicetype.cpp:
35526 * source/encoder/slicetype.cpp, source/encoder/slicetype.h:
35527 slicetype: fill missing detail, use x265 varname style, remove old
35531 * source/encoder/slicetype.cpp:
35532 slicetype: fix another cu_size
35535 * source/encoder/slicetype.cpp:
35536 clicetype: uncrustify
35539 2013-08-16 ggopu <ggopu>
35541 * source/common/lookahead.h, source/encoder/slicetype.cpp,
35542 source/encoder/slicetype.h, source/x265.h:
35543 slicetype: Added slicetypeAnalyse
35546 2013-08-16 Steve Borho <steve@borho.org>
35548 * source/Lib/TLibCommon/TComTrQuant.cpp:
35549 TrComQuant: fix 8bpp build
35552 * source/Lib/TLibCommon/TComTrQuant.cpp:
35553 TrComQuant: lastpos formal parameter unreferenced
35556 * source/common/vec/dct.inc:
35557 dct: prevent compilation of quant for < SSE4.1 (fixes GCC build)
35560 2013-08-16 Min Chen <chenm003@163.com>
35562 * source/Lib/TLibEncoder/TEncSearch.cpp:
35563 idct: more dc mode detect code
35566 * source/Lib/TLibCommon/TComTrQuant.cpp,
35567 source/Lib/TLibCommon/TComTrQuant.h:
35568 cleanup: remove unused code invRecurTransformNxN
35571 * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/pixel.cpp,
35572 source/common/primitives.h, source/common/vec/pixel.inc:
35573 idct: primitive blockfil_s for dc fill
35576 * source/Lib/TLibCommon/TComTrQuant.cpp,
35577 source/Lib/TLibCommon/TComTrQuant.h,
35578 source/Lib/TLibEncoder/TEncSearch.cpp:
35579 idct: Improved performance by DC only block detect
35582 * source/Lib/TLibCommon/TComTrQuant.cpp,
35583 source/Lib/TLibCommon/TComTrQuant.h,
35584 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/dct.cpp,
35585 source/common/primitives.h, source/common/vec/dct.inc,
35586 source/test/mbdstharness.cpp:
35587 generate lastPos in quant
35590 * source/common/vec/dct.inc, source/test/mbdstharness.cpp:
35591 quant: Improved performance by SSE4
35594 * source/encoder/slicetype.cpp:
35595 temp for Intra Buffer generate
35598 2013-08-16 Steve Borho <steve@borho.org>
35600 * source/encoder/ratecontrol.cpp:
35604 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
35605 ratecontrol: move defines within CPP file
35608 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
35609 ratecontrol: move math methods to CPP file as file statics
35612 2013-08-16 sumalatha <sumalatha>
35614 * source/Lib/TLibEncoder/TEncTop.cpp,
35615 source/Lib/TLibEncoder/TEncTop.h, source/encoder/ratecontrol.cpp,
35616 source/encoder/ratecontrol.h:
35617 integrate ratecontrol methods and changed some APIs
35620 2013-08-16 Steve Borho <steve@borho.org>
35622 * source/Lib/TLibEncoder/TEncTop.cpp:
35623 TEncTop: GCC needs math.h for log10()
35626 * source/encoder/encoder.cpp:
35627 encoder: add a comment explaining the odd nature of encoder.cpp
35630 * source/Lib/TLibEncoder/TEncCfg.h, source/encoder/CMakeLists.txt,
35631 source/encoder/dpb.cpp, source/encoder/encoder.cpp,
35632 source/encoder/encoder.h:
35633 dpb: move fixed GOP initialization function into dpb, drop encoder.h
35636 * source/Lib/TLibEncoder/TEncTop.cpp,
35637 source/Lib/TLibEncoder/TEncTop.h, source/encoder/CMakeLists.txt,
35638 source/encoder/dpb.cpp, source/encoder/dpb.h,
35639 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
35640 dpb: split DPB logic and data from TEncTop into a separate class
35642 The DPB class is still using the HM's fixed GOP mess, but at least
35643 this is all mostly localized in one place so it can be cleaned up
35644 together and has a clean interface.
35647 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
35648 frame: inline wait_lft and re-order code for more clarity
35651 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
35652 frame: simplify determineSliceBounds
35655 2013-08-15 Steve Borho <steve@borho.org>
35657 * source/encoder/frameencoder.cpp:
35661 * source/encoder/frameencoder.cpp:
35662 frame: remove unused oneBitstreamPerSliceLength
35665 * source/encoder/frameencoder.cpp:
35666 frame: replace access method calls with direct variable accesses
35669 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
35670 frame: rename compressSlice to compressCTURows()
35673 * source/encoder/frameencoder.cpp:
35674 frame: hoist stat file logging into compressFrame()
35677 * source/encoder/frameencoder.cpp:
35678 frame: isolate CU processing functionality into compressSlice()
35680 Other unrelated functionality pulled up into compressFrame()
35683 * source/encoder/frameencoder.cpp:
35684 frame: move xStoreWPparam() together with rest of weightp analysis
35687 * source/Lib/TLibEncoder/TEncGOP.cpp,
35688 source/Lib/TLibEncoder/TEncGOP.h,
35689 source/Lib/TLibEncoder/TEncTop.cpp,
35690 source/Lib/TLibEncoder/TEncTop.h, source/encoder/cturow.cpp,
35691 source/encoder/encoder.cpp, source/encoder/frameencoder.cpp,
35692 source/encoder/frameencoder.h, source/encoder/ratecontrol.h:
35693 remove TEncGOP, merge remaining pieces into FrameEncoder
35696 * source/Lib/TLibEncoder/SEIwrite.cpp,
35697 source/Lib/TLibEncoder/SyntaxElementWriter.cpp,
35698 source/Lib/TLibEncoder/SyntaxElementWriter.h,
35699 source/Lib/TLibEncoder/TEncCavlc.cpp,
35700 source/Lib/TLibEncoder/TEncCavlc.h:
35701 SEIWrite: varname cleanups
35704 * source/Lib/TLibEncoder/SEIwrite.h:
35705 SEIWrite: remove only unused data member
35708 * source/Lib/TLibEncoder/TEncGOP.cpp,
35709 source/Lib/TLibEncoder/TEncGOP.h,
35710 source/Lib/TLibEncoder/TEncTop.cpp,
35711 source/Lib/TLibEncoder/TEncTop.h:
35712 TEncGOP: move hash and PSNR calculations to TEncTop
35714 Much of the function needs to use singleton data elements in TEncTop
35715 anyway, and very little of it needs the frame encoder.
35718 * source/Lib/TLibEncoder/TEncGOP.cpp:
35719 TEncGOP: move digestToString so it doesn't need forward decl
35722 * source/Lib/TLibEncoder/TEncGOP.cpp,
35723 source/Lib/TLibEncoder/TEncGOP.h:
35724 TEncGOP: remove unused xGetFirstSeiLocation
35727 * source/Lib/TLibEncoder/TEncGOP.cpp,
35728 source/Lib/TLibEncoder/TEncGOP.h:
35729 TEncGOP: inline xAttachSliceDataToNalUnit, only used once
35732 * source/Lib/TLibEncoder/TEncGOP.cpp,
35733 source/Lib/TLibEncoder/TEncGOP.h:
35734 TEncGOP: inline SEI creation functions
35736 I see no need to alloc/free them
35739 * source/Lib/TLibEncoder/TEncGOP.cpp,
35740 source/Lib/TLibEncoder/TEncGOP.h:
35741 TEncGOP: drop HRD/DU logic and SEI message generation
35743 This HRD logic is going to be broken badly by frame parallelism, and
35744 we do not allow it to be enabled, in any case, so I'm removing this
35745 code before it can be broken.
35748 * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/frameencoder.cpp:
35749 TEncTop: move ASR initialization to compressSlice()
35752 2013-08-16 Min Chen <chenm003@163.com>
35754 * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
35755 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
35756 source/Lib/TLibEncoder/TEncGOP.cpp:
35757 framepp: move xPCMRestoration* outside from TComSampleAdaptiveOffset
35761 framepp: loopfilter and sao need same control value
35764 * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
35765 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h:
35766 cleanup: remove unused code TComSampleAdaptiveOffset::processSaoCu
35769 * source/Lib/TLibEncoder/TEncGOP.cpp:
35770 cleanup: remove unused code
35773 * source/Lib/TLibEncoder/TEncGOP.cpp:
35774 cleanup: remove unused code
35777 * source/encoder/frameencoder.cpp:
35778 fix VC9 compile error
35781 2013-08-15 Steve Borho <steve@borho.org>
35783 * source/Lib/TLibEncoder/TEncGOP.cpp,
35784 source/Lib/TLibEncoder/TEncGOP.h:
35785 TEncGOP: unify hash and PSNR reporting into one routine
35788 * source/Lib/TLibEncoder/TEncGOP.cpp,
35789 source/Lib/TLibEncoder/TEncGOP.h:
35790 TEncGOP: remove redundant argument to xCreateSEIActiveParameterSets
35793 * source/Lib/TLibEncoder/TEncGOP.cpp,
35794 source/Lib/TLibEncoder/TEncGOP.h,
35795 source/Lib/TLibEncoder/TEncTop.cpp,
35796 source/Lib/TLibEncoder/TEncTop.h:
35797 TEncTop: move prepareEncode and all RPS/DPB logic out of TEncGOP
35800 * source/Lib/TLibEncoder/TEncGOP.cpp:
35801 TEncGOP: reorder some code for more clarity
35804 * source/Lib/TLibEncoder/TEncGOP.cpp,
35805 source/Lib/TLibEncoder/TEncGOP.h,
35806 source/Lib/TLibEncoder/TEncTop.cpp:
35807 TEncGOP: prune unused cruft
35810 * source/Lib/TLibEncoder/TEncGOP.cpp:
35811 TEncGOP: remove access var only used twice
35814 * source/Lib/TLibEncoder/TEncGOP.cpp:
35815 TEncGOP: use m_cfg in lieu of m_top where applicable
35818 * source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncGOP.h,
35819 source/Lib/TLibEncoder/TEncSearch.cpp,
35820 source/Lib/TLibEncoder/TEncSlice.cpp,
35821 source/Lib/TLibEncoder/TEncSlice.h, source/encoder/encoder.cpp,
35822 source/encoder/frameencoder.h:
35823 Remove unused TEncSlice
35826 * source/Lib/TLibEncoder/TEncGOP.cpp,
35827 source/Lib/TLibEncoder/TEncSlice.cpp,
35828 source/Lib/TLibEncoder/TEncSlice.h, source/encoder/frameencoder.cpp,
35829 source/encoder/frameencoder.h:
35830 TEncSlice: move xDetermineStartAndBoundingCUAddr to FrameEncoder
35832 And give a less idiotic name
35835 * source/encoder/frameencoder.cpp:
35836 frameencoder: include math.h for GCC
35839 * source/Lib/TLibEncoder/TEncGOP.cpp,
35840 source/Lib/TLibEncoder/TEncSlice.cpp,
35841 source/Lib/TLibEncoder/TEncSlice.h, source/encoder/frameencoder.cpp,
35842 source/encoder/frameencoder.h:
35843 TEncSlice: move encodeSlice into FrameEncoder
35846 * source/encoder/frameencoder.cpp:
35847 frameencoder: enqueue framefilter after frameencoder
35849 This gives higher priority to compressCU jobs over deblocking jobs
35852 * source/encoder/frameencoder.cpp:
35853 frameencoder: simplify motion reference generation
35856 * source/encoder/frameencoder.cpp:
35860 * source/encoder/CMakeLists.txt, source/encoder/cturow.cpp,
35861 source/encoder/cturow.h, source/encoder/frameencoder.cpp,
35862 source/encoder/frameencoder.h:
35863 cturow: split CTURow class into its own cpp and h
35866 * source/encoder/CMakeLists.txt, source/encoder/frameencoder.cpp,
35867 source/encoder/frameencoder.h, source/encoder/framefilter.cpp,
35868 source/encoder/framefilter.h:
35869 framefilter: split FrameFilter class into its own cpp and h
35871 frameencoder is getting crowded with TEncSlice methods being
35872 integrated, and it is only going to grow as TEncGOP is broken up.
35875 * source/Lib/TLibEncoder/TEncGOP.cpp,
35876 source/Lib/TLibEncoder/TEncSlice.cpp,
35877 source/Lib/TLibEncoder/TEncSlice.h, source/encoder/frameencoder.cpp,
35878 source/encoder/frameencoder.h:
35879 TEncSlice: move compressSlice logic into FrameEncoder
35882 * source/Lib/TLibEncoder/TEncSlice.cpp,
35883 source/Lib/TLibEncoder/TEncSlice.h, source/encoder/frameencoder.cpp:
35884 TEncSlice: prune unnecessary cruft
35887 * source/Lib/TLibEncoder/TEncGOP.cpp,
35888 source/Lib/TLibEncoder/TEncSlice.cpp,
35889 source/Lib/TLibEncoder/TEncSlice.h:
35890 TEncSlice: inline SAR configuration into prepareEncode()
35893 * source/Lib/TLibEncoder/TEncSlice.cpp,
35894 source/Lib/TLibEncoder/TEncSlice.h:
35895 TEncSlice: remove unused resetQP method
35898 * source/Lib/TLibEncoder/TEncGOP.cpp,
35899 source/Lib/TLibEncoder/TEncSlice.cpp,
35900 source/Lib/TLibEncoder/TEncSlice.h, source/encoder/frameencoder.cpp,
35901 source/encoder/frameencoder.h:
35902 move TEncSlice::initEncSlice to FrameEncoder::initSlice
35905 * source/Lib/TLibEncoder/TEncSlice.cpp,
35906 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
35907 frameencoder: retrieve slice from pic
35910 * source/Lib/TLibEncoder/TEncSlice.h, source/encoder/frameencoder.h:
35911 more include cleanups
35914 * source/Lib/TLibEncoder/WeightPredAnalysis.h:
35915 WeightPredAnalysis: simplify includes
35918 * source/Lib/TLibEncoder/TEncSlice.cpp,
35919 source/Lib/TLibEncoder/TEncSlice.h:
35920 TEncSlice: remove unused xGetQPValueAccordingToLambda
35923 * source/Lib/TLibEncoder/TEncGOP.cpp:
35924 TEncGOP: report slice depth in verbose logging
35927 * source/Lib/TLibEncoder/TEncCfg.h,
35928 source/Lib/TLibEncoder/TEncSlice.cpp, source/encoder/encoder.cpp:
35929 encoder: remove unexposed m_recalculateQPAccordingToLambda
35932 * source/Lib/TLibCommon/CommonDef.h,
35933 source/Lib/TLibEncoder/TEncSlice.cpp:
35934 CommonDef: remove unnecessary HB_LAMBDA_FOR_LDC
35937 * source/Lib/TLibEncoder/TEncSlice.cpp:
35938 TEncSlice: re-order logic for more clarity
35941 * source/Lib/TLibEncoder/TEncSlice.cpp:
35942 TEncSlice: remove obsolete comments for initEncSlice()
35945 * source/Lib/TLibEncoder/TEncGOP.cpp:
35946 TEncGOP: re-order some functions by use
35949 * source/Lib/TLibEncoder/TEncGOP.cpp,
35950 source/Lib/TLibEncoder/TEncSlice.cpp,
35951 source/Lib/TLibEncoder/TEncSlice.h:
35952 TEncSlice: do not pass pocCurr to initEncSlice
35955 * source/Lib/TLibEncoder/TEncGOP.cpp,
35956 source/Lib/TLibEncoder/TEncGOP.h,
35957 source/Lib/TLibEncoder/TEncTop.cpp, source/PPA/ppaCPUEvents.h:
35958 TEncGOP: split DPB/RPS management into prepareEncode() function
35961 * source/Lib/TLibEncoder/TEncGOP.cpp,
35962 source/Lib/TLibEncoder/TEncGOP.h:
35963 TEncGOP: remove unnecessary pointer argument reference
35966 * source/encoder/encoder.cpp:
35967 encoder: use true/false to assign bool values
35970 * source/Lib/TLibEncoder/TEncGOP.cpp,
35971 source/Lib/TLibEncoder/TEncGOP.h,
35972 source/Lib/TLibEncoder/TEncTop.cpp,
35973 source/Lib/TLibEncoder/TEncTop.h, source/encoder/encoder.cpp:
35974 TEncTop: getStreamHeaders always returns one access unit
35977 2013-08-14 Steve Borho <steve@borho.org>
35979 * source/Lib/TLibEncoder/TEncGOP.cpp,
35980 source/Lib/TLibEncoder/TEncGOP.h,
35981 source/Lib/TLibEncoder/TEncTop.cpp:
35982 TEncGOP: rename m_frameEncoders to singular
35985 * source/Lib/TLibEncoder/TEncTop.cpp,
35986 source/Lib/TLibEncoder/TEncTop.h:
35987 TEncTop: remove m_picsEncoded
35990 * source/Lib/TLibEncoder/TEncGOP.cpp,
35991 source/Lib/TLibEncoder/TEncGOP.h:
35992 TEncGOP: move utility functions to the end of the file, cleanups
35995 * source/Lib/TLibEncoder/TEncGOP.cpp:
35996 TEncGOP: increment m_totalCoded appropriately, improve comments
35999 * source/Lib/TLibEncoder/TEncGOP.cpp,
36000 source/Lib/TLibEncoder/TEncGOP.h:
36001 TEncGOP: remove unused ref pic fields
36004 * source/Lib/TLibEncoder/TEncGOP.cpp:
36005 TEncGOP: use configured bitrate instead of hard-coded value
36008 * source/Lib/TLibEncoder/TEncGOP.h:
36009 TEncGOP: prepare to bifurcate TEncGOP
36012 * source/Lib/TLibEncoder/TEncCfg.h:
36013 TEncCfg: drop unused m_framesToBeEncoded
36016 * source/Lib/TLibEncoder/TEncTop.cpp:
36017 TEncTop: fix recon file write with 16bpp builds
36020 * source/encoder/ratecontrol.cpp:
36021 ratecontrol: fix vc10 release build
36024 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
36025 ratecontrol: clean compile for GCC - not sure all these changes are
36029 * source/encoder/slicetype.cpp:
36030 slicetype: more fixes
36033 * source/encoder/slicetype.cpp:
36034 slicetype: include list used in lowresCosts
36036 0 - intra 1 - inter L0 2 - inter L1 3 - bidir (future)
36039 * source/encoder/slicetype.cpp:
36040 slicetype: fix I frame cost accumulation, use min to clamp
36044 * source/common/lookahead.cpp, source/common/lookahead.h:
36045 lookahead: add intraCost array
36048 * source/encoder/slicetype.cpp:
36049 slicetype: fixup intra cost and combinations
36052 2013-08-14 ggopu <ggopu>
36054 * source/encoder/slicetype.cpp, source/encoder/slicetype.h:
36055 slicetype : estimateCUCost enhancement for selecting best cost
36058 2013-08-14 Steve Borho <steve@borho.org>
36060 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h,
36062 ratecontrol: use doubles, fix warnings
36065 * source/Lib/TLibEncoder/TEncGOP.cpp:
36066 TEncGOP: re-order some code for clarity
36069 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
36070 ratecontrol: uncrustify
36073 * source/common/common.cpp:
36074 common: prevent warnings about double-to-float conversions
36077 * source/encoder/CMakeLists.txt:
36078 cmake: add ratecontrol to the build
36081 * source/Lib/TLibEncoder/TEncGOP.cpp, source/common/common.cpp,
36082 source/encoder/encoder.cpp, source/encoder/ratecontrol.h,
36087 2013-08-14 sumalatha <sumalatha>
36089 * source/common/common.cpp, source/common/common.h,
36090 source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h,
36091 source/encoder/slicetype.h, source/x265.h:
36092 add rate control parameters to x265_param_t make corresponding
36093 changes to ratecontrol.cpp and .h moved the macro definition of
36094 QP_BD_OFFSET from slicetype.cpp to common.h
36097 2013-08-14 Steve Borho <steve@borho.org>
36099 * source/Lib/TLibEncoder/TEncTop.cpp:
36100 TEncTop: fix some obsolete comments
36103 * source/Lib/TLibEncoder/TEncGOP.cpp,
36104 source/Lib/TLibEncoder/TEncGOP.h,
36105 source/Lib/TLibEncoder/TEncSlice.cpp,
36106 source/Lib/TLibEncoder/TEncSlice.h,
36107 source/Lib/TLibEncoder/TEncTop.cpp,
36108 source/Lib/TLibEncoder/TEncTop.h, source/encoder/encoder.cpp,
36109 source/encoder/slicetype.cpp, source/encoder/slicetype.h,
36110 source/x265.cpp, source/x265.h:
36111 x265: remove GOP compress cadence, encode frames one at a time
36113 it is still using the HM's fixed GOP schedule, but the encoder only
36114 encodes one frame per encode call, and returns at most one encoded
36118 2013-08-13 Steve Borho <steve@borho.org>
36120 * source/Lib/TLibCommon/TComSlice.cpp,
36121 source/Lib/TLibCommon/TComSlice.h,
36122 source/Lib/TLibEncoder/TEncTop.cpp:
36123 TComSlice: delay clearing of motion references until TComPic is
36127 * source/Lib/TLibEncoder/TEncTop.cpp,
36128 source/Lib/TLibEncoder/TEncTop.h:
36129 TEncTop: allocate frames as needed, recycle unreferenced frames from
36133 * source/Lib/TLibCommon/TComPic.h, source/common/lookahead.cpp,
36134 source/common/lookahead.h:
36135 lookahead: add slicetype decision outputs
36138 * source/common/lookahead.cpp:
36139 lookahead: hide unused formal parameter, prevent compiler warning
36142 * source/common/lookahead.cpp, source/common/lookahead.h:
36143 lookahead: fix EOLN, move methods to CPP file, disable downscale
36147 * source/Lib/TLibEncoder/TEncGOP.cpp:
36148 TEncGOP: don't pretend the gop encoder has multiple frame encoders
36151 * source/Lib/TLibEncoder/TEncTop.cpp, source/output/y4m.cpp,
36152 source/output/y4m.h, source/output/yuv.cpp, source/x265.h:
36153 recon: allow reconstructed images to be output in non-display order
36155 By returning the POC of the recon image, the output file writers can
36156 seek to the appropriate location in the output file before writing
36160 * source/Lib/TLibCommon/TComPic.cpp, source/common/lookahead.cpp,
36161 source/common/lookahead.h:
36162 lookahead: move remaining create logic into create method
36165 * source/common/lookahead.cpp:
36166 lookahead: simplify create() method slightly
36169 * source/Lib/TLibCommon/TComPic.cpp:
36170 TComPic: add missing call to lowres.create()
36173 * source/Lib/TLibEncoder/TEncTop.cpp, source/common/lookahead.h:
36174 lookahead: move downscale and extend logic into lowres.init()
36177 * source/Lib/TLibCommon/TComPic.h:
36178 TComPic: add sliceType member variable for lookahead output
36181 The TComPic doesn't have a TEncSlice associated with it until encode
36185 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
36186 source/Lib/TLibEncoder/TEncTop.cpp, source/common/CMakeLists.txt,
36187 source/common/lookahead.cpp, source/common/lookahead.h:
36188 lookahead: isolate buffer allocation and release logic into
36189 LookaheadFrame class
36192 * source/encoder/slicetype.cpp, source/encoder/slicetype.h:
36193 slicetype: remove incorrect comments
36196 * source/Lib/TLibEncoder/TEncTop.cpp,
36197 source/Lib/TLibEncoder/TEncTop.h, source/encoder/CMakeLists.txt,
36198 source/encoder/slicetype.cpp, source/encoder/slicetype.h:
36199 TEncTop: allocate a singleton lookahead instance
36202 * source/x265opts.h:
36203 x265: no camelcase CLI options
36206 * source/x265opts.h:
36207 x265: fix help for bFrameBias
36211 x265: show boolean flag defaults even if they have a short-option
36214 * source/x265opts.h:
36215 x265: re-order boolean flags for more logical groupings
36218 * source/x265opts.h:
36219 x265: remove obsolete default documentation
36222 2013-08-13 ggopu <ggopu>
36225 x265 cli: Added default values to the CLI help text
36228 2013-08-13 Steve Borho <steve@borho.org>
36230 * source/Lib/TLibEncoder/TEncGOP.cpp,
36231 source/Lib/TLibEncoder/TEncTop.cpp,
36232 source/Lib/TLibEncoder/TEncTop.h:
36233 TEncTop: remove hungarian gc prefix from frame statistics members
36236 * source/Lib/TLibEncoder/TEncGOP.cpp:
36237 TEncGOP: remove unnecessary scope level
36240 * source/Lib/TLibEncoder/TEncTop.h:
36241 TEncTOP: forward decl Lookahead and ThreadPool
36244 * source/encoder/encoder.cpp:
36245 encoder: prevent warnings for open-gop config
36248 * source/encoder/slicetype.cpp:
36249 slicetype: only calculate lowres intra costs once per input picture
36252 * source/encoder/slicetype.cpp:
36253 slicetype: rename tmp to predictions
36256 * source/Lib/TLibCommon/TComPic.cpp,
36257 source/Lib/TLibEncoder/TEncTop.cpp, source/common/lookahead.h:
36258 lookahead: re-initialize lowres state for each new picture
36261 * source/encoder/slicetype.cpp:
36262 slicetype: fix prediction and sa8d arguments
36265 * source/encoder/motion.h:
36266 motion: expose COST_MAX
36269 2013-08-13 ggopu <ggopu>
36271 * source/encoder/motion.h, source/encoder/slicetype.cpp:
36272 slicetype: satd cost analysis bug fixed
36275 2013-08-13 Steve Borho <steve@borho.org>
36277 * source/common/common.cpp, source/encoder/encoder.cpp:
36278 encoder: repair open-gop behavior
36280 it was broken when we replaced uint getKeyframeInterval() with
36281 signed int param.keyframeInterval
36284 * source/encoder/slicetype.cpp:
36285 slicetype: add comment to make uncrustify happy
36288 * source/common/lookahead.h:
36289 lookahead: remove unused macro
36292 * source/Lib/TLibEncoder/TEncGOP.cpp,
36293 source/Lib/TLibEncoder/TEncSlice.cpp, source/common/common.cpp,
36294 source/encoder/encoder.cpp, source/x265.h, source/x265opts.h:
36295 x265: add lookahead parameters to x265_param_t
36298 2013-08-12 Steve Borho <steve@borho.org>
36300 * source/common/lookahead.h:
36301 lookahead: reorder and document LookaheadFrame
36304 * source/encoder/slicetype.cpp:
36305 slicetype: rename X264_LOOKAHEAD_QP
36308 * source/encoder/slicetype.cpp:
36309 slicetype: use hex search in lookahead
36312 2013-08-12 ggopu <ggopu>
36314 * source/encoder/slicetype.cpp:
36315 slicetype : Uncrustify
36318 2013-08-12 Steve Borho <steve@borho.org>
36320 * source/Lib/TLibEncoder/TEncGOP.cpp:
36324 * source/Lib/TLibEncoder/TEncGOP.cpp:
36325 TEncGOP: move adaptive search range determination a bit later
36328 * source/Lib/TLibEncoder/TEncGOP.cpp:
36329 TEncGOP: use REF_PIC_LIST enums directly
36332 * source/Lib/TLibEncoder/TEncGOP.cpp:
36333 TEncGOP: move access unit allocation closer to bitstream generation
36335 This further isolates the slice initialization code
36338 * source/Lib/TLibEncoder/TEncGOP.cpp:
36339 TEncGOP: wrap long line
36342 * source/Lib/TLibEncoder/TEncGOP.cpp:
36343 TEncGOP: use m_cfg to reference scaling list type
36346 * source/Lib/TLibEncoder/TEncGOP.cpp:
36347 TEncGOP: rename iRef to ref
36350 * source/Lib/TLibEncoder/TEncCfg.h,
36351 source/Lib/TLibEncoder/TEncGOP.cpp, source/encoder/encoder.cpp:
36352 TEncGOP: TMVP has been hard-coded enabled for some time
36355 * source/Lib/TLibEncoder/TEncCfg.h,
36356 source/Lib/TLibEncoder/TEncGOP.cpp, source/encoder/encoder.cpp:
36357 TEncGOP: drop file parsing of scaling lists, simplify slice
36361 2013-08-11 ggopu <ggopu>
36363 * source/encoder/slicetype.cpp:
36364 slicetype: added x265_median_mv
36367 2013-08-12 Steve Borho <steve@borho.org>
36369 * source/CMakeLists.txt:
36370 cmake: add Windows-only option to make binary compatible with
36374 2013-08-11 Steve Borho <steve@borho.org>
36376 * source/input/yuv.cpp:
36377 yuv: delay signed int cast until after division by picture size
36379 This should fix reported negative frame count problems
36382 * source/Lib/TLibEncoder/TEncTop.cpp:
36383 TEncTop: GOP encoders are no longer allocated as an array
36388 2013-08-11 Aarthi <aarthi@multicorewareinc.com>
36390 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
36391 uncrustify, code cleanup , continue porting x264 rate control to
36395 2013-08-11 Steve Borho <steve@borho.org>
36397 * source/Lib/TLibEncoder/TEncGOP.cpp,
36398 source/Lib/TLibEncoder/TEncSlice.cpp:
36399 TEncGOP: move slice reference flag from TEncSlice to TEncGOP
36401 Move it together with the rest of the code that determines slice and
36405 * source/test/pixelharness.cpp:
36406 pixelharness: revert memcmp counts to full block size
36408 I had changed a number of these to only compare the actual block
36409 size processed by the primitive, but this was wrongly checking the
36410 first n x m pixels instead of the n x m pixels in the upper left
36411 corner of the output buffer (the stride of the buffers was always
36412 64). So it was comparing some of the wrong pixels, and not all of
36413 the proper ones. Comparing all 64x64 pixels is harmless, and
36414 actually verifies the primitive isn't writing beyond the correct
36418 2013-08-09 Steve Borho <steve@borho.org>
36420 * source/encoder/encoder.cpp:
36424 * source/Lib/TLibEncoder/TEncCfg.h,
36425 source/Lib/TLibEncoder/TEncSlice.cpp, source/encoder/encoder.cpp:
36426 encoder: drop unused loop filter offsets from fixed GOP struct
36429 * source/encoder/frameencoder.cpp:
36430 frameencoder: fix member initialization order for GCC
36433 * source/encoder/slicetype.cpp:
36434 slicetype: fix GCC warnings and EOLN damage and one bug
36437 2013-08-09 sumalatha <sumalatha>
36439 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
36440 Uncrustify ratecontrol.cpp and ratecontrol.h
36443 2013-08-09 praveentiwari <praveentiwari>
36445 * source/common/dct.cpp, source/common/vec/ipfilter8.inc,
36446 source/test/mbdstharness.cpp, source/test/mbdstharness.h:
36447 Added name to worked files
36450 * source/common/vec/sse.inc:
36451 sse.inc: Added name to contributed file
36454 * source/common/vec/dct.inc:
36455 dct.inc: Added name to contributed file
36458 2013-08-09 Steve Borho <steve@borho.org>
36460 * source/common/lookahead.h, source/encoder/slicetype.cpp:
36461 slicetype: fill in more lookahead detail
36464 2013-08-08 Steve Borho <steve@borho.org>
36466 * source/Lib/TLibEncoder/TEncGOP.cpp,
36467 source/Lib/TLibEncoder/TEncSlice.cpp,
36468 source/Lib/TLibEncoder/TEncTop.cpp:
36469 mark places where m_gopList is used
36471 aka, mark where the demolition charges are set
36474 2013-08-08 Min Chen <chenm003@163.com>
36476 * source/Lib/TLibCommon/TComLoopFilter.cpp,
36477 source/Lib/TLibCommon/TComLoopFilter.h,
36478 source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
36479 source/Lib/TLibEncoder/TEncGOP.cpp, source/PPA/ppaCPUEvents.h,
36480 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
36481 framepp: thread of loopfilter
36484 2013-08-08 Steve Borho <steve@borho.org>
36486 * source/common/vec/pixel.inc:
36487 pixel: allow intel compiler to generate AVX2 intrinsics
36490 * source/common/vec/pixel.inc:
36491 pixel: disable AVX2 instrinsic SAD primitives for VC11
36493 They are failing unit tests, and causing odd encoder crashes that
36494 appear to be related to aligned loads. We need ASM versions of these
36498 * source/test/ipfilterharness.cpp:
36499 ipfilter: and some more tabs
36502 * source/test/ipfilterharness.cpp:
36503 ipfilter: nuke some tabs
36506 * source/Lib/TLibCommon/TComCABACTables.h:
36507 TComCABACTables: fix ICL warning about order of variable modifiers
36510 * source/test/ipfilterharness.cpp:
36511 ipfilter: malloc output buffers for testbench - prevents ICL stack
36515 * source/common/vec/sse.inc:
36516 sse: variable renames to match pixelcmp style
36519 2013-08-08 praveentiwari <praveentiwari>
36521 * source/common/vec/sse.inc:
36522 sse_pp64: +1x over last commit
36525 * source/common/vec/sse.inc:
36526 sse_pp48: +1x over last commit
36529 * source/common/vec/sse.inc:
36530 sse_pp32: Better performance result
36533 * source/common/vec/sse.inc:
36534 sse_pp24: Better performance result
36537 * source/common/vec/sse.inc:
36538 sse_pp16: Better performance result
36541 * source/common/vec/sse.inc:
36542 sse_pp12: Replced costly psrli + pmovzx and psrli + add
36545 * source/common/vec/sse.inc:
36546 sse_pp8: Replaced 'vpbroadcastd' with cheaper 'pxor' instruction
36549 2013-08-08 sumalatha <sumalatha>
36551 * source/encoder/ratecontrol.cpp, source/encoder/ratecontrol.h:
36552 add (incomplete) ratecontrol.cpp and ratecontrol.h
36555 2013-08-08 praveentiwari <praveentiwari>
36557 * source/common/vec/ipfilter8.inc:
36558 filterVertical_s_p: VC9 fix
36561 2013-08-08 Steve Borho <steve@borho.org>
36563 * source/encoder/CMakeLists.txt:
36564 cmake: add slicetype.cpp to the encoder build
36567 * source/Lib/TLibCommon/TComPic.h:
36571 2013-08-08 ggopu <ggopu>
36573 * source/common/lookahead.h, source/encoder/slicetype.cpp:
36574 slicetype: modified lookahead structure and added
36575 slicetype_cu_cost()
36578 * source/encoder/slicetype.cpp:
36579 Uncrustify slicetype.cpp
36582 2013-08-08 Steve Borho <steve@borho.org>
36584 * build/icl/build-all.bat, build/icl/make-makefile.bat,
36585 source/common/vec/CMakeLists.txt:
36586 cmake: add batch files for Intel C++ 2013 on Windows
36589 * source/CMakeLists.txt:
36590 cmake: Intel's ICL mimics MSVC compiler commandline, treat as equiv
36593 2013-08-07 Min Chen <chenm003@163.com>
36595 * source/Lib/TLibEncoder/TEncCavlc.cpp,
36596 source/Lib/TLibEncoder/TEncTop.cpp:
36597 fix bug when '--no-wpp --no-lft'
36600 * source/common/common.cpp, source/x265opts.h:
36601 rename option from 'lpf' to 'lft'
36604 2013-08-07 praveentiwari <praveentiwari>
36606 * source/common/vec/sse.inc:
36607 sse_pp64: +1.5x for all versions
36610 * source/common/vec/sse.inc:
36611 sse_pp48: Improved performance result for all versions
36614 * source/common/vec/sse.inc:
36615 sse_pp24: Improved performance result for all the versions
36618 * source/common/vec/sse.inc:
36619 sse_pp32: Improved performance for all versions above 1x
36622 * source/common/vec/sse.inc:
36623 sse.inc: Uncrustified
36626 2013-08-07 Steve Borho <steve@borho.org>
36628 * source/Lib/TLibEncoder/TEncGOP.cpp:
36629 TEncGop: simplify call of setMvdL1ZeroFlag()
36632 * source/common/pixel.cpp:
36633 pixel: white-space cleanups in frame_init_lowres_core
36636 * source/test/pixelharness.cpp:
36637 pixelharness: fix more test dimensions
36640 2013-08-06 Steve Borho <steve@borho.org>
36642 * source/Lib/TLibEncoder/TEncTop.cpp:
36643 TEncTop: simplify pic list destruction
36646 * source/Lib/TLibEncoder/TEncTop.cpp:
36647 TEncTop: correct an old comment
36650 2013-08-06 Deepthi Devaki <Deepthi Devaki>
36652 * source/common/vec/ipfilter8.inc:
36653 ipfilter8.inc: Uncrustified
36656 * source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc:
36657 ipfilter8.inc: vectorized vertical weighted filter
36660 * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h:
36661 ipfilterharness: unit test for vertical weighted filter
36664 2013-08-06 Steve Borho <steve@borho.org>
36666 * source/common/vec/pixel.inc, source/common/vec/sse.inc:
36667 sse: sse_pp requires SSE4.1
36670 * source/Lib/TLibCommon/TComPic.cpp:
36671 TComPic: fix the malloc logic
36674 * source/Lib/TLibCommon/TComPic.cpp:
36675 TComPic: fix white-space style
36678 2013-08-06 praveentiwari <praveentiwari>
36680 * source/common/vec/sse.inc:
36681 sse_pp16: more than +1x performance improvement for all versions.
36684 * source/common/vec/sse.inc:
36685 sse_pp12 all versions, improved performance with intrinsic code
36688 * source/common/vec/sse.inc:
36689 +1x for all versions of sse_pp8
36692 2013-08-06 Min Chen <chenm003@163.com>
36694 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
36695 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
36696 framepp: move frame col flag to Pic
36699 2013-08-06 Steve Borho <steve@borho.org>
36701 * source/Lib/TLibCommon/TComPic.cpp:
36702 TComPic: initialize m_bframes and lowres struct to all zeros
36705 * source/test/pixelharness.cpp:
36706 pixelharness: futher magic value cleanups, use STRIDE as appropriate
36709 * source/Lib/TLibCommon/TComLoopFilter.cpp:
36710 TComLoopFilter: fix variable shadowing
36712 The HM was using Edge as a parameter and iEdge as a loop variable
36715 * source/Lib/TLibEncoder/TEncSbac.cpp,
36716 source/Lib/TLibEncoder/TEncSbac.h:
36717 TEncSBac: iOffset -> offset
36720 * source/Lib/TLibCommon/TComPattern.cpp:
36721 TComPattern: piSrc -> sec
36724 * source/Lib/TLibCommon/TComLoopFilter.cpp,
36725 source/Lib/TLibCommon/TComLoopFilter.h:
36726 TComLoopFilter: strip hungarian prefixes from members and autos
36729 2013-08-06 Min Chen <chenm003@163.com>
36731 * source/Lib/TLibCommon/TComLoopFilter.cpp:
36732 framepp: merge V/H filter into one loop
36735 * source/Lib/TLibCommon/TComLoopFilter.cpp:
36736 framepp: loopfilter simplify and remove redundant
36737 getDeblockingFilterDisable()
36740 2013-08-05 Steve Borho <steve@borho.org>
36742 * source/test/pixelharness.cpp:
36743 pixelharness: stride of 64, incr of 32, remove magical values
36745 This should fix AVX2 test failures and make the code more
36749 * source/test/pixelharness.cpp:
36750 pixelharness: remove redundant defines
36753 * source/Lib/TLibEncoder/TEncCfg.h:
36754 white-space cleanups in TEncCfg.h
36757 * source/encoder/motion.cpp, source/encoder/motion.h:
36758 motion: remove dead subsample member
36761 * source/Lib/TLibCommon/SEI.h, source/Lib/TLibEncoder/SEIwrite.cpp,
36762 source/Lib/TLibEncoder/SEIwrite.h, source/Lib/TLibEncoder/TEncCfg.h,
36763 source/Lib/TLibEncoder/TEncGOP.cpp, source/encoder/encoder.cpp:
36764 TEncGOP: remove SOPDescriptionSEI, the HM's implementation required
36768 * source/Lib/TLibEncoder/TEncGOP.cpp:
36769 TEncGOP: remove unused multi-slice logic
36772 * source/Lib/TLibEncoder/TEncGOP.cpp:
36773 TEncGOP: isolate colDir logic within B-frame expression
36776 2013-08-05 ggopu <ggopu>
36778 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
36779 source/Lib/TLibEncoder/TEncTop.cpp:
36780 lookahead: lookahead output cost allocations and initialization
36783 2013-08-05 Steve Borho <steve@borho.org>
36785 * source/Lib/TLibEncoder/TEncCfg.h,
36786 source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp:
36787 remove redundant m_deblockingFilterControlPresent
36790 * source/Lib/TLibEncoder/TEncCfg.h, source/encoder/encoder.cpp:
36791 remove redundant m_bLoopFilterDisable
36794 2013-08-05 Min Chen <chenm003@163.com>
36796 * source/Lib/TLibCommon/TComLoopFilter.cpp,
36797 source/Lib/TLibCommon/TComLoopFilter.h,
36798 source/Lib/TLibEncoder/TEncGOP.cpp,
36799 source/Lib/TLibEncoder/TEncSlice.cpp, source/common/common.cpp,
36800 source/encoder/encoder.cpp, source/encoder/frameencoder.cpp,
36801 source/x265.h, source/x265opts.h:
36802 framepp: Loopfilter cleanup and control by --lpf
36805 2013-08-05 Deepthi Devaki <Deepthi Devaki>
36807 * source/common/vec/ipfilter8.inc:
36808 Optimizations to horizontal weighted filter
36811 * source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc:
36812 vectorized horizontal weighted filter
36815 * source/test/ipfilterharness.cpp:
36816 ipfilterharness: modifications to weighted filter testbench
36819 2013-08-05 praveentiwari <praveentiwari>
36821 * source/common/vec/ipfilter8.inc:
36822 filterHorizontal_p_s: saving instructions with control execution
36825 * source/common/vec/ipfilter8.inc:
36826 filterHorizontal_p_p: sum decleared as local register
36829 * source/common/vec/ipfilter8.inc:
36830 filterHorizontal_p_p: saving instruction with control execution
36833 2013-08-05 Steve Borho <steve@borho.org>
36835 * source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc:
36836 ipfilter: ipfilter_pp uses SSE4.1 instructions
36839 2013-08-04 Aarthi <aarthi@multicorewareinc.com>
36841 * source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
36842 source/Lib/TLibCommon/TComTrQuant.cpp,
36843 source/Lib/TLibCommon/TComTrQuant.h,
36844 source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp,
36845 source/Lib/TLibEncoder/TEncGOP.cpp,
36846 source/Lib/TLibEncoder/TEncSearch.cpp,
36847 source/Lib/TLibEncoder/TEncSlice.cpp,
36848 source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp,
36849 source/encoder/frameencoder.cpp:
36850 remove duplicate vars, get() methods
36853 2013-08-02 Steve Borho <steve@borho.org>
36855 * source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc:
36856 ipfilter: remove vector versions of more optimized functions
36859 * source/common/vec/CMakeLists.txt, source/common/vec/blockcopy-
36860 sse42.cpp, source/common/vec/dct-sse42.cpp, source/common/vec/intra-
36861 sse42.cpp, source/common/vec/ipfilter-sse42.cpp, source/common/vec
36862 /pixel-sse42.cpp, source/common/vec/sse42.cpp, source/common/vec
36863 /vec-primitives.cpp:
36864 remove SSE42 vector primitive files - they were nearly the same as
36867 There wasn't enough differentiation (only abs() changed with SSE42)
36868 to warrant all the extra build time.
36871 * source/common/vec/pixel.inc, source/common/vec/pixel8.inc,
36873 x265: switch cpu levels from enum to defines
36876 * source/common/vec/pixel.inc:
36877 pixel: move sse.inc include closer to other primitive includes
36880 * source/common/primitives.h, source/common/vec/blockcopy.inc,
36881 source/common/vec/dct.inc, source/common/vec/intrapred.inc,
36882 source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc:
36883 vec: use enums instead of magical integer values for SIMD build
36887 * source/common/primitives.h:
36888 primitives: white-space fix
36892 x265: add enums for CPU SIMD architecture levels
36896 x265: fix C++ism in public header and some white-space issues
36899 * source/encoder/frameencoder.cpp:
36900 frameencoder: do not check row priority if WPP is disabled
36903 * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp,
36904 source/encoder/compress.cpp:
36905 TEncCfg: nuke most set*() methods
36908 2013-08-02 praveentiwari <praveentiwari>
36910 * source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc:
36911 filterVertical_p_p: intrinsic for vector replacement
36914 * source/common/vec/ipfilter8.inc:
36915 filterVertical_s_p: constrution replaced with shuffle
36918 * source/common/vec/ipfilter8.inc:
36919 filterVertical_s_p: fix for VC9 test bench fail
36922 2013-08-02 Steve Borho <steve@borho.org>
36924 * source/encoder/encoder.cpp:
36925 encoder: fix member variable shadowing
36928 2013-08-02 ggopu <ggopu>
36930 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
36931 source/Lib/TLibCommon/TComPicYuv.h,
36932 source/Lib/TLibEncoder/TEncTop.cpp, source/common/CMakeLists.txt,
36933 source/common/lookahead.h:
36934 Lookahead data structures introduced
36937 2013-08-02 aarthi <aarthi>
36939 * source/encoder/encoder.cpp:
36940 replaced all the set*() methods with the member variables in
36944 2013-08-02 Shazeb N Khan <Shazeb N Khan>
36946 * source/test/ipfilterharness.cpp, source/test/ipfilterharness.h:
36947 TestBench for filter-Weighted
36950 2013-08-01 Steve Borho <steve@borho.org>
36952 * source/common/wavefront.cpp, source/common/wavefront.h,
36953 source/encoder/frameencoder.cpp:
36954 wavefront: add a check for higher priority rows ready to be
36958 * source/Lib/TLibEncoder/TEncCfg.h,
36959 source/Lib/TLibEncoder/TEncGOP.cpp,
36960 source/Lib/TLibEncoder/TEncSlice.cpp, source/encoder/encoder.cpp:
36961 replace TEncCfg.getIntraPeriod with param.keyframeInterval
36964 * source/Lib/TLibEncoder/TEncCfg.h,
36965 source/Lib/TLibEncoder/TEncGOP.cpp,
36966 source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp,
36967 source/encoder/frameencoder.cpp:
36968 replace TEncCfg.getSourceHeight with param.sourceHeight
36971 * source/Lib/TLibEncoder/TEncCfg.h,
36972 source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp,
36973 source/encoder/frameencoder.cpp:
36974 replace TEncCfg.getSourceWidth with param.sourceWidth
36977 * source/Lib/TLibEncoder/TEncCfg.h,
36978 source/Lib/TLibEncoder/TEncGOP.cpp,
36979 source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp:
36980 replace TEncCfg.getFrameRate with param.frameRate
36983 * source/Lib/TLibEncoder/TEncCfg.h,
36984 source/Lib/TLibEncoder/TEncGOP.cpp,
36985 source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp:
36986 replace TEncCfg.getLogLevel with param.logLevel
36989 * source/Lib/TLibEncoder/TEncGOP.cpp,
36990 source/Lib/TLibEncoder/TEncSlice.cpp,
36991 source/Lib/TLibEncoder/TEncTop.cpp,
36992 source/Lib/TLibEncoder/TEncTop.h, source/encoder/encoder.cpp,
36993 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
36994 replace TEncCfg.getEnableWaveFront() with param.bEnableWavefront
36997 * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncTop.h,
36998 source/encoder/encoder.cpp:
36999 give TEncCfg a copy of the input params
37002 * source/encoder/encoder.cpp:
37003 encoder: note some missing logic in level enforcement
37006 * source/common/common.cpp:
37007 common: update warning message about searchMethod values
37010 * source/Lib/TLibEncoder/TEncSearch.cpp,
37011 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/motion.cpp:
37012 add full search to optimized ME, always use our function for uni-
37016 * source/Lib/TLibEncoder/TEncSearch.cpp,
37017 source/Lib/TLibEncoder/TEncSearch.h, source/x265.h,
37019 remove HM's unidirectional motion search except full search
37022 * source/encoder/encoder.cpp:
37023 biprediction uses HM's full search routine unconditionally
37025 The search method for uni-directional search does not depend on
37026 bipred search configuration.
37029 2013-08-01 Shazeb N Khan <Shazeb N Khan>
37031 * source/Lib/TLibCommon/TComPrediction.cpp,
37032 source/Lib/TLibEncoder/TEncSearch.cpp,
37033 source/Lib/TLibEncoder/TEncSlice.cpp:
37034 TEncSearch, TEncSlice, TComPrediction: Uncrustified
37037 2013-08-01 Steve Borho <steve@borho.org>
37039 * source/Lib/TLibCommon/TComPrediction.cpp,
37040 source/Lib/TLibCommon/TComWeightPrediction.cpp,
37041 source/Lib/TLibCommon/TComWeightPrediction.h,
37042 source/Lib/TLibEncoder/TEncSearch.cpp:
37043 Using the weighted frames in prediction
37046 2013-08-01 Shazeb N Khan <Shazeb N Khan>
37048 * source/Lib/TLibCommon/TComSlice.h,
37049 source/Lib/TLibEncoder/TEncSlice.cpp, source/encoder/encoder.cpp:
37050 Integration of weighted frames in the encoder
37053 * source/Lib/TLibCommon/TComPrediction.cpp,
37054 source/Lib/TLibCommon/TComPrediction.h,
37055 source/Lib/TLibEncoder/TEncSearch.cpp:
37056 Used cached MotionReference pointers in Prediction
37059 2013-08-01 Steve Borho <steve@borho.org>
37061 * source/Lib/TLibCommon/TComPicYuv.cpp, source/common/reference.cpp,
37062 source/common/reference.h:
37063 reference: add methods for setting and comparing weights
37066 * source/common/reference.h, source/encoder/motion.cpp,
37067 source/encoder/motion.h:
37068 reference: split reference plane data from interpolation logic
37070 The motion search code only needs the ReferencePlanes data. Now that
37071 it is separated, lookahead can use the reference plane structure
37072 without all the MotionReference overhead.
37075 * source/Lib/TLibCommon/CommonDef.h, source/encoder/compress.cpp:
37076 Move LAMBDA_PARTITION_SELECT defnition from CommonDef to
37080 * source/common/vec/ipfilter8.inc:
37081 ipfilter: remove unused maxVal variable (for 8bpp it is unnecessary)
37084 * source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc:
37085 ipfilter_sp uses SSE4 instructions
37088 * source/common/common.cpp:
37089 common: enable WPP by default, disable by --no-wpp or --threads 1
37092 2013-08-01 praveentiwari <praveentiwari>
37094 * source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc:
37095 Close to +2x performance improvement for filterVertical_s_p
37098 2013-08-01 sumalatha <sumalatha>
37100 * source/Lib/TLibCommon/CommonDef.h:
37101 adjusted LAMBDA_PARTITION_SELECT value to 0.9 - optimal for using in
37105 * source/encoder/compress.cpp:
37106 made logic changes to EARLY_EXIT_NO_RDO mode - optimized for perf
37110 * source/encoder/compress.cpp:
37111 uncrustify : compress.cpp
37114 2013-07-31 Steve Borho <steve@borho.org>
37116 * source/Lib/TLibEncoder/TEncGOP.cpp:
37117 TEncGOP: remove unused variable
37120 * source/Lib/TLibCommon/TComPicYuv.cpp:
37121 TComPicYuv: release m_refList as a singly linked list
37124 * source/Lib/TLibCommon/TComPicYuv.h,
37125 source/Lib/TLibEncoder/TEncTop.cpp:
37126 TComPicYuv: rename setBorderExtension() to clearExtendedFlag()
37129 * source/Lib/TLibCommon/TComPicYuv.cpp,
37130 source/Lib/TLibCommon/TComPicYuv.h,
37131 source/Lib/TLibEncoder/TEncSlice.cpp:
37132 TComPicYuv: rename extendPicBorder to generateMotionReference()
37134 The function now can be said to generate a motion reference for a
37135 reconstructed frame
37138 * source/Lib/TLibCommon/TComPicYuv.cpp,
37139 source/Lib/TLibCommon/TComPicYuv.h:
37140 TComPicYuv: inline the motion reference search
37143 * source/Lib/TLibEncoder/TEncSearch.cpp:
37144 TEncSearch: use cached motion references from slice header
37147 2013-07-31 Shazeb N Khan <Shazeb N Khan>
37149 * source/Lib/TLibCommon/TComPicYuv.cpp,
37150 source/Lib/TLibCommon/TComPicYuv.h,
37151 source/Lib/TLibCommon/TComSlice.h,
37152 source/Lib/TLibEncoder/TEncSlice.cpp, source/common/reference.cpp,
37153 source/common/reference.h:
37154 Cached the motion reference list in the Slice
37157 2013-07-31 Steve Borho <steve@borho.org>
37159 * source/Lib/TLibCommon/TComPicYuv.cpp,
37160 source/Lib/TLibCommon/TComPicYuv.h, source/common/reference.h:
37161 MotionReference objects with distinct weights handled as linked list
37164 * source/Lib/TLibEncoder/TEncGOP.cpp:
37165 TEncGOP: further simplifications
37168 * source/Lib/TLibCommon/SEI.h, source/Lib/TLibEncoder/SEIwrite.cpp,
37169 source/Lib/TLibEncoder/SEIwrite.h, source/Lib/TLibEncoder/TEncCfg.h,
37170 source/Lib/TLibEncoder/TEncGOP.cpp, source/encoder/encoder.cpp:
37171 remove unreachable TemporalLevel0Index SEI message
37174 * source/Lib/TLibEncoder/TEncGOP.cpp:
37175 TEncGOP: further simplifications and cleanups
37178 * source/Lib/TLibEncoder/TEncGOP.cpp:
37179 TEncGOP: remove redundant slice->setNextSlice() (very next line
37183 * source/Lib/TLibEncoder/TEncGOP.cpp:
37184 TEncGOP: remove redundant if() checks and pointer dereferences
37187 * source/Lib/TLibCommon/SEI.h, source/Lib/TLibEncoder/SEIwrite.cpp,
37188 source/Lib/TLibEncoder/SEIwrite.h, source/Lib/TLibEncoder/TEncCfg.h,
37189 source/Lib/TLibEncoder/TEncGOP.cpp, source/encoder/encoder.cpp:
37190 remove unreachable scalable nesting SEI message
37193 2013-07-30 Steve Borho <steve@borho.org>
37195 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
37196 source/Lib/TLibCommon/TComSlice.cpp,
37197 source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCfg.h,
37198 source/Lib/TLibEncoder/TEncGOP.cpp,
37199 source/Lib/TLibEncoder/TEncSlice.cpp,
37200 source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp:
37201 remove unused temporal layer logic
37204 * source/Lib/TLibEncoder/TEncGOP.cpp:
37205 TEncGOP: reorder some logic for more clarity
37208 * source/Lib/TLibEncoder/TEncGOP.cpp,
37209 source/Lib/TLibEncoder/TEncGOP.h:
37210 TEncGOP: remove unused m_batchSize, m_startPOC
37212 Remnants of GOP parallelism
37215 * source/Lib/TLibEncoder/TEncGOP.cpp:
37216 TEncGOP: move init-type code into init() function
37219 * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp,
37220 source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncGOP.cpp,
37221 source/Lib/TLibEncoder/TEncGOP.h,
37222 source/Lib/TLibEncoder/TEncRateCtrl.cpp,
37223 source/Lib/TLibEncoder/TEncRateCtrl.h,
37224 source/Lib/TLibEncoder/TEncSlice.h,
37225 source/Lib/TLibEncoder/TEncTop.cpp,
37226 source/Lib/TLibEncoder/TEncTop.h, source/encoder/compress.cpp,
37227 source/encoder/encoder.cpp:
37228 remove HM rate control code that has been long broken by WPP
37231 * source/CMakeLists.txt, source/common/vec/CMakeLists.txt:
37232 cmake: cleanup tabs
37235 * source/CMakeLists.txt, source/common/vec/CMakeLists.txt:
37236 cmake: gcc 4.7 support for avx2 vector headers is a little touchy
37239 * source/common/reference.cpp, source/common/reference.h:
37240 MotionReference class with weighted frames
37243 2013-07-30 Deepthi Devaki <Deepthi Devaki>
37245 * source/common/ipfilter.cpp, source/common/primitives.h:
37246 Modified weighted IP Filter primitive to include Full Pel
37249 2013-07-29 Steve Borho <steve@borho.org>
37251 * source/Lib/TLibEncoder/TEncTop.cpp:
37252 TEncTop: re-order destruction so thread pool outlives job providers
37255 * source/Lib/TLibEncoder/TEncGOP.cpp,
37256 source/Lib/TLibEncoder/TEncGOP.h,
37257 source/Lib/TLibEncoder/TEncTop.cpp,
37258 source/Lib/TLibEncoder/TEncTop.h:
37259 TEncTop: move frame list, recon list, and access units out of
37262 This is in preparation for making a new slicetype / lookahead
37263 structure and breaking TEncGOP into a half dozen pieces.
37266 * source/common/common.cpp:
37267 common: enable AMP by default
37270 * source/common/common.cpp:
37271 common: enable SAO by default
37274 * source/common/common.cpp, source/encoder/encoder.cpp, source/x265.h,
37276 make decoder refresh type a configurable param [CHANGES OUTPUTS]
37278 Now that internal GOP parallelism is gone, we can allow the
37279 different modes to be selected at runtime.
37282 * source/Lib/TLibEncoder/TEncSlice.cpp:
37283 TEncSlice: recover HM's original lambda calculations [CHANGES
37286 Now that internal GOP parallelism is no longer supported, this logic
37287 is no longer a determinism bug waiting to happen. But we still want
37288 to replace all this "magical math" with simple QP->lambda tables, in
37292 * source/Lib/TLibEncoder/TEncGOP.cpp:
37296 * source/Lib/TLibEncoder/TEncCfg.h,
37297 source/Lib/TLibEncoder/TEncGOP.cpp,
37298 source/Lib/TLibEncoder/TEncGOP.h,
37299 source/Lib/TLibEncoder/TEncTop.cpp,
37300 source/Lib/TLibEncoder/TEncTop.h, source/common/common.cpp,
37301 source/encoder/encoder.cpp, source/x265.h, source/x265opts.h:
37302 remove GOP parallelism, simplify TEncTop and TEncGOP
37305 * source/CMakeLists.txt:
37306 cmake: add x265.h to CLI visual studio project for convenience
37308 most people will open the x265 project looking for x265.h
37311 2013-07-27 Steve Borho <steve@borho.org>
37313 * source/Lib/TLibEncoder/TEncGOP.cpp,
37314 source/Lib/TLibEncoder/TEncGOP.h,
37315 source/Lib/TLibEncoder/TEncTop.cpp,
37316 source/Lib/TLibEncoder/TEncTop.h, source/encoder/encoder.cpp,
37317 source/x265.cpp, source/x265.h:
37318 x265: add x265_encoder_headers() public API
37320 This brings us more in sync with x264, and makes GOP parallelism
37321 almost trivial to implement above the level of the encoder (so we
37322 can remove the internal one)
37325 2013-07-29 Steve Borho <steve@borho.org>
37327 * source/Lib/TLibEncoder/TEncGOP.cpp:
37328 TEncGOP: remove unused variable
37331 2013-07-29 praveentiwari <praveentiwari>
37333 * source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc:
37334 ipfilter: +3x for filterHorizontal_p_s functions
37336 ipfilter_ps now requires at least SSSE3
37339 * source/common/vec/ipfilter8.inc:
37340 filterHorizontal_p_p vector portion replaced with intrinsic code
37343 * source/common/vec/ipfilter8.inc:
37344 Uncrustified ipfilter8.inc file
37347 2013-07-29 Steve Borho <steve@borho.org>
37349 * source/common/x86/asm-primitives.cpp:
37350 asm: fix 16bpp test bench
37353 * source/Lib/TLibEncoder/TEncGOP.cpp:
37357 2013-07-27 Steve Borho <steve@borho.org>
37359 * source/encoder/compress.cpp:
37360 compress: inter2Nx2NCost was set but not used in default builds
37363 * source/Lib/TLibEncoder/TEncCavlc.cpp,
37364 source/Lib/TLibEncoder/TEncSbac.cpp:
37365 fix compile with ENC_DEC_TRACE enabled in TComRom.h
37368 * source/common/vec/ipfilter8.inc:
37369 ipfilter: fix variable shadowing reported by GCC
37372 2013-07-26 Steve Borho <steve@borho.org>
37374 * Merge with stable
37377 * build/regression/email-csv.py:
37378 regression: improve email-csv.py
37379 [36c6c198f885] <stable>
37381 * source/encoder/compress.cpp:
37382 compress: code cleanups, no functional changes
37385 2013-07-26 Aarthi <aarthi@multicorewareinc.com>
37387 * source/encoder/compress.cpp:
37388 changes to early Exit No RDO - roughly +14% with EARLY_EXIT_NO_RDO=1
37391 2013-07-26 Steve Borho <steve@borho.org>
37393 * source/CMakeLists.txt:
37394 cmake: remove unused NO_RDO_EARLY_EXIT build option
37397 * source/encoder/compress.cpp:
37398 move EARLY_EXIT_NO_RDO to top of compress.cpp
37401 * source/common/vec/ipfilter8.inc:
37402 ipfilter: use unaligned load for coefficients
37404 The chroma coeff table can't be loaded on 16byte alignment
37407 * source/common/vec/ipfilter8.inc:
37408 ipfilter: fix eoln damage from cut-paste
37411 * source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc:
37412 ipfilter now requires at least SSSE3
37415 2013-07-26 praveentiwari <praveentiwari>
37417 * source/common/vec/ipfilter8.inc:
37418 Approx +5x for ipfilterH_pp<8> and ipfilterH_pp<4>
37421 2013-07-26 Steve Borho <steve@borho.org>
37423 * source/common/x86/pixel.h:
37424 asm: white-space nits
37427 * Merge with stable
37430 * source/common/x86/README.txt, source/common/x86/const-a.asm,
37431 source/common/x86/cpu-a.asm, source/common/x86/mc-a2.asm,
37432 source/common/x86/pixel-a.asm, source/common/x86/sad-a.asm,
37433 source/common/x86/x86inc.asm, source/common/x86/x86util.asm:
37434 asm: refresh all asm to a recent x264 revision
37437 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel.h:
37438 asm: use macro decl of downscale prims
37441 * source/common/x86/asm-primitives.cpp:
37442 asm: remove pragma warning disable, connect some 16bpp routines
37445 * source/test/pixelharness.cpp:
37446 pixelharness: fix alignment of downscale input arguments
37449 2013-07-26 ggopu <ggopu@bitbucket.org>
37451 * source/common/pixel.cpp, source/common/primitives.h,
37452 source/common/x86/CMakeLists.txt, source/common/x86/asm-
37453 primitives.cpp, source/common/x86/mc-a2.asm,
37454 source/common/x86/pixel.h, source/test/pixelharness.cpp,
37455 source/test/pixelharness.h:
37456 Lookahead: asm primitve for downscale
37459 2013-07-26 Steve Borho <steve@borho.org>
37461 * source/common/common.cpp, source/x265.h:
37462 api: rename x265_bit_depth to x265_max_bit_depth for clarity
37464 For 16bpp builds, we will eventually want to allow 12bit pixels, but
37465 it should also be capable of encoding 10 and 8 bit streams as well.
37466 Use 8 even for 16bpp builds for now, since we know higher bit depths
37468 [d44588a406ce] <stable>
37470 * source/PPA/ppa.cpp, source/common/threading.h:
37471 use lower case <windows.h> consistently - fixes cross-compiles
37472 [aa392516ae56] <stable>
37474 * source/test/testbench.cpp:
37475 testbench: use x265_malloc / x265_free to avoid duplicate logic
37476 [6b18efa79241] <stable>
37478 * source/common/common.cpp:
37479 common: fix mingw64 malloc
37480 [29fd8ece16d7] <stable>
37482 * open a permanent named branch "stable"
37484 The stable branch is for bug-fixes and documentation improvements
37485 The default branch is where all new development takes place
37487 Each time bugs are fixed on stable, the stable branch is merged into
37488 default. Default is only merged back into stable just prior to a new
37490 [1fd88edc7b11] <stable>
37492 * source/Lib/TLibEncoder/TEncSearch.cpp:
37493 intra: re-enable 64x64 downscale path
37496 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp:
37497 intrapred: fix bug on --cpuid less than 4
37500 * source/encoder/encoder.cpp:
37501 encoder: ensure the setLFCrossTileBoundaryFlag() method is called
37504 Even though we do not use tiles, this could have affected the logic.
37505 For basic encodes, we are now valgrind clean.
37508 * source/encoder/encoder.cpp:
37509 encoder: fix bug reported by valgrind; config vars referenced before
37513 * source/Lib/TLibEncoder/TEncGOP.cpp:
37514 TEncGOP: fix crash in computeSSD when frame stride is not aligned
37518 * source/test/pixelharness.cpp:
37519 testbench: fix leak in pixelharness
37522 2013-07-25 Steve Borho <steve@borho.org>
37524 * source/common/vec/CMakeLists.txt, source/common/vec/vec-
37526 cmake: clarify GCC versions which supported AVX, XOP, and AVX2
37530 * source/common/vec/pixel8.inc:
37531 pixel: remove unused formal parameter names
37534 * source/VectorClass/vectori256.h:
37535 vector: fix variable shadow warnings reported by GCC 4.8.1
37537 The second shadow was almost certainly a bug
37540 * source/CMakeLists.txt:
37541 cmake: on Mac OS X, it is not necessary to link with rt
37544 * source/Lib/TLibCommon/CommonDef.h,
37545 source/Lib/TLibCommon/TComDataCU.cpp,
37546 source/Lib/TLibCommon/TComPicYuv.cpp,
37547 source/Lib/TLibCommon/TComPrediction.cpp,
37548 source/Lib/TLibCommon/TComTrQuant.cpp,
37549 source/Lib/TLibCommon/TComYuv.cpp, source/common/TShortYUV.cpp,
37550 source/common/common.cpp, source/common/ipfilter.cpp,
37551 source/common/reference.cpp, source/test/mbdstharness.cpp,
37552 source/test/pixelharness.cpp, source/test/testbench.cpp:
37553 common: introduce X265_MALLOC/X265_FREE to replace xMalloc/xFree
37555 Uses _aligned_malloc() on Windows and posix_memalign() on everything
37556 else. Old MingGW32 requires a name mapping hack
37559 * source/common/x86/asm-primitives.cpp:
37560 asm: more white-space nits
37563 * source/common/x86/asm-primitives.cpp:
37564 asm: white-space only
37567 * source/common/x86/asm-primitives.cpp:
37568 asm: CPUID 3 is SSSE3, 4 is SSE4. CPUID 1 == C only
37571 * source/Lib/COPYING.HM:
37572 license: add a copy of HM's license to source/Lib
37576 x265: exit cleanly when missing input YUV parameters
37580 vld: report leaks to file as well, useful for regression suite
37584 x265: clear progress report line at exit only if progress enabled
37587 * build/regression/01build-and-smoke-test.bat:
37588 regression: leave build remnants in place, delete cmake cache
37592 * build/regression/01build-and-smoke-test.bat,
37593 build/regression/02perftest.bat:
37594 regression: use --no-progress when running encoder, to clean up logs
37597 * build/regression/01build-and-smoke-test.bat:
37598 regression: use single-threaded msys make to avoid console color
37602 * doc/LookaheadPlan.txt:
37603 doc: publish a plan for porting x264 slice decision and adding frame
37607 2013-07-25 Min Chen <chenm003@163.com>
37609 * source/encoder/compress.cpp:
37610 intrapred: sync buffer overflow patch to mode --no-rdo
37613 2013-07-24 Steve Borho <steve@borho.org>
37615 * source/common/vec/dct.inc, source/common/vec/intrapred.inc:
37616 dct,intra: protect include of smmintrin.h from SIMD arch < SSE4.1
37619 * source/common/vec/CMakeLists.txt:
37620 cmake: use appropriate -mARCH for each intrinsic file set for GCC
37624 x265: check YUV parameters before trying to open YUV file
37627 * source/Lib/TLibCommon/TComPicYuv.cpp,
37628 source/Lib/TLibCommon/TComPicYuv.h:
37629 TComPicYuv: cache strides in a member variable
37632 * source/Lib/TLibCommon/TComPicYuv.cpp:
37633 TComPicYuv: remove obsolete malloc includes
37636 * source/Lib/TLibCommon/TComPicYuv.cpp:
37637 TComPicYuv: varname cleanup
37640 * source/Lib/TLibCommon/TComYuv.cpp, source/common/TShortYUV.cpp:
37641 TComYuv: variable name cleanups
37644 2013-07-24 Deepthi <Deepthi>
37646 * source/Lib/TLibCommon/TComYuv.cpp:
37647 Unreferenced variable removed.
37650 2013-07-24 ggopu <ggopu>
37652 * source/Lib/TLibCommon/TComYuv.cpp:
37653 TComYuv: Added primitive functions for Addclip Luma and chroma
37656 * source/common/TShortYUV.cpp:
37657 TshortYUV: Added Primitive Functions for BlockCopy and AddClip for
37658 both luma and chroma
37661 2013-07-24 Deepthi <Deepthi>
37663 * source/encoder/compress.cpp:
37664 Wrapping up early exit code development in a macro.
37670 * source/encoder/compress.cpp:
37671 Variable renaming in no-rdo mode: removing ambiguities
37674 2013-07-24 Steve Borho <steve@borho.org>
37676 * source/PPA/ppa.h:
37677 ppa: fix "potential uninitialized variable" warning from GCC
37679 gcc is being somewhat obtuse here, but I'll humor it
37682 * build/regression/02perftest.bat:
37683 regression: improve log message in perftest
37686 * build/regression/01build-and-smoke-test.bat, build/regression
37687 /config-example.txt, build/regression/run.bat:
37688 regression: add MSYS builds to regression suite
37691 2013-07-23 Steve Borho <steve@borho.org>
37693 * build/regression/02perftest.bat:
37694 regression: properly use configured perfframes for performance tests
37697 2013-07-23 maheshpittala <maheshpittala>
37699 * build/regression/01build-and-smoke-test.bat,
37700 build/regression/02perftest.bat, build/regression/commandlines-
37701 example.txt, build/regression/config-example.txt, build/regression
37702 /email-csv.py, build/regression/run.bat, source/test/testbench.cpp:
37703 Add regression scripts
37706 2013-07-23 Steve Borho <steve@borho.org>
37708 * source/Lib/TLibEncoder/TEncSearch.cpp:
37709 TEncSearch: temporarily disable 64x64 intra fast path
37711 Running in debug it is reporting stack corruption around the above[]
37715 2013-07-23 Deepthi <Deepthi>
37720 * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp:
37721 Function signature of xcomputeCostInter changed
37724 * source/encoder/compress.cpp:
37725 Computing NxN satd costs for the previous depth
37728 * source/encoder/compress.cpp:
37732 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
37733 Renaming Recon to Pred: we'll be saving satd costs and predicted
37734 frames for NxN vs 2nx2n decision
37737 2013-07-22 Min Chen <chenm003@163.com>
37739 * source/common/pixel.cpp:
37740 intrapred: fix mistake between C and Instrinsic
37743 * source/Lib/TLibEncoder/TEncSearch.cpp:
37744 intrapred: fix bug in HIGH_BIT_DEPTH=1
37747 2013-07-23 Deepthi <Deepthi>
37749 * source/Lib/TLibEncoder/TEncCu.cpp:
37750 Adding a missing memory initialisation
37753 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
37754 Adding new recon structures in no-rdo mode - interNxN
37757 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
37758 Adding new structures in no-rdo mode - interNxN
37761 2013-07-22 Steve Borho <steve@borho.org>
37763 * doc/UnitTestUsage.txt:
37764 remove obsolete unit test doc
37767 2013-07-22 Deepthi <Deepthi>
37769 * doc/Doxyfile, doc/mainpage.h:
37770 Removing Doxygen related documentation from the repo
37773 * doc/gop-structure-example.pdf:
37774 Removing GOP structure example - the POC/decode order is a familiar
37775 concept carried over from H.264
37778 2013-07-21 Min Chen <chenm003@163.com>
37780 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp,
37781 source/common/primitives.h, source/common/vec/pixel.inc,
37782 source/common/vec/pixel8.inc, source/encoder/compress.cpp:
37783 intrapred: Improvement Inra 64x64 [CHANGES OUTPUTS]
37786 2013-07-19 Steve Borho <steve@borho.org>
37789 Added tag 0.3 for changeset 3767fbfa970f
37792 2013-07-19 ggopu <ggopu>
37794 * source/common/pixel.cpp, source/common/primitives.h,
37795 source/common/vec/blockcopy.inc, source/test/pixelharness.cpp,
37796 source/test/pixelharness.h:
37797 Primitive: Performance Primitives for Pixel add Clip - TcomYuv and
37800 # HG changeset patch # User ggopu # Date 1374210970 -19800 # Node
37801 ID 6a864fc57a58e6988969faf3b5b919dd3defa0c1 # Parent
37802 a4c00c3f1897d9af8239bacf5f56621297e9785b Primitive: Performance
37803 Primitives for Pixel add Clip - TcomYuv and TshortYuv
37804 [3767fbfa970f] [0.3]
37806 2013-07-18 Steve Borho <steve@borho.org>
37808 * source/common/threadpool.cpp:
37809 gcc: fix threadpool warnings
37812 2013-07-19 Deepthi <Deepthi>
37814 * source/Lib/TLibCommon/TComDataCU.h:
37815 Cleanup: Removing codedQp member variable.
37818 * source/Lib/TLibCommon/TComDataCU.cpp,
37819 source/Lib/TLibCommon/TComDataCU.h,
37820 source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp:
37821 Cleanup: Removing TotalBins access methods
37824 * source/Lib/TLibCommon/TComDataCU.cpp,
37825 source/Lib/TLibCommon/TComDataCU.h,
37826 source/Lib/TLibEncoder/TEncCu.cpp,
37827 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp,
37828 source/encoder/frameencoder.cpp:
37829 Cleanup: Removing TotalBits access methods
37832 * source/Lib/TLibCommon/TComDataCU.cpp,
37833 source/Lib/TLibCommon/TComDataCU.h,
37834 source/Lib/TLibEncoder/TEncCu.cpp,
37835 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp,
37836 source/encoder/frameencoder.cpp:
37837 Cleanup: Removing Distortion access methods.
37840 * source/Lib/TLibCommon/TComDataCU.h:
37841 Removed getTotalCost() method
37844 * source/Lib/TLibCommon/TComDataCU.cpp,
37845 source/Lib/TLibEncoder/TEncCu.cpp,
37846 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp,
37847 source/encoder/frameencoder.cpp:
37848 Cleanup: Replace getTotalCost() with member access
37851 * source/Lib/TLibCommon/TComDataCU.h:
37852 Making CU cost and misc variables public
37855 2013-07-19 sumalatha <sumalatha>
37857 * source/encoder/compress.cpp:
37858 Changed the LOG, the pred mode was selected wrongly in few cases.
37862 2013-07-18 Steve Borho <steve@borho.org>
37864 * source/common/threadpool.cpp:
37865 threadpool: repair EOLN
37868 * source/common/threadpool.cpp:
37872 * source/common/threadpool.cpp:
37873 threadpool: reduce priority of worker threads slightly
37875 This gives higher priority to GOP (and later frame) threads which,
37876 if they are not blocked should be given CPU cores over worker
37880 * source/common/threadpool.cpp:
37881 threadpool: cleanup
37884 * source/common/vec/CMakeLists.txt:
37885 cmake: fix icpc AVX2 builds
37888 * source/common/vec/pixel8.inc:
37889 pixel: remove the names of unreferenced parameters (GCC now
37890 complains of these)
37893 * source/common/vec/CMakeLists.txt, source/common/vec/vec-
37895 vec: GCC and icpc both have issues with XOP intrinsics
37897 Probably because both rely on GCC headers
37900 * source/common/primitives.cpp:
37901 primitives: only print XOP FMA3 FMA4 if CPU level is at least AVX
37903 If the user asked for --cpuid 6, they should not see XOP, FMA3, or
37904 FMA4 because those will not be used.
37907 * source/encoder/motion.cpp, source/encoder/motion.h:
37908 motion: increase alignement of fenc buffer to 32bytes for AVX2
37911 * source/common/vec/vec-primitives.cpp:
37912 vec: only use XOP primitives when AVX CPU level is requested
37915 * source/common/vec/CMakeLists.txt, source/common/vec/blockcopy-
37916 xop.cpp, source/common/vec/dct-xop.cpp, source/common/vec/intra-
37917 xop.cpp, source/common/vec/ipfilter-xop.cpp, source/common/vec
37918 /pixel-xop.cpp, source/common/vec/vec-primitives.cpp,
37919 source/common/vec/xop.cpp:
37920 vec: add XOP build files, for late AMD CPUs
37923 * source/common/vec/CMakeLists.txt, source/common/vec/blockcopy-
37924 avx.cpp, source/common/vec/blockcopy-avx2.cpp, source/common/vec
37925 /blockcopy-sse3.cpp, source/common/vec/blockcopy-sse41.cpp,
37926 source/common/vec/blockcopy-sse42.cpp, source/common/vec/blockcopy-
37927 ssse3.cpp, source/common/vec/blockcopy.inc,
37928 source/common/vec/vecprimitives.inc:
37929 vec: break blockcopy intrinsics into their own files
37932 * source/common/vec/CMakeLists.txt, source/common/vec/dct-sse2.cpp,
37933 source/common/vec/intra-sse2.cpp, source/common/vec/ipfilter-
37934 sse2.cpp, source/common/vec/pixel-sse2.cpp,
37935 source/common/vec/sse2.cpp, source/common/vec/vec-primitives.cpp:
37936 vec: drop SSE2 files, we don't care that much about CPUs that old
37938 This is mainly for improving compile times, since I will add XOP
37942 * x265: fix EOLN damage
37946 x265: use puts for writing CLI args (makes GCC happy)
37949 * source/Lib/TLibEncoder/TEncSlice.cpp:
37950 TEncSlice: cleanups
37953 * source/Lib/TLibEncoder/TEncSlice.cpp:
37954 TEncSlice: tweak lambda magic value [CHANGES OUTPUTS]
37956 This recovers BasketBallDrive encode PSNR/Bitrate/FPS back to close
37957 what it was when the encoder used the non-deterministic lambda
37961 * source/Lib/TLibCommon/TComRdCost.h,
37962 source/Lib/TLibEncoder/TEncSearch.cpp:
37963 TEncSearch: pass the correct lamda to bitcost calculator [CHANGES
37966 This fixes a bug introduced in 15f993eceb4b, right after 0.1. The
37967 different naming conventions had tripped me up.
37970 2013-07-18 sumalatha <sumalatha>
37972 * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp:
37973 modifications to log file(LOG_CU_COST) to print the best mode, cost
37974 chosen at each level.
37977 2013-07-18 Steve Borho <steve@borho.org>
37979 * source/Lib/TLibEncoder/TEncSearch.cpp:
37980 TEncSearch: remove unused variable
37983 2013-07-18 Min Chen <chenm003@163.com>
37985 * source/Lib/TLibCommon/TComPrediction.cpp,
37986 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/intrapred.cpp,
37987 source/common/primitives.h, source/common/vec/intrapred.inc,
37988 source/encoder/compress.cpp, source/test/intrapredharness.cpp:
37989 intrapred: improvement intra_pred_planar
37992 2013-07-18 Deepthi <Deepthi>
37997 * source/CMakeLists.txt:
37998 NO_RDO_EARLY_EXIT: experimental macro to play with early exit of
38002 2013-07-18 Steve Borho <steve@borho.org>
38004 * source/Lib/TLibCommon/TypeDef.h:
38005 TypeDef: declare g_bitDepth extern if used for X265_DEPTH
38008 2013-07-18 Deepthi <Deepthi>
38010 * source/encoder/compress.cpp:
38014 * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp:
38015 Backout changeset: c45fe1b2bd90
38017 Reasons discussed. Performance improvement at the expense of
38018 quality/bitrate by avoiding the non-zero residual mode.
38021 2013-07-18 Steve Borho <steve@borho.org>
38023 * source/Lib/TLibEncoder/TEncTop.cpp, source/x265.h:
38024 csv: fix global PSNR calculation
38028 csv: add missing fps and line feed
38031 * source/encoder/compress.cpp:
38032 compress: fix debug build
38035 * source/Lib/TLibEncoder/TEncTop.cpp,
38036 source/Lib/TLibEncoder/TEncTop.h, source/encoder/encoder.cpp,
38037 source/x265.cpp, source/x265.h, source/x265opts.h:
38038 x265: add --csv logfile command line
38041 * source/encoder/encoder.cpp, source/encoder/encoder.h:
38045 2013-07-17 Steve Borho <steve@borho.org>
38047 * source/common/common.cpp, source/common/common.h,
38048 source/encoder/encoder.cpp:
38049 common: enforce global variables not changing within a single
38053 * source/Lib/TLibCommon/TComPrediction.cpp,
38054 source/Lib/TLibCommon/TComWeightPrediction.cpp,
38055 source/Lib/TLibCommon/TComYuv.cpp,
38056 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/TShortYUV.cpp,
38057 source/common/TShortYUV.h:
38061 * source/Lib/TLibCommon/TComPicYuv.cpp,
38062 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
38063 source/common/TShortYUV.cpp, source/common/TShortYUV.h:
38067 * source/Lib/TLibCommon/TComWeightPrediction.cpp,
38068 source/Lib/TLibEncoder/TEncEntropy.cpp,
38069 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
38070 source/Lib/TLibEncoder/WeightPredAnalysis.cpp:
38071 remove other various internal users of bitdepth variables
38074 * source/Lib/TLibCommon/TComRdCost.cpp,
38075 source/Lib/TLibCommon/TComRdCost.h,
38076 source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp,
38077 source/Lib/TLibEncoder/TEncSearch.cpp:
38078 TComRdCost: remove bitdepth from distParam
38081 * source/Lib/TLibCommon/TComPicYuvMD5.cpp:
38082 TComPicYuv: remove bitdepth arguments
38085 * source/Lib/TLibCommon/TComPattern.cpp,
38086 source/Lib/TLibCommon/TComPattern.h:
38087 TComPattern: remove bitdepth argument from fillReferenceSamples
38090 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
38091 source/Lib/TLibEncoder/TEncEntropy.cpp:
38092 TComRom: remove hungarian prefix, fix comment typo
38095 * source/Lib/TLibCommon/TComPrediction.cpp,
38096 source/Lib/TLibCommon/TComTrQuant.cpp,
38097 source/Lib/TLibCommon/TComTrQuant.h,
38098 source/Lib/TLibCommon/TComWeightPrediction.cpp,
38099 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/dct.cpp,
38100 source/common/intrapred.cpp, source/common/ipfilter.cpp,
38101 source/common/pixel.cpp, source/common/primitives.h,
38102 source/common/reference.cpp, source/common/vec/dct.inc,
38103 source/common/vec/intrapred.inc, source/common/vec/ipfilter16.inc,
38104 source/common/vec/ipfilter8.inc, source/common/vec/pixel8.inc,
38105 source/test/intrapredharness.cpp, source/test/ipfilterharness.cpp,
38106 source/test/mbdstharness.cpp, source/test/pixelharness.cpp:
38107 primitives: remove bitdepth arguments from all primitives and other
38111 * source/common/primitives.h:
38112 primitives: enable EMMS for random compilers, remove unused define
38115 * source/Lib/TLibCommon/TComLoopFilter.cpp,
38116 source/Lib/TLibCommon/TComPattern.cpp,
38117 source/Lib/TLibCommon/TComPicYuv.cpp,
38118 source/Lib/TLibCommon/TComPicYuvMD5.cpp,
38119 source/Lib/TLibCommon/TComPrediction.cpp,
38120 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
38121 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
38122 source/Lib/TLibCommon/TComSlice.cpp,
38123 source/Lib/TLibCommon/TComTrQuant.cpp,
38124 source/Lib/TLibCommon/TComWeightPrediction.cpp,
38125 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TypeDef.h,
38126 source/Lib/TLibEncoder/TEncCu.cpp,
38127 source/Lib/TLibEncoder/TEncEntropy.cpp,
38128 source/Lib/TLibEncoder/TEncGOP.cpp,
38129 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
38130 source/Lib/TLibEncoder/TEncSearch.cpp,
38131 source/Lib/TLibEncoder/TEncTop.cpp,
38132 source/Lib/TLibEncoder/WeightPredAnalysis.cpp,
38133 source/common/common.cpp, source/common/reference.cpp:
38134 Make 8bpp bit depth a compile define (X265_DEPTH=8), g_bitDepthY ->
38138 * source/Lib/TLibCommon/TypeDef.h:
38139 TypeDef: white-space nits
38142 * source/Lib/TLibCommon/TypeDef.h:
38143 Remove hacks for VC6, we support nothing before VC9
38146 * source/Lib/TLibCommon/TComTrQuant.cpp,
38147 source/Lib/TLibCommon/TComTrQuant.h,
38148 source/Lib/TLibEncoder/TEncSearch.cpp:
38149 TComTrQuant: eText argument is no longer needed for
38150 invRecurTransformNxN
38153 * source/Lib/TLibCommon/TComLoopFilter.cpp,
38154 source/Lib/TLibCommon/TComPattern.cpp,
38155 source/Lib/TLibCommon/TComPicYuv.cpp,
38156 source/Lib/TLibCommon/TComPicYuvMD5.cpp,
38157 source/Lib/TLibCommon/TComPrediction.cpp,
38158 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
38159 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
38160 source/Lib/TLibCommon/TComSlice.cpp,
38161 source/Lib/TLibCommon/TComTrQuant.cpp,
38162 source/Lib/TLibCommon/TComWeightPrediction.cpp,
38163 source/Lib/TLibCommon/TComYuv.cpp,
38164 source/Lib/TLibEncoder/TEncCu.cpp,
38165 source/Lib/TLibEncoder/TEncEntropy.cpp,
38166 source/Lib/TLibEncoder/TEncGOP.cpp,
38167 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
38168 source/Lib/TLibEncoder/TEncSearch.cpp,
38169 source/Lib/TLibEncoder/TEncTop.cpp,
38170 source/Lib/TLibEncoder/WeightPredAnalysis.cpp,
38171 source/common/common.cpp, source/test/mbdstharness.cpp:
38172 Remove separate bitdepth configurable for chroma
38174 Our x265_param_t has never allowed chroma depth to be different from
38175 luma depth, so this is just a simplification of the code. This will
38176 allow further optimizations to shortly follow.
38179 * source/Lib/TLibCommon/TComPrediction.cpp,
38180 source/Lib/TLibCommon/TComWeightPrediction.cpp,
38181 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TypeDef.h,
38182 source/Lib/TLibEncoder/TEncCu.cpp,
38183 source/Lib/TLibEncoder/TEncGOP.cpp,
38184 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/TShortYUV.cpp,
38185 source/common/reference.cpp, source/encoder/compress.cpp:
38186 change 16bpp Pel to UShort, equivalent to x264's uint16_t
38188 This removes a metric ton of ugly casts and makes the code a lot
38189 more readable, and it should keep the 16bpp build from being
38190 accidentally broken when Pels are passed to functions as pixels.
38193 * source/common/TShortYUV.cpp:
38194 blockcopy: further 16bpp fixes
38197 * source/test/pixelharness.cpp:
38198 pixelharness: one change was missed from last commit
38201 * source/common/TShortYUV.cpp, source/common/pixel.cpp,
38202 source/common/primitives.h, source/common/vec/blockcopy.inc,
38203 source/test/pixelharness.cpp:
38204 blockcopy: fix 16bpp build, pixelsubsp -> pixelsub_sp
38207 * source/encoder/compress.cpp:
38208 compress: uncrustify
38211 2013-07-15 sumalatha <sumalatha>
38213 * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp:
38214 Changes in merge mode in no-rdo path for better psnr improvement and
38218 2013-07-17 Steve Borho <steve@borho.org>
38220 * source/Lib/TLibCommon/TComPrediction.cpp,
38221 source/common/intrapred.cpp, source/common/primitives.h,
38222 source/common/vec/intrapred.inc, source/test/intrapredharness.cpp:
38223 Backed out changeset: aee4a23a8f01 (does not compile)
38226 2013-07-17 Min Chen <chenm003@163.com>
38228 * source/Lib/TLibCommon/TComPrediction.cpp,
38229 source/common/intrapred.cpp, source/common/primitives.h,
38230 source/common/vec/intrapred.inc, source/test/intrapredharness.cpp:
38231 intrapred: improvement intra_pred_planar
38234 * source/test/intrapredharness.cpp:
38235 cleanup: remove unused debug code
38238 2013-07-17 Deepthi Devaki <Deepthi Devaki>
38240 * source/common/ipfilter.cpp, source/common/primitives.h:
38241 C primitive for weighted ipfilter
38244 2013-07-17 Deepthi <Deepthi>
38249 * source/Lib/TLibCommon/TComPicYuvMD5.cpp:
38250 HIGH_BIT_ENABLE build error fixed.
38252 Any better idea to get rid of the c4333 warnings welcome.
38255 2013-07-17 ggopu <ggopu>
38257 * source/common/TShortYUV.cpp, source/common/pixel.cpp,
38258 source/common/primitives.h, source/common/vec/blockcopy.inc,
38259 source/test/pixelharness.cpp, source/test/pixelharness.h:
38260 TShortYUV : Implemented perfomance Primitives pixelsub_sp
38263 2013-07-17 Steve Borho <steve@borho.org>
38265 * source/Lib/TLibCommon/TComSlice.cpp,
38266 source/Lib/TLibEncoder/TEncSlice.cpp:
38267 TComSlice: relocate subpel generation to after weightp determination
38270 2013-07-16 Steve Borho <steve@borho.org>
38272 * source/Lib/TLibCommon/TComSlice.cpp:
38273 TComSlice: fix variable shadowing problem that was causing B frame
38276 This HM routine was using refRPC and pcRefRPC in the same function
38277 with entirely different meanings, and it bit me hard when I
38278 refactored this function with search+replace.
38281 * source/Lib/TLibEncoder/TEncCfg.h,
38282 source/Lib/TLibEncoder/TEncGOP.cpp,
38283 source/Lib/TLibEncoder/TEncGOP.h,
38284 source/Lib/TLibEncoder/TEncSlice.cpp,
38285 source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp,
38286 source/encoder/frameencoder.cpp:
38287 TEncGOP: cleanup, make TEncCfg WPP var a Bool
38290 * source/Lib/TLibEncoder/TEncGOP.cpp,
38291 source/Lib/TLibEncoder/TEncGOP.h:
38292 TEncGOP: header cleanup
38295 * source/Lib/TLibCommon/TComPicYuv.cpp,
38296 source/Lib/TLibCommon/TComPicYuv.h, source/common/reference.cpp:
38297 TComPicYuv: cleanup
38300 * source/Lib/TLibCommon/TComPicYuv.h,
38301 source/Lib/TLibCommon/TComWeightPrediction.h:
38302 Replace includes with class forward decls
38305 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h:
38309 * source/Lib/TLibCommon/TComPicSym.cpp,
38310 source/Lib/TLibCommon/TComPicSym.h:
38311 TComPicSym: cleanup
38314 * source/Lib/TLibCommon/TComSlice.cpp:
38315 TComSlice:: fix end-of-list handling in xGetRefPic
38318 * source/Lib/TLibEncoder/TEncSearch.cpp:
38319 TEncSearch: fix full search regression
38322 * source/Lib/TLibCommon/TComSlice.cpp,
38323 source/Lib/TLibCommon/TComWeightPrediction.cpp,
38324 source/Lib/TLibEncoder/TEncSearch.cpp:
38325 repair debug build after removing formal arugments by removing
38329 * source/Lib/TLibEncoder/TEncCu.cpp:
38330 TEncCu: fixup after refactoring
38332 I deleted the 0 argument instead of the NULL argument. MSVC didn't
38333 care but GCC flagged this as a warning. NULL can't be passed as an
38337 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
38338 TEncCu: remove unused xTuCollectARLStats
38341 * source/Lib/TLibCommon/TComDataCU.cpp,
38342 source/Lib/TLibCommon/TComDataCU.h,
38343 source/Lib/TLibCommon/TComTrQuant.cpp,
38344 source/Lib/TLibCommon/TComTrQuant.h,
38345 source/Lib/TLibEncoder/TEncSearch.cpp,
38346 source/Lib/TLibEncoder/TEncSearch.h:
38347 remove buffers no longer used after removing AQ
38350 * source/common/dct.cpp, source/common/primitives.h,
38351 source/common/vec/dct.inc, source/test/mbdstharness.cpp,
38352 source/test/mbdstharness.h:
38353 remove unreachable quantaq primitive
38356 * source/Lib/TLibCommon/TComTrQuant.cpp,
38357 source/Lib/TLibCommon/TComTrQuant.h,
38358 source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp,
38359 source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncGOP.cpp,
38360 source/Lib/TLibEncoder/TEncPic.cpp,
38361 source/Lib/TLibEncoder/TEncPic.h,
38362 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
38363 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
38364 source/Lib/TLibEncoder/TEncSearch.cpp,
38365 source/Lib/TLibEncoder/TEncSlice.cpp,
38366 source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp,
38367 source/encoder/frameencoder.cpp:
38368 Remove broken adaptive QP, fix unused parameter and variable
38371 All of TEncPic now goes away
38374 * source/Lib/TLibEncoder/TEncCfg.h,
38375 source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp:
38376 TEncCfg: hungarian cleanup
38379 * source/Lib/TLibEncoder/TEncCfg.h:
38380 TEncCfg: remove unused istringstream operator
38383 * source/Lib/TLibEncoder/TEncSearch.cpp,
38384 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp:
38385 TEncSearch: remove unused formal parameters (quite a bit of
38389 * source/Lib/TLibEncoder/TEncBinCoderCABACCounter.cpp,
38390 source/Lib/TLibEncoder/TEncCavlc.cpp,
38391 source/Lib/TLibEncoder/TEncCavlc.h,
38392 source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
38393 source/Lib/TLibEncoder/TEncGOP.cpp,
38394 source/Lib/TLibEncoder/TEncGOP.h,
38395 source/Lib/TLibEncoder/TEncSbac.cpp,
38396 source/Lib/TLibEncoder/TEncSlice.cpp,
38397 source/Lib/TLibEncoder/WeightPredAnalysis.cpp,
38398 source/Lib/TLibEncoder/WeightPredAnalysis.h,
38399 source/encoder/CMakeLists.txt:
38400 Stop ignoring many compiler warnings in TLibEncoder
38402 Enable warnings about unused parameters, clean up the warnings
38403 reported. In a few cases I removed parameters that were obviously
38406 Enable warnings about unused variables, clean up the warnings.
38409 * source/Lib/TLibCommon/TComPrediction.cpp,
38410 source/Lib/TLibCommon/TComPrediction.h,
38411 source/Lib/TLibEncoder/TEncSearch.cpp:
38412 TComPrediction: remove unused "bi" parameters to prediction
38416 * source/Lib/TLibCommon/TComWeightPrediction.cpp:
38417 TComWeightPrediction: fix bug found by enabling warnings
38420 * source/Lib/TLibCommon/TComBitStream.cpp,
38421 source/Lib/TLibCommon/TComDataCU.cpp,
38422 source/Lib/TLibCommon/TComPattern.cpp,
38423 source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
38424 source/Lib/TLibCommon/TComPicYuvMD5.cpp,
38425 source/Lib/TLibCommon/TComPrediction.cpp,
38426 source/Lib/TLibCommon/TComPrediction.h,
38427 source/Lib/TLibCommon/TComRdCost.cpp,
38428 source/Lib/TLibCommon/TComSlice.cpp,
38429 source/Lib/TLibCommon/TComSlice.h,
38430 source/Lib/TLibCommon/TComTrQuant.cpp,
38431 source/Lib/TLibCommon/TComWeightPrediction.cpp,
38432 source/Lib/TLibEncoder/TEncGOP.cpp,
38433 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/CMakeLists.txt,
38434 source/encoder/compress.cpp:
38435 Stop ignoring many compiler warnings in TLibCommon
38437 Enable warnings about unused parameters, clean up the warnings
38438 reported. In a few cases I removed parameters that were obviously
38441 Enable warnings about unused variables, clean up the warnings. This
38442 actually found a recently introduced bug.
38445 2013-07-16 Min Chen <chenm003@163.com>
38447 * source/Lib/TLibCommon/TComPrediction.cpp,
38448 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/intrapred.cpp,
38449 source/common/primitives.h, source/common/vec/intrapred.inc,
38450 source/encoder/compress.cpp, source/test/intrapredharness.cpp:
38451 intrapred: improvement intra_pred_dc
38454 2013-07-16 Deepthi <Deepthi>
38459 * source/encoder/compress.cpp:
38463 * source/encoder/compress.cpp:
38464 SSE cost calculation in inter-no-rdo. Raises quality and lowers
38465 bitrate (slightly). Will be changed into a CLI configurable if perf
38466 effect is significant.
38469 2013-07-16 Steve Borho <steve@borho.org>
38471 * source/Lib/TLibCommon/CommonDef.h,
38472 source/Lib/TLibCommon/ContextModel.cpp,
38473 source/Lib/TLibCommon/TComRom.h:
38474 more cleanups for CommonDef.h
38476 * remove circular defininition of g_bitDepthY and g_bitDepthC
38477 * move Clip templates to TComRom.h
38478 * remove some dead defines
38481 * source/Lib/TLibCommon/CommonDef.h,
38482 source/Lib/TLibCommon/TComCABACTables.h,
38483 source/Lib/TLibCommon/TComLoopFilter.h,
38484 source/Lib/TLibCommon/TComPicSym.h,
38485 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
38486 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
38487 source/Lib/TLibCommon/TypeDef.h,
38488 source/Lib/TLibEncoder/TEncCavlc.cpp,
38489 source/Lib/TLibEncoder/TEncCfg.h,
38490 source/Lib/TLibEncoder/TEncGOP.cpp,
38491 source/Lib/TLibEncoder/TEncGOP.h,
38492 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
38493 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
38494 source/Lib/TLibEncoder/TEncSlice.cpp, source/common/TShortYUV.cpp,
38495 source/common/TShortYUV.h, source/common/dct.cpp,
38496 source/common/pixel.cpp, source/common/reference.cpp:
38497 TComSampleAdaptiveOffset: cleanup and global SR, major header
38500 move all #defines from TypeDef.h to CommonDef.h and move all
38501 feature-specific structs from TypeDef.h to their more specific
38504 TypeDef.h should just define types (duh!) and CommonDef.h should
38508 * source/Lib/TLibCommon/TComWeightPrediction.cpp:
38509 TComWeightPrediction: hungarian cleanup
38512 * source/Lib/TLibCommon/TComWeightPrediction.cpp,
38513 source/Lib/TLibCommon/TComWeightPrediction.h,
38514 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
38515 source/common/TShortYUV.h:
38516 TComWeightPrediction: cleanup and global SR iPartUnitIdx ->
38520 2013-07-16 Deepthi Devaki <Deepthi Devaki>
38522 * source/common/vec/pixel8.inc, source/test/pixelharness.cpp:
38523 pixel8.inc, pixelharness : Uncrustified.
38526 * source/common/vec/pixel.inc, source/common/vec/pixel8.inc,
38527 source/test/pixelharness.cpp:
38528 Vectorized WeightUni
38531 2013-07-16 Steve Borho <steve@borho.org>
38533 * source/common/vec/pixel-avx.cpp, source/common/vec/pixel-avx2.cpp,
38534 source/common/vec/pixel-sse2.cpp, source/common/vec/pixel-sse3.cpp,
38535 source/common/vec/pixel-sse41.cpp, source/common/vec/pixel-
38536 sse42.cpp, source/common/vec/pixel-ssse3.cpp,
38537 source/common/vec/pixel.inc:
38538 pixel: move includes of pixel8.inc or pixel16.inc inside pixel.inc
38540 This makes the pixel-ARCH.cpp files much simpler, and makes it
38541 easier to add headers for the pixel functions.
38544 2013-07-15 Steve Borho <steve@borho.org>
38546 * source/x265opts.h:
38547 x265: document --cpuid 1 behavior
38550 * source/Lib/TLibCommon/TComDataCU.cpp,
38551 source/Lib/TLibCommon/TComDataCU.h:
38552 TComDataCU: cleanup classmethods
38555 * source/Lib/TLibCommon/TComDataCU.cpp,
38556 source/Lib/TLibCommon/TComDataCU.h,
38557 source/Lib/TLibCommon/TComPicSym.cpp,
38558 source/Lib/TLibEncoder/TEncCu.cpp:
38559 TComDataCU: remove static ARL buffers, these were not thread safe
38561 This is further proof that the ARL buffers are essentially unused
38562 the way we are using the encoder (with AQ disabled). It is very
38563 tempting to remove them globally.
38566 * source/Lib/TLibCommon/TComDataCU.cpp,
38567 source/Lib/TLibCommon/TComDataCU.h,
38568 source/Lib/TLibCommon/TComPattern.cpp,
38569 source/Lib/TLibCommon/TComPicSym.cpp:
38570 TComDataCU: cleanup, remove "is a decoder" variable
38573 * source/Lib/TLibCommon/TComDataCU.cpp,
38574 source/Lib/TLibCommon/TComDataCU.h,
38575 source/Lib/TLibCommon/TComLoopFilter.cpp,
38576 source/Lib/TLibCommon/TComLoopFilter.h,
38577 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
38578 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
38579 source/Lib/TLibEncoder/TEncCu.cpp,
38580 source/Lib/TLibEncoder/TEncGOP.cpp,
38581 source/Lib/TLibEncoder/TEncGOP.h,
38582 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
38583 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
38584 source/Lib/TLibEncoder/TEncSlice.cpp,
38585 source/Lib/TLibEncoder/TEncSlice.h, source/encoder/compress.cpp:
38586 TEncSlice: less eye-bleed, more global SR
38589 * source/Lib/TLibCommon/TComSlice.cpp,
38590 source/Lib/TLibCommon/TComSlice.h:
38591 TComSlice: cpp cleanup, remove unreferenced class static
38594 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
38595 source/Lib/TLibCommon/TComSlice.cpp,
38596 source/Lib/TLibCommon/TComSlice.h,
38597 source/Lib/TLibCommon/TComWeightPrediction.cpp,
38598 source/Lib/TLibEncoder/TEncBinCoderCABAC.h,
38599 source/Lib/TLibEncoder/TEncCavlc.cpp,
38600 source/Lib/TLibEncoder/TEncSlice.cpp,
38601 source/Lib/TLibEncoder/TEncSlice.h,
38602 source/Lib/TLibEncoder/WeightPredAnalysis.cpp,
38603 source/Lib/TLibEncoder/WeightPredAnalysis.h:
38604 TComSlice: cleanup + global SR
38607 2013-07-15 ggopu <ggopu>
38609 * source/Lib/TLibEncoder/TEncGOP.cpp,
38610 source/Lib/TLibEncoder/TEncSlice.cpp,
38611 source/Lib/TLibEncoder/TEncSlice.h:
38612 TEncSlice: CleanUp and Removd Hungarian Notation
38615 2013-07-15 praveentiwari <praveentiwari>
38617 * source/Lib/TLibCommon/TComRdCost.cpp:
38618 Cleaup the remaing functions in TComRdCost.cpp file
38621 2013-07-15 ggopu <ggopu>
38623 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
38624 source/Lib/TLibEncoder/TEncEntropy.cpp,
38625 source/encoder/frameencoder.cpp:
38626 TEncCU and TEncEntrophy: Clean Up
38629 * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
38630 source/Lib/TLibCommon/TComSlice.cpp,
38631 source/Lib/TLibEncoder/TEncCavlc.cpp:
38632 Cleanup and removed Hungarian notation
38635 2013-07-12 Steve Borho <steve@borho.org>
38637 * source/x265.cpp, source/x265opts.h:
38638 x265: add --no-progress CLI option to disable reports when capturing
38642 * source/common/vec/blockcopy.inc:
38643 blockcopy: AVX2 compress and extend ended up being a perf loss
38646 * source/common/vec/blockcopy.inc:
38647 blockcopy: add AVX2 fast paths
38650 * source/common/vec/blockcopy.inc:
38651 blockcopy: ensure strides obey alignment requirements
38653 This should fix crashes reported by Shanthan and Brian from
38657 * source/common/vec/pixel.inc, source/common/vec/pixel8.inc:
38658 pixel: add AVX2 sad_x4 for 32 and 64 wide blocks
38661 * source/common/vec/pixel.inc, source/common/vec/pixel8.inc:
38662 pixel: add AVX2 sad_x3 for 32 and 64 wide blocks
38665 * source/common/vec/pixel8.inc:
38666 pixel8: CurN -> frefN
38669 * source/common/vec/CMakeLists.txt, source/common/vec/vec-
38671 cmake: allow icpc to build AVX2 intrinsics
38674 * source/VectorClass/vectori256.h, source/common/vec/pixel.inc,
38675 source/common/vec/pixel8.inc:
38676 pixel: add AVX2 sad primitives for 32 and 64 wide blocks
38680 Added tag 0.2 for changeset b3471d9009f5
38683 * source/cmake/version.cmake:
38684 cmake: properly handle tagged release archives
38685 [b3471d9009f5] [0.2]
38687 * source/common/mv.h:
38688 mv: remove unused toFPel() method
38691 * source/common/wavefront.cpp, source/common/wavefront.h,
38692 source/encoder/frameencoder.cpp, source/test/testpool.cpp:
38693 wavefront: coding-style fixes, improve comments
38696 * source/common/wavefront.h:
38697 wavefront: cleanup method comments
38700 * build/README.txt, source/cmake/version.cmake:
38701 cmake: do not cache x265 version from ENV var, update status message
38704 * source/PPA/ppa.cpp, source/PPA/ppa.h, source/PPA/ppaApi.h:
38705 ppa: change license to x265 GPL+commercial license
38708 * source/CMakeLists.txt:
38709 cmake: add a cmake option to statically link CRT on Windows release
38713 * source/VectorClass/vectorclass.h, source/VectorClass/vectorf128.h,
38714 source/VectorClass/vectorf256.h, source/VectorClass/vectorf256e.h:
38715 remove vector class floating point, simplify includes
38718 * source/VectorClass/special/complexvec.h,
38719 source/VectorClass/special/decimal.h,
38720 source/VectorClass/special/quaternion.h,
38721 source/VectorClass/special/vector3d.h,
38722 source/VectorClass/special/vectormath.h:
38723 remove vector class special floating point headers
38726 * source/CMakeLists.txt, source/tools/CMakeLists.txt,
38727 source/tools/dr_psnr/CMakeLists.txt,
38728 source/tools/dr_psnr/PsnrCalculator.cpp,
38729 source/tools/dr_psnr/PsnrCalculator.h,
38730 source/tools/dr_psnr/SSIMCalculator.cpp,
38731 source/tools/dr_psnr/SSIMCalculator.h,
38732 source/tools/dr_psnr/dr_psnr.cpp:
38733 remove dr_psnr, it's a mess and no-one is working on it
38736 * source/tools/TestForChecking_BadCommit.bat,
38737 source/tools/performanceProfiler/Profiler.bat,
38738 source/tools/performanceProfiler/Readme.txt,
38739 source/tools/performanceProfiler/config.txt,
38740 source/tools/performanceProfiler/performanceProfiler.bat:
38741 remove obsolete perf batch files
38744 * build/README.txt:
38745 build: update README.txt
38748 * build/BuildEncoderApplications.bat, build/ConfigureBuild.bash,
38749 build/ConfigureBuild.bat, build/CreateRegressionPackage.bat,
38750 build/CreateRegressionPackage.sh, build/RunEncoderApplications.bat,
38752 remove obsolete regression tests and batch build scripts
38755 2013-07-12 Min Chen <chenm003@163.com>
38757 * source/common/vec/intrapred.inc:
38758 intrapred: cleanup pDst
38761 2013-07-12 praveentiwari <praveentiwari>
38763 * source/Lib/TLibCommon/TComRdCost.cpp:
38764 TComRdCost::xGetSSE32 cleanup
38767 * source/Lib/TLibCommon/TComRdCost.cpp:
38768 xGetSSE32Help cleanup
38771 * source/Lib/TLibCommon/TComRdCost.cpp:
38772 TComRdCost::xGetSSE16N cleanup
38775 * source/Lib/TLibCommon/TComRdCost.cpp:
38776 xGetSSE16NHelp cleanup
38779 * source/Lib/TLibCommon/TComRdCost.cpp:
38780 TComRdCost::xGetSSE16 cleanup
38783 * source/Lib/TLibCommon/TComRdCost.cpp:
38784 xGetSSE16Help cleanup
38787 * source/Lib/TLibCommon/TComRdCost.cpp:
38788 TComRdCost::xGetSSE8 cleanup
38791 * source/Lib/TLibCommon/TComRdCost.cpp:
38792 xGetSSE8Help cleanup
38795 * source/Lib/TLibCommon/TComRdCost.cpp:
38796 TComRdCost::xGetSSE4 cleanup
38799 * source/Lib/TLibCommon/TComRdCost.cpp:
38800 xGetSSE4Help cleanup
38803 * source/Lib/TLibCommon/TComRdCost.cpp:
38804 TComRdCost::xGetSSE cleanup
38807 * source/Lib/TLibCommon/TComRdCost.cpp:
38808 xGetSSEHelp cleanup
38811 * source/Lib/TLibCommon/TComRdCost.cpp:
38812 TComRdCost::xGetSAD48 cleanup
38815 * source/Lib/TLibCommon/TComRdCost.cpp:
38816 TComRdCost::xGetSAD64 cleanup
38819 * source/Lib/TLibCommon/TComRdCost.cpp:
38820 TComRdCost::xGetSAD24 cleanup
38823 * source/Lib/TLibCommon/TComRdCost.cpp:
38824 TComRdCost::xGetSAD32 cleanup
38827 * source/Lib/TLibCommon/TComRdCost.cpp:
38828 TComRdCost::xGetSAD16N cleanup
38831 * source/Lib/TLibCommon/TComRdCost.cpp:
38832 TComRdCost::xGetSAD12 cleanup
38835 * source/Lib/TLibCommon/TComRdCost.cpp:
38836 Clean up the white-space by lining up
38839 * source/Lib/TLibCommon/TComRdCost.cpp:
38840 TComRdCost::xGetSAD16 cleanup
38843 * source/Lib/TLibCommon/TComRdCost.cpp:
38844 TComRdCost::xGetSAD8 cleanup
38847 * source/Lib/TLibCommon/TComRdCost.cpp:
38848 TComRdCost::xGetSAD4 cleanup
38851 2013-07-12 Steve Borho <steve@borho.org>
38853 * source/common/x86/asm-primitives.cpp:
38854 asm: disable sad_x3 for AVX2, does not pass tests
38857 2013-07-12 praveentiwari <praveentiwari>
38859 * source/Lib/TLibCommon/TComRdCost.cpp:
38860 TComRdCost::xGetSAD cleanup
38863 * source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp:
38864 Fix for Debug version build
38867 * source/Lib/TLibCommon/TComRdCost.cpp:
38868 TComRdCost::setDistParam overloaded version clenup
38871 * source/Lib/TLibCommon/TComRdCost.cpp:
38872 TComRdCost::setLambda cleanup
38875 * source/Lib/TLibCommon/TComRdCost.cpp:
38876 TComRdCost::setDistParam cleanup
38879 * source/Lib/TLibCommon/TComRdCost.cpp,
38880 source/Lib/TLibCommon/TComRdCost.h,
38881 source/Lib/TLibEncoder/TEncSearch.cpp:
38882 bApplyWeight member variable replaced with applyWeight
38885 2013-07-12 Steve Borho <steve@borho.org>
38887 * source/Lib/TLibCommon/TComWeightPrediction.cpp,
38888 source/Lib/TLibEncoder/TEncSearch.cpp:
38889 Fix Build Errors for HIGH_BIT_DEPTH enable
38892 2013-07-12 praveentiwari <praveentiwari>
38894 * source/Lib/TLibCommon/TComRdCost.cpp,
38895 source/Lib/TLibCommon/TComRdCost.h,
38896 source/Lib/TLibEncoder/TEncSearch.cpp:
38897 iSubShift member variable replaced with subShift for all referances
38900 * source/Lib/TLibEncoder/TEncSearch.cpp:
38901 Uncrustified TEncSearch.cpp file
38904 2013-07-11 Steve Borho <steve@borho.org>
38907 x265: prune dead short_options and fix no-arg flags
38910 * source/Lib/TLibEncoder/TEncSearch.cpp,
38911 source/Lib/TLibEncoder/TEncSearch.h:
38912 TEncSearch: remove unnecessary pointer argument refs
38915 * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp:
38916 compress: hungarian cleanups, white-space fixes
38919 * source/common/common.h:
38920 common: fixup commit for previous (msvc didn't write the file)
38923 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
38924 source/Lib/TLibEncoder/TEncTop.cpp, source/common/common.cpp,
38925 source/encoder/encoder.cpp, source/x265.cpp:
38926 x265: call x265_set_globals() when the encoder is created
38929 * source/Lib/TLibCommon/TComDataCU.cpp,
38930 source/Lib/TLibCommon/TComLoopFilter.cpp,
38931 source/Lib/TLibCommon/TComMotionInfo.h,
38932 source/Lib/TLibCommon/TComPrediction.cpp,
38933 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
38934 source/Lib/TLibCommon/TComTrQuant.h,
38935 source/Lib/TLibCommon/TComWeightPrediction.cpp,
38936 source/Lib/TLibEncoder/TEncCavlc.cpp,
38937 source/Lib/TLibEncoder/TEncCavlc.h,
38938 source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
38939 source/Lib/TLibEncoder/TEncEntropy.cpp,
38940 source/Lib/TLibEncoder/TEncEntropy.h,
38941 source/Lib/TLibEncoder/TEncGOP.cpp,
38942 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
38943 source/Lib/TLibEncoder/TEncSbac.cpp,
38944 source/Lib/TLibEncoder/TEncSbac.h,
38945 source/Lib/TLibEncoder/TEncSearch.cpp,
38946 source/Lib/TLibEncoder/TEncSlice.cpp,
38947 source/Lib/TLibEncoder/TEncSlice.h, source/encoder/compress.cpp,
38948 source/encoder/frameencoder.h:
38949 TEncCu: more de-hungarian, global SR, and AMVPInfo cleanups
38952 * source/Lib/TLibCommon/TComDataCU.cpp,
38953 source/Lib/TLibCommon/TComDataCU.h,
38954 source/Lib/TLibCommon/TComLoopFilter.cpp,
38955 source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
38956 source/Lib/TLibCommon/TComPicSym.h,
38957 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
38958 source/Lib/TLibCommon/TComSlice.cpp,
38959 source/Lib/TLibCommon/TComYuv.h, source/Lib/TLibEncoder/TEncCu.cpp,
38960 source/Lib/TLibEncoder/TEncCu.h,
38961 source/Lib/TLibEncoder/TEncEntropy.cpp,
38962 source/Lib/TLibEncoder/TEncSbac.cpp,
38963 source/Lib/TLibEncoder/TEncSlice.cpp,
38964 source/Lib/TLibEncoder/TEncSlice.h, source/common/TShortYUV.h,
38965 source/encoder/compress.cpp, source/encoder/frameencoder.cpp:
38966 TEncCu: more de-hungarian and global SR and more cleanups
38969 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
38970 source/encoder/compress.cpp:
38971 TEncCu: de-hungarian buffer member variables
38974 * source/Lib/TLibEncoder/TEncCu.h:
38975 TEncCu: white-space and comment cleanups
38978 * source/Lib/TLibCommon/TComPattern.cpp:
38979 TComPattern: finishing touches
38982 * source/Lib/TLibCommon/TComPattern.h:
38983 TComPattern: white-space cleanup of header
38986 * source/Lib/TLibCommon/TComDataCU.cpp,
38987 source/Lib/TLibCommon/TComPattern.cpp,
38988 source/Lib/TLibCommon/TComPattern.h:
38989 TComPattern: de-hungarian, and global SR
38992 * source/Lib/TLibCommon/TComDataCU.cpp,
38993 source/Lib/TLibCommon/TComDataCU.h,
38994 source/Lib/TLibCommon/TComLoopFilter.cpp,
38995 source/Lib/TLibCommon/TComLoopFilter.h,
38996 source/Lib/TLibCommon/TComPattern.cpp,
38997 source/Lib/TLibCommon/TComPattern.h,
38998 source/Lib/TLibCommon/TComPicYuv.cpp,
38999 source/Lib/TLibCommon/TComPicYuv.h,
39000 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
39001 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
39002 source/Lib/TLibCommon/TComSlice.cpp,
39003 source/Lib/TLibCommon/TComTrQuant.cpp,
39004 source/Lib/TLibCommon/TComTrQuant.h,
39005 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
39006 source/Lib/TLibEncoder/TEncGOP.cpp,
39007 source/Lib/TLibEncoder/TEncPic.cpp,
39008 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
39009 source/Lib/TLibEncoder/WeightPredAnalysis.cpp,
39010 source/Lib/TLibEncoder/WeightPredAnalysis.h,
39011 source/common/pixel.cpp:
39012 TComPattern: cleanup + global SR
39014 neighbouring => neighboring, iStride -> stride, iComp -> comp
39017 * source/common/common.cpp:
39018 Backed out changeset: 064e6bfa93f0 (too much PSNR loss to be
39022 * source/Lib/TLibCommon/TComDataCU.cpp,
39023 source/Lib/TLibCommon/TComDataCU.h,
39024 source/Lib/TLibCommon/TComLoopFilter.cpp,
39025 source/Lib/TLibCommon/TComMotionInfo.cpp,
39026 source/Lib/TLibCommon/TComMotionInfo.h,
39027 source/Lib/TLibCommon/TComPattern.cpp,
39028 source/Lib/TLibCommon/TComSlice.h:
39029 TComMotionInfo: simplify TComCUMvField
39032 * source/Lib/TLibCommon/TComDataCU.cpp,
39033 source/Lib/TLibCommon/TComDataCU.h,
39034 source/Lib/TLibCommon/TComMotionInfo.cpp,
39035 source/Lib/TLibCommon/TComMotionInfo.h:
39036 TComMotionInfo: simplify TComMvField
39039 * source/common/common.cpp, source/encoder/encoder.cpp, source/x265.h,
39041 x265: hide busted adaptive QP functionality
39043 This might get ripped out entirely, will wait until after the GPL
39047 * source/common/common.cpp:
39048 x265: roughly alphabetize tool option reporting
39051 * source/common/common.cpp, source/encoder/encoder.cpp, source/x265.h,
39053 x265: hide --sao-max-offsets argument
39056 * source/common/common.cpp:
39057 x265: enable --fast-cbf by default [CHANGES OUTPUTS]
39059 This appears to be a really good trade-off when RDO is enabled
39062 * source/common/common.cpp:
39063 x265: tweak option logging
39066 * source/common/common.cpp, source/encoder/encoder.cpp, source/x265.h,
39068 x265: hide --tmvp parameter, it does not appear useful
39070 --tmvp 0 and 2 appear to both be worse than the default In the
39071 interest of simplifying our API for the near-term, I'm removing the
39075 * source/common/common.cpp, source/encoder/encoder.cpp, source/x265.h,
39077 x265: hide --merge-level parameter, it does not appear useful
39079 --merge-level 3 decreases bitrate very slightly
39080 --merge-level 4 increases bitrate
39082 In the interest of simplifying our API for the near-term, I'm
39086 * source/Lib/TLibCommon/TComTrQuant.cpp,
39087 source/Lib/TLibCommon/TComTrQuant.h,
39088 source/Lib/TLibEncoder/TEncCu.cpp,
39089 source/Lib/TLibEncoder/TEncGOP.cpp,
39090 source/Lib/TLibEncoder/TEncSbac.cpp,
39091 source/Lib/TLibEncoder/TEncSbac.h:
39092 TComTrQuant: nits and global SR
39095 * source/Lib/TLibCommon/TComTrQuant.cpp,
39096 source/Lib/TLibCommon/TComTrQuant.h:
39097 TComTrQuant: remove hungarian from QpParam
39100 * source/Lib/TLibCommon/TComPrediction.cpp,
39101 source/Lib/TLibCommon/TComPrediction.h:
39102 TComPrediction: remove a couple more invalid pointer refs, fix a
39106 * source/Lib/TLibEncoder/TEncSearch.cpp:
39107 fix variable shadow warnings reported by GCC
39110 * source/Lib/TLibCommon/TComLoopFilter.cpp,
39111 source/Lib/TLibCommon/TComLoopFilter.h,
39112 source/Lib/TLibCommon/TComSlice.cpp,
39113 source/Lib/TLibEncoder/TEncSlice.cpp,
39114 source/Lib/TLibEncoder/WeightPredAnalysis.cpp:
39115 refactor: iDir->dir, iList->list
39118 * source/Lib/TLibCommon/TComDataCU.cpp,
39119 source/Lib/TLibCommon/TComDataCU.h,
39120 source/Lib/TLibCommon/TComLoopFilter.cpp,
39121 source/Lib/TLibCommon/TComMotionInfo.cpp,
39122 source/Lib/TLibCommon/TComMotionInfo.h,
39123 source/Lib/TLibCommon/TComPrediction.cpp,
39124 source/Lib/TLibCommon/TComPrediction.h,
39125 source/Lib/TLibCommon/TComSlice.cpp,
39126 source/Lib/TLibCommon/TComSlice.h,
39127 source/Lib/TLibCommon/TComTrQuant.cpp,
39128 source/Lib/TLibCommon/TComWeightPrediction.cpp,
39129 source/Lib/TLibCommon/TComWeightPrediction.h,
39130 source/Lib/TLibEncoder/TEncCavlc.cpp,
39131 source/Lib/TLibEncoder/TEncGOP.cpp,
39132 source/Lib/TLibEncoder/TEncSearch.cpp,
39133 source/Lib/TLibEncoder/TEncSlice.cpp,
39134 source/Lib/TLibEncoder/WeightPredAnalysis.cpp:
39135 TComPrediction: remove ptr arg references, plus some global
39139 * source/Lib/TLibCommon/TComDataCU.cpp,
39140 source/Lib/TLibCommon/TComPattern.cpp,
39141 source/Lib/TLibCommon/TComPattern.h,
39142 source/Lib/TLibCommon/TComPrediction.cpp,
39143 source/Lib/TLibCommon/TComPrediction.h,
39144 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
39145 source/Lib/TLibCommon/TComSlice.cpp,
39146 source/Lib/TLibCommon/TComSlice.h,
39147 source/Lib/TLibCommon/TComTrQuant.cpp,
39148 source/Lib/TLibCommon/TComTrQuant.h,
39149 source/Lib/TLibCommon/TComWeightPrediction.cpp,
39150 source/Lib/TLibCommon/TComWeightPrediction.h,
39151 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp:
39152 TComPrediction: cleanup hungarian, plus some global search/replace
39155 * source/Lib/TLibCommon/TComPrediction.cpp,
39156 source/Lib/TLibCommon/TComPrediction.h,
39157 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
39158 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/dct.cpp,
39159 source/common/intrapred.cpp, source/common/ipfilter.cpp,
39160 source/common/vec/dct.inc, source/common/vec/ipfilter.inc,
39161 source/common/vec/ipfilter16.inc, source/common/vec/ipfilter8.inc,
39162 source/test/ipfilterharness.cpp:
39163 refactor: move subpel interpolation filters to TComRom, remove dups
39166 * source/Lib/TLibCommon/TComRdCost.cpp,
39167 source/Lib/TLibCommon/TComRdCost.h,
39168 source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp,
39169 source/Lib/TLibEncoder/TEncSearch.cpp,
39170 source/Lib/TLibEncoder/TEncSearch.h:
39171 TComRdCost: adopt x264 style names, move last mv cost remnant to
39175 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
39176 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
39177 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
39178 source/encoder/compress.cpp:
39179 TEncCU, TEncSAO: global search/replace for common hungarian names
39182 * source/Lib/TLibEncoder/TEncCu.cpp,
39183 source/Lib/TLibEncoder/TEncSearch.h:
39184 TEncSearch: cleanup set method names
39187 * source/Lib/TLibEncoder/TEncSearch.cpp,
39188 source/Lib/TLibEncoder/TEncSearch.h:
39189 TEncSearch: further cleanups
39192 * source/Lib/TLibEncoder/TEncSearch.cpp,
39193 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp:
39194 TEncSearch: remove more hungarian from member vars, other cleanups
39197 * source/Lib/TLibEncoder/TEncSearch.cpp,
39198 source/Lib/TLibEncoder/TEncSearch.h:
39199 TEncSearch: cleanup init, remove unused s_dFilter, m_puiDFilter
39202 * source/Lib/TLibEncoder/TEncSearch.cpp,
39203 source/Lib/TLibEncoder/TEncSearch.h:
39204 TEncSearch: remove hunariang prefixes from member vars, remove
39208 * source/Lib/TLibEncoder/TEncSearch.cpp,
39209 source/Lib/TLibEncoder/TEncSearch.h:
39210 TEncSearch: remove hungarian prefixes from temp buffers
39213 * source/Lib/TLibEncoder/TEncSearch.cpp,
39214 source/Lib/TLibEncoder/TEncSearch.h:
39215 TEncSearch: remove unused singleton temp buffers
39218 * source/Lib/TLibEncoder/TEncSearch.cpp:
39219 TEncSearch: qtTempAccessLayer -> qtlayer
39222 * source/Lib/TLibEncoder/TEncSearch.h:
39223 TEncSearch: remove redundant white-space
39226 2013-07-11 Deepthi Devaki <Deepthi Devaki>
39228 * source/common/pixel.cpp, source/common/primitives.h:
39229 WeightedPredicton: Code cleanup, variable renaming - no logic
39233 * source/Lib/TLibCommon/TComWeightPrediction.cpp:
39234 Weighted prediction primitives integrated to encoder.
39237 * source/common/pixel.cpp, source/common/primitives.h,
39238 source/test/pixelharness.cpp, source/test/pixelharness.h:
39239 C primitives and testbench support for weighted prediction
39243 2013-07-11 praveentiwari <praveentiwari>
39245 * source/Lib/TLibCommon/TComRdCost.cpp,
39246 source/Lib/TLibCommon/TComRdCost.h,
39247 source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp:
39248 iStrideCur member variable replaced with strideCur for all
39252 * source/Lib/TLibCommon/TComRdCost.cpp,
39253 source/Lib/TLibCommon/TComRdCost.h,
39254 source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp:
39255 iStrideOrg member variable renamed to strideOrg for all referances
39258 2013-07-11 Steve Borho <steve@borho.org>
39260 * source/Lib/TLibEncoder/TEncSearch.cpp:
39261 TEncSearch: cleanup xEncodeResidualQT
39264 * source/Lib/TLibEncoder/TEncSearch.cpp:
39265 TEncSearch: further cleanup of xEstimateResidualQT
39268 * source/Lib/TLibEncoder/TEncSearch.cpp:
39269 TEncSearch: further cleanup of xEstimateResidualQT
39272 * source/Lib/TLibEncoder/TEncSearch.cpp:
39273 TEncSearch: more cleanups
39276 * source/Lib/TLibEncoder/TEncSearch.cpp:
39277 TEncSearch: partial cleanup of xEstimateResidualQT
39280 * source/Lib/TLibEncoder/TEncSearch.cpp:
39281 TEncSearch: cleanup encodeResAndCalcRdInterCU
39284 * source/Lib/TLibEncoder/TEncSearch.cpp:
39285 TEncSearch: cleanup xPatternSearchFracDIF
39288 * source/Lib/TLibEncoder/TEncSearch.cpp:
39289 TEncSearch: cleanup xPatternSearchFast
39292 * source/Lib/TLibEncoder/TEncSearch.cpp:
39293 TEncSearch: cleanup xPatternSearch
39296 * source/Lib/TLibEncoder/TEncSearch.cpp:
39297 TEncSearch: cleanup xMotionEstimation
39300 * source/Lib/TLibEncoder/TEncSearch.cpp:
39301 TEncSearch: cleanup xGetTemplateCost and xEstimateMvPredAMVP
39304 * source/Lib/TLibEncoder/TEncSearch.cpp:
39305 TEncSearch: cleanup predInterSearch
39308 * source/Lib/TLibEncoder/TEncSearch.cpp:
39309 TEncSearch: cleanup xMergeEstimation
39312 * source/Lib/TLibEncoder/TEncSearch.cpp:
39313 TEncSearch: cleanup IPCMSearch
39316 * source/Lib/TLibEncoder/TEncSearch.cpp:
39317 TEncSearch: cleanup xEncPCM
39320 * source/Lib/TLibEncoder/TEncSearch.cpp:
39321 TEncSearch: cleanup estIntraPredChromaQT
39324 * source/Lib/TLibEncoder/TEncSearch.cpp:
39325 TEncSearch: cleanup estIntraPredQT
39328 * source/Lib/TLibEncoder/TEncSearch.cpp:
39329 TEncSearch: cleanup preestChromaPredMode
39332 * source/Lib/TLibEncoder/TEncSearch.cpp:
39333 TEncSearch: cleanup xSetIntraResultChromaQT
39336 * source/Lib/TLibEncoder/TEncSearch.cpp:
39337 TEncSearch: cleanup xRecurIntraChromaCodingQT
39340 * source/Lib/TLibEncoder/TEncSearch.cpp:
39341 TEncSearch: cleanup xLoadIntraResultChromaQT, use block copy
39345 * source/Lib/TLibEncoder/TEncSearch.cpp:
39346 TEncSearch: cleanup xStoreIntraResultChromaQT
39349 * source/Lib/TLibEncoder/TEncSearch.cpp:
39350 TEncSearch: cleanup xLoadIntraResultQT, correct stride and size for
39354 * source/Lib/TLibEncoder/TEncSearch.cpp:
39355 TEncSearch: cleanup xStoreIntraResultQT
39358 2013-07-10 Steve Borho <steve@borho.org>
39360 * source/Lib/TLibEncoder/TEncSearch.cpp:
39361 TEncSearch: cleanup xSetIntraResultQT
39364 * source/Lib/TLibEncoder/TEncSearch.cpp:
39365 TEncSearch: cleanup xRecurIntraCodingQT, use block copy primitives
39368 * source/Lib/TLibEncoder/TEncSearch.cpp:
39369 TEncSearch: cleanup xIntraCodingChromaBlk
39372 * source/Lib/TLibEncoder/TEncSearch.cpp:
39373 TEncSearch: cleanup xIntraCodingLumaBlk
39376 * source/Lib/TLibEncoder/TEncSearch.cpp,
39377 source/Lib/TLibEncoder/TEncSearch.h:
39378 TEncSearch: cleanup xEncCoeffQT, remove unused bRealCoeff
39381 * source/Lib/TLibEncoder/TEncSearch.cpp:
39382 TEncSearch: cleanup xGetIntraBitsQT
39385 * source/Lib/TLibEncoder/TEncSearch.cpp:
39386 TEncSearch: cleanup xEncIntraHeader
39389 * source/Lib/TLibEncoder/TEncSearch.cpp:
39390 TEncSearch: cleanup xEncCoeffQT
39393 * source/Lib/TLibEncoder/TEncSearch.cpp:
39394 TEncSearch: cleanup xEncSubdivCbfQT
39397 * source/Lib/TLibEncoder/TEncSearch.h:
39398 TEncSearch: remove meaningless consts and comments
39401 * source/Lib/TLibEncoder/TEncSearch.h:
39402 TEncSearch: followup renames
39405 * source/Lib/TLibEncoder/TEncSearch.h:
39406 TEncSearch: cleanup the header
39409 * source/common/primitives.h, source/common/vec/ipfilter16.inc,
39410 source/common/vec/ipfilter8.inc:
39411 primitives: cleanup funcdefs
39414 * source/encoder/compress.cpp:
39415 compress: remove trailing white-space
39418 * source/Lib/TLibCommon/TComDataCU.cpp,
39419 source/Lib/TLibCommon/TComDataCU.h,
39420 source/Lib/TLibCommon/TComLoopFilter.cpp,
39421 source/Lib/TLibCommon/TComLoopFilter.h,
39422 source/Lib/TLibCommon/TComMotionInfo.cpp,
39423 source/Lib/TLibCommon/TComMotionInfo.h,
39424 source/Lib/TLibCommon/TComPattern.cpp,
39425 source/Lib/TLibCommon/TComPattern.h,
39426 source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
39427 source/Lib/TLibCommon/TComPicYuv.cpp,
39428 source/Lib/TLibCommon/TComPicYuv.h,
39429 source/Lib/TLibCommon/TComPrediction.cpp,
39430 source/Lib/TLibCommon/TComPrediction.h,
39431 source/Lib/TLibCommon/TComRdCost.cpp,
39432 source/Lib/TLibCommon/TComRdCost.h,
39433 source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp,
39434 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
39435 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
39436 source/Lib/TLibCommon/TComSlice.cpp,
39437 source/Lib/TLibCommon/TComSlice.h,
39438 source/Lib/TLibCommon/TComTrQuant.cpp,
39439 source/Lib/TLibCommon/TComWeightPrediction.cpp,
39440 source/Lib/TLibCommon/TComWeightPrediction.h,
39441 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
39442 source/Lib/TLibEncoder/TEncCavlc.cpp,
39443 source/Lib/TLibEncoder/TEncCavlc.h,
39444 source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
39445 source/Lib/TLibEncoder/TEncEntropy.cpp,
39446 source/Lib/TLibEncoder/TEncEntropy.h,
39447 source/Lib/TLibEncoder/TEncGOP.cpp,
39448 source/Lib/TLibEncoder/TEncPic.cpp,
39449 source/Lib/TLibEncoder/TEncPic.h,
39450 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
39451 source/Lib/TLibEncoder/TEncSbac.cpp,
39452 source/Lib/TLibEncoder/TEncSbac.h,
39453 source/Lib/TLibEncoder/TEncSlice.cpp,
39454 source/Lib/TLibEncoder/TEncSlice.h,
39455 source/Lib/TLibEncoder/WeightPredAnalysis.cpp,
39456 source/Lib/TLibEncoder/WeightPredAnalysis.h,
39457 source/encoder/compress.cpp:
39458 more mass search-replaces and various other cleanups
39461 * source/Lib/TLibCommon/TComDataCU.cpp,
39462 source/Lib/TLibCommon/TComDataCU.h,
39463 source/Lib/TLibCommon/TComLoopFilter.cpp,
39464 source/Lib/TLibCommon/TComLoopFilter.h,
39465 source/Lib/TLibCommon/TComMotionInfo.cpp,
39466 source/Lib/TLibCommon/TComMotionInfo.h,
39467 source/Lib/TLibCommon/TComPattern.cpp,
39468 source/Lib/TLibCommon/TComPattern.h,
39469 source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
39470 source/Lib/TLibCommon/TComPrediction.cpp,
39471 source/Lib/TLibCommon/TComPrediction.h,
39472 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
39473 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
39474 source/Lib/TLibCommon/TComTrQuant.cpp,
39475 source/Lib/TLibCommon/TComWeightPrediction.cpp,
39476 source/Lib/TLibCommon/TComWeightPrediction.h,
39477 source/Lib/TLibEncoder/TEncCavlc.cpp,
39478 source/Lib/TLibEncoder/TEncCavlc.h,
39479 source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
39480 source/Lib/TLibEncoder/TEncEntropy.cpp,
39481 source/Lib/TLibEncoder/TEncEntropy.h,
39482 source/Lib/TLibEncoder/TEncGOP.cpp,
39483 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
39484 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
39485 source/Lib/TLibEncoder/TEncSbac.cpp,
39486 source/Lib/TLibEncoder/TEncSbac.h,
39487 source/Lib/TLibEncoder/TEncSearch.cpp,
39488 source/Lib/TLibEncoder/TEncSearch.h,
39489 source/Lib/TLibEncoder/TEncSlice.cpp,
39490 source/Lib/TLibEncoder/WeightPredAnalysis.cpp,
39491 source/encoder/compress.cpp, source/encoder/frameencoder.cpp:
39492 global search-replaces for common variables, remove prefixes
39494 pcCu -> cu, uiTrMode -> trMode, pcYuvPred -> predYuv, eRefPicList ->
39495 picList, iRefList -> refList, iRefIdxTemp -> refIdxTmp
39498 * source/Lib/TLibEncoder/TEncCu.cpp:
39499 TEncCu: fix memory leak
39502 2013-07-10 praveentiwari <praveentiwari>
39504 * source/Lib/TLibCommon/TComTrQuant.cpp:
39505 Cleanup xGetCodedLevel function
39508 * source/Lib/TLibCommon/TComTrQuant.cpp:
39509 Clenup xGetICRateCost function
39512 * source/Lib/TLibCommon/TComTrQuant.cpp:
39513 Cleanup xGetICRate function
39516 * source/Lib/TLibCommon/TComTrQuant.cpp:
39517 Cleanup setErrScaleCoeff function
39520 2013-07-10 Steve Borho <steve@borho.org>
39522 * source/Lib/TLibEncoder/TEncCfg.h,
39523 source/Lib/TLibEncoder/TEncSearch.cpp,
39524 source/Lib/TLibEncoder/TEncSearch.h,
39525 source/Lib/TLibEncoder/TEncSlice.cpp, source/encoder/encoder.cpp:
39526 TEncSearch: remove m_bUseHADME, clean more hungarian
39529 2013-07-10 ggopu <ggopu>
39531 * source/Lib/TLibEncoder/TEncSearch.cpp:
39532 TEncodeSearch : Cleanup Removed un used codes, white space and
39533 Removed Hungarian Notation
39536 2013-07-10 Deepthi <Deepthi>
39538 * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp:
39539 Removed duplicate copy of Merge RD cost estimation.
39542 * source/encoder/compress.cpp:
39543 Code reuse of Merge: part 2
39546 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
39547 Code reuse of Merge cost estimation for rdo/no-rdo: part 1
39550 * source/Lib/TLibEncoder/TEncCfg.h:
39551 Removing fdm from TEncCfg
39554 * source/common/common.cpp, source/encoder/encoder.cpp, source/x265.h,
39556 Removing bEnableFastMergeDecision from CLI Options.
39559 * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp:
39560 Fast Decision for Merge always set - this CLI option does not give
39561 any higher efficiency.
39564 * source/encoder/compress.cpp:
39565 Enabling merge modes with non-zero residual in no-rdo mode.
39568 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
39569 Recon for merge modes - store in TEnCU structure
39572 2013-07-10 Steve Borho <steve@borho.org>
39574 * source/Lib/TLibCommon/TComBitStream.cpp,
39575 source/Lib/TLibCommon/TComDataCU.cpp,
39576 source/Lib/TLibCommon/TComDataCU.h,
39577 source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
39578 source/Lib/TLibCommon/TComPicYuv.h,
39579 source/Lib/TLibCommon/TComPrediction.cpp,
39580 source/Lib/TLibCommon/TComPrediction.h,
39581 source/Lib/TLibCommon/TComRom.cpp,
39582 source/Lib/TLibCommon/TComSlice.cpp,
39583 source/Lib/TLibCommon/TComSlice.h,
39584 source/Lib/TLibCommon/TComTrQuant.cpp,
39585 source/Lib/TLibCommon/TComTrQuant.h,
39586 source/Lib/TLibEncoder/TEncAnalyze.h,
39587 source/Lib/TLibEncoder/TEncCavlc.cpp,
39588 source/Lib/TLibEncoder/TEncCavlc.h,
39589 source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp,
39590 source/Lib/TLibEncoder/TEncGOP.cpp,
39591 source/Lib/TLibEncoder/TEncSbac.cpp,
39592 source/Lib/TLibEncoder/TEncSearch.cpp,
39593 source/Lib/TLibEncoder/TEncTop.cpp,
39594 source/Lib/TLibEncoder/TEncTop.h, source/common/ipfilter.cpp,
39595 source/common/pixel.cpp, source/common/reference.cpp,
39596 source/common/threadpool.cpp, source/common/vec/dct.inc,
39597 source/common/vec/intrapred.inc, source/common/vec/ipfilter16.inc,
39598 source/common/vec/ipfilter8.inc, source/common/vec/pixel.inc,
39599 source/common/vec/pixel16.inc, source/common/vec/pixel8.inc,
39600 source/common/wavefront.cpp, source/common/wavefront.h,
39601 source/encoder/compress.cpp, source/encoder/encoder.cpp,
39602 source/encoder/encoder.h, source/encoder/frameencoder.cpp,
39603 source/encoder/frameencoder.h, source/encoder/motion.cpp,
39604 source/encoder/motion.h, source/test/intrapredharness.cpp,
39605 source/test/ipfilterharness.cpp, source/test/pixelharness.h,
39606 source/test/testbench.cpp, source/x265.cpp, source/x265.h:
39610 2013-07-09 Steve Borho <steve@borho.org>
39612 * source/test/mbdstharness.cpp:
39613 mbdstharness: workaround for linux test failures
39616 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
39617 source/encoder/compress.cpp:
39618 TEncCU: use loops to create/destroy objects, rename m_IntraInInterCU
39621 * source/Lib/TLibCommon/TComTrQuant.cpp:
39622 TComTrQuant: fix shadowed variables for GCC
39625 * source/common/common.cpp:
39626 common: fix a potential 8bpp usage bug
39629 * source/Lib/TLibEncoder/TEncCu.cpp, source/common/common.cpp:
39630 TComRom: only allow zscan tables to be initialized once
39633 * source/Lib/TLibCommon/TComDataCU.cpp,
39634 source/Lib/TLibCommon/TComDataCU.h,
39635 source/Lib/TLibCommon/TComLoopFilter.cpp,
39636 source/Lib/TLibCommon/TComLoopFilter.h,
39637 source/Lib/TLibCommon/TComPattern.cpp,
39638 source/Lib/TLibCommon/TComPic.cpp,
39639 source/Lib/TLibCommon/TComPicYuv.cpp,
39640 source/Lib/TLibCommon/TComPicYuv.h,
39641 source/Lib/TLibCommon/TComPrediction.cpp,
39642 source/Lib/TLibCommon/TComRdCost.cpp,
39643 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
39644 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
39645 source/Lib/TLibCommon/TComSlice.h,
39646 source/Lib/TLibCommon/TComTrQuant.cpp,
39647 source/Lib/TLibCommon/TComYuv.h,
39648 source/Lib/TLibEncoder/TEncCavlc.cpp,
39649 source/Lib/TLibEncoder/TEncCu.cpp,
39650 source/Lib/TLibEncoder/TEncEntropy.cpp,
39651 source/Lib/TLibEncoder/TEncGOP.cpp,
39652 source/Lib/TLibEncoder/TEncSbac.cpp,
39653 source/Lib/TLibEncoder/TEncSearch.cpp,
39654 source/Lib/TLibEncoder/TEncSlice.cpp,
39655 source/Lib/TLibEncoder/TEncTop.cpp, source/common/TShortYUV.h,
39656 source/common/butterfly.h, source/common/common.cpp,
39657 source/common/dct.cpp, source/common/intrapred.cpp,
39658 source/common/vec/intrapred.inc, source/encoder/compress.cpp,
39659 source/encoder/encoder.cpp, source/encoder/frameencoder.cpp:
39660 TComRom: remove hungarian notation, remove unused butterfly.h
39663 * source/Lib/TLibCommon/TComRom.h:
39664 TComRom: simplify white-space
39667 * source/Lib/TLibEncoder/TEncGOP.cpp,
39668 source/Lib/TLibEncoder/TEncSlice.cpp,
39669 source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
39670 frameencoder: de-hungarian the member vars and auto-vars
39673 * source/Lib/TLibCommon/TComTrQuant.cpp,
39674 source/Lib/TLibCommon/TComTrQuant.h,
39675 source/Lib/TLibEncoder/TEncSearch.cpp:
39676 TComTrQuant: remove hungarian notations from member variables
39679 * source/Lib/TLibCommon/TComTrQuant.cpp,
39680 source/Lib/TLibCommon/TComTrQuant.h,
39681 source/encoder/frameencoder.cpp:
39682 TComTrQuant: remove m_bEnc member variable
39685 * source/Lib/TLibCommon/TComTrQuant.cpp:
39686 TComTrQuant: CU -> cu
39689 * source/Lib/TLibEncoder/TEncGOP.cpp:
39690 TEncGOP: remove hungarian prefixes from auto-vars
39693 * source/Lib/TLibCommon/TComTrQuant.cpp,
39694 source/Lib/TLibCommon/TComTrQuant.h,
39695 source/Lib/TLibEncoder/TEncSbac.cpp:
39696 TComTrQuant: hungarian removal, white-space cleanup, remove useless
39700 * source/Lib/TLibCommon/TComTrQuant.cpp,
39701 source/Lib/TLibCommon/TComTrQuant.h,
39702 source/Lib/TLibEncoder/TEncSearch.cpp:
39703 TComTrQuant: simplify function arguments
39705 * do not pass arlCCoef as a pointer reference
39706 * return acSum rather than pass as integer reference
39709 * source/Lib/TLibCommon/TComTrQuant.cpp,
39710 source/Lib/TLibCommon/TComTrQuant.h, source/common/dct.cpp,
39711 source/common/vec/dct.inc:
39712 TComTrQuant: remove deprecated DCT functions
39715 * source/Lib/TLibCommon/TComTrQuant.cpp:
39716 TComTrQuant: lowercase cu, other cleanups
39719 2013-07-09 praveentiwari <praveentiwari>
39721 * source/Lib/TLibCommon/TComTrQuant.cpp:
39722 Cleanup xRateDistOptQuant function
39725 * source/Lib/TLibCommon/TComTrQuant.cpp:
39726 Cleanup xITransformSkip function
39729 * source/Lib/TLibCommon/TComTrQuant.cpp:
39730 Cleanup xTransformSkip function
39733 * source/Lib/TLibCommon/TComTrQuant.cpp:
39734 Cleanup xIT function
39737 * source/Lib/TLibCommon/TComTrQuant.cpp:
39738 Cleanup invRecurTransformNxN function
39741 * source/Lib/TLibCommon/TComTrQuant.cpp:
39742 Cleanup invtransformNxN function
39745 * source/Lib/TLibCommon/TComTrQuant.cpp:
39746 More cleanup with transformNxN
39749 * source/Lib/TLibCommon/TComTrQuant.cpp:
39750 cleanup transformNxN function
39753 * source/Lib/TLibCommon/TComTrQuant.cpp:
39754 cleanup init function
39757 * source/Lib/TLibCommon/TComTrQuant.cpp:
39758 cleanup xDeQuant function
39761 2013-07-09 Steve Borho <steve@borho.org>
39763 * source/Lib/TLibCommon/TComTrQuant.cpp:
39764 TComTrQuant: lowercase cu
39767 2013-07-09 praveentiwari <praveentiwari>
39769 * source/Lib/TLibCommon/TComTrQuant.cpp:
39770 cleanup xQuant function
39773 2013-07-10 Deepthi <Deepthi>
39778 2013-07-09 Deepthi <Deepthi>
39780 * source/encoder/compress.cpp:
39781 Exit early if merge modes detected
39784 * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp:
39785 Updating merge cost calculation to enable early skips.
39788 2013-07-09 Steve Borho <steve@borho.org>
39790 * source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc,
39791 source/test/testbench.cpp:
39795 * source/common/vec/intrapred.inc:
39796 intrapred: further cleanups
39798 * rename methods to match primitive funcdef
39799 * remove unoptimized all-angs methods, use C ref
39802 * source/common/vec/ipfilter8.inc:
39803 ipfilter: white-space fixup
39806 * source/common/vec/ipfilter8.inc:
39807 ipfilter: remove buggy SSE2 version of
39808 filterHorizontalMultiplaneExtend
39811 * source/common/vec/ipfilter16.inc, source/common/vec/ipfilter8.inc,
39812 source/test/ipfilterharness.cpp:
39813 ipfilter: follow up cleaning, one 16bpp compile fix
39816 2013-07-09 ggopu <ggopu>
39818 * source/common/vec/ipfilter.inc, source/common/vec/ipfilter16.inc,
39819 source/common/vec/ipfilter8.inc:
39820 ipfilter*.inc : Cleanup function names and variables
39823 * source/common/common.cpp, source/common/ipfilter.cpp:
39824 ipfilter: Cleanups function names and Variables
39827 2013-07-09 praveentiwari <praveentiwari>
39829 * source/Lib/TLibCommon/TComTrQuant.cpp:
39830 cleanup signBitHidingHDQ function
39833 * source/Lib/TLibCommon/TComTrQuant.cpp:
39834 Cleanup storeSliceQpNext function
39837 2013-07-09 Deepthi <Deepthi>
39839 * source/encoder/compress.cpp:
39840 Cleanup: remove commented code
39843 * source/encoder/compress.cpp:
39844 Merge modes now use RDO cost to compare against inter/intra. Quality
39848 * source/encoder/compress.cpp:
39849 Remove unused if-checks
39852 2013-07-09 Steve Borho <steve@borho.org>
39854 * source/test/ipfilterharness.cpp, source/test/mbdstharness.cpp:
39855 testbench: more test result format tweaking
39858 2013-07-08 Steve Borho <steve@borho.org>
39860 * source/test/intrapredharness.cpp:
39861 intrapred: tweak test result reporting
39864 * source/Lib/TLibCommon/TComInterpolationFilter.cpp,
39865 source/Lib/TLibCommon/TComInterpolationFilter.h,
39866 source/Lib/TLibCommon/TComPrediction.cpp,
39867 source/Lib/TLibCommon/TComPrediction.h,
39868 source/Lib/TLibCommon/TComWeightPrediction.cpp,
39869 source/Lib/TLibCommon/TComWeightPrediction.h,
39870 source/Lib/TLibCommon/TComYuv.cpp,
39871 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/ipfilter.cpp,
39872 source/common/primitives.h:
39873 TComInterpolationFilter: remove dead code and dead primitive
39876 * source/Lib/TLibCommon/TComInterpolationFilter.cpp,
39877 source/Lib/TLibCommon/TComPrediction.cpp,
39878 source/Lib/TLibCommon/TComYuv.cpp,
39879 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/ipfilter.cpp,
39880 source/common/pixel.cpp, source/common/primitives.h,
39881 source/common/vec/blockcopy.inc, source/common/vec/ipfilter.inc,
39882 source/encoder/motion.cpp, source/test/ipfilterharness.cpp,
39883 source/test/pixelharness.cpp:
39884 primitives: normalize primitive function names
39887 * source/common/primitives.h:
39888 primitives: white-space alignment for primitive structure, re-order
39892 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp,
39893 source/common/primitives.h, source/common/vec/pixel.inc,
39894 source/common/x86/asm-primitives.cpp, source/encoder/compress.cpp,
39895 source/encoder/motion.h, source/test/ipfilterharness.cpp,
39896 source/test/ipfilterharness.h, source/test/pixelharness.cpp,
39897 source/test/pixelharness.h:
39898 primitives: unify primitive funcdef type names
39905 * source/test/pixelharness.cpp, source/test/pixelharness.h:
39906 pixel: cleanup test harness methods
39909 * source/input/input.cpp, source/input/input.h,
39910 source/output/output.cpp, source/output/output.h, source/x265.cpp:
39911 i/o: lower case open methods
39914 * source/common/reference.cpp:
39915 reference: add a comment
39918 * source/CMakeLists.txt:
39919 cmake: move version.cmake include to just before the CLI link
39921 this should avoid rebuilds in cmake generated Makefiles when the
39922 version number changes (which happens at every commit)
39925 * source/common/common.cpp, source/common/common.h:
39926 common: cleanups, remove unused dumpBuffer routine
39929 * source/common/CMakeLists.txt:
39930 cmake: force i686 arch for wavefront.cpp for GCC (to generate
39934 * source/Lib/TLibEncoder/TEncGOP.cpp,
39935 source/Lib/TLibEncoder/TEncGOP.h, source/common/reference.cpp,
39936 source/common/threading.cpp, source/common/threading.h,
39937 source/common/threadpool.cpp, source/encoder/frameencoder.cpp,
39938 source/test/testpool.cpp:
39939 threading: lower case method names
39942 * source/Lib/TLibCommon/TComSlice.cpp,
39943 source/Lib/TLibEncoder/TEncTop.cpp, source/common/reference.cpp,
39944 source/common/threadpool.cpp, source/common/threadpool.h,
39945 source/common/wavefront.cpp, source/encoder/encoder.cpp,
39946 source/encoder/frameencoder.cpp, source/test/testpool.cpp:
39947 threadpool: lower case method names
39950 * source/test/testpool.cpp:
39951 testpool: update to new interfaces
39954 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
39955 frameencoder: rename irow to row
39958 * source/encoder/frameencoder.cpp, source/encoder/frameencoder.h:
39959 frameencoder: rename m_nrows to m_numRows
39962 * source/Lib/TLibEncoder/TEncSlice.cpp, source/common/reference.cpp,
39963 source/common/reference.h, source/common/threadpool.cpp,
39964 source/common/threadpool.h, source/common/wavefront.cpp,
39965 source/common/wavefront.h, source/encoder/frameencoder.cpp,
39966 source/encoder/frameencoder.h:
39967 wavefront: lower case some method names
39970 * source/Lib/TLibEncoder/TEncGOP.h,
39971 source/Lib/TLibEncoder/TEncSlice.cpp, source/common/CMakeLists.txt,
39972 source/common/threadpool.cpp, source/common/threadpool.h,
39973 source/common/wavefront.cpp, source/common/wavefront.h,
39974 source/encoder/CMakeLists.txt, source/encoder/frameencoder.cpp,
39975 source/encoder/frameencoder.h, source/encoder/wavefront.cpp,
39976 source/encoder/wavefront.h:
39977 threadpool: split QueueFrame into own files, rename wavefront to
39980 This commit also removes the un-exposed x265_init_threading()
39981 function which would have leaked the thread pool if anyone had used
39985 * source/common/reference.cpp, source/common/threadpool.cpp,
39986 source/common/threadpool.h:
39987 threadpool: cleanup
39990 * source/common/reference.cpp:
39991 reference: general cleanup
39994 * source/common/primitives.cpp:
39995 primitives: general cleanup
39998 * source/common/primitives.h:
39999 primitives: more argument cleanups
40002 * source/Lib/TLibCommon/TComPrediction.cpp,
40003 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/intrapred.cpp,
40004 source/common/primitives.h, source/common/vec/intrapred.inc,
40005 source/encoder/compress.cpp, source/test/intrapredharness.cpp,
40006 source/test/intrapredharness.h:
40007 primitives: rename intra primitive function pointers
40010 * source/common/primitives.h, source/test/intrapredharness.cpp,
40011 source/test/intrapredharness.h:
40012 primitives: rename intra funcdefs, cleanup hungarian from
40016 * source/common/primitives.h:
40017 primitives: update comment for PartitionFromSizes
40020 * source/test/mbdstharness.cpp, source/test/mbdstharness.h:
40021 cleanup dct testbench names
40024 * source/test/mbdstharness.cpp:
40028 * source/test/mbdstharness.cpp:
40032 * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/dct.cpp,
40033 source/common/primitives.h, source/common/vec/dct.inc,
40034 source/test/mbdstharness.cpp:
40035 primitives: rename deQuant to dequant
40038 * source/common/dct.cpp:
40039 dct: tweak C reference function names
40042 2013-07-08 praveentiwari <praveentiwari>
40044 * source/common/vec/dct.inc:
40048 * source/common/vec/dct.inc:
40052 * source/common/vec/dct.inc:
40056 * source/common/vec/dct.inc:
40057 xIDCT4 renamed to idct4
40060 * source/common/vec/dct.inc:
40061 xIDST4 renamed to idst4
40064 * source/common/vec/dct.inc:
40065 xDCT32 renamed and code cleanup
40068 * source/common/vec/dct.inc:
40069 xDCT8 renamed and cleanup
40072 * source/common/vec/dct.inc:
40073 xDCT16 renamed and code cleanup
40076 * source/common/vec/dct.inc:
40077 xDCT4 vector function renamed and code cleanup
40080 * source/common/vec/dct.inc:
40081 xDST4 renamed and code cleanup
40084 * source/common/vec/dct.inc:
40085 xDeQuant renamed and code cleanup
40088 * source/common/dct.cpp:
40089 xDeQuant renamed to dequant and code cleanup
40092 * source/common/dct.cpp:
40093 xIDCT32_C renamed to idct32_c and code cleanup
40096 * source/common/dct.cpp:
40097 xIDCT16_C renamed to idct16_c and code cleanup
40100 * source/common/dct.cpp:
40101 xIDCT8_C renamed to idct8_c and code cleanup
40104 * source/common/dct.cpp:
40105 xIDCT4_C renamed to idct4_c and code cleanup
40108 * source/common/dct.cpp:
40109 xIDST4_C renamed to idst4_c and code cleanup
40112 * source/common/dct.cpp:
40113 xDCT32_C renamed to dct32_c and code cleanup
40116 * source/common/dct.cpp:
40117 xDCT16_C renamed to dct16_c and code cleanup
40120 2013-07-08 Steve Borho <steve@borho.org>
40122 * source/common/vec/intrapred.inc:
40123 intrapred: fixup variable renaming
40126 * source/common/intrapred.cpp:
40127 intrapred: remove hungarian prefix for file static
40130 * source/common/pixel.cpp:
40131 pixel: cleanup C references
40134 * source/common/vec/pixel16.inc:
40135 pixel: use x264 style argument names
40138 * source/common/vec/pixel8.inc:
40139 pixel: use x264 style argument names
40142 * source/common/intrapred.cpp:
40143 intrapred: finish variable cleanups
40146 * source/common/vec/pixel.inc:
40147 pixel: remove caps in function arguments, macro white-space cleanups
40150 * source/common/vec/pixel.inc, source/common/vec/utils.h:
40151 pixel: cleanup includes
40154 * source/common/vec/pixel.inc:
40155 pixel: simplify SET_FUNC_PRIMITIVE_TABLE macro and relocate
40158 2013-07-08 ggopu <ggopu>
40160 * source/common/intrapred.cpp, source/common/vec/intrapred.inc:
40161 IntraPred: Removed Unused Codes and Cleanup the Function names and
40162 Hungarian Notations
40165 * source/common/vec/pixel.inc, source/common/vec/pixel16.inc,
40166 source/common/vec/pixel8.inc, source/common/vec/sse.inc:
40167 Vector Primitives : Removed hungarian notation
40170 2013-07-08 Steve Borho <steve@borho.org>
40172 * source/common/vec/intrapred.inc:
40173 intra: fix HIGH_BIT_DEPTH builds
40176 2013-07-08 praveentiwari <praveentiwari>
40178 * source/common/dct.cpp:
40179 xDCT8_C renamed to dct8_c and code cleanup
40182 * source/common/dct.cpp:
40183 xDCT4_C renamed to dct4_c and code cleanup
40186 * source/common/dct.cpp:
40187 xDST4_C renamed to dst4_c and clenup
40190 2013-07-08 Steve Borho <steve@borho.org>
40192 * source/Lib/TLibEncoder/TEncCfg.h,
40193 source/Lib/TLibEncoder/TEncGOP.cpp,
40194 source/Lib/TLibEncoder/TEncTop.cpp:
40195 TEncTop: use mini-GOP sized frame batches with --gops 1 [CHANGES
40198 This changes the cadence slightly, so outputs will change. This also
40199 greatly reduces the memory requirements when GOP parallelism is not
40203 2013-07-05 praveentiwari <praveentiwari>
40205 * source/common/dct.cpp:
40206 Cleanup some left hungarian notation left in first commit for
40210 * source/common/dct.cpp:
40211 xDeQuant code cleanup
40214 * source/common/dct.cpp:
40215 xIDCT32_C code cleanup
40218 * source/common/dct.cpp:
40219 xIDCT16_C code cleanup
40222 * source/common/dct.cpp:
40223 xIDCT8_C code cleanup
40226 * source/common/dct.cpp:
40227 xIDCT4_C code cleanup
40230 2013-07-05 Deepthi <Deepthi>
40232 * source/common/common.cpp:
40233 Rect option is enabled by default
40236 2013-07-05 Min Chen <chenm003@163.com>
40238 * source/common/vec/intrapred.inc:
40239 intrapred: code cleanup
40242 2013-07-05 Deepthi Devaki <Deepthi Devaki>
40244 * source/common/vec/ipfilter16.inc:
40245 Used memory align macro in ipfilter16.inc for compatibility with
40249 2013-07-05 praveentiwari <praveentiwari>
40251 * source/common/dct.cpp:
40252 xIDST4_C code cleanup
40255 * source/common/dct.cpp:
40256 xDCT32_C code cleanup
40259 * source/common/dct.cpp:
40260 xDCT16_C code cleanup
40263 * source/common/dct.cpp:
40264 xDCT8_C code cleanup
40267 * source/common/dct.cpp:
40268 xDCT4_C code cleanup
40271 * source/common/dct.cpp:
40272 xDST4_C code cleanup
40275 * source/common/vec/dct.inc:
40276 partialButterfy32 code cleanup
40279 * source/common/vec/dct.inc:
40280 partialButterfly16 code cleanup
40283 * source/common/vec/dct.inc:
40284 partialButterfly8 code clenup
40287 2013-07-05 ggopu <ggopu>
40289 * source/Lib/TLibCommon/TComPrediction.cpp,
40290 source/Lib/TLibCommon/TComWeightPrediction.cpp,
40291 source/Lib/TLibCommon/TComYuv.cpp,
40292 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/TShortYUV.cpp,
40293 source/common/TShortYUV.h:
40294 TShortYUV : Removed Get*() Method and Moved Member variables private
40298 2013-07-05 praveentiwari <praveentiwari>
40300 * source/common/vec/dct.inc:
40301 xIDCT32 code cleanup
40304 * source/common/vec/dct.inc:
40305 xIDCT16 code cleanup
40308 2013-07-05 Deepthi <Deepthi>
40310 * source/Lib/TLibCommon/TComPrediction.cpp,
40311 source/Lib/TLibCommon/TComWeightPrediction.cpp,
40312 source/Lib/TLibCommon/TComYuv.cpp,
40313 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/TShortYUV.cpp,
40314 source/common/TShortYUV.h:
40315 Backout changeset: TShortYUV
40318 2013-07-05 sumalatha <sumalatha>
40320 * source/Lib/TLibCommon/TComPrediction.h,
40321 source/Lib/TLibEncoder/TEncCu.h,
40322 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp:
40323 intra and merge in no-rdo latest patch
40326 2013-07-04 Deepthi Devaki <Deepthi Devaki>
40328 * source/common/vec/ipfilter16.inc:
40329 Fix for vc10 crash in ipfilter16.inc
40332 2013-07-02 ggopu <ggopu>
40334 * source/Lib/TLibCommon/TComPrediction.cpp,
40335 source/Lib/TLibCommon/TComWeightPrediction.cpp,
40336 source/Lib/TLibCommon/TComYuv.cpp,
40337 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/TShortYUV.cpp,
40338 source/common/TShortYUV.h:
40339 TShortYUV : Removed all the get() method and moved private data
40343 2013-07-03 praveentiwari <praveentiwari>
40345 * source/common/vec/dct.inc:
40346 xIDCT4 intrinsic code cleanup
40349 * source/common/vec/dct.inc:
40350 xIDCT8 intrinsic code cleanup
40353 * source/common/vec/dct.inc:
40354 xIDST4 intrinsic code cleanup
40357 * source/common/vec/dct.inc:
40358 xIDST4 vector code cleanup
40361 * source/common/vec/dct.inc:
40362 xDCT32 intrinsic code cleanup
40365 2013-07-03 Deepthi Devaki <Deepthi Devaki>
40367 * source/common/vec/ipfilter16.inc:
40368 Fix for crash in vc9 for IP filter
40371 2013-07-03 praveentiwari <praveentiwari>
40373 * source/common/vec/dct.inc:
40374 xDCT32 vector code cleanup
40377 * source/common/vec/dct.inc:
40378 xDCT16 intrinsic code cleanup
40381 2013-07-02 praveentiwari <praveentiwari>
40383 * source/common/vec/dct.inc:
40384 xDCT16 vector code cleanup
40387 2013-07-05 Deepthi <Deepthi>
40389 * source/Lib/TLibEncoder/TEncSearch.cpp,
40390 source/common/vec/intrapred.inc:
40391 # From 2b989d9a7e9ecf86a592f33c39555cd63dbebd5a Mon Sep 17 00:00:00
40392 2001 # From: Min Chen <chenm003@163.com> # Date: Tue, 2 Jul 2013
40393 16:54:35 +0800 # Subject: [PATCH 3/3] intrapred: IntraAngle33 32x32
40394 intrapred: IntraAngle33 32x32
40396 --- source/Lib/TLibEncoder/TEncSearch.cpp | 2 +-
40397 source/common/vec/intrapred.inc | 2628
40398 ++++++++++++++++++++++++++++++++- 2 files changed, 2628
40399 insertions(+), 2 deletions(-)
40402 2013-07-03 Deepthi <Deepthi>
40404 * source/common/vec/pixel.inc:
40405 Fix for HIGH_BIT_DEPTH enable
40408 * source/common/vec/pixel.inc, source/common/vec/utils.h:
40409 Assert error in pixel.inc resolved
40412 2013-07-02 praveentiwari <praveentiwari>
40414 * source/common/vec/dct.inc:
40415 xDCT8 intrinsic code cleaup
40418 2013-07-02 Deepthi <Deepthi>
40420 * source/common/threadpool.cpp:
40421 # From d515ac32f810fe6e6a986862771c85564193ee51 Mon Sep 17 00:00:00
40422 2001 # From: Min Chen <chenm003@163.com> # Date: Mon, 1 Jul 2013
40423 17:45:07 +0800 # Subject: [PATCH 2/3] Disable #pragma in INTEL
40424 Compiler Disable #pragma in INTEL Compiler
40425 --- source/common/threadpool.cpp | 2 ++ 1 files changed, 2
40426 insertions(+), 0 deletions(-)
40429 * source/common/vec/pixel.inc:
40430 # From 8fa0f843e7fcf96f934856e5f0541501f077909a Mon Sep 17 00:00:00
40431 2001 # From: Min Chen <chenm003@163.com> # Date: Tue, 2 Jul 2013
40432 15:57:32 +0800 # Subject: [PATCH 1/3] intrapred: transpose_32x32
40433 intrapred: transpose_32x32
40434 --- source/common/vec/pixel.inc | 12 +++++++++++- 1 files changed, 11
40435 insertions(+), 1 deletions(-)
40438 2013-07-02 praveentiwari <praveentiwari>
40440 * source/common/vec/dct.inc:
40441 xDCT8 vector code cleanup
40444 * source/common/vec/dct.inc:
40445 Removed hungarian notation from xDCT4 intrinsic code
40448 * source/common/vec/dct.inc:
40449 Removed hungarian notation from xDST4 intrinsic code
40452 * source/common/vec/dct.inc:
40456 2013-07-01 praveentiwari <praveentiwari>
40458 * source/common/vec/dct.inc:
40459 Removed hungarian notation and code cleanup for xDeQuant vector code
40462 2013-07-01 Deepthi Devaki <Deepthi Devaki>
40464 * source/common/ipfilter.cpp:
40465 code cleanup and variable renaming in ipfilter.cpp
40468 2013-07-01 praveentiwari <praveentiwari>
40470 * source/test/mbdstharness.cpp:
40471 Removed hungarian notation and code cleanup for
40472 check_xdequant_primitive test code
40475 * source/test/mbdstharness.cpp:
40476 Removed hungarian notation and code cleanup for
40477 check_quantaq_primitive test code
40480 * source/test/mbdstharness.cpp:
40481 Removed hungarian notation and cleanup for check_quant_primitive
40485 2013-07-01 Deepthi Devaki <Deepthi Devaki>
40487 * source/common/vec/ipfilter8.inc:
40488 Removed cliping from vertical filter implementation; observed to be
40492 2013-06-30 Steve Borho <steve@borho.org>
40494 * source/cmake/version.cmake:
40495 cmake: remove cache property for X265_VERSION
40497 This was causing cmake to only check the version when the cmake
40498 cache was entirely cleared (usually just once). After this change
40499 cmake will update X265_VERSION every time it generates the CLI
40503 2013-06-29 Steve Borho <steve@borho.org>
40505 * source/Lib/TLibEncoder/TEncSlice.cpp:
40506 TEncSlice: ensure lambda per QP does not change [CHANGES OUTPUTS]
40508 This fixes non-determinism when GOP parallelism is enabled. I think
40509 we should just use x264's lambda tables and get rid of all of this
40510 logic, but it's too big of a change to make right before I leave for
40513 My 1.55 hack attempts to get our compression per-QP close to where
40514 it was before the change.
40517 * source/Lib/TLibEncoder/TEncCu.cpp,
40518 source/Lib/TLibEncoder/TEncSearch.cpp,
40519 source/Lib/TLibEncoder/TEncSearch.h,
40520 source/Lib/TLibEncoder/TEncSlice.cpp, source/encoder/wavefront.cpp,
40521 source/encoder/wavefront.h:
40522 TEncSearch: configure bitcost estimators at same time as TComRdCost
40524 This ensures the lambdas used for RD cost are always in sync with
40528 2013-06-29 Min Chen <chenm003@163.com>
40530 * source/common/vec/intrapred.inc:
40531 intrapred: Enable primitive with Intel Compiler
40532 --- source/common/vec/intrapred.inc | 2 +- 1 files changed, 1
40533 insertions(+), 1 deletions(-)
40536 2013-06-28 Steve Borho <steve@borho.org>
40539 Added tag 0.1 for changeset 99fab2ef92be
40542 * source/common/vec/ipfilter.inc:
40543 VC9 crashes running filterHorizontalMultiplaneExtend in release
40545 The test outright fails in debug, but doesn't crash
40546 [99fab2ef92be] [0.1]
40548 * source/encoder/encoder.cpp:
40549 encoder: ensure primitives (and ROM) are initialized before
40552 This might be an issue for API users
40555 * source/Lib/TLibEncoder/TEncGOP.cpp,
40556 source/Lib/TLibEncoder/TEncGOP.h,
40557 source/Lib/TLibEncoder/TEncSlice.cpp,
40558 source/Lib/TLibEncoder/TEncSlice.h, source/encoder/wavefront.cpp,
40559 source/encoder/wavefront.h:
40560 rename EncodeFrame to FrameEncoder
40563 * source/common/common.cpp, source/common/common.h,
40564 source/encoder/encoder.cpp:
40565 common: use g_aucConvertToBit for getMaxCuDepth
40568 * source/Lib/TLibEncoder/TEncTop.cpp, source/common/primitives.cpp,
40569 source/encoder/encoder.cpp:
40570 TEncTop: move ROM management out of TEncTop
40572 Eventually we will want to allow more than one TEncTop in a process
40575 * source/Lib/TLibCommon/TComRom.cpp:
40576 TComRom: make initROM and destroyROM safe for cycled calls
40579 * source/Lib/TLibCommon/TComPrediction.cpp:
40580 TComPrediction: use aligned allocs for temporary interpolation
40583 Hoping this resolves the problems found with 32bit heap corruption.
40586 * source/common/common.cpp:
40587 vc9 requires unambigous casts for log() arguments
40590 * source/common/common.cpp:
40591 gcc requires math.h for log()
40594 * source/common/vec/ipfilter.inc:
40595 ipfilter: disable vector version of filterHmulti
40598 * source/common/reference.cpp:
40599 reference: remove obsolete code
40602 * source/common/vec/ipfilter8.inc, source/test/ipfilterharness.cpp:
40603 ipfilter: white-space nits, no code chage
40606 2013-06-28 Deepthi Devaki <Deepthi Devaki>
40608 * source/common/vec/ipfilter8.inc:
40609 Modification on Horizontal filter
40612 * source/common/ipfilter.cpp, source/common/primitives.h,
40613 source/common/reference.cpp, source/common/vec/ipfilter.inc,
40614 source/common/vec/ipfilter8.inc, source/test/ipfilterharness.cpp:
40615 Merged buffer extension with Horizontal filter; integrated with
40619 2013-06-28 Steve Borho <steve@borho.org>
40621 * source/encoder/encoder.cpp:
40622 encoder: Always use IDR decoder refresh type
40625 2013-06-28 praveentiwari <praveentiwari>
40627 * source/test/mbdstharness.cpp, source/test/mbdstharness.h:
40628 Test code for quantaq and quant functions.
40631 * source/common/vec/dct.inc:
40632 Vector code for quantaq and quant functions.
40635 * source/common/dct.cpp:
40636 Replaced uint64_t with int in quantaq_C and quant_C functions,
40637 tested with BasketballDrive.
40640 2013-06-28 Steve Borho <steve@borho.org>
40642 * source/common/common.cpp, source/common/common.h,
40643 source/encoder/encoder.cpp, source/x265.h, source/x265opts.h:
40644 Removed tuQTMaxLog2Size and tuQTMinLog2Size parametr from CLI option
40647 * source/common/common.cpp, source/x265.h, source/x265opts.h:
40648 Removed maxCUDepth parameter from CLI option
40651 * source/Lib/TLibEncoder/TEncTop.cpp:
40652 TEncTop: improve comment about determining where the second I frame
40656 * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp,
40657 source/x265.cpp, source/x265.h, source/x265opts.h:
40658 x265: add --bframes/-b parameter to select B GOP structure
40661 * source/encoder/encoder.cpp:
40662 encoder: round keyframeInterval after establishing GOP structure
40664 This prevents 30Hz video from accidentally triggering our -i32 B
40668 * source/Lib/TLibCommon/TComPicYuv.cpp,
40669 source/Lib/TLibCommon/TComPicYuv.h,
40670 source/Lib/TLibCommon/TComSlice.cpp,
40671 source/Lib/TLibCommon/TComSlice.h:
40672 TComSlice: free motion reference when picture is no longer
40675 This is a stop-gap fix to the enourmous memory requirements of GOP
40676 level parallelism. It would be better to re-use these structures
40677 instead of allocing them every time.
40680 2013-06-27 Steve Borho <steve@borho.org>
40682 * source/Lib/TLibCommon/TComSlice.cpp:
40686 * source/Lib/TLibCommon/TComPicYuv.h:
40687 TComPicYuv: remove obsolete member function definition
40690 * source/common/reference.cpp, source/encoder/wavefront.cpp:
40691 thread: add serial code-paths for job provider if thread pool is not
40695 2013-06-27 Min Chen <chenm003@163.com>
40697 * source/Lib/TLibEncoder/TEncSearch.cpp:
40698 intrapred: Active code IntraAngle33 16x16
40699 --- source/Lib/TLibEncoder/TEncSearch.cpp | 14 ++------------ 1 files
40700 changed, 2 insertions(+), 12 deletions(-)
40703 * source/common/vec/pixel.inc:
40704 pixel: fix bug in Transpose 16x16
40705 --- source/common/vec/pixel.inc | 76
40706 +++++++++++++++++++++--------------------- 1 files changed, 38
40707 insertions(+), 38 deletions(-)
40710 2013-06-27 sumalatha <sumalatha>
40712 * source/encoder/compress.cpp:
40713 Fixed the Hash error with -no-rdo ON
40716 2013-06-26 Steve Borho <steve@borho.org>
40718 * source/Lib/TLibEncoder/TEncTop.cpp:
40719 TEncTop: don't flush two GOP coders in one call
40722 * source/common/threadpool.cpp:
40723 threadpool: tweak for thread deletion loop
40726 * source/common/threadpool.cpp:
40727 threadpool: more explicit shutdown code
40730 * source/Lib/TLibEncoder/TEncCu.cpp:
40731 TEncCu: fix a small memory leak
40734 * source/Lib/TLibEncoder/TEncCu.cpp:
40735 TEncCU: white-space cleanup
40738 * source/Lib/TLibEncoder/TEncTop.cpp,
40739 source/Lib/TLibEncoder/TEncTop.h:
40740 TEncTop: allow GOP coder execution to overlap execution
40742 Finally.. GOP parallelism.
40745 * source/Lib/TLibEncoder/TEncTop.cpp:
40746 TEncTop: do not flush if no pics are queued, prevents deadlock
40749 * source/Lib/TLibCommon/TypeDef.h,
40750 source/Lib/TLibEncoder/TEncCavlc.cpp:
40751 cleanup: move SCALING_LIST_OUTPUT_RESULT to TEncCavlc
40754 * source/Lib/TLibCommon/TypeDef.h:
40755 cleanup: remove unused REMOVE_SAO_LCU_ENC_CONSTRAINTS_3
40758 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TypeDef.h:
40759 cleanup: move DISABLING_CLIP_FOR_BIPREDME to TComYuv, add comment
40762 * source/Lib/TLibCommon/TypeDef.h,
40763 source/Lib/TLibEncoder/TEncCavlc.cpp:
40764 cleanup: move PRINT_RPS_INFO to TEncCavlc
40767 * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncGOP.cpp:
40768 cleanup: move VERBOSE_RATE define to TEncGOP
40771 * source/Lib/TLibEncoder/TEncGOP.cpp,
40772 source/Lib/TLibEncoder/TEncGOP.h:
40773 TEncGOP: add a worker thread to process keyframe intervals
40776 * source/common/TShortYUV.cpp, source/common/TShortYUV.h:
40777 TShortYUV: remove or correct comment lines
40780 * source/common/CMakeLists.txt, source/encoder/CMakeLists.txt:
40781 cmake: move HM headers into their own source group in VC
40784 * source/encoder/CMakeLists.txt:
40785 cmake: remove deleted compress.h from encoder project
40788 * source/encoder/compress.cpp:
40789 compress: remove warning disable pragmas, fix warnings
40792 * source/encoder/compress.h:
40793 compress: remove unused header
40796 * source/encoder/compress.cpp:
40797 compress: uncrustify
40800 * source/encoder/compress.cpp:
40801 compress: remove dead variables
40804 * source/common/primitives.h, source/test/mbdstharness.cpp,
40805 source/test/mbdstharness.h:
40806 primitives: fix symbol collision
40809 2013-06-26 Min Chen <chenm003@163.com>
40811 * source/common/vec/intrapred.inc:
40812 inrapred: generate all of 33 IntraAngle 16x16 modes once (vc9-win32
40815 --- source/common/vec/intrapred.inc | 4151
40816 ++++++++++++++++++++++++++++++++++++++- 1 files changed, 4148
40817 insertions(+), 3 deletions(-)
40820 * source/common/vec/intrapred.inc:
40821 cleanup: Remove unused debug code
40822 --- source/common/vec/intrapred.inc | 3 --- 1 files changed, 0
40823 insertions(+), 3 deletions(-)
40826 2013-06-27 Mandar Gurav <Mandar Gurav>
40828 * source/common/vec/intrapred.inc:
40829 primitves: 8 bit : PredIntraAng8x8 function table implementation
40832 2013-06-26 praveentiwari <praveentiwari>
40834 * source/Lib/TLibCommon/TComTrQuant.cpp:
40835 TrComQuant: replaced original code with primitive calls
40838 * source/common/dct.cpp:
40839 Separated the logic block of code from xQuant function as two
40840 functions for optimization
40843 * source/common/primitives.h:
40844 primitives: Added function pointer types for quant
40847 2013-06-26 sumalatha <sumalatha>
40849 * source/encoder/compress.cpp:
40850 commit : added log for printing costs for each partSize
40853 2013-06-26 praveentiwari <praveentiwari>
40855 * source/common/primitives.h:
40856 White-space fixes in primitives.h
40859 * source/common/dct.cpp:
40860 Uncrustyfied dct.cpp file
40863 2013-06-25 Deepthi Devaki <Deepthi Devaki>
40865 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TypeDef.h:
40866 Enabled clipping for Bframes in ME as a fix for 8bpp-16bpp mismatch.
40869 2013-06-26 praveentiwari <praveentiwari>
40871 * source/Lib/TLibCommon/TComTrQuant.cpp:
40872 White-space fixes in TComTrQuant.cpp file
40875 2013-06-26 Mandar Gurav <Mandar Gurav>
40877 * source/common/vec/intrapred.inc:
40878 primitves: 8 bit : PredIntraAng4x4 function table implementation
40881 2013-06-25 Steve Borho <steve@borho.org>
40883 * source/Lib/TLibEncoder/TEncGOP.cpp:
40884 TEncGOP: fix signed/unsigned comparison
40887 * source/Lib/TLibEncoder/TEncTop.cpp:
40888 TEncTOP: small perf tweak for --gops 1
40891 * source/Lib/TLibEncoder/TEncGOP.cpp,
40892 source/Lib/TLibEncoder/TEncGOP.h,
40893 source/Lib/TLibEncoder/TEncTop.cpp:
40894 TEncGOP: move access unit buffering to TEncGOP
40897 * source/Lib/TLibEncoder/TEncTop.h:
40898 TEncTop: prune unused headers, this stuff has all been moved
40902 * source/common/CMakeLists.txt, source/common/IntraPred.cpp,
40903 source/common/intrapred.cpp:
40904 cmake: lower-case the intrapred.cpp filename
40907 * source/Lib/TLibCommon/TComLoopFilter.cpp,
40908 source/Lib/TLibCommon/TComMotionInfo.h,
40909 source/Lib/TLibEncoder/TEncSbac.cpp,
40910 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/mv.h:
40911 mv: remove getHor() and getVer() compatibility methods
40914 * source/Lib/TLibCommon/TComDataCU.cpp, source/common/mv.h:
40915 mv: remove set() compatibility method
40918 * source/Lib/TLibEncoder/TEncPic.cpp:
40919 TEncPic: use MAX_DOUBLE from CommonDefs.h
40922 * source/Lib/TLibCommon/TComDataCU.cpp, source/common/mv.h:
40923 mv: remove setHor(), SetVer() compatibility methods
40926 * source/common/CMakeLists.txt, source/common/mv.h,
40927 source/encoder/CMakeLists.txt, source/encoder/mv.h:
40928 mv: move mv.h from encoder/ to common/
40931 * source/Lib/TLibCommon/TComDataCU.cpp,
40932 source/Lib/TLibCommon/TComDataCU.h,
40933 source/Lib/TLibCommon/TComLoopFilter.cpp,
40934 source/Lib/TLibCommon/TComMotionInfo.cpp,
40935 source/Lib/TLibCommon/TComMotionInfo.h,
40936 source/Lib/TLibCommon/TComMv.h,
40937 source/Lib/TLibCommon/TComPrediction.cpp,
40938 source/Lib/TLibCommon/TComPrediction.h,
40939 source/Lib/TLibCommon/TComRdCost.h,
40940 source/Lib/TLibCommon/TComRdCostWeightPrediction.h,
40941 source/Lib/TLibEncoder/TEncSearch.cpp,
40942 source/Lib/TLibEncoder/TEncSearch.h:
40943 common: replace TComMV with x265::MV everywhere
40946 * source/Lib/TLibEncoder/TEncTop.cpp:
40947 TEncTOP: simplify logic
40950 * source/Lib/TLibEncoder/TEncTop.cpp:
40951 TEncTOP: remove incorrect comment
40954 * source/Lib/TLibEncoder/TEncCu.cpp,
40955 source/Lib/TLibEncoder/TEncGOP.cpp,
40956 source/Lib/TLibEncoder/TEncGOP.h,
40957 source/Lib/TLibEncoder/TEncPic.cpp,
40958 source/Lib/TLibEncoder/TEncPic.h,
40959 source/Lib/TLibEncoder/TEncPreanalyzer.cpp,
40960 source/Lib/TLibEncoder/TEncPreanalyzer.h:
40961 TEncPic: make TEncPreanalyzer::xPreanalyze a method of TEncPic
40964 * source/Lib/TLibEncoder/TEncGOP.cpp,
40965 source/Lib/TLibEncoder/TEncGOP.h,
40966 source/Lib/TLibEncoder/TEncTop.cpp,
40967 source/Lib/TLibEncoder/TEncTop.h:
40968 TEncGOP: move all picture prep work from TEncTop to TEncGOP
40971 * source/Lib/TLibEncoder/TEncGOP.cpp,
40972 source/Lib/TLibEncoder/TEncGOP.h:
40973 TEncGOP: do not use accessors for member variables
40976 * source/Lib/TLibEncoder/TEncGOP.cpp,
40977 source/Lib/TLibEncoder/TEncGOP.h:
40978 TEncGOP: remove m_cpbRemovalDelay, which was never read
40981 * source/encoder/encoder.cpp:
40982 encoder: set progressive flag, since we only support progressive
40986 * source/encoder/encoder.cpp:
40987 encoder: allow CRA mode when gopNumThreads is 1, add some comments
40990 * source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp:
40991 TEncTOP: allow -i32 --gops 2, but detect and avoid end-of-stream
40995 * source/Lib/TLibCommon/TypeDef.h:
40996 Backed out changeset: fdb2ffe6b29b
40999 * source/Lib/TLibCommon/TypeDef.h:
41000 TypeDef: remove unused DISABLING_CLIP_FOR_BIPREDME
41003 * source/encoder/encoder.cpp:
41004 encoder: repair open-gop again
41007 * source/encoder/encoder.cpp:
41008 encoder: fix keyframe interval before InitializeGOP()
41011 * source/Lib/TLibEncoder/TEncGOP.cpp:
41012 TEncGOP: fix the first I frame (temporary fix)
41015 * source/encoder/encoder.cpp:
41016 encoder: remove redundant assignments
41019 * source/encoder/encoder.cpp:
41020 encoder: enforce keyframe as multiple of GOPSize
41023 * source/Lib/TLibEncoder/TEncGOP.cpp,
41024 source/Lib/TLibEncoder/TEncTop.cpp,
41025 source/Lib/TLibEncoder/TEncTop.h:
41026 TEncTOP: remove unused m_vRVM_RP vector
41029 2013-06-25 praveentiwari <praveentiwari>
41031 * source/test/mbdstharness.cpp:
41032 Fixed size issue in xDeQuant test code
41035 * source/test/mbdstharness.cpp:
41036 uncrustified mbdstharness.cpp file
41039 2013-06-25 sumalatha <sumalatha>
41041 * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp:
41042 Included merge mode for FMD = ON. Changed the
41043 xComputeCostMerge2Nx2N() to calculate the SATD cost and decide the
41044 mode based on that.
41047 2013-06-25 Min Chen <chenm003@163.com>
41049 * source/common/vec/intrapred.inc:
41050 intrapred: Enable primitive since VC9 haven't this bug
41051 --- source/common/vec/intrapred.inc | 2 +- 1 files changed, 1
41052 insertions(+), 1 deletions(-)
41055 2013-06-25 Steve Borho <steve@borho.org>
41057 * source/Lib/TLibEncoder/TEncGOP.cpp,
41058 source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp:
41059 TEncGOP: temporary workarounds for --keyint 32; will finish tomorrow
41062 * source/Lib/TLibEncoder/TEncTop.cpp:
41063 TEncGOP: ugly hack for our ugly --keyint 32 hack
41065 This allows the encoder to survive up till the last mini-GOP, still
41069 * source/encoder/encoder.cpp:
41070 encoder: switch to IDR decoder refresh mode, more GOP parallelism
41074 2013-06-24 Steve Borho <steve@borho.org>
41076 * source/Lib/TLibEncoder/TEncTop.cpp:
41077 TEncTOP: remove special cases for first keyframe interval
41080 * source/encoder/encoder.cpp:
41081 encoder: disable GOP parallelism if open GOP configured
41084 * source/encoder/encoder.cpp:
41085 encoder: add a comment for default keyframe interval
41088 * source/common/common.cpp, source/encoder/encoder.cpp,
41090 encoder: change default keyframe interval from fixed value (16) to 1
41094 * source/common/common.cpp, source/encoder/encoder.cpp:
41095 encoder: consolidate logic which validates feature combinations
41098 * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncTop.cpp,
41099 source/Lib/TLibEncoder/TEncTop.h:
41100 TEncTOP: nuke xCalculateRVM() and RVM_VCEGAM10_M
41103 * source/common/x86/README.txt:
41104 asm: add a couple more notes to the README
41107 * source/Lib/TLibEncoder/TEncGOP.cpp,
41108 source/Lib/TLibEncoder/TEncTop.cpp,
41109 source/Lib/TLibEncoder/TEncTop.h:
41110 TEncTop: round-robin cycle through GOP encoders
41113 * source/common/IntraPred.cpp, source/common/dct.cpp,
41114 source/common/ipfilter.cpp, source/common/pixel.cpp,
41115 source/common/primitives.h, source/common/vec/blockcopy.inc,
41116 source/common/vec/dct.inc, source/common/vec/ipfilter16.inc,
41117 source/common/vec/ipfilter8.inc, source/common/vec/pixel.inc,
41118 source/common/vec/pixel16.inc, source/common/vec/pixel8.inc,
41119 source/common/x86/asm-primitives.cpp:
41120 primitve: remove CDECL globally
41123 * source/Lib/TLibEncoder/TEncCfg.h,
41124 source/Lib/TLibEncoder/TEncTop.cpp,
41125 source/Lib/TLibEncoder/TEncTop.h, source/common/common.cpp,
41126 source/encoder/encoder.cpp, source/x265.h, source/x265opts.h:
41127 x265: introduce gop thread count parameter, currently mostly ignored
41130 * source/Lib/TLibEncoder/TEncGOP.cpp,
41131 source/Lib/TLibEncoder/TEncTop.cpp:
41132 TEncGOP: encode frames in keyframe interval batches
41134 This makes progress reports even more infrequent
41137 * source/Lib/TLibEncoder/TEncTop.cpp,
41138 source/Lib/TLibEncoder/TEncTop.h:
41139 TEncTOP: 50% less hungarian, remove or correct wrong comments
41142 2013-06-24 Deepthi Devaki <Deepthi Devaki>
41144 * source/Lib/TLibCommon/TComPrediction.cpp,
41145 source/Lib/TLibCommon/TComPrediction.h,
41146 source/Lib/TLibCommon/TComWeightPrediction.cpp,
41147 source/Lib/TLibCommon/TComWeightPrediction.h,
41148 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
41149 source/Lib/TLibEncoder/TEncSearch.cpp:
41150 Added support for bipred, but 8bpp, 16bpp mismatch
41153 2013-06-21 Deepthi Devaki <Deepthi Devaki>
41155 * source/Lib/TLibCommon/TComPrediction.cpp,
41156 source/Lib/TLibCommon/TComPrediction.h:
41157 TComPrediction: fixes for biprediction
41159 Restructured xPredInterBi. Added xPredInterluma/chromablk/Uni
41160 functions with TShortYuv argument for bipred
41163 2013-06-24 Steve Borho <steve@borho.org>
41165 * source/Lib/TLibEncoder/TEncGOP.cpp:
41169 * source/Lib/TLibEncoder/TEncGOP.cpp,
41170 source/Lib/TLibEncoder/TEncGOP.h:
41171 TEncGOP: stub in a processKeyframeInterval() method
41173 This is the next step to GOP parallelism. 1) Process an entire
41174 keyframe interval of frames at one go; ensure the picture lists can
41175 deal with this. 2) Add multiple TEncGOP encoders and round-robin
41176 them to encode GOPs. 3) Finally add threading so they work in
41180 * source/common/vec/intrapred.inc:
41181 intra: work around VC10 and VC11 Win32 compiler bugs
41184 * source/common/ipfilter.cpp, source/common/vec/intrapred.inc,
41185 source/common/vec/pixel.inc:
41186 gcc: fix warnings reported by GCC
41189 2013-06-23 Steve Borho <steve@borho.org>
41191 * source/common/common.cpp, source/encoder/encoder.cpp,
41192 source/x265.cpp, source/x265.h, source/x265opts.h:
41193 x265: remove ui/i hungarian prefixes from x265_param_t, standardize
41197 2013-06-24 Deepthi <Deepthi>
41199 * source/encoder/compress.cpp:
41203 * source/Lib/TLibEncoder/TEncSearch.cpp:
41207 2013-06-22 Deepthi <Deepthi>
41209 * source/encoder/compress.cpp:
41210 Adding in entropy measurements to nordo after encode residual.
41213 * source/encoder/compress.cpp:
41214 Removing merge modes for now; need more debugging
41217 * source/Lib/TLibEncoder/TEncSearch.cpp:
41218 Removing an erroneous cost calculation
41221 2013-06-23 Steve Borho <steve@borho.org>
41223 * source/Lib/TLibEncoder/TEncGOP.cpp, source/encoder/encoder.cpp:
41224 encoder: fix open-gop behavior
41227 * source/common/common.cpp:
41228 common: fixups for keyframe interval
41231 2013-06-22 Steve Borho <steve@borho.org>
41233 * source/Lib/TLibEncoder/TEncCu.cpp:
41234 TEncCU: remove more dead code
41237 * source/Lib/TLibEncoder/TEncCu.cpp:
41241 * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp:
41242 TEncCU: remove dead code paths
41245 2013-06-23 Steve Borho <steve@borho.org>
41247 * source/Lib/TLibEncoder/TEncSearch.cpp:
41248 TEncSearch: fix 16bpp build
41251 * source/common/vec/pixel.inc:
41252 pixel: fix typo in build define
41255 2013-06-22 Steve Borho <steve@borho.org>
41257 * source/common/vec/pixel.inc, source/common/vec/pixel8.inc,
41258 source/test/pixelharness.cpp:
41259 pixel: simplify and optimize residual and recon primitives
41262 * source/VectorClass/vectori128.h:
41266 2013-06-22 Min Chen <chenm003@163.com>
41268 * source/common/vec/ipfilter8.inc:
41269 interp: [review] PACKUSWB included clip
41270 --- source/common/vec/ipfilter8.inc | 6 ------ 1 files changed, 0
41271 insertions(+), 6 deletions(-)
41274 2013-06-22 Steve Borho <steve@borho.org>
41276 * source/common/vec/ipfilter-avx.cpp, source/common/vec/ipfilter-
41277 avx2.cpp, source/common/vec/ipfilter-sse2.cpp, source/common/vec
41278 /ipfilter-sse3.cpp, source/common/vec/ipfilter-sse41.cpp,
41279 source/common/vec/ipfilter-sse42.cpp, source/common/vec/ipfilter-
41280 ssse3.cpp, source/common/vec/ipfilter.inc:
41281 ipfilter: move logic from cpp files to ipfilter.inc
41284 2013-06-22 Min Chen <chenm003@163.com>
41286 * source/common/vec/pixel.inc:
41287 pixel: intrinsic Tranpose 16x16
41288 --- source/common/vec/pixel.inc | 83
41289 ++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 82
41290 insertions(+), 1 deletions(-)
41293 * source/common/vec/pixel.inc:
41294 pixel: intrinsic Tranpose 8x8
41295 --- source/common/vec/pixel.inc | 45
41296 +++++++++++++++++++++++++++++++++++++++++- 1 files changed, 43
41297 insertions(+), 2 deletions(-)
41300 2013-06-22 Steve Borho <steve@borho.org>
41302 * source/common/primitives.h, source/test/pixelharness.cpp:
41303 primitives: rename NUM_BLOCKS to NUM_SQUARE_BLOCKS, use for intra
41307 2013-06-22 Min Chen <chenm003@163.com>
41309 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp,
41310 source/common/primitives.h, source/common/vec/pixel.inc:
41311 pixel: intrinsic Tranpose 4x4
41312 --- source/Lib/TLibEncoder/TEncSearch.cpp | 9 +------
41313 source/common/pixel.cpp | 19 +++++++++++++++
41314 source/common/primitives.h | 2 + source/common/vec/pixel.inc | 41
41315 +++++++++++++++++++++++++++++++++ 4 files changed, 63 insertions(+),
41319 2013-06-22 Steve Borho <steve@borho.org>
41321 * source/common/vec/intrapred.inc:
41322 intrapred: wrap pragma warning with #if _MSC_VER
41325 * source/Lib/TLibEncoder/TEncSearch.cpp:
41326 TEncSearch: fix cost adjustments following HM ME
41329 * source/Lib/TLibEncoder/TEncSearch.cpp:
41330 TEncSearch: simplify full search
41333 * source/Lib/TLibEncoder/TEncSearch.cpp:
41334 ppa: move motion search event to a higher level
41337 * source/Lib/TLibEncoder/TEncGOP.cpp:
41338 TEncGOP: catch --keyint -1 sanely
41341 * source/Lib/TLibEncoder/TEncSearch.h:
41345 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/common.cpp,
41346 source/x265.h, source/x265opts.h:
41347 x265: expose HM's full search as a CLI option --me 5
41350 * source/Lib/TLibCommon/CommonDef.h,
41351 source/Lib/TLibEncoder/TEncSearch.cpp:
41352 TEncSearch: remove more cruft
41355 * source/Lib/TLibCommon/TComRdCost.h,
41356 source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp,
41357 source/Lib/TLibEncoder/TEncSearch.cpp:
41358 TComRdCost: remove unused uiComp
41361 * source/Lib/TLibEncoder/TEncSearch.cpp,
41362 source/Lib/TLibEncoder/TEncSearch.h:
41363 TEncSearch: remove setDistParamComp
41366 2013-06-21 Steve Borho <steve@borho.org>
41368 * source/Lib/TLibEncoder/TEncSearch.cpp:
41369 TEncSearch: cleanups
41372 * source/Lib/TLibEncoder/TEncSearch.cpp,
41373 source/Lib/TLibEncoder/TEncSearch.h:
41374 TEncSearch: move predictor fetching earlier in inter pred
41376 This allows us to merge xTZSearch into xPatternSearchFast
41379 * source/Lib/TLibEncoder/TEncSearch.cpp:
41380 TEncSearch: hoist our optimized ME up a function layer
41382 Avoid a lot of useless overhead, simplify how ME is called
41385 * source/Lib/TLibEncoder/TEncSearch.cpp,
41386 source/Lib/TLibEncoder/TEncSearch.h:
41387 TEncSearch: simplify xSetSearchRange
41390 * source/encoder/motion.cpp, source/encoder/mv.h:
41391 MV: do not allow implicit creation from int
41394 * source/Lib/TLibEncoder/TEncSearch.cpp:
41398 * source/common/common.cpp:
41399 common: do not allow weighted prediction with optimized ME
41401 This prevents having to check for this deep within the encoder
41404 2013-06-21 Min Chen <chenm003@163.com>
41406 * source/Lib/TLibEncoder/TEncSearch.cpp,
41407 source/common/vec/intrapred.inc, source/test/intrapredharness.cpp:
41408 [x265] [PATCH] inrapred: generate all of 33 IntraAngle-8x8 modes
41410 --- source/Lib/TLibEncoder/TEncSearch.cpp | 2 +-
41411 source/common/vec/intrapred.inc | 1017
41412 ++++++++++++++++++++++++++++++++- source/test/intrapredharness.cpp |
41413 3 +- 3 files changed, 1019 insertions(+), 3 deletions(-)
41416 2013-06-21 Steve Borho <steve@borho.org>
41418 * source/Lib/TLibEncoder/TEncSearch.cpp:
41419 TEncSearch: remove last Double uses from TEncSearch
41422 * source/Lib/TLibCommon/TComRdCost.h:
41423 TComRdCost: remove unused getLambda() method
41426 2013-06-20 Min Chen <chenm003@163.com>
41428 * source/common/IntraPred.cpp, source/common/vec/intrapred.inc,
41429 source/test/intrapredharness.cpp:
41430 intrapred: 1.fix C model when size more than 8, 2.fix buffer
41431 overflow in testbench
41432 --- source/common/IntraPred.cpp | 40
41433 ++++++++++++++++++-------------------
41434 source/common/vec/intrapred.inc | 9 ++-----
41435 source/test/intrapredharness.cpp | 9 +++---- 3 files changed, 26
41436 insertions(+), 32 deletions(-)
41439 2013-06-21 Deepthi Devaki <Deepthi Devaki>
41441 * source/common/ipfilter.cpp, source/common/primitives.h:
41442 Filtervertical-short-short and pel-short to support bipred
41445 2013-06-21 Deepthi <Deepthi>
41447 * source/encoder/compress.cpp:
41448 Cleanup: compress.cpp
41451 * source/encoder/compress.cpp:
41452 Removing incorrect null checks
41455 * source/encoder/compress.cpp:
41456 Branch decision taken only if CU does not contain boundary. Always
41463 * source/encoder/compress.cpp:
41464 Replacing SATD computations with blkcpy and then satd
41467 2013-06-21 Steve Borho <steve@borho.org>
41469 * source/Lib/TLibEncoder/TEncGOP.cpp:
41473 * source/common/CMakeLists.txt, source/encoder/CMakeLists.txt:
41474 cmake: separate HM headers from the cpp files for convenience
41477 * source/common/pixel.cpp:
41478 pixel: refix 16bpp builds
41482 x265: fix bitrate progress reports
41485 * source/Lib/TLibEncoder/TEncGOP.cpp:
41486 TEncGOP: use member SPS and PPS structs, stop refetching slice
41489 2013-06-20 Steve Borho <steve@borho.org>
41491 * source/common/x86/asm-primitives.cpp:
41492 asm: do not override new SSE2 ASM functions with slower templated
41496 * source/Lib/TLibEncoder/TEncGOP.cpp:
41500 * source/CMakeLists.txt:
41501 cmake: assign value to X86_64 when defined
41504 * source/Lib/TLibEncoder/TEncGOP.cpp:
41505 TEncGOP: move a couple of methods
41508 * source/Lib/TLibEncoder/TEncGOP.cpp:
41512 * source/encoder/bitcost.cpp, source/encoder/bitcost.h:
41513 bitcost: use more accurate fractional bit cost accounting from x264
41516 * source/encoder/motion.cpp, source/encoder/motion.h:
41517 motion: drop SUBSAMPLE_SAD [CHANGES OUTPUTS]
41519 The complexity outweighed the benefits
41522 * source/Lib/TLibEncoder/TEncGOP.cpp:
41523 TEncGOP: fix comment
41526 * source/encoder/bitcost.cpp:
41527 bitcost: fix clamp of bitcost to 16bits
41529 The typecast to uint16_t was just wrong
41532 * source/common/reference.cpp:
41533 reference: cleanup worker function
41536 * source/common/vec/ipfilter-avx.cpp, source/common/vec/ipfilter-
41537 avx2.cpp, source/common/vec/ipfilter-sse2.cpp, source/common/vec
41538 /ipfilter-sse3.cpp, source/common/vec/ipfilter-sse41.cpp,
41539 source/common/vec/ipfilter-sse42.cpp, source/common/vec/ipfilter-
41540 ssse3.cpp, source/common/vec/ipfilter8.inc:
41541 ipfilter: use memcpy to extend top/bottom rows
41544 * source/common/vec/ipfilter8.inc:
41545 ipfilter: fix indention (all white-space changes)
41548 * source/common/vec/ipfilter8.inc:
41549 ipfilter: fix spacing
41552 * source/common/pixel.cpp:
41553 pixel: fix sa8d_16x16 C primitive
41556 2013-06-20 Deepthi Devaki <Deepthi Devaki>
41558 * source/common/ipfilter.cpp, source/common/primitives.h,
41559 source/common/reference.cpp, source/common/vec/ipfilter.inc,
41560 source/common/vec/ipfilter8.inc, source/test/ipfilterharness.cpp:
41561 Vertical filter with Border extend
41564 2013-06-20 Min Chen <chenm003@163.com>
41566 * source/test/intrapredharness.cpp:
41567 intrapred: adjust debug info format
41568 --- source/test/intrapredharness.cpp | 2 +- 1 files changed, 1
41569 insertions(+), 1 deletions(-)
41572 * source/test/testbench.cpp:
41573 testbench: fix logic on option --cpuid
41576 2013-06-20 Steve Borho <steve@borho.org>
41578 * source/Lib/TLibEncoder/TEncGOP.cpp:
41579 TEncGOP: ensure pic list contains at least two TComPic
41582 2013-06-20 Min Chen <chenm003@163.com>
41584 * source/common/vec/dct.inc:
41585 dct: disable optimize version dct in 16bpp, all of intermediate
41586 value must be 32-bits
41587 --- source/common/vec/dct.inc | 5 +++++ 1 files changed, 5
41588 insertions(+), 0 deletions(-)
41591 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/IntraPred.cpp,
41592 source/common/primitives.h, source/common/vec/intrapred.inc,
41593 source/test/intrapredharness.cpp, source/test/intrapredharness.h:
41594 intrapred: implement IntraAngle mode to all size
41595 --- source/Lib/TLibEncoder/TEncSearch.cpp | 5 ++-
41596 source/common/IntraPred.cpp | 22 ++++++++++-------
41597 source/common/primitives.h | 2 +- source/common/vec/intrapred.inc |
41598 39 +++++++++++++++++------------- source/test/intrapredharness.cpp |
41599 41 +++++++++++++++++++------------- source/test/intrapredharness.h |
41600 2 +- 6 files changed, 64 insertions(+), 47 deletions(-)
41603 2013-06-20 Mandar Gurav <Mandar Gurav>
41605 * source/common/pixel.cpp, source/test/testbench.cpp:
41606 primitives: some macro implementation to improve readabilty of code.
41609 2013-06-20 Steve Borho <steve@borho.org>
41611 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel.h:
41612 asm: use more generic 64bit build define
41615 * source/common/x86/asm-primitives.cpp:
41616 asm: prune trailing white-space
41619 2013-06-20 Mandar Gurav <Mandar Gurav>
41621 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
41622 source/common/x86/pixel.h:
41623 primitives: asm: satd: fix for 32 bit issue
41626 2013-06-20 Deepthi <Deepthi>
41631 * source/common/common.cpp:
41632 Print rdo if enabled, no-rdo if disabled
41635 2013-06-20 Steve Borho <steve@borho.org>
41637 * source/Lib/TLibEncoder/TEncGOP.cpp:
41638 TEncGOP: simplify POC search
41641 * source/Lib/TLibEncoder/TEncGOP.cpp:
41642 TEncGOP: remove unused variable
41645 * source/Lib/TLibEncoder/TEncGOP.cpp,
41646 source/Lib/TLibEncoder/TEncGOP.h,
41647 source/Lib/TLibEncoder/TEncTop.cpp,
41648 source/Lib/TLibEncoder/TEncTop.h:
41649 TEncGOP: move all picture management to TEncGOP
41653 x265: do not ask for recon pictures if no output file was requested
41656 * source/encoder/encoder.cpp:
41657 encoder: consider output NALs even if iNumEncoded is zero
41660 2013-06-19 Steve Borho <steve@borho.org>
41662 * source/Lib/TLibEncoder/TEncGOP.cpp,
41663 source/Lib/TLibEncoder/TEncGOP.h,
41664 source/Lib/TLibEncoder/TEncTop.cpp,
41665 source/Lib/TLibEncoder/TEncTop.h:
41666 TEncGOP: move frame list from TEncTOP to TEncGOP
41669 * source/Lib/TLibEncoder/TEncGOP.cpp,
41670 source/Lib/TLibEncoder/TEncGOP.h,
41671 source/Lib/TLibEncoder/TEncTop.cpp,
41672 source/Lib/TLibEncoder/TEncTop.h, source/encoder/wavefront.cpp,
41673 source/encoder/wavefront.h:
41674 TEncGOP: move SPS, PPS to TEncGOP
41676 These structures are modified by compressGOP and thus cannot be
41677 encoder singletons. The init functions are kept in TEncTOP since
41678 they are tightly coupled with TEncCfg and TEncTOP
41681 * source/Lib/TLibCommon/TComSlice.cpp,
41682 source/Lib/TLibCommon/TComSlice.h,
41683 source/Lib/TLibCommon/TComWeightPrediction.cpp,
41684 source/Lib/TLibEncoder/TEncCavlc.cpp,
41685 source/Lib/TLibEncoder/TEncTop.h:
41686 make a pile of get*() methods const
41689 * source/Lib/TLibEncoder/TEncCfg.h,
41690 source/Lib/TLibEncoder/TEncGOP.cpp,
41691 source/Lib/TLibEncoder/TEncGOP.h,
41692 source/Lib/TLibEncoder/TEncTop.cpp,
41693 source/Lib/TLibEncoder/TEncTop.h:
41694 TEncGOP: move getReferencePictureSetIdxForSOP and
41695 selectReferencePictureSet
41698 2013-06-19 Min Chen <chenm003@163.com>
41700 * source/common/vec/intrapred.inc:
41701 intrapred: correct HIGH_BIT_DEPTH fault
41702 --- source/common/vec/intrapred.inc | 2 +- 1 file changed, 1
41703 insertion(+), 1 deletion(-)
41706 2013-06-19 Steve Borho <steve@borho.org>
41708 * source/Lib/TLibEncoder/TEncGOP.cpp,
41709 source/Lib/TLibEncoder/TEncGOP.h,
41710 source/Lib/TLibEncoder/TEncTop.cpp,
41711 source/Lib/TLibEncoder/TEncTop.h, source/encoder/encoder.cpp,
41712 source/encoder/encoder.h:
41713 TEncGOP: directly return references to encoder's recon frames, do
41716 This is all prep-work for GOP threading, but it doesn't hurt to
41717 remove a frame copy from the main loop. Now if the user wants no
41718 recon frames there is no overhead associated in maintaining them.
41721 * source/encoder/encoder.cpp, source/encoder/encoder.h,
41722 source/x265.cpp, source/x265.h:
41723 x265: change public API slightly to allow batch reconstructed frame
41727 * source/Lib/TLibCommon/TComSlice.cpp:
41731 * source/Lib/TLibEncoder/TEncTop.cpp,
41732 source/Lib/TLibEncoder/TEncTop.h:
41733 TEncTop: return TComPic from xGetNewPicBuffer, don't use reference
41737 * source/Lib/TLibCommon/TComTrQuant.cpp,
41738 source/Lib/TLibCommon/TComTrQuant.h:
41739 Backed out changeset: 8af5a9eb198c
41741 This backs out the lambda change from Double to UInt64, but leaves
41742 the typo and other white-space fixes in place. This change ended up
41743 being a net performance loser. The double->UInt64 conversions in the
41744 middle of the tight loop were slower than the savings from using
41747 We need an effective way to perform the cost scaling using integer
41748 math in order to use integers throughout this function.
41751 * source/Lib/TLibCommon/TComTrQuant.cpp:
41752 TComTrQuant: reduce number of double<->int conversions
41755 * source/Lib/TLibCommon/TComTrQuant.cpp,
41756 source/Lib/TLibCommon/TComTrQuant.h:
41757 TComTrQuant: switch lambda from Double to UInt64 [CHANGES OUTPUTS]
41760 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/motion.h:
41761 motion: add bufSA8D() method, so sa8d and satd are both available
41764 2013-06-19 sumalatha <sumalatha>
41766 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
41767 source/encoder/compress.cpp:
41768 Included the merge mode for selecting the mode for xCompressInterCU
41771 2013-06-20 ShinYee Chung <shinyee@multicorewareinc.com>
41773 * source/common/vec/intrapred.inc:
41774 intrapred: Fix unused variables.
41776 error: statement has no effect [-Werror=unused-value]
41779 2013-06-19 Steve Borho <steve@borho.org>
41781 * source/common/common.cpp:
41782 common: move RDO settings together
41785 * source/common/common.cpp:
41786 common: output logs to stderr consistently
41789 2013-06-20 ShinYee Chung <shinyee@multicorewareinc.com>
41791 * source/Lib/TLibEncoder/TEncSearch.cpp:
41792 TEncSearch: Fix compile error due to char array subscript.
41794 Sample compile errors in Linux64/GCC4.8.1:
41796 $HEVC/source/Lib/TLibEncoder/TEncSearch.cpp:2134:75: error: array
41797 subscript has type ‘char’ [-Werror=char-subscripts] x265::pixelcmp
41798 sa8d = x265::primitives.sa8d[g_aucConvertToBit[uiWidth]]; ^
41799 $HEVC/source/Lib/TLibEncoder/TEncSearch.cpp: In member function
41800 ‘Void TEncSearch::estIntraPredQT(TComDataCU*, TComYuv*, TComYuv*,
41801 TShortYUV*, TComYuv*, UInt&, Bool)’:
41802 $HEVC/source/Lib/TLibEncoder/TEncSearch.cpp:2206:79: error: array
41803 subscript has type ‘char’ [-Werror=char-subscripts] x265::pixelcmp
41804 sa8d = x265::primitives.sa8d[g_aucConvertToBit[uiWidth]]; ^
41807 * source/common/IntraPred.cpp:
41808 intrapred: Fix unused global variable.
41810 Compile error in Linux64/GCC4.8.1:
41812 $HEVC/source/common/IntraPred.cpp:252:15: error:
41813 ‘{anonymous}::g_aucIntraFilterType’ defined but not used [-Werror
41814 =unused-variable] unsigned char g_aucIntraFilterType[][35] = { ^
41817 2013-06-19 ShinYee Chung <shinyee@multicorewareinc.com>
41819 * source/Lib/TLibCommon/TComPrediction.cpp:
41820 TComPrediction: Fix reordered initialization list.
41822 Sample compile errors in Linux64/GCC4.8.1:
41824 $HEVC/source/Lib/TLibCommon/TComPrediction.h: In constructor
41825 ‘TComPrediction::TComPrediction()’:
41826 $HEVC/source/Lib/TLibCommon/TComPrediction.h:80:12: error:
41827 ‘TComPrediction::m_iLumaRecStride’ will be initialized after
41828 [-Werror=reorder] Int m_iLumaRecStride; ///< stride of
41829 #m_pLumaRecBuffer array ^
41830 $HEVC/source/Lib/TLibCommon/TComPrediction.h:79:12: error: ‘Pel*
41831 TComPrediction::m_pLumaRecBuffer’ [-Werror=reorder] Pel*
41832 m_pLumaRecBuffer; ///< array for downsampled reconstructed luma
41833 sample ^ $HEVC/source/Lib/TLibCommon/TComPrediction.cpp:60:1: error:
41834 when initialized here [-Werror=reorder]
41835 TComPrediction::TComPrediction() ^ In file included from
41836 $HEVC/source/Lib/TLibCommon/TComPrediction.cpp:39:0:
41837 $HEVC/source/Lib/TLibCommon/TComPrediction.h:79:12: error:
41838 ‘TComPrediction::m_pLumaRecBuffer’ will be initialized after
41839 [-Werror=reorder] Pel* m_pLumaRecBuffer; ///< array for downsampled
41840 reconstructed luma sample ^
41841 $HEVC/source/Lib/TLibCommon/TComPrediction.h:62:15: error: ‘Pel*
41842 TComPrediction::m_piPredBuf’ [-Werror=reorder] Pel* m_piPredBuf; ^
41843 $HEVC/source/Lib/TLibCommon/TComPrediction.cpp:60:1: error: when
41844 initialized here [-Werror=reorder] TComPrediction::TComPrediction()
41848 * source/common/IntraPred.cpp, source/common/vec/intrapred.inc:
41849 intrapred: Fix unused variables.
41851 Sample compile errors in Linux64/GCC 4.8.1:
41853 $HEVC/source/common/vec/intrapred.inc:4677:13: error: statement has
41854 no effect [-Werror=unused-value] (pLeft1); ^
41855 $HEVC/source/common/vec/intrapred.inc:4678:14: error: statement has
41856 no effect [-Werror=unused-value] (pAbove1); ^
41859 2013-06-19 Min Chen <chenm003@163.com>
41861 * source/Lib/TLibEncoder/TEncSearch.cpp,
41862 source/common/vec/intrapred.inc:
41863 inrapred: generate all of 33 IntraAngle-4x4 modes once
41866 2013-06-19 Mandar Gurav <Mandar Gurav>
41868 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
41869 source/common/x86/pixel.h:
41870 primitives: asm: update: implementation of satd(sse2)
41873 2013-06-18 Mandar Gurav <Mandar Gurav>
41875 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
41876 source/common/x86/pixel.h:
41877 primitives: asm: implementation of satd_16x12(sse2)
41880 2013-06-19 Steve Borho <steve@borho.org>
41882 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp,
41883 source/common/vec/intrapred.inc, source/encoder/motion.cpp:
41887 2013-06-18 Steve Borho <steve@borho.org>
41889 * source/Lib/TLibCommon/TComTrQuant.cpp,
41890 source/Lib/TLibCommon/TComTrQuant.h:
41891 TComTrQuant: remove wrong comments, cleanup funcdefs, move inlines
41895 2013-06-19 Deepthi <Deepthi>
41897 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
41898 Cleanuo: Removing swapCU
41901 * source/Lib/TLibCommon/TComDataCU.cpp,
41902 source/Lib/TLibCommon/TComDataCU.h:
41903 Cleanup: Removing copyCU
41906 * source/CMakeLists.txt:
41907 Removing FMD from cmake options.
41910 * source/Lib/TLibCommon/TComDataCU.cpp,
41911 source/Lib/TLibCommon/TComDataCU.h,
41912 source/Lib/TLibEncoder/TEncCu.cpp,
41913 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp:
41914 Replacing all FMD macros with cfg file option
41917 * source/encoder/encoder.cpp:
41918 Set cfg flag to enableRDO CL option.
41921 * source/Lib/TLibEncoder/TEncCfg.h:
41922 Adding rdo to cfg structure
41925 * source/common/common.cpp, source/x265.h, source/x265opts.h:
41926 Add rdo/no-rdo to command line interface
41929 2013-06-18 Steve Borho <steve@borho.org>
41931 * source/Lib/TLibCommon/TComRdCost.h:
41932 TComRdCost: move getCost closer to calcRdSADCost, to show how they
41936 * source/Lib/TLibCommon/TComRdCost.cpp,
41937 source/Lib/TLibCommon/TComRdCost.h:
41938 TComRdCost: remove unused calcHAD() method
41941 * source/Lib/TLibCommon/TComRdCost.cpp:
41942 TComRdCost: fix a typo in a comment
41945 * source/Lib/TLibCommon/TComRdCost.cpp,
41946 source/Lib/TLibCommon/TComRdCost.h:
41947 TComRdCost: remove unused overload of setDistParam
41950 * source/Lib/TLibCommon/TComRdCost.cpp,
41951 source/Lib/TLibCommon/TComRdCost.h:
41952 TComRdCost: remove unused overload of setDistParam
41955 * source/encoder/motion.cpp, source/encoder/motion.h:
41956 motion: move bufSATD back into motion.h and declare both inline
41959 * source/common/pixel.cpp, source/common/primitives.h,
41960 source/common/x86/asm-primitives.cpp, source/encoder/motion.cpp,
41961 source/encoder/motion.h, source/test/pixelharness.cpp:
41962 pixel: add sa8d_inter primitives to match TComRdCost::calcHAD()
41964 Now we can pick between sa8d and satd at runtime via a pointer
41968 * source/Lib/TLibEncoder/TEncSearch.cpp:
41969 TEncSearch: use motion.bufSAD instead of m_pcRdCost DistParam
41972 * source/encoder/motion.cpp, source/encoder/motion.h:
41973 motion: make bufSATD function exactly like TComRdCost::calcHAD()
41976 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp,
41977 source/common/primitives.h, source/common/x86/asm-primitives.cpp,
41978 source/test/pixelharness.cpp:
41979 primitives: collect sa8d primitives into blocksize array
41982 * source/common/primitives.h:
41983 primitives: fix two wrong comments
41986 * source/encoder/motion.h:
41987 motion: add bufSATD method
41990 * source/Lib/TLibEncoder/TEncSearch.cpp:
41991 TEncSearch: remove extra indent level; nit
41994 * source/common/primitives.cpp:
41995 primitives: add rationale for disabling EMMS when ASM is disabled
41998 * source/common/vec/pixel.inc:
41999 pixel: cleanup Setup_Vec_PixelPrimitives, remove comments that add
42003 * source/common/pixel.cpp:
42004 pixel: round up to nearest half before shift, fixes --cpuid 1
42008 * source/encoder/bitcost.cpp:
42009 bitcost: use x265_emms() before calculating a row of MV costs, to be
42013 * source/common/x86/asm-primitives.cpp:
42014 asm-primitives: fix eoln
42017 * source/common/primitives.h, source/common/x86/asm-primitives.cpp:
42018 Backed out changeset: d9f7525c4adf
42021 * source/Lib/TLibEncoder/TEncSearch.cpp:
42022 TEncSearch: delay x265_emms() to RDO stage of intra analysis
42025 * source/Lib/TLibEncoder/TEncSearch.cpp:
42026 TEncSearch: use m_pcRdCost->calcRdSADCost() to avoid doubles in
42030 2013-06-18 chenm003 <chenm003@163.com unknown>
42032 * source/Lib/TLibCommon/TComPrediction.cpp,
42033 source/Lib/TLibCommon/TComPrediction.h,
42034 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/IntraPred.cpp,
42035 source/common/primitives.h, source/common/vec/intrapred.inc,
42036 source/test/intrapredharness.cpp, source/test/intrapredharness.h:
42037 intrapred: framework for generate 33 Angle modes once
42038 --- source/Lib/TLibCommon/TComPrediction.cpp | 5 +-
42039 source/Lib/TLibCommon/TComPrediction.h | 1 +
42040 source/Lib/TLibEncoder/TEncSearch.cpp | 65 +-
42041 source/common/IntraPred.cpp | 569 +- source/common/primitives.h | 2
42042 + source/common/vec/intrapred.inc | 9409
42043 +++++++++++++++--------------- source/test/intrapredharness.cpp | 72
42044 + source/test/intrapredharness.h | 4 + 8 files changed, 5179
42045 insertions(+), 4948 deletions(-)
42048 * source/common/primitives.h, source/test/intrapredharness.cpp,
42049 source/test/intrapredharness.h:
42050 intrapred: fix build error after simplify bLeft and bAbove
42051 --- source/common/primitives.h | 8 ++++----
42052 source/test/intrapredharness.cpp | 26 +++++++++-----------------
42053 source/test/intrapredharness.h | 4 ++-- 3 files changed, 15
42054 insertions(+), 23 deletions(-)
42057 * source/Lib/TLibEncoder/TEncSearch.cpp:
42058 intrapred: Split DC and Planar from Loop
42059 --- source/Lib/TLibEncoder/TEncSearch.cpp | 17 ++++++++++++++++- 1
42060 file changed, 16 insertions(+), 1 deletion(-)
42063 * source/Lib/TLibCommon/TComPattern.cpp,
42064 source/Lib/TLibCommon/TComPattern.h,
42065 source/Lib/TLibCommon/TComPrediction.cpp,
42066 source/Lib/TLibCommon/TComPrediction.h,
42067 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/IntraPred.cpp,
42068 source/common/primitives.h, source/common/vec/intrapred.inc:
42069 cleanup: remove bLeft and bAbove since HEVC have a reference sample
42070 pad, they are always True
42071 --- source/Lib/TLibCommon/TComPattern.cpp | 14 ++--
42072 source/Lib/TLibCommon/TComPattern.h | 10 +--
42073 source/Lib/TLibCommon/TComPrediction.cpp | 33 +++++----
42074 source/Lib/TLibCommon/TComPrediction.h | 4 +-
42075 source/Lib/TLibEncoder/TEncSearch.cpp | 29 +++-----
42076 source/common/IntraPred.cpp | 43 +++---------
42077 source/common/primitives.h | 4 +- source/common/vec/intrapred.inc |
42078 115 +++++++++++++++---------------- 8 files changed, 101
42079 insertions(+), 151 deletions(-)
42082 2013-06-18 chenm003 <chenm003@163.com Min Chen>
42084 * source/Lib/TLibEncoder/TEncSearch.cpp:
42085 intrapred: Split loop into Loop_Prediction and Loop_Decide
42086 --- source/Lib/TLibEncoder/TEncSearch.cpp | 12 ++++++++---- 1 file
42087 changed, 8 insertions(+), 4 deletions(-)
42090 2013-06-18 chenm003 <chenm003@163.com unknown>
42092 * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
42093 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
42094 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp:
42095 cleanup: unused code m_bUseNIF
42096 --- source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp | 36
42097 +------------------ source/Lib/TLibCommon/TComSampleAdaptiveOffset.h
42098 | 1 - .../Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp | 41
42099 +--------------------- 3 files changed, 2 insertions(+), 76
42103 2013-06-18 Steve Borho <steve@borho.org>
42105 * source/common/reference.cpp:
42109 2013-06-18 Deepthi Devaki <Deepthi Devaki>
42111 * source/common/reference.cpp, source/common/reference.h:
42115 * source/common/vec/ipfilter8.inc:
42116 Intrinsic implementation for SSE4 and higher for vertical filter
42119 2013-06-17 Steve Borho <steve@borho.org>
42121 * source/common/reference.cpp, source/common/reference.h:
42122 reference: use new multiplane primitives (changes outputs, likely
42126 2013-06-18 Deepthi Devaki <Deepthi Devaki>
42131 * source/common/vec/ipfilter8.inc:
42132 Partial intrinsic for vertical filter
42135 2013-06-18 https://mandarmcw <https://mandarmcw@bitbucket.org/mandarmcw/xhevc_mandar1>
42137 * source/common/reference.cpp:
42138 Fixed Build Errors(Type cast) for 16 bit
42141 2013-06-18 mahesh pittala <mahesh@multicorewareinc.com>
42143 * Merged multicoreware/xhevc into default
42146 * Merged multicoreware/xhevc into default
42149 2013-06-17 mahesh pittala <mahesh@multicorewareinc.com>
42151 * Merged multicoreware/xhevc into default
42154 * Merged multicoreware/xhevc into default
42157 * source/Lib/TLibEncoder/TEncAnalyze.cpp:
42158 Merged multicoreware/xhevc into default
42161 2013-06-15 mahesh pittala <mahesh@multicorewareinc.com>
42163 * Merged multicoreware/xhevc into default
42166 * Merged multicoreware/xhevc into default
42169 2013-06-14 mahesh pittala <mahesh@multicorewareinc.com>
42171 * Merged multicoreware/xhevc into default
42174 2013-06-18 Steve Borho <steve@borho.org>
42176 * source/common/reference.cpp:
42177 reference: extend Y=0 planes in worker function
42180 * source/common/reference.cpp, source/common/reference.h:
42181 reference: use new APIs
42184 2013-06-17 Steve Borho <steve@borho.org>
42186 * source/Lib/TLibCommon/TComSlice.cpp:
42187 TComSlice: fix debug builds (asserts)
42190 * source/Lib/TLibEncoder/TEncCfg.h,
42191 source/Lib/TLibEncoder/TEncGOP.cpp,
42192 source/Lib/TLibEncoder/TEncGOP.h,
42193 source/Lib/TLibEncoder/TEncSlice.cpp,
42194 source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/encoder.cpp:
42195 TEncCfg: remove deblocking filter metric code
42198 * source/Lib/TLibEncoder/TEncGOP.cpp,
42199 source/Lib/TLibEncoder/TEncGOP.h:
42200 TEncGOP: remove uiNumSlices
42203 * source/Lib/TLibCommon/TComSlice.cpp,
42204 source/Lib/TLibCommon/TComSlice.h,
42205 source/Lib/TLibEncoder/TEncGOP.cpp,
42206 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp:
42207 TComSlice: remove m_sliceIdx and access methods
42210 * source/Lib/TLibEncoder/TEncGOP.cpp,
42211 source/Lib/TLibEncoder/TEncGOP.h:
42212 TEncGOP: remove unused SEI var, nit cleanups
42215 * source/Lib/TLibEncoder/TEncGOP.cpp,
42216 source/Lib/TLibEncoder/TEncGOP.h:
42217 TEncGOP: SEIPresent variables can now be local variables
42220 * source/Lib/TLibEncoder/TEncGOP.h:
42221 TEncGOP: remove obsolete PROCESSING_STATE enum
42224 * source/Lib/TLibEncoder/TEncGOP.cpp,
42225 source/Lib/TLibEncoder/TEncGOP.h:
42226 TEncGOP: inline xResetNonNestedSEIPresentFlags() and
42227 xResetNestedSEIPresentFlags()
42230 * source/Lib/TLibEncoder/TEncGOP.cpp,
42231 source/Lib/TLibEncoder/TEncGOP.h:
42232 TEncGOP: inline xCreateLeadingSEIMessages
42235 * source/Lib/TLibEncoder/TEncGOP.cpp,
42236 source/Lib/TLibEncoder/TEncGOP.h:
42237 TEncGOP: m_iGopSize did not need to be a member variable
42240 * source/encoder/encoder.cpp:
42241 encoder: declare large integer constant to be unsigned to prevent
42245 * source/Lib/TLibEncoder/TEncGOP.h:
42246 TEncGOP: remove unnecessary includes of <list> and <stdlib.h>
42249 * source/Lib/TLibEncoder/TEncGOP.h:
42250 TEncGOP: remove uneecessary include of <vector>
42253 * source/Lib/TLibEncoder/TEncPic.h:
42257 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
42258 source/Lib/TLibEncoder/TEncPic.cpp,
42259 source/Lib/TLibEncoder/TEncPic.h,
42260 source/Lib/TLibEncoder/TEncTop.cpp:
42261 TComPic: remove unused m_numReorderPics
42264 * source/Lib/TLibCommon/TComPic.h:
42265 TComPic: move pointers to start of class definition
42268 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h:
42269 TComPic: remove unused m_SEIs
42271 This may get added again later with a more C friendly interface
42274 * source/Lib/TLibCommon/TComSlice.h:
42275 TComSlice: white-space cleanups
42278 * source/Lib/TLibCommon/TComBitStream.cpp,
42279 source/Lib/TLibCommon/TComBitStream.h:
42280 TComBitstream: remove decoder class TComInputBitstream
42283 * source/Lib/TLibCommon/TComPic.h:
42284 TComPic: remove obsolete include
42287 * source/Lib/TLibCommon/TComSlice.cpp,
42288 source/Lib/TLibCommon/TComSlice.h:
42289 TComSlice: fix misspelled member variable
42292 2013-06-16 ShinYee Chung <shinyee@multicorewareinc.com>
42294 * source/encoder/encoder.cpp:
42295 encoder: Fix compile warnings due to unhandled enumeration values in
42296 a switch statement.
42298 $HEVC/source/encoder/encoder.cpp: In member function ‘void
42299 x265::Encoder::determineLevelAndProfile(x265_param_t*)’:
42300 $HEVC/source/encoder/encoder.cpp:119:12: error: enumeration value
42301 ‘NONE’ not handled in switch [-Werror=switch] switch (m_level) ^
42302 $HEVC/source/encoder/encoder.cpp:119:12: error: enumeration value
42303 ‘LEVEL1’ not handled in switch [-Werror=switch]
42304 $HEVC/source/encoder/encoder.cpp:119:12: error: enumeration value
42305 ‘LEVEL2’ not handled in switch [-Werror=switch]
42306 $HEVC/source/encoder/encoder.cpp:119:12: error: enumeration value
42307 ‘LEVEL2_1’ not handled in switch [-Werror=switch]
42308 $HEVC/source/encoder/encoder.cpp:119:12: error: enumeration value
42309 ‘LEVEL3’ not handled in switch [-Werror=switch]
42310 $HEVC/source/encoder/encoder.cpp:119:12: error: enumeration value
42311 ‘LEVEL3_1’ not handled in switch [-Werror=switch] cc1plus: all
42312 warnings being treated as errors
42315 2013-06-17 ShinYee Chung <shinyee@multicorewareinc.com>
42317 * source/Lib/TLibEncoder/TEncGOP.cpp:
42318 gop: Fix compile warning due to shadow variables.
42320 error: shadowed declaration is here [-Werror=shadow]
42323 2013-06-17 Steve Borho <steve@borho.org>
42325 * source/Lib/TLibCommon/TComSlice.h:
42326 TComSlice: remove unreferenced checkColRefIdx
42329 * source/Lib/TLibCommon/TComDataCU.cpp,
42330 source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
42331 source/Lib/TLibCommon/TComPicSym.cpp,
42332 source/Lib/TLibCommon/TComPicSym.h,
42333 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
42334 source/Lib/TLibCommon/TComSlice.cpp,
42335 source/Lib/TLibEncoder/TEncCu.cpp,
42336 source/Lib/TLibEncoder/TEncGOP.cpp,
42337 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
42338 source/Lib/TLibEncoder/TEncSearch.cpp,
42339 source/Lib/TLibEncoder/TEncSlice.cpp,
42340 source/Lib/TLibEncoder/TEncTop.cpp,
42341 source/Lib/TLibEncoder/WeightPredAnalysis.cpp,
42342 source/encoder/compress.cpp:
42343 TComDataCU: remove TComSlice array of pointers; only one slice
42346 * source/Lib/TLibCommon/TComDataCU.cpp,
42347 source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
42348 source/Lib/TLibCommon/TComSlice.cpp,
42349 source/Lib/TLibEncoder/TEncCu.cpp,
42350 source/Lib/TLibEncoder/TEncGOP.cpp,
42351 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/compress.cpp:
42352 TComPic: remove m_uiCurrSliceIdx (there can be only one)
42355 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h:
42356 TComPic: give the orig and recon pointers real names
42359 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h:
42360 TComPic: rename m_apcPicSym to m_pcPicSym, there is no array
42363 * source/Lib/TLibCommon/TComPic.cpp:
42364 TComPic: further simplify boundary detection
42367 * source/Lib/TLibCommon/TComDataCU.cpp,
42368 source/Lib/TLibCommon/TComDataCU.h,
42369 source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h:
42370 TComPic, TComDataCU: remove m_pSliceSUMap
42373 * source/Lib/TLibCommon/TComPic.cpp:
42374 TComPic: pre-allocate vSliceCUDataLink
42377 * source/Lib/TLibCommon/TComPic.h:
42381 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h:
42382 TComPic: m_vSliceCUDataLink did not need to be a member variable
42385 * source/test/mbdstharness.cpp:
42386 mbdstharness: fix compile with DEBUG
42389 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h:
42390 TComPic: m_sliceGranularityForNDBFilter did not need to be a member
42394 * source/Lib/TLibCommon/TComPic.cpp,
42395 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp:
42399 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
42400 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp:
42401 TComPic: remove temp YUV image for tile/slice boundary filtering
42404 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h:
42405 TComPic: remove more multi-slice cruft
42408 * source/Lib/TLibEncoder/TEncSlice.cpp,
42409 source/Lib/TLibEncoder/TEncSlice.h:
42410 TEncSlice: do not pass TComPic as pointer reference to encodeSlice
42413 * source/Lib/TLibEncoder/TEncSlice.cpp,
42414 source/Lib/TLibEncoder/TEncSlice.h:
42415 TEncSlice: TComPic argument to compressSlice is not a reference
42418 * source/Lib/TLibEncoder/TEncSlice.cpp,
42419 source/Lib/TLibEncoder/TEncSlice.h:
42423 * source/Lib/TLibEncoder/TEncSlice.cpp,
42424 source/Lib/TLibEncoder/TEncSlice.h:
42425 TEncSlice: remove unused m_pcPicYuvPred and m_pcPicYuvResi
42428 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
42429 source/Lib/TLibEncoder/TEncSlice.cpp:
42430 TComPic: remove unused m_pcPicYuvPred
42433 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
42434 source/Lib/TLibEncoder/TEncSlice.cpp:
42435 TComPic: remove unused m_pcPicYuvResi
42437 I believe we use TShortYUV internally for this now
42440 * source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicYuv.h:
42444 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
42445 source/Lib/TLibEncoder/TEncGOP.cpp,
42446 source/Lib/TLibEncoder/TEncTop.cpp:
42447 TComPic: remove unused m_bReconstructed member
42450 * source/Lib/TLibEncoder/TEncTop.cpp:
42451 TEncTop: remove extra assignment of m_iMaxRefPicNum, cleanup
42454 * source/common/ipfilter.cpp, source/common/primitives.h:
42458 2013-06-17 Deepthi Devaki <Deepthi Devaki>
42463 * source/common/ipfilter.cpp, source/common/primitives.h,
42464 source/common/vec/ipfilter8.inc, source/test/ipfilterharness.cpp:
42465 Restructured Horizontal/Vertical filters, added support for
42466 width!=16n in horizontal filter
42469 * source/Lib/TLibEncoder/TEncAnalyze.cpp:
42473 * source/common/vec/intrapred.inc:
42474 Used unsafe compress to improve performance
42477 * source/common/vec/ipfilter8.inc:
42478 Used saturated compress to eliminate min()
42481 2013-06-17 Steve Borho <steve@borho.org>
42483 * source/Lib/TLibCommon/TComPrediction.cpp:
42484 TComPrediction: white-space nits
42487 * source/Lib/TLibCommon/TComPrediction.cpp:
42488 TComPrediction: fix eoln
42491 * source/Lib/TLibCommon/TComInterpolationFilter.h,
42492 source/Lib/TLibCommon/TComPrediction.cpp,
42493 source/Lib/TLibCommon/TComPrediction.h,
42494 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/ipfilter.cpp,
42495 source/common/reference.cpp:
42496 remove redundant copy of subpel filter coefficients
42499 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
42500 source/Lib/TLibCommon/TComPicSym.cpp,
42501 source/Lib/TLibCommon/TComPicSym.h,
42502 source/Lib/TLibCommon/TComWeightPrediction.h:
42503 HM fixes: remove various unused member variables
42507 x265: improve x265 -V output some more
42511 x265: fix and improve output of x265 -V
42514 * source/common/vec/dct.inc:
42518 2013-06-17 Min Chen <chenm003@163.com>
42520 * source/Lib/TLibCommon/TComTrQuant.cpp:
42521 inline xIT() into invtransformNxN()
42522 --- source/Lib/TLibCommon/TComTrQuant.cpp | 6 +++++- 1 files changed,
42523 5 insertions(+), 1 deletions(-)
42526 * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/dct.cpp,
42527 source/common/primitives.h, source/common/vec/dct.inc,
42528 source/test/mbdstharness.cpp, source/test/mbdstharness.h:
42529 [review] reduce memory copy in xIT()
42530 --- source/Lib/TLibCommon/TComTrQuant.cpp | 6 +-
42531 source/common/dct.cpp | 73 ++++- source/common/primitives.h | 2 +-
42532 source/common/vec/dct.inc | 639 +++++++++++++++++++++------------
42533 source/test/mbdstharness.cpp | 11 +- source/test/mbdstharness.h | 1
42534 + 6 files changed, 485 insertions(+), 247 deletions(-)
42537 * source/common/vec/dct.inc:
42538 cleanup: remove unused IDCT table
42539 --- source/common/vec/dct.inc | 208
42540 --------------------------------------------- 1 files changed, 0
42541 insertions(+), 208 deletions(-)
42544 * source/test/mbdstharness.cpp:
42545 cleanup: new IDCT don't need backup buffer
42546 --- source/test/mbdstharness.cpp | 15 ++------------- 1 files
42547 changed, 2 insertions(+), 13 deletions(-)
42550 * source/common/vec/dct.inc:
42551 new IDCT32x32 from project Chinese University version of x265
42552 --- source/common/vec/dct.inc | 2069
42553 ++++++++++++++++----------------------------- 1 files changed, 732
42554 insertions(+), 1337 deletions(-)
42557 * source/common/vec/dct.inc:
42558 new IDCT16x16 from project Chinese University version of x265
42559 --- source/common/vec/dct.inc | 9290
42560 ++++++++++++++++++++++----------------------- 1 files changed, 4571
42561 insertions(+), 4719 deletions(-)
42564 * source/Lib/TLibCommon/TComTrQuant.cpp,
42565 source/Lib/TLibCommon/TComTrQuant.h:
42566 inline xT() into transformNxN()
42567 --- source/Lib/TLibCommon/TComTrQuant.cpp | 27
42568 +++++++-------------------- source/Lib/TLibCommon/TComTrQuant.h | 3
42569 --- 2 files changed, 7 insertions(+), 23 deletions(-)
42572 * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/dct.cpp,
42573 source/common/primitives.h, source/common/vec/dct.inc,
42574 source/test/mbdstharness.cpp, source/test/mbdstharness.h:
42575 [review] reduce memory copy in xT()
42576 --- source/Lib/TLibCommon/TComTrQuant.cpp | 11 +-
42577 source/common/dct.cpp | 175 +++++++++++++++++-------
42578 source/common/primitives.h | 11 ++- source/common/vec/dct.inc | 240
42579 +++++++++++++-------------------- source/test/mbdstharness.cpp | 60
42580 ++++++++- source/test/mbdstharness.h | 2 + 6 files changed, 294
42581 insertions(+), 205 deletions(-)
42584 2013-06-17 Deepthi <Deepthi>
42586 * source/encoder/compress.cpp:
42587 Early Detection skip mode removed from FMD
42590 * source/Lib/TLibEncoder/TEncAnalyze.cpp, source/encoder/compress.cpp:
42594 2013-06-15 Deepthi <Deepthi>
42596 * source/Lib/TLibEncoder/TEncCu.cpp,
42597 source/Lib/TLibEncoder/TEncSearch.cpp:
42598 Removing irrelevant FMD optimizations
42601 * source/encoder/compress.cpp:
42605 2013-06-16 Steve Borho <steve@borho.org>
42608 Move tag LASTKNOWNGOOD
42611 * source/test/intrapredharness.cpp, source/test/intrapredharness.h,
42612 source/test/mbdstharness.cpp, source/test/mbdstharness.h:
42613 testbench: only perform 0xCDCDCDCDCDCD memsets for debug, runs much
42616 It should only be necessary to do this when you are not sure the C
42617 primitive is correct. Once the C primitive is correct, it should
42618 never be required to initialize the output buffers in order to find
42622 * source/test/mbdstharness.cpp:
42623 mbdstharness: remove unused BufferflyConf_names
42626 * source/encoder/compress.cpp:
42630 * source/common/vec/dct.inc:
42631 dct: remove VC9 x64 warning, the affected routines are all gone
42634 * source/common/vec/dct.inc:
42635 dct: remove unused primitives, reorder for clarity
42638 * source/common/dct.cpp, source/common/primitives.h,
42639 source/common/vec/dct.inc, source/test/mbdstharness.cpp,
42640 source/test/mbdstharness.h:
42641 remove partial butterfly and inversedst primitives
42644 2013-06-16 Min Chen <chenm003@163.com>
42646 * source/Lib/TLibCommon/TComTrQuant.cpp:
42647 [review] merge buffer convert into DCT* module
42648 --- source/Lib/TLibCommon/TComTrQuant.cpp | 8 +------- 1 files
42649 changed, 1 insertions(+), 7 deletions(-)
42652 * source/common/vec/dct.inc:
42653 support nSrcStride on DCT*
42654 --- source/common/vec/dct.inc | 417
42655 ++++++++++++++++++++++++--------------------- 1 files changed, 221
42656 insertions(+), 196 deletions(-)
42659 * source/Lib/TLibCommon/TComTrQuant.cpp:
42660 Merge xTrMxN into TComTrQuant::xT
42661 --- source/Lib/TLibCommon/TComTrQuant.cpp | 21 +++++----------------
42662 1 files changed, 5 insertions(+), 16 deletions(-)
42665 * source/Lib/TLibCommon/TComTrQuant.cpp:
42666 optimize xTrMxN by function pointer array
42667 --- source/Lib/TLibCommon/TComTrQuant.cpp | 30
42668 ++---------------------------- 1 files changed, 2 insertions(+), 28
42672 * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/dct.cpp,
42673 source/common/vec/dct.inc:
42674 [review] code for DST4x4
42675 --- source/Lib/TLibCommon/TComTrQuant.cpp | 7 +--
42676 source/common/dct.cpp | 20 ++++++++ source/common/vec/dct.inc | 87
42677 +++++++++++++++++++++++++++++++++ 3 files changed, 110
42678 insertions(+), 4 deletions(-)
42681 * source/Lib/TLibEncoder/TEncTop.cpp:
42682 miss <math.h> for sqrt()
42683 --- source/Lib/TLibEncoder/TEncTop.cpp | 1 + 1 files changed, 1
42684 insertions(+), 0 deletions(-)
42687 * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/dct.cpp,
42688 source/common/vec/dct.inc, source/test/mbdstharness.cpp:
42690 --- source/Lib/TLibCommon/TComTrQuant.cpp | 3 +-
42691 source/common/dct.cpp | 11 + source/common/vec/dct.inc | 669
42692 +++++++++++++++++++++++++++++++++ source/test/mbdstharness.cpp | 2
42693 +- 4 files changed, 682 insertions(+), 3 deletions(-)
42696 * source/common/vec/dct.inc:
42697 simplify table name
42698 --- source/common/vec/dct.inc | 384
42699 ++++++++++++++++++++++---------------------- 1 files changed, 192
42700 insertions(+), 192 deletions(-)
42703 * source/common/vec/dct.inc:
42704 [review] share some table with DCT8x8
42705 --- source/common/vec/dct.inc | 230
42706 +++++++++++++++++++++----------------------- 1 files changed, 110
42707 insertions(+), 120 deletions(-)
42710 2013-06-15 Steve Borho <steve@borho.org>
42712 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
42713 source/Lib/TLibEncoder/TEncGOP.cpp,
42714 source/Lib/TLibEncoder/TEncGOP.h:
42715 TEncGOP: remove m_storedStartCUAddrForEncodingSlice std::vector
42718 * source/Lib/TLibEncoder/TEncAnalyze.cpp,
42719 source/Lib/TLibEncoder/TEncAnalyze.h,
42720 source/Lib/TLibEncoder/TEncGOP.cpp,
42721 source/Lib/TLibEncoder/TEncGOP.h,
42722 source/Lib/TLibEncoder/TEncTop.cpp,
42723 source/Lib/TLibEncoder/TEncTop.h:
42724 TEncGOP: Move statistics structures to TEncTop, protect with a lock
42727 * source/Lib/TLibEncoder/TEncGOP.cpp:
42728 TEncGOP: use array delete for array new pointers
42731 * source/Lib/TLibEncoder/TEncGOP.cpp:
42732 TEncGOP: simplifications
42735 * source/Lib/TLibEncoder/TEncGOP.cpp:
42736 TEncGOP: single tile simplifications
42739 * source/Lib/TLibEncoder/TEncGOP.cpp:
42740 TEncGOP: more single-slice simplifications
42743 * source/Lib/TLibEncoder/TEncGOP.cpp:
42744 TEncGOP: remove undefined SAO_RDO
42747 * source/Lib/TLibEncoder/TEncGOP.cpp:
42748 TEncGOP: remove dead code
42751 * source/Lib/TLibEncoder/TEncGOP.cpp:
42752 TEncGOP: clean-up some multi-slice constructs
42755 * source/Lib/TLibEncoder/TEncGOP.cpp,
42756 source/Lib/TLibEncoder/TEncTop.cpp:
42757 TEncTOP: move RC-GOP operations within compressGOP()
42760 * source/Lib/TLibEncoder/TEncGOP.cpp,
42761 source/Lib/TLibEncoder/TEncGOP.h:
42762 TEncGOP: use iPOCLast==0 instead of m_bSeqFirst
42765 * source/Lib/TLibEncoder/TEncGOP.cpp:
42766 TEncGOP: cleanup initialization
42769 * source/Lib/TLibEncoder/TEncGOP.h:
42770 TEncGOP: cleanups, make internal methods protected
42773 * source/Lib/TLibEncoder/TEncGOP.cpp,
42774 source/Lib/TLibEncoder/TEncGOP.h:
42775 TEncGOP: remove member pointer to encoder singleton picture list
42777 The picture list is provided to compressGOP() method
42780 * source/Lib/TLibEncoder/TEncGOP.h:
42781 TEncGOP: remove unused getListPic() method
42784 * source/Lib/TLibEncoder/TEncSlice.cpp,
42785 source/Lib/TLibEncoder/TEncSlice.h:
42786 TEncSlice: remove member pointer to global picture list
42789 * source/Lib/TLibEncoder/TEncGOP.cpp,
42790 source/Lib/TLibEncoder/TEncSlice.cpp,
42791 source/Lib/TLibEncoder/TEncSlice.h,
42792 source/Lib/TLibEncoder/TEncTop.h:
42793 TEncSlice: remove GOP encoder member variable
42795 Get rid of another assumption about singleton objects
42798 2013-06-12 Min Chen <chenm003@163.com>
42800 * source/common/primitives.h, source/common/vec/pixel.inc:
42801 primitives: add a 16bit copy with left shift primitive
42804 2013-06-15 Steve Borho <steve@borho.org>
42806 * source/test/pixelharness.cpp:
42807 pixelharness: fixup indexing of block primitives
42810 2013-06-15 Deepthi <Deepthi>
42812 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
42813 source/encoder/compress.cpp:
42814 Merge; FAST_MODE_DECISION fully functional with inter.
42817 * source/Lib/TLibCommon/TComDataCU.cpp,
42818 source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp:
42822 * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp:
42823 Null rpcBestCU. Memory leaks resolved.
42826 * source/encoder/compress.cpp:
42827 More prep to null BestCU
42830 * source/encoder/compress.cpp:
42831 Prepare to Null split level BestCU
42834 * source/encoder/compress.cpp:
42835 Prepare to null rpcBestCU
42838 * source/encoder/compress.cpp:
42842 * source/Lib/TLibCommon/TComDataCU.cpp, source/encoder/compress.cpp:
42843 Cleanup; fix split bugs
42846 * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp:
42847 Rolling back; inter mode works, split has bugs
42850 2013-06-14 Steve Borho <steve@borho.org>
42852 * source/encoder/encoder.cpp:
42853 x265: better handling of level thresholds
42856 * source/encoder/encoder.cpp, source/encoder/encoder.h:
42857 x265: detect and set the profile and level
42860 * source/Lib/TLibEncoder/TEncSearch.cpp:
42861 gcc: integer array subscripts
42864 2013-06-14 Min Chen <chenm003@163.com>
42866 * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/dct.cpp,
42867 source/common/vec/dct.inc, source/test/mbdstharness.cpp:
42869 --- source/Lib/TLibCommon/TComTrQuant.cpp | 3 +-
42870 source/common/dct.cpp | 11 + source/common/vec/dct.inc | 482
42871 +++++++++++++++++++++++++++++++++ source/test/mbdstharness.cpp | 2
42872 +- 4 files changed, 495 insertions(+), 3 deletions(-)
42875 * source/common/vec/dct.inc:
42876 cleanup MAKE_ODD outside xDCT8
42877 --- source/common/vec/dct.inc | 1 + 1 files changed, 1 insertions(+),
42881 2013-06-14 Steve Borho <steve@borho.org>
42883 * source/x265opts.h:
42884 x265: nit in CLI help
42887 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/primitives.h:
42888 pixel: use width bit size to index residual and recon primitives
42891 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp,
42892 source/common/primitives.h, source/common/vec/pixel.inc,
42893 source/test/pixelharness.cpp, source/test/pixelharness.h:
42894 pixel: rename residual/reconstruction primitves
42897 * source/Lib/TLibEncoder/TEncSearch.cpp:
42898 Merged in deepthidevaki/xhevc_deepthid (pull request #199)
42900 Added vector Filter Horizontal Multiplane, and support in testbench.
42903 2013-06-14 Deepthi Devaki <Deepthi Devaki>
42905 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp,
42906 source/common/primitives.h, source/common/vec/pixel.inc,
42907 source/common/vec/pixel8.inc, source/test/pixelharness.cpp:
42908 GetResidual + calcRecon changed to use function pointers
42911 * source/common/primitives.h, source/test/ipfilterharness.cpp:
42915 * source/common/ipfilter.cpp, source/common/primitives.h,
42916 source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc,
42917 source/test/ipfilterharness.cpp, source/test/ipfilterharness.h:
42918 Added vector Filter Horizontal Multiplane, and support in testbench.
42921 2013-06-14 Steve Borho <steve@borho.org>
42923 * Merged in maheshpittala/xhevc_mahesh (pull request #198)
42925 Fixed Build errors(Type cast) in 16 bit
42928 2013-06-14 https://mandarmcw <https://mandarmcw@bitbucket.org/mandarmcw/xhevc_mandar1>
42930 * source/Lib/TLibCommon/TComPicYuv.h,
42931 source/Lib/TLibEncoder/TEncGOP.cpp,
42932 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/reference.cpp:
42933 Fixed Build errors(Type cast) in 16 bit
42936 2013-06-14 mahesh pittala <mahesh@multicorewareinc.com>
42938 * Merged multicoreware/xhevc into default
42941 * Merged multicoreware/xhevc into default
42944 * Merged multicoreware/xhevc into default
42947 2013-06-12 mahesh pittala <mahesh@multicorewareinc.com>
42949 * Merged multicoreware/xhevc into default
42952 2013-06-13 mahesh pittala <mahesh@multicorewareinc.com>
42954 * source/tools/HM decoder/TAppDecoder.exe:
42955 Merged multicoreware/xhevc into default
42958 2013-06-12 mahesh pittala <mahesh@multicorewareinc.com>
42960 * Merged multicoreware/xhevc into default
42963 * Merged multicoreware/xhevc into default
42966 * Merged multicoreware/xhevc into default
42969 2013-06-11 mahesh pittala <mahesh@multicorewareinc.com>
42971 * Merged multicoreware/xhevc into default
42974 * source/common/macroblock.cpp, source/common/vec/macroblock.inc:
42975 Merged multicoreware/xhevc into default
42978 2013-06-10 mahesh pittala <mahesh@multicorewareinc.com>
42980 * Merged multicoreware/xhevc into default
42983 * Merged multicoreware/xhevc into default
42986 * Merged multicoreware/xhevc into default
42989 2013-06-07 mahesh pittala <mahesh@multicorewareinc.com>
42991 * Merged multicoreware/xhevc into default
42994 2013-06-05 mahesh pittala <mahesh@multicorewareinc.com>
42996 * Merged multicoreware/xhevc into default
42999 * Merged multicoreware/xhevc into default
43002 * Merged multicoreware/xhevc into default
43005 2013-06-04 mahesh pittala <mahesh@multicorewareinc.com>
43007 * Merged multicoreware/xhevc into default
43010 2013-06-03 mahesh pittala <mahesh@multicorewareinc.com>
43012 * Merged multicoreware/xhevc into default
43015 * Merged multicoreware/xhevc into default
43018 2013-06-14 Deepthi <Deepthi>
43020 * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp:
43024 * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp:
43025 Adding comments; cosmetic changes, removing unnecessary local vars
43028 * source/encoder/compress.cpp:
43029 Entropy related code removed
43032 * source/encoder/compress.cpp:
43033 Removing extraneous checks
43036 * source/encoder/compress.cpp:
43037 Copy sub-best-recon to current best recon
43040 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
43041 source/encoder/compress.cpp:
43042 BestCU is a reference pointer, while TempCU is just that; a
43043 temporary local pointer.
43046 * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp:
43047 To avoid memory leaks, pass in an empty pointer. rpcBestCU returns
43048 with the Best chosen CU.
43051 2013-06-13 Deepthi <Deepthi>
43053 * source/encoder/compress.cpp:
43054 Claridying assert checks
43057 * source/encoder/compress.cpp:
43058 Removing use of rpcTempCU for initializations
43061 2013-06-14 Steve Borho <steve@borho.org>
43063 * source/Lib/TLibCommon/TComSlice.cpp,
43064 source/Lib/TLibCommon/TComSlice.h,
43065 source/Lib/TLibEncoder/TEncCavlc.cpp,
43066 source/Lib/TLibEncoder/TEncGOP.cpp:
43067 HM bug fix: Improve the temporary fix for issue #1071 (Nonconforming
43068 RPS in CRA pictures)
43069 - generate proper CRA RPS at encoding stage rather than slice segment
43073 * source/Lib/TLibEncoder/TEncGOP.cpp:
43077 * source/Lib/TLibEncoder/TEncCu.cpp:
43081 * source/Lib/TLibCommon/TComTrQuant.cpp:
43082 HM fixes: "Clean up"
43085 * source/Lib/TLibCommon/TComPicYuv.h:
43086 TComPicYuv: fix 16bpp build
43089 * source/Lib/TLibCommon/TComSlice.cpp:
43090 HM cleanups: "Add assert() statements / clean up"
43093 2013-06-13 Steve Borho <steve@borho.org>
43095 * source/Lib/TLibEncoder/TEncGOP.cpp:
43096 HM bug fix: "Fix for #1072"
43099 * source/Lib/TLibCommon/TComSlice.h,
43100 source/Lib/TLibEncoder/TEncCavlc.cpp:
43101 HM bug fix: "Fix for #1078"
43104 * source/Lib/TLibEncoder/TEncCavlc.cpp:
43105 HM bug fix: "Fix for #1079"
43108 * source/test/ipfilterharness.cpp:
43109 ipfilterharness: add offsets for src buffer pointer
43112 * source/test/ipfilterharness.cpp:
43113 ipfilterharness: use alignedMalloc for short_buff
43116 * source/common/common.cpp, source/encoder/motion.cpp:
43117 motion: prevent over-large merange from causing inf loops
43120 * source/encoder/motion.cpp, source/encoder/motion.h:
43121 motion: move distance for-loop within StarPatternSearch (less call
43125 * source/Lib/TLibEncoder/TEncGOP.cpp,
43126 source/Lib/TLibEncoder/TEncGOP.h,
43127 source/Lib/TLibEncoder/TEncSlice.cpp,
43128 source/Lib/TLibEncoder/TEncSlice.h,
43129 source/Lib/TLibEncoder/TEncTop.cpp,
43130 source/Lib/TLibEncoder/TEncTop.h:
43131 TEncTop: move EncoderFrame instances from TEncTop to TEncGOP
43133 Each TEncGOP will have at least one frame encoder, for parallelism
43136 * source/Lib/TLibEncoder/TEncGOP.cpp,
43137 source/Lib/TLibEncoder/TEncGOP.h:
43138 TEncGOP: make m_iNumPicCoded a function local variable
43141 * source/Lib/TLibCommon/TComDataCU.cpp,
43142 source/Lib/TLibEncoder/TEncSearch.cpp:
43143 gcc: replace MAXUINT64 with MAX_INT64 from CommonDefs.h
43146 * source/Lib/TLibCommon/TComRdCost.cpp,
43147 source/Lib/TLibCommon/TComRdCost.h:
43148 TComRdCost: move setCbDistortionWeight() to cpp file, cleanup
43151 * source/encoder/motion.cpp, source/encoder/motion.h:
43152 motion: rename bufsad to fullsad
43155 * source/encoder/motion.cpp, source/encoder/motion.h:
43156 motion: move init_scales() to constructor, remove from setSourcePU
43159 * source/common/primitives.h:
43160 Merged in deepthidevaki/xhevc_deepthid (pull request #196)
43162 Modifications to vertical filter multiplane
43165 2013-06-13 Deepthi Devaki <Deepthi Devaki>
43167 * source/tools/HM decoder/TAppDecoder.exe:
43171 * source/common/vec/ipfilter8.inc, source/test/ipfilterharness.cpp:
43172 Modifications to vertical filter multiplane
43175 2013-06-13 Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
43177 * source/tools/HM decoder/TAppDecoder.exe:
43178 Merged multicoreware/xhevc into default
43181 2013-06-12 Deepthi Devaki <Deepthi Devaki>
43183 * source/common/vec/ipfilter.inc, source/common/vec/ipfilter8.inc:
43184 Added Vertical filter for multiplane (Vectorized assuming width is
43188 * source/VectorClass/vectori128.h, source/common/ipfilter.cpp,
43189 source/common/primitives.h, source/test/ipfilterharness.cpp,
43190 source/test/ipfilterharness.h:
43191 Testbench for Vertical IPFilter for multiplane
43194 2013-06-13 Steve Borho <steve@borho.org>
43196 * Merged in mandarmcw/xhevc_mandar_mahesh (pull request #197)
43198 primitives: sse2, ssse3, avx: Assembly calls for SSE_PP(SSD) for
43202 2013-06-13 Mandar Gurav <Mandar Gurav>
43204 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
43205 source/common/x86/pixel.h:
43206 primitives: sse2: Assembly calls for SSE_PP(SSD) for 8, 16, 24, 32,
43210 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
43211 source/common/x86/pixel.h:
43212 primitives: ssse3: Assembly calls for SSE_PP(SSD) for 8, 16, 24, 32,
43216 * source/common/x86/asm-primitives.cpp:
43217 primitives: Assembly calls for SSE_PP(SSD) for 24,48,64
43220 2013-06-13 Mandar Gurav <mandar@multicorewareinc.com>
43222 * Merged multicoreware/xhevc into default
43225 2013-06-13 Mandar Gurav <Mandar Gurav>
43227 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm,
43228 source/common/x86/pixel.h:
43229 primitives: Assembly calls for SSE_PP(SSD) for 32,16,8
43232 2013-06-13 Steve Borho <steve@borho.org>
43234 * source/Lib/TLibEncoder/TEncSearch.cpp,
43235 source/Lib/TLibEncoder/TEncSearch.h:
43236 TEncSearch: small improvements
43239 * source/Lib/TLibCommon/TComRdCost.h,
43240 source/Lib/TLibEncoder/TEncSearch.cpp:
43241 TComRdCost: remove unused m_mvPredictor (HM ME is using our bit-cost
43245 * source/Lib/TLibCommon/TComRdCost.h,
43246 source/Lib/TLibEncoder/TEncSearch.cpp:
43247 TComRdCost: use UInt to scale chroma costs instead of Double
43250 2013-06-13 sumalatha <sumalatha>
43252 * source/Lib/TLibCommon/TComDataCU.cpp,
43253 source/Lib/TLibCommon/TComDataCU.h,
43254 source/Lib/TLibCommon/TComRdCost.cpp,
43255 source/Lib/TLibCommon/TComRdCost.h,
43256 source/Lib/TLibEncoder/TEncCu.cpp,
43257 source/Lib/TLibEncoder/TEncSearch.cpp,
43258 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp:
43259 removed double from computing Cost
43262 2013-06-13 Min Chen <chenm003@163.com>
43264 * source/test/testbench.cpp:
43265 revert debug code commit by '[review] faster DCT4x4'
43266 --- source/test/testbench.cpp | 2 +- 1 files changed, 1
43267 insertions(+), 1 deletions(-)
43270 * source/common/vec/dct.inc:
43271 [review] fatser DCT8x8
43272 --- source/common/vec/dct.inc | 461
43273 ++++++++++++++++++++------------------------- 1 files changed, 200
43274 insertions(+), 261 deletions(-)
43277 * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/pixel.cpp,
43278 source/common/primitives.h, source/common/vec/pixel.inc:
43279 [review] merge row process into convert16to32_shl
43280 --- source/Lib/TLibCommon/TComTrQuant.cpp | 22 +---------------------
43281 source/common/pixel.cpp | 9 ++++++--- source/common/primitives.h | 2
43282 +- source/common/vec/pixel.inc | 27 +++++++++++++++------------ 4
43283 files changed, 23 insertions(+), 37 deletions(-)
43286 2013-06-13 Steve Borho <steve@borho.org>
43288 * source/Lib/TLibEncoder/TEncGOP.cpp:
43292 2013-06-13 Deepthi <Deepthi>
43294 * source/encoder/compress.cpp:
43295 Fixing Best CU bugs
43298 * source/tools/HM decoder/TAppDecoder.exe:
43302 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
43303 source/encoder/compress.cpp:
43304 First cut version of RDO-less mode decision: Only inter and rect
43308 * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp:
43309 Adding pred copy to ComputeCostInter
43315 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
43316 source/encoder/compress.cpp:
43317 Preparation for moving to RDO-less analysis.
43320 2013-06-12 Deepthi <Deepthi>
43322 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
43323 Prediction structures for each mode: inter, intra, rect and merge
43326 * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCu.cpp:
43327 Cleanup macro RDO_WITHOUT_DQP_BITS: always set.
43330 * source/Lib/TLibEncoder/TEncSearch.cpp:
43334 * source/encoder/compress.cpp:
43335 Inter mode only works in compress.cpp
43338 2013-06-11 Deepthi <Deepthi>
43340 * source/encoder/compress.cpp:
43341 Removing RDO without DQP
43344 * source/encoder/compress.cpp:
43345 Merge and Intra modes removed from Inter slices for now.
43348 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/macroblock.cpp,
43349 source/common/vec/macroblock.inc:
43353 2013-06-10 sumalatha <sumalatha>
43355 * source/Lib/TLibEncoder/TEncSearch.cpp,
43356 source/Lib/TLibEncoder/TEncSearch.h:
43357 Added a function to estimate the header bits
43360 2013-06-12 Steve Borho <steve@borho.org>
43362 * source/encoder/motion.cpp:
43363 motion: simplify setSourcePU
43366 * source/Lib/TLibEncoder/TEncGOP.cpp:
43370 * source/Lib/TLibEncoder/TEncGOP.cpp,
43371 source/Lib/TLibEncoder/TEncSlice.cpp,
43372 source/Lib/TLibEncoder/TEncSlice.h:
43373 TEncSlice: remove unused iNumPicRcvd argument to initEncSlice
43376 * source/Lib/TLibEncoder/TEncGOP.cpp,
43377 source/Lib/TLibEncoder/TEncSlice.cpp,
43378 source/Lib/TLibEncoder/TEncSlice.h:
43379 TEncSlice: pass EncoderFrame to TEncSlice methods, do not get from
43383 * source/Lib/TLibEncoder/TEncGOP.cpp,
43384 source/Lib/TLibEncoder/TEncSlice.cpp,
43385 source/Lib/TLibEncoder/TEncSlice.h:
43386 TEncSlice: refactor initEncSlice to return TComSlice, not pass as
43389 Make it more obvious pcSlice is the functions output
43392 * source/Lib/TLibEncoder/TEncGOP.cpp:
43393 TEncGOP: remove redundant setCurrSliceIdx() call
43396 * source/Lib/TLibEncoder/TEncGOP.cpp,
43397 source/Lib/TLibEncoder/TEncGOP.h:
43398 TEncGOP: inline xGetBuffer for clarity
43401 * source/Lib/TLibEncoder/TEncGOP.cpp,
43402 source/Lib/TLibEncoder/TEncGOP.h:
43403 TEncGOP: inline xInitGOP, which ignored most of its arguments
43406 * source/Lib/TLibCommon/TComSlice.h:
43410 * source/Lib/TLibEncoder/TEncGOP.cpp,
43411 source/Lib/TLibEncoder/TEncGOP.h:
43412 TEncGOP: remove two more unused variables
43415 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h:
43419 * source/Lib/TLibEncoder/TEncGOP.cpp:
43423 * source/Lib/TLibEncoder/TEncGOP.cpp:
43424 TEncGOP: cleanup refactor, no behavior change
43427 * source/Lib/TLibEncoder/TEncGOP.cpp,
43428 source/Lib/TLibEncoder/TEncGOP.h:
43429 TEncGOP: remove unused m_bFirst variable
43433 tweak tags, make older LASTKNOWNGOOD tag visible
43436 * source/tools/HM decoder/TAppDecoder.exe:
43437 Remove compiled TAppDecoder.exe
43439 It's not working on some platforms, and in general we don't want
43440 compiled binaries in the tree. Users should build their own, or we
43441 should have it available for download from Bitbucket or Egnyte.
43444 2013-06-12 Min Chen <chenm003@163.com>
43446 * source/common/vec/dct.inc:
43448 --- source/common/vec/dct.inc | 22 ---------------------- 1 files
43449 changed, 0 insertions(+), 22 deletions(-)
43452 * source/common/vec/dct.inc, source/test/testbench.cpp:
43453 [review] faster DCT4x4
43454 --- source/common/vec/dct.inc | 137
43455 ++++++++++++++++++++++-----------------------
43456 source/test/testbench.cpp | 2 +- 2 files changed, 68 insertions(+),
43460 2013-06-12 Steve Borho <steve@borho.org>
43462 * source/Lib/TLibEncoder/TEncGOP.cpp,
43463 source/Lib/TLibEncoder/TEncGOP.h:
43464 TEncGOP: remove unused xFindDistortionFrame() method
43467 * source/Lib/TLibEncoder/TEncGOP.cpp:
43468 TEncGOP: fix chroma stride used in frame PSNR
43471 * source/Lib/TLibEncoder/TEncGOP.cpp:
43472 TEncGOP: fix chroma stride used in frame PSNR
43475 * source/Lib/TLibCommon/TComPicYuvMD5.cpp:
43476 Fix chroma stride used in hash functions (Min Chen)
43479 2013-06-11 Steve Borho <steve@borho.org>
43481 * source/Lib/TLibEncoder/TEncGOP.cpp:
43482 TEncGOP: add a note for future optimizations
43485 * source/Lib/TLibEncoder/TEncGOP.cpp:
43486 TEncGOP: minor cleanups
43489 * source/CMakeLists.txt:
43490 cmake: downgrade requirement to cmake-2.6; it works fine
43493 * source/Lib/TLibEncoder/TEncGOP.cpp:
43497 * source/Lib/TLibEncoder/TEncGOP.cpp:
43498 TEncGOP: use SSE primitives to calculate frame PSNR
43501 * source/Lib/TLibCommon/TComPicYuv.cpp:
43502 TComPicYUV: enforce 16byte alignment of chroma planes
43505 * source/Lib/TLibEncoder/TEncGOP.cpp,
43506 source/Lib/TLibEncoder/TEncGOP.h:
43507 TEncGOP: remove a handful of of member variables, declare on stack
43509 This is a safety measure to prevent race hazards. Now we know the
43510 scope where these variables must be consistent.
43513 * source/Lib/TLibEncoder/TEncSlice.cpp,
43514 source/Lib/TLibEncoder/TEncSlice.h, source/encoder/wavefront.cpp:
43515 TEncSlice: prune unused cost variables and methods
43518 * source/encoder/wavefront.cpp:
43519 wavefront: slight refactor
43522 * source/common/CMakeLists.txt:
43523 gcc: fix win32 mingw compile
43526 * source/encoder/wavefront.cpp:
43527 wavefront: drop PPA events for compress and encodeCU
43529 Now I know that encodeCU takes very little time compared to
43533 * source/Lib/TLibEncoder/TEncCu.cpp,
43534 source/Lib/TLibEncoder/TEncGOP.cpp,
43535 source/Lib/TLibEncoder/TEncTop.cpp,
43536 source/Lib/TLibEncoder/TEncTop.h, source/encoder/wavefront.cpp,
43537 source/encoder/wavefront.h:
43538 refactor: move singleton objects from TEncTop to EncodeFrame
43540 This will allow multiple frames to be encoded at the same time,
43541 barring other data dependencies
43544 * source/common/vec/pixel8.inc:
43545 pixel: pass sad as reference
43548 * source/common/vec/pixel8.inc:
43549 pixel: perform sad_8 in batches of 16 rows
43552 * source/common/pixel.cpp, source/common/vec/pixel.inc,
43553 source/common/vec/pixel8.inc:
43554 pixel: white-space cleanups, remove Intra from getResidual name
43557 2013-06-11 Min Chen <chenm003@163.com>
43559 * source/CMakeLists.txt:
43560 Stack align for GCC
43561 --- source/CMakeLists.txt | 2 +- 1 files changed, 1 insertions(+), 1
43565 2013-06-11 Steve Borho <steve@borho.org>
43567 * source/common/vec/pixel8.inc:
43568 Merged in deepthidevaki/xhevc_deepthid (pull request #191)
43570 Optimized residual and reconstruction in
43571 xIntraCoding[Luma/Chroma]Blk
43574 2013-06-11 Deepthi Devaki <Deepthi Devaki>
43576 * source/common/primitives.h:
43580 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/macroblock.cpp,
43581 source/common/primitives.h, source/common/vec/macroblock.inc,
43582 source/common/vec/pixel8.inc:
43586 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp,
43587 source/common/primitives.h, source/common/vec/pixel.inc,
43588 source/common/vec/pixel8.inc, source/test/pixelharness.cpp,
43589 source/test/pixelharness.h:
43590 Optimized residual and reconstruction in
43591 xIntraCoding[Luma/Chroma]Blk
43594 2013-06-11 Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
43596 * source/common/macroblock.cpp, source/common/vec/macroblock.inc:
43597 Merged multicoreware/xhevc into default
43600 2013-06-10 Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
43602 * Merged multicoreware/xhevc into default
43605 2013-06-11 ggopu <ggopu>
43607 * source/common/vec/pixel8.inc:
43608 primitives:- implementation of loop unrolling for sad - 8,32,48,64.
43609 Others are not showing performance benefit.
43612 2013-06-10 Steve Borho <steve@borho.org>
43614 * source/encoder/motion.h:
43615 motion: use intptr_t for blockOffset
43618 * source/encoder/motion.cpp, source/encoder/motion.h:
43619 motion: remove sadStride member variable
43622 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/motion.cpp,
43623 source/encoder/motion.h:
43624 motion: make motion reference and search limits function arguments
43626 This makes the motion search re-entrant, for a given source PU block
43629 * source/encoder/motion.cpp, source/encoder/motion.h:
43630 motion: inline qpelSatd
43633 * source/encoder/motion.cpp, source/encoder/motion.h:
43634 motion: inline qpelSad function
43637 * source/encoder/motion.cpp, source/encoder/motion.h:
43638 motion: inline the fpelSad() helper function
43641 * source/common/vec/CMakeLists.txt, source/common/vec/pixel8.inc:
43642 gcc: unused parameter workarounds
43645 * source/common/vec/pixel8.inc:
43646 pixel: override ALWAYSINLINE for the unroll template functions
43649 * source/common/vec/pixel8.inc, source/test/mbdstharness.cpp:
43650 fix GCC compile errors
43653 * source/common/CMakeLists.txt, source/common/dct.cpp,
43654 source/common/macroblock.cpp, source/common/primitives.cpp,
43655 source/common/vec/CMakeLists.txt, source/common/vec/dct-avx.cpp,
43656 source/common/vec/dct-avx2.cpp, source/common/vec/dct-sse2.cpp,
43657 source/common/vec/dct-sse3.cpp, source/common/vec/dct-sse41.cpp,
43658 source/common/vec/dct-sse42.cpp, source/common/vec/dct-ssse3.cpp,
43659 source/common/vec/dct.inc, source/common/vec/macroblock.inc,
43660 source/common/vec/vecprimitives.inc:
43661 rename macroblock to dct, split vector primitives into their own C++
43665 * source/common/vec/pixel8.inc:
43666 pixel: fix EOLN damage
43669 * source/common/vec/pixel8.inc:
43670 pixel: simplify exit logic
43673 * source/common/vec/pixel8.inc:
43674 pixel: remove pointer offset multiplication
43677 * source/common/vec/pixel8.inc:
43678 pixel: simplify template early-outs
43681 * Merged in ggopu/gopu_xhevc (pull request #189)
43683 primitives:- loop unrolling using template metaprogramming.
43686 2013-06-10 Mandar Gurav <Mandar Gurav>
43688 * source/common/vec/pixel8.inc:
43689 primitives:- loop unrolling using template metaprogramming.
43692 2013-06-10 Steve Borho <steve@borho.org>
43695 Moved tag LASTKNOWNGOOD to changeset 3ec4837e6f6c (from changeset
43699 * source/common/macroblock.cpp, source/common/vec/macroblock.inc,
43700 source/encoder/CMakeLists.txt:
43701 fix GCC compile errors
43704 * source/Lib/TLibEncoder/TEncCu.cpp:
43705 TEncCu: add more missing x265_emms() calls; win32 is broken without
43710 Moved tag LASTKNOWNGOOD to changeset d60578bec82e (from changeset
43714 * source/Lib/TLibEncoder/TEncCu.cpp,
43715 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/motion.cpp,
43716 source/encoder/motion.h:
43720 * source/Lib/TLibEncoder/TEncSearch.cpp:
43721 TEncSearch: move QP set much earlier, avoids race hazards
43724 * source/Lib/TLibEncoder/TEncCu.cpp,
43725 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/motion.cpp,
43726 source/encoder/motion.h:
43727 motion: do not use subsampling for bufSAD(), call EMMS where
43731 2013-06-11 Deepthi <Deepthi>
43736 * source/Lib/TLibEncoder/TEncCu.cpp:
43737 Verified that satd cost of orig and final prediction correspond to
43738 those returned from ME.
43741 * source/Lib/TLibEncoder/TEncSearch.cpp:
43742 Capturing Cost for Mode Decision from Motion Estimation.
43744 Here, TotalCost (which will be used in Mode Decision) is satd +
43745 lambda*MVDbits. This cost needs to be improved by adding
43746 lambda*header(or signalling) bits.
43749 2013-06-10 Steve Borho <steve@borho.org>
43751 * source/Lib/TLibEncoder/TEncAnalyze.h,
43752 source/Lib/TLibEncoder/TEncGOP.cpp:
43753 x265: use stderr and log level consistently for logging output
43756 2013-06-10 Min Chen <chenm003@163.com>
43758 * source/common/vec/macroblock.inc:
43759 [review] more optimize for IDCT32x32
43760 --- source/common/vec/macroblock.inc | 114
43761 +++++++++++--------------------------- 1 files changed, 33
43762 insertions(+), 81 deletions(-)
43765 * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/macroblock.cpp,
43766 source/common/primitives.h, source/common/vec/macroblock.inc,
43767 source/test/mbdstharness.cpp:
43768 [PATCH 10/11] [review] merge memcpy with stride into IDCT
43770 From c4ab38c711e073f8e244bac87171b1e762992eed Mon Sep 17 00:00:00
43772 --- source/Lib/TLibCommon/TComTrQuant.cpp | 16 ++----
43773 source/common/macroblock.cpp | 66 ++++++++++++++------
43774 source/common/primitives.h | 3 +- source/common/vec/macroblock.inc |
43775 106 ++++++++++++++++++-------------- source/test/mbdstharness.cpp |
43776 14 ++-- 5 files changed, 120 insertions(+), 85 deletions(-)
43779 * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/primitives.h,
43780 source/test/mbdstharness.cpp:
43781 [review] replace function xITrMxN by function pointer
43782 --- source/Lib/TLibCommon/TComTrQuant.cpp | 42
43783 ++++----------------------------- source/common/primitives.h | 10
43784 ++++---- source/test/mbdstharness.cpp | 8 +++--- 3 files changed, 14
43785 insertions(+), 46 deletions(-)
43788 * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/macroblock.cpp,
43789 source/common/primitives.h, source/common/vec/macroblock.inc,
43790 source/test/mbdstharness.cpp:
43791 [review] code for IDCT32x32
43792 --- source/Lib/TLibCommon/TComTrQuant.cpp | 8 +-
43793 source/common/macroblock.cpp | 11 + source/common/primitives.h | 1 +
43794 source/common/vec/macroblock.inc | 1533
43795 +++++++++++++++++++++++++++++++++ source/test/mbdstharness.cpp | 1 +
43796 5 files changed, 1547 insertions(+), 7 deletions(-)
43799 * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/macroblock.cpp,
43800 source/common/primitives.h, source/common/vec/macroblock.inc,
43801 source/test/mbdstharness.cpp:
43802 [review] code for IDCT16x16
43803 --- source/Lib/TLibCommon/TComTrQuant.cpp | 3 +-
43804 source/common/macroblock.cpp | 11 + source/common/primitives.h | 1 +
43805 source/common/vec/macroblock.inc | 1449
43806 +++++++++++++++++++++++---------- source/test/mbdstharness.cpp | 19
43807 +- 5 files changed, 1042 insertions(+), 441 deletions(-)
43810 * source/test/mbdstharness.cpp, source/test/mbdstharness.h:
43811 fix bug in testbench
43812 --- source/test/mbdstharness.cpp | 47
43813 +++++++++++++++++++++++++---------------- source/test/mbdstharness.h
43814 | 4 +- 2 files changed, 31 insertions(+), 20 deletions(-)
43817 * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/macroblock.cpp,
43818 source/common/primitives.h, source/common/vec/macroblock.inc,
43819 source/test/mbdstharness.cpp:
43820 [review] code for IDCT8x8
43821 --- source/Lib/TLibCommon/TComTrQuant.cpp | 3 +-
43822 source/common/macroblock.cpp | 11 ++ source/common/primitives.h | 1
43823 + source/common/vec/macroblock.inc | 252
43824 +++++++++++++++++++++++++++++++++ source/test/mbdstharness.cpp | 1 +
43825 5 files changed, 266 insertions(+), 2 deletions(-)
43828 * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/macroblock.cpp,
43829 source/common/primitives.h, source/common/vec/macroblock.inc,
43830 source/test/mbdstharness.cpp:
43831 [review] code for IDCT4x4
43832 --- source/Lib/TLibCommon/TComTrQuant.cpp | 6 +-
43833 source/common/macroblock.cpp | 11 ++++ source/common/primitives.h |
43834 1 + source/common/vec/macroblock.inc | 103
43835 +++++++++++++++++++++++++++++++++ source/test/mbdstharness.cpp | 1 +
43836 5 files changed, 120 insertions(+), 2 deletions(-)
43839 * source/test/mbdstharness.cpp, source/test/mbdstharness.h:
43840 more general testbench
43841 --- source/test/mbdstharness.cpp | 52
43842 ++++++----------------------------------- source/test/mbdstharness.h
43843 | 3 +- 2 files changed, 9 insertions(+), 46 deletions(-)
43846 * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/macroblock.cpp,
43847 source/common/primitives.h, source/common/vec/macroblock.inc,
43848 source/test/mbdstharness.cpp:
43849 [review] code for IDST4x4
43850 --- source/Lib/TLibCommon/TComTrQuant.cpp | 3 +-
43851 source/common/macroblock.cpp | 11 +++ source/common/primitives.h | 1
43852 + source/common/vec/macroblock.inc | 115
43853 +++++++++++++++++++++++++++++++++ source/test/mbdstharness.cpp | 10
43854 +++ 5 files changed, 138 insertions(+), 2 deletions(-)
43857 * source/test/mbdstharness.cpp:
43859 --- source/test/mbdstharness.cpp | 2 +- 1 files changed, 1
43860 insertions(+), 1 deletions(-)
43863 2013-06-10 Steve Borho <steve@borho.org>
43865 * source/encoder/compress.cpp:
43866 compress: fix eoln and VC9 compile
43869 * source/encoder/motion.cpp:
43870 motion: improve cost comment
43873 * Merged in deepthidevaki/xhevc_deepthid (pull request #188)
43875 32x32 intraAng with intrinsics - Reduced build time in MSVC
43878 2013-06-10 Deepthi Devaki <Deepthi Devaki>
43880 * source/common/vec/intrapred.inc:
43884 * source/test/intrapredharness.cpp:
43885 Include 32x32 IntraAng in testbench
43888 * source/common/vec/intrapred.inc:
43889 removing unwanted comments
43892 * source/common/vec/intrapred.inc:
43893 32x32 intraAng with intrinsics - Reduced build time in MSVC
43896 2013-06-10 Deepthi <Deepthi>
43898 * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/compress.cpp:
43902 * source/Lib/TLibEncoder/TEncCu.cpp,
43903 source/Lib/TLibEncoder/TEncSearch.cpp,
43904 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/compress.cpp:
43905 Removing extraneous arguments to predInterSearch
43908 * source/Lib/TLibEncoder/TEncCu.cpp:
43909 Replacing xcompressCU with xCompressInterCU
43912 * source/encoder/compress.cpp:
43913 Finetuning xComputeCostInter
43916 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
43917 source/Lib/TLibCommon/TypeDef.h,
43918 source/Lib/TLibEncoder/TEncEntropy.cpp,
43919 source/Lib/TLibEncoder/TEncEntropy.h,
43920 source/Lib/TLibEncoder/TEncSbac.cpp, source/common/primitives.h,
43921 source/common/vec/macroblock.inc,
43922 source/common/vec/vecprimitives.inc:
43923 backout e200a6011f23: causes crash.
43929 * source/encoder/motion.cpp:
43930 Comment for clarification of the term "cost" used in ME.
43932 In general, we can try to use the following terms in a consistent
43933 manner. 1. Distortion: This is the actual distortion produced in the
43934 image due to any of the lossy components in video compression (block
43935 matching, quant, filtering etc etc). In prediction, we can define
43936 this as the satd/sad between orig and predicted image. 2. Bits: no.
43937 of bits used in representing that particular mode. 3. Cost or
43938 TotalCost = Distortion + lambda*bits.
43940 Appending cost to either satd/bits is to be generally avoided.
43943 * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp:
43944 Define xComputeCostInter.
43946 Early skip detection always ON. If skip detected, exit early.
43949 * source/Lib/TLibCommon/TComDataCU.cpp:
43950 Implementation of copyCU member function.
43953 * source/Lib/TLibCommon/TComDataCU.h:
43954 Adding more access functions; declaring a copyCU member function to
43955 copy Search results.
43958 2013-06-09 Deepthi <Deepthi>
43960 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
43961 4 temporary structs for 2nx2nInter, InterRect, IntrainInter, and
43965 * source/encoder/compress.cpp:
43966 Recursive calls to xcompressInterCU
43969 * source/Lib/TLibEncoder/TEncCu.h, source/encoder/compress.cpp:
43970 Adding xcompressInterCU; removing irrelevant if-checks
43976 * source/encoder/CMakeLists.txt, source/encoder/compress.cpp,
43977 source/encoder/compress.h:
43978 Adding compress.cpp and compress.h for the new mode decision
43982 2013-06-10 Steve Borho <steve@borho.org>
43984 * source/encoder/slicetype.cpp:
43985 slicetype: remove functions we will not need anytime soon
43988 2013-06-09 Steve Borho <steve@borho.org>
43990 * doc/LookaheadGuide.txt, source/encoder/slicetype.cpp:
43991 Borrow slicetype.c from x264 as slicetype.cpp
43993 This file was taken from x264 source tree circa Dec 4, 2012 with
43994 x264 bug fixes applied from Dec 11th and Jan 8th 2013. But without
43995 taking any of the slice threading changes because we will eventually
43996 use the x265 thread pool and wavefront scheduling.
43999 * source/Lib/TLibEncoder/TEncTop.h:
44000 TEncTop: reorder members together, prepare for reorg
44003 * source/common/vec/vecprimitives.inc:
44004 vec: add comments on where external functions are found
44007 * source/common/vec/macroblock.inc,
44008 source/common/vec/vecprimitives.inc:
44009 vec: move includes into vecprimitives.inc
44011 macroblock.inc is included inside an anonymous namespace, and cannot
44012 include headers itself.
44015 2013-06-09 Min Chen <chenm003@163.com>
44017 * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/macroblock.cpp,
44018 source/common/vec/macroblock.inc, source/test/mbdstharness.cpp,
44019 source/test/mbdstharness.h:
44020 [review] code for DCT4x4
44021 --- source/Lib/TLibCommon/TComTrQuant.cpp | 6 ++-
44022 source/common/macroblock.cpp | 11 ++++
44023 source/common/vec/macroblock.inc | 82
44024 +++++++++++++++++++++++++++++++++ source/test/testbench.cpp | 2 +-
44025 source/test/mbdstharness.cpp | 30 ++++++++++++
44026 source/test/mbdstharness.h | 1 + 6 files changed, 129 insertions(+),
44030 * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/macroblock.cpp,
44031 source/common/primitives.h, source/common/vec/macroblock.inc,
44032 source/test/mbdstharness.cpp, source/test/mbdstharness.h:
44033 [review] code for DCT8x8
44034 --- source/Lib/TLibCommon/TComTrQuant.cpp | 3 +-
44035 source/common/macroblock.cpp | 11 ++ source/common/primitives.h | 12
44036 ++ source/common/vec/macroblock.inc | 275
44037 +++++++++++++++++++++++++++++++++ source/test/mbdstharness.cpp | 50
44038 ++++++ source/test/mbdstharness.h | 1 + 6 files changed, 350
44039 insertions(+), 2 deletions(-)
44042 * source/Lib/TLibCommon/TComTrQuant.cpp:
44044 --- source/Lib/TLibCommon/TComTrQuant.cpp | 12 ++++++------ 1 files
44045 changed, 6 insertions(+), 6 deletions(-)
44048 * source/Lib/TLibEncoder/TEncSbac.cpp:
44049 little optimize in TEncSbac::codeLastSignificantXY
44050 --- source/Lib/TLibEncoder/TEncSbac.cpp | 10 ++-------- 1 files
44051 changed, 2 insertions(+), 8 deletions(-)
44054 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
44055 source/Lib/TLibCommon/TypeDef.h,
44056 source/Lib/TLibEncoder/TEncEntropy.cpp,
44057 source/Lib/TLibEncoder/TEncEntropy.h,
44058 source/Lib/TLibEncoder/TEncSbac.cpp, source/common/primitives.h,
44059 source/common/vec/macroblock.inc,
44060 source/common/vec/vecprimitives.inc:
44061 optimize TEncSbac::codeCoeffNxN by new function scanNonZeroCoeffs
44062 --- source/Lib/TLibCommon/TComRom.cpp | 23 +++++
44063 source/Lib/TLibCommon/TComRom.h | 2 +
44064 source/Lib/TLibCommon/TypeDef.h | 1 +
44065 source/Lib/TLibEncoder/TEncEntropy.cpp | 12 ---
44066 source/Lib/TLibEncoder/TEncEntropy.h | 1 -
44067 source/Lib/TLibEncoder/TEncSbac.cpp | 59 ++++---------
44068 source/common/primitives.h | 2 + source/common/vec/macroblock.inc |
44069 146 ++++++++++++++++++++++++++++++++
44070 source/common/vec/vecprimitives.inc | 2 + 9 files changed, 194
44071 insertions(+), 54 deletions(-)
44074 2013-06-08 Steve Borho <steve@borho.org>
44076 * source/common/primitives.h, source/common/x86/asm-primitives.cpp:
44077 primitives: disable EMMS usage on x64 compiles
44080 2013-06-08 Min Chen <chenm003@163.com>
44082 * source/Lib/TLibEncoder/TEncSearch.cpp:
44083 reduce EMMS when there NO Double operator
44084 --- source/Lib/TLibEncoder/TEncSearch.cpp | 2 +- 1 files changed, 1
44085 insertions(+), 1 deletions(-)
44088 2013-06-08 Steve Borho <steve@borho.org>
44091 x265: report elapsed time in final logging output
44094 2013-06-08 Min Chen <chenm003@163.com>
44096 * source/common/x86/asm-primitives.cpp, source/common/x86/pixel-a.asm:
44097 asm: use assembly SSD routines, where applicable
44098 --- source/common/x86/asm-primitives.cpp | 5 +++++
44099 source/common/x86/pixel-a.asm | 6 ++++++ 2 files changed, 11
44100 insertions(+), 0 deletions(-)
44103 2013-06-07 Steve Borho <steve@borho.org>
44105 * source/test/pixelharness.cpp:
44106 pixelharness: repair the pixel correctness tests
44109 * source/common/x86/asm-primitives.cpp:
44110 Backed out changeset: e040de3904a6 (appears to break some PCs)
44113 * source/encoder/wavefront.cpp, source/encoder/wavefront.h:
44114 wavefront: move CU processing into a CTURow method
44117 * source/test/testbench.cpp:
44118 testbench: add support for --test NAME argument
44120 ex: TestBench --test pix
44122 Only tests pixel primitives
44125 * source/test/intrapredharness.h, source/test/ipfilterharness.h,
44126 source/test/mbdstharness.h, source/test/pixelharness.h,
44127 source/test/testbench.cpp, source/test/testharness.h:
44128 testbench: add test bench names
44131 * source/test/testbench.cpp:
44132 testbench: stop testing C prims against themselves. show SIMD names
44135 * source/common/primitives.cpp:
44136 primitives: remove unused variable
44139 * source/common/x86/asm-primitives.cpp:
44140 asm: use assembly SSD routines, where applicable
44143 * source/common/x86/CMakeLists.txt:
44144 cmake: add pixel.h to solution, for easy access from MSVC
44147 * source/common/primitives.h:
44148 primitives: note that SSE primitives make no alignment assumptions
44152 x265: move CPU detection and primitive initialization after file
44156 * source/common/common.cpp, source/x265.cpp:
44157 x265: report input file data all one one line. Do not repeat input
44161 * source/input/input.h, source/input/y4m.h, source/input/yuv.h:
44162 input: add getName() method
44165 * source/Lib/TLibEncoder/TEncAnalyze.h:
44166 x265: report global bitrate
44169 * source/Lib/TLibEncoder/TEncAnalyze.h:
44170 x265: indicate bitrate in frame logging same as other places
44173 * source/Lib/TLibCommon/TComSlice.cpp,
44174 source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TypeDef.h,
44175 source/Lib/TLibEncoder/TEncGOP.cpp,
44176 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
44177 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
44178 source/Lib/TLibEncoder/TEncSlice.cpp:
44179 Remove SAO_CHROMA_LAMBDA define, assume enabled
44182 * source/Lib/TLibCommon/TComTrQuant.h,
44183 source/Lib/TLibCommon/TypeDef.h,
44184 source/Lib/TLibEncoder/TEncSearch.cpp,
44185 source/Lib/TLibEncoder/TEncSlice.cpp:
44186 Remove RDOQ_CHROMA_LAMBDA define, assume enabled
44189 * source/Lib/TLibEncoder/TEncSearch.cpp:
44193 * source/Lib/TLibEncoder/TEncSearch.cpp:
44194 TEncSearch: replace another copy loop with a primitive
44197 * source/Lib/TLibEncoder/TEncSearch.cpp:
44198 TEncSearch: inline primitive arguments, remove unused var
44201 * source/Lib/TLibCommon/TComRdCost.cpp,
44202 source/Lib/TLibCommon/TComRdCost.h:
44203 TComRdCost: remove all three getDistPart()
44206 * source/Lib/TLibCommon/TComRdCost.h,
44207 source/Lib/TLibEncoder/TEncSearch.cpp:
44208 TEncSearch: restore xTZSearchHelp() to its former simplicity
44211 * Merged in ggopu/gopu_xhevc (pull request #187)
44213 TEncodeSearch: Removed getDistPart() replaced with sse Primitives
44216 2013-06-07 ggopu <ggopu>
44218 * source/Lib/TLibCommon/TComRdCost.h,
44219 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/vec/sse.inc:
44220 TEncodeSearch: Removed getDistPart() replaced with sse Primitives
44223 2013-06-07 Steve Borho <steve@borho.org>
44225 * source/common/vec/intrapred.inc:
44226 Merged in deepthidevaki/xhevc_deepthid (pull request #185)
44228 Added IntraAngular modes for chroma
44231 2013-06-07 Deepthi Devaki <Deepthi Devaki>
44233 * source/common/vec/intrapred.inc:
44234 Added bFilter in call for 16x16 for chroma
44237 * source/common/vec/intrapred.inc:
44241 * source/Lib/TLibCommon/TComPrediction.cpp,
44242 source/common/vec/intrapred.inc, source/test/intrapredharness.cpp:
44243 IntraAngular adapted for Chroma application
44246 2013-06-07 Min Chen <chenm003@163.com>
44248 * source/common/vec/intrapred.inc:
44249 intrapred: fix bug on VC9-x64, the pextrw instruction very easy make
44251 --- source/common/vec/intrapred.inc | 3 +-- 1 files changed, 1
44252 insertions(+), 2 deletions(-)
44255 2013-06-07 nandaku2 <deepthi@multicorewareinc.com>
44257 * source/Lib/TLibEncoder/TEncCu.cpp:
44258 Merged in sumalatha/xhevc_sumalatha (pull request #186)
44260 missed in previous checkin
44263 2013-06-07 sumalatha <sumalatha>
44265 * source/Lib/TLibEncoder/TEncSearch.cpp, source/x265.cpp:
44266 missed in previous checkin for CU_STAT_LOGFILE
44269 2013-06-07 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
44272 Merged multicoreware/xhevc/default into default (e5a96e958371)
44275 * source/Lib/TLibEncoder/TEncCu.cpp,
44276 source/Lib/TLibEncoder/TEncSlice.cpp, source/x265.cpp:
44277 Merged multicoreware/xhevc/default into default (f4815a9f6747)
44280 2013-06-06 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
44282 * Merged multicoreware/xhevc/default into default (4f45fd8e9ea8)
44285 * source/Lib/TLibEncoder/TEncCu.cpp,
44286 source/Lib/TLibEncoder/TEncSlice.cpp, source/x265.cpp,
44288 Merged multicoreware/xhevc/default into default (6dc2e5b6c1d4)
44291 2013-06-05 sumalatha <sumalatha>
44293 * source/Lib/TLibEncoder/TEncCu.cpp,
44294 source/Lib/TLibEncoder/TEncSlice.cpp, source/x265.cpp,
44296 Backed out changeset: 683fbbf6818d
44299 * source/Lib/TLibEncoder/TEncCu.cpp,
44300 source/Lib/TLibEncoder/TEncSlice.cpp, source/x265.cpp,
44302 added logging to collect statistics related to mode decision
44305 2013-06-07 Deepthi <Deepthi>
44310 * source/Lib/TLibEncoder/TEncCu.cpp:
44311 Introducing satd based Intra in Inter: quality slowly climbing up
44312 (0.4 dB less), bitrate equal to RDO-based.
44315 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
44316 CheckRDCostIntrainInter: so we can simplify Intra in Inter without
44317 affecting I-slice decisions.
44320 2013-06-07 Steve Borho <steve@borho.org>
44323 x265: remove obsolete printf argument
44326 2013-06-06 Steve Borho <steve@borho.org>
44328 * source/Lib/TLibEncoder/TEncAnalyze.h,
44329 source/Lib/TLibEncoder/TEncGOP.cpp, source/x265.cpp:
44330 x265: adapt statistic logging to look more like x264
44334 x265: report final FPS and bitrate as x264 does
44337 * source/PPA/ppaCPUEvents.h, source/common/reference.cpp,
44338 source/common/reference.h:
44339 reference: up to 16 threads used for subpel interpolation
44342 * source/common/reference.cpp, source/common/reference.h:
44343 reference: up to 9 threads used for subpel interpolation
44346 * source/common/reference.cpp:
44347 reference: fix eoln
44350 * source/Lib/TLibCommon/TComPicYuv.cpp,
44351 source/Lib/TLibCommon/TComPicYuv.h,
44352 source/Lib/TLibCommon/TComSlice.cpp, source/common/reference.cpp,
44353 source/common/reference.h:
44354 reference: use thread pool to interpolate references, up to 4
44358 * source/common/threadpool.cpp, source/common/threadpool.h:
44359 threadpool: add accessor to static var that doesn't increase ref
44363 * source/common/reference.h:
44364 reference: use intptr_t for pointer offset m_offsetToLuma
44367 * source/common/reference.cpp, source/common/reference.h:
44368 reference: remove redundant variables
44371 * source/common/reference.cpp:
44372 reference: simplify and correct some math
44375 * source/common/reference.cpp, source/common/reference.h:
44376 reference: split out compute per horizontal qpel offset
44379 * source/common/vec/intrapred.inc:
44380 intrapred: allow non-MSVC compilers to build intra 32x32
44383 * source/common/reference.cpp, source/common/reference.h:
44384 reference: move temp vars to be class members
44386 Normally this wouldn't be helpful but since this routine is about to
44387 be threaded, this helps work efficiency
44390 * source/Lib/TLibEncoder/TEncSlice.cpp, source/PPA/ppaCPUEvents.h:
44391 PPA: add event for TEncSlice_encodeSlice
44394 * source/Lib/TLibEncoder/TEncCu.cpp, source/PPA/ppaCPUEvents.h,
44395 source/common/reference.cpp, source/encoder/wavefront.cpp:
44396 PPA: tweak events to more easily analyse threading
44398 GenerateReferencePlanes has improved from 60ms to 56ms in the last 6
44399 commits (measuring on HD video). Each plane costs 3.7ms
44402 * source/common/reference.cpp:
44403 reference: directly use full-pel plane from TComPicYuv - do not copy
44406 * source/common/reference.cpp:
44407 reference: reduce redunant calculations
44410 * source/common/reference.cpp:
44411 reference: reduce redunant calculations
44414 * source/common/reference.cpp:
44415 reference: reduce redunant calculations
44418 * source/common/reference.cpp:
44419 reference: reduce redunant calculations
44422 * source/common/reference.cpp:
44423 reference: unroll plane extensions
44426 * source/common/reference.cpp, source/common/reference.h:
44427 reference: combine functions
44430 2013-06-07 Deepthi <Deepthi>
44435 * source/Lib/TLibEncoder/TEncCu.cpp:
44436 Replacing Merge distortion with satd costs.
44438 However, this badly thrashes quality - I suspect this is due to
44439 lower distortion values from satd for the merge-zero residual mode.
44440 We need to finetune the merge distortion model.
44443 2013-06-06 Steve Borho <steve@borho.org>
44445 * source/common/vec/intra-avx.cpp, source/common/vec/intra-sse42.cpp:
44446 re-enable forceinline for intra AVX and SSE42
44449 * Merged in deepthidevaki/xhevc_deepthid (pull request #184)
44451 intrinsics in IntraAng
44454 2013-06-06 Deepthi Devaki <Deepthi Devaki>
44456 * source/common/vec/intrapred.inc:
44457 Expanded some of the Macros in 32x32 IntraAng with intention to
44458 improve compile time.
44461 * source/common/vec/intrapred.inc:
44462 Intrinsics added in 32x32 Macros.
44465 * source/common/vec/intrapred.inc:
44466 More intrinsics in 16x16
44469 * source/common/vec/intrapred.inc:
44470 Intrinsics in MACRO for 16x16
44473 2013-06-06 Deepthi <Deepthi>
44475 * source/Lib/TLibEncoder/TEncSearch.cpp:
44476 Using bits estimate from RDO instead of ME estimate.
44478 Using the bits estimate from RDO gives 0.5dB loss and 10% bitrate
44479 increase. Using bits estimate from ME gives 30% bitrate increase and
44480 0.7dB loss. ToDo: replace RDO bits estimate with a carefully
44481 calculated estimate.
44484 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
44485 Cleanup: remove CalcRDCostInter/Intra
44488 2013-06-06 sumalatha <sumalatha>
44490 * source/Lib/TLibEncoder/TEncSearch.cpp:
44491 incremental changes - commit to add logs for rdo, satd cost.
44494 2013-06-06 Deepthi <Deepthi>
44496 * source/Lib/TLibEncoder/TEncCu.cpp,
44497 source/Lib/TLibEncoder/TEncSearch.cpp:
44498 CU_STAT patch from Aarthi/Sumalatha
44501 * source/Lib/TLibEncoder/TEncCu.cpp,
44502 source/Lib/TLibEncoder/TEncSearch.cpp:
44506 * source/Lib/TLibEncoder/TEncCu.cpp:
44510 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
44511 source/Lib/TLibEncoder/TEncSearch.cpp:
44512 Modeling SATD distortion
44515 2013-06-05 Steve Borho <steve@borho.org>
44517 * source/common/vec/intrapred.inc:
44518 intrapred: move another file static init into setup func
44521 * source/common/reference.cpp:
44525 * source/common/reference.cpp:
44526 reference: use a single temp buffer
44529 * source/common/reference.cpp:
44530 reference: remove unused assignment
44533 * source/common/reference.cpp:
44534 reference: reorder plane generations
44537 * source/Lib/TLibCommon/TComPicYuv.h, source/common/reference.cpp,
44538 source/common/reference.h, source/encoder/motion.cpp,
44539 source/encoder/motion.h:
44540 reference: use m_ prefix for member variables
44543 * source/encoder/motion.cpp, source/encoder/motion.h:
44544 motion: drop chroma fenc plane pointers, unused
44547 * source/Lib/TLibCommon/TComPicYuv.cpp,
44548 source/Lib/TLibCommon/TComPicYuv.h,
44549 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/CMakeLists.txt,
44550 source/common/reference.cpp, source/common/reference.h,
44551 source/encoder/motion.h:
44552 reference: move reference plane generation into new common/ files
44555 2013-06-06 ShinYee Chung <shinyee@multicorewareinc.com>
44557 * source/test/pixelharness.cpp:
44558 pixelharness: Fix missing header for SHRT_MAX.
44561 * source/common/pixel.cpp, source/common/vec/pixel.inc:
44562 vec: Fix macro paste problem due to invalid tokens.
44564 error: pasting "." and "sad" does not give a valid preprocessing
44565 token error: pasting "sse" and "<" does not give a valid
44566 preprocessing token
44569 2013-06-05 Steve Borho <steve@borho.org>
44571 * source/common/vec/macroblock.inc:
44572 macroblock: prevent VC9 x64 from building SSE4 intrinsic butterfly
44575 Specifically the butterfly32 crashes and butterfly8 fails unit tests
44578 * source/common/common.h:
44579 common: disable logging by default
44583 remove redundant fclose()
44586 * source/Lib/TLibEncoder/TEncCu.cpp,
44587 source/Lib/TLibEncoder/TEncSlice.cpp, source/common/common.h,
44589 rename LOGGING to CU_STAT_LOGFILE
44592 * source/Lib/TLibEncoder/TEncCu.cpp,
44593 source/Lib/TLibEncoder/TEncSlice.cpp, source/common/common.h,
44595 move LOGGING define to common.h
44598 * source/Lib/TLibCommon/TComRdCost.cpp:
44599 TComRdCost: use its own helper function consistently
44602 * source/Lib/TLibCommon/TComRdCost.h:
44603 TComRdCost: reorder methods, no change
44606 * source/Lib/TLibCommon/TComRdCost.h:
44607 TComRdCost: remove two unused member variables
44609 They were moved to DistParam and never removed from here
44612 * source/Lib/TLibCommon/TComDataCU.cpp,
44613 source/Lib/TLibCommon/TComDataCU.h:
44614 TComDataCU: remove unused slow bit counting methods
44616 These weren't being used at all; not sure if they were used in dead
44617 code paths we've pruned or if all of its users were moved to
44621 * source/Lib/TLibEncoder/TEncSearch.cpp:
44622 TEncSearch: remove old commented code, can no longer be used
44625 * source/Lib/TLibCommon/TComRdCost.cpp,
44626 source/Lib/TLibCommon/TComRdCost.h:
44627 TComRdCost: remove getCost(x, y), getBits(x, y), and
44628 xGetComponentBits()
44631 * source/Lib/TLibEncoder/TEncSearch.cpp:
44632 TEncSearch: replace TComRdCost::getCost(x,y) with BitCost::mvcost
44635 Changes outputs of --me 4 (HM orig) slightly. Does not affect other
44636 ME modes, which were already using mvcost()
44639 * source/common/vec/pixel.inc, source/common/vec/sse.inc,
44640 source/test/pixelharness.cpp:
44641 Backed out changeset: ce41a92cec25
44644 * source/common/vec/intrapred.inc:
44645 intrapred: remove const from file static vars
44647 The compiler was ignoring my const_cast<> and discarding the
44648 assignments. My guess is that it had inlined the constants (known to
44649 be zero) into the routines
44652 * source/common/vec/intrapred.inc:
44653 intra: disable 32x32 temporarily, to save MSVC build times
44655 Once the key macros have been made pure-intrinsic, it should be safe
44656 to build these again with MSVC.
44659 * source/encoder/wavefront.cpp, source/encoder/wavefront.h:
44660 wavefront: uncrustify
44663 * source/Lib/TLibEncoder/TEncCu.cpp,
44664 source/Lib/TLibEncoder/TEncSlice.cpp:
44665 TEncCu, TEncSlice: uncrustify
44668 * source/common/vec/intrapred.inc:
44669 intrapred: move static variable initialization to init time
44671 Allow CPU detection to avoid initializing static vars that might use
44672 illegal instructions.
44675 2013-06-05 ggopu <ggopu>
44677 * source/common/vec/pixel.inc, source/common/vec/sse.inc,
44678 source/test/pixelharness.cpp:
44679 primitives: implementation of sse_ss, sse_sp, sse_pp : Comment out
44683 * source/test/pixelharness.cpp, source/test/pixelharness.h:
44684 primitives: implementation of sse_ss, sse_sp, sse_pp : Quick fix
44687 * source/common/pixel.cpp, source/common/primitives.h,
44688 source/common/vec/CMakeLists.txt, source/common/vec/pixel.inc,
44689 source/common/vec/pixel16.inc, source/common/vec/pixel8.inc,
44690 source/common/vec/sse.inc, source/test/pixelharness.cpp:
44691 primitives: implementation of sse_ss, sse_sp, sse_pp
44694 2013-06-05 Deepthi <Deepthi>
44699 * source/Lib/TLibEncoder/TEncCu.cpp,
44700 source/Lib/TLibEncoder/TEncSlice.cpp, source/x265.cpp,
44702 Logging statistics showing CU mode types and partition sizes - patch
44703 from Aarthi/Sumalatha.
44706 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
44707 Do not repeat encRes for merge mode
44710 2013-06-05 Steve Borho <steve@borho.org>
44713 Added tag LASTKNOWNGOOD for changeset 681eabf8a086
44716 * source/Lib/TLibEncoder/TEncSearch.cpp:
44717 TEncSearch: nits, no change
44720 2013-06-04 Steve Borho <steve@borho.org>
44722 * source/encoder/wavefront.cpp:
44723 wavefront: re-order initializations to make GCC happy
44726 * source/Lib/TLibEncoder/TEncCavlc.h:
44727 TEncCavlc: remove unused formal parameter names, avoid GCC warnings
44730 * source/encoder/wavefront.cpp:
44731 wavefront: remove clumsy logic where codeRow could be different for
44735 * source/encoder/encoder.cpp:
44736 encoder: mark WPP disabled if thread pool has only one thread
44738 Either the user requested --threads 1, or auto-detect only found 1
44742 * source/Lib/TLibEncoder/TEncSlice.cpp:
44746 * source/Lib/TLibEncoder/TEncSlice.cpp:
44747 TEncSlice: remove include of omp.h
44750 * source/Lib/TLibEncoder/TEncSlice.cpp, source/encoder/wavefront.cpp,
44751 source/encoder/wavefront.h:
44752 wavefront: further cleanups
44755 * source/encoder/wavefront.cpp:
44756 wavefront: remove unnecessary re-alloc of buffer Sbac coders
44759 * source/Lib/TLibEncoder/TEncSlice.cpp,
44760 source/Lib/TLibEncoder/TEncSlice.h,
44761 source/Lib/TLibEncoder/TEncTop.h:
44762 TEncTop: completely remove singleton TComRdCost, force use of
44767 x265: remove old comment
44770 * source/encoder/wavefront.cpp:
44771 wavefront: move flush and deletions to destroy method
44774 * source/encoder/wavefront.cpp:
44775 wavefront: eliminate redundant assignments
44778 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
44779 source/encoder/wavefront.cpp:
44780 TEncCu: CU should use row local m_cRdCost so lambda is allowed to
44784 * source/Lib/TLibEncoder/TEncSlice.cpp, source/encoder/wavefront.h:
44785 distribute lambda and chroma weights to thread m_cRdCost (fixes non-
44788 it seems --me 4 and --wpp is still non-deterministic, just not
44792 2013-06-03 Steve Borho <steve@borho.org>
44794 * source/Lib/TLibEncoder/TEncGOP.cpp,
44795 source/Lib/TLibEncoder/TEncGOP.h,
44796 source/Lib/TLibEncoder/TEncSlice.cpp,
44797 source/Lib/TLibEncoder/TEncSlice.h,
44798 source/Lib/TLibEncoder/TEncTop.cpp,
44799 source/Lib/TLibEncoder/TEncTop.h, source/encoder/encoder.cpp,
44800 source/encoder/wavefront.cpp, source/encoder/wavefront.h:
44801 wavefront: reorg per-thread/row data into a structure
44804 2013-06-04 Steve Borho <steve@borho.org>
44806 * source/Lib/TLibCommon/TypeDef.h:
44807 Remove unused SEQUENCE_LEVEL_LOSSLESS
44810 * source/Lib/TLibCommon/TComRdCost.cpp,
44811 source/Lib/TLibCommon/TComRdCost.h:
44812 TComRdCost: remove unused calcRdCost64
44815 * source/Lib/TLibCommon/TComRdCost.cpp,
44816 source/Lib/TLibCommon/TComRdCost.h:
44817 TComRdCost: remove unused calcRdCost
44820 * source/common/vec/CMakeLists.txt:
44821 cmake: cleanup vec file, no real changes
44824 2013-06-05 ShinYee Chung <shinyee@multicorewareinc.com>
44826 * source/Lib/TLibEncoder/TEncSearch.cpp:
44827 search: Fix compile warnings.
44830 2013-06-04 Steve Borho <steve@borho.org>
44832 * source/common/vec/intra-avx.cpp, source/common/vec/intra-sse42.cpp:
44833 disable forceinline, compiles are taking multiple hours
44836 * source/common/pixel.cpp:
44837 pixel: add C primitives for int/short conversion functions
44840 * source/common/vec/intrapred.inc,
44841 source/common/vec/vecprimitives.inc:
44842 vec: more #include pruning to avoid unnecessary rebuilds
44845 * source/common/vec/intrapred.inc,
44846 source/common/vec/vecprimitives.inc:
44847 move g_aucConvertToBit[] to intrapred.inc
44850 * source/Lib/TLibCommon/TComRdCost.cpp,
44851 source/Lib/TLibCommon/TComRdCost.h:
44852 TComRdCost: remove eDFunc argument from getDistPart() methods
44854 Soon getDistPart() can be replaced entirely with SSE primitives.
44857 * source/Lib/TLibCommon/TComRdCost.h:
44858 TComRdCost: remove unused macro and method
44861 * source/Lib/TLibEncoder/TEncCu.cpp:
44865 2013-06-04 Deepthi <Deepthi>
44867 * source/Lib/TLibEncoder/TEncSearch.cpp:
44871 * source/Lib/TLibEncoder/TEncSearch.cpp:
44875 2013-06-04 Steve Borho <steve@borho.org>
44877 * source/Lib/TLibEncoder/TEncCu.cpp,
44878 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/vec/pixel.inc,
44879 source/common/vec/pixel16.inc, source/common/vec/pixel8.inc:
44880 Merged in ggopu/gopu_xhevc (pull request #182)
44882 primitives: SSE 8 & 16 bit implementation - done for all and
44883 Replaced getSADPart with Primitives.sad function
44886 2013-06-04 Mandar Gurav <Mandar Gurav>
44888 * source/Lib/TLibEncoder/TEncSearch.cpp:
44889 Replaced getDistPart() with SadBuf() and remved CALCRDCOST_SAD call
44893 * source/Lib/TLibEncoder/TEncCu.cpp:
44894 Replaced getSADPart with Primitives.sad function
44897 * source/common/vec/pixel16.inc, source/common/vec/pixel8.inc:
44898 primitives: SSE 16 bit - done for all
44901 * source/common/vec/pixel.inc, source/common/vec/pixel8.inc:
44902 primitives: SSE 8 bit implementation - done for all
44905 2013-06-04 Deepthi <Deepthi>
44907 * source/Lib/TLibEncoder/TEncSearch.cpp, source/common/vec/intra-
44908 avx.cpp, source/common/vec/intra-sse42.cpp, source/common/vec
44909 /ipfilter-avx.cpp, source/common/vec/ipfilter-avx2.cpp,
44910 source/common/vec/ipfilter-sse2.cpp, source/common/vec/ipfilter-
44911 sse3.cpp, source/common/vec/ipfilter-sse41.cpp, source/common/vec
44912 /ipfilter-sse42.cpp, source/common/vec/ipfilter-ssse3.cpp,
44913 source/common/vec/pixel-avx.cpp, source/common/vec/pixel-avx2.cpp,
44914 source/common/vec/pixel-sse2.cpp, source/common/vec/pixel-sse3.cpp,
44915 source/common/vec/pixel-sse41.cpp, source/common/vec/pixel-
44916 sse42.cpp, source/common/vec/pixel-ssse3.cpp,
44917 source/common/vec/utils.h:
44921 * source/Lib/TLibEncoder/TEncSearch.cpp:
44922 Replacing with memcpy.
44925 2013-06-04 Deepthi Devaki <Deepthi Devaki>
44927 * source/common/vec/intrapred.inc:
44928 Completed & Uncrustified Intra Angular 32x32
44931 * source/common/vec/intra-avx.cpp, source/common/vec/intra-sse42.cpp,
44932 source/test/intrapredharness.cpp:
44933 Fix for a previous wrong commit, that disabled forceinline
44936 * source/Lib/TLibCommon/AccessUnit.h,
44937 source/Lib/TLibCommon/ContextModel.cpp,
44938 source/Lib/TLibCommon/ContextModel3DBuffer.h,
44939 source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/SEI.h,
44940 source/Lib/TLibCommon/TComDataCU.cpp,
44941 source/Lib/TLibCommon/TComLoopFilter.cpp,
44942 source/Lib/TLibCommon/TComPattern.cpp,
44943 source/Lib/TLibCommon/TComPattern.h,
44944 source/Lib/TLibCommon/TComPic.cpp,
44945 source/Lib/TLibCommon/TComPicYuv.cpp,
44946 source/Lib/TLibCommon/TComPicYuv.h,
44947 source/Lib/TLibCommon/TComPrediction.cpp,
44948 source/Lib/TLibCommon/TComPrediction.h,
44949 source/Lib/TLibCommon/TComRdCost.cpp,
44950 source/Lib/TLibCommon/TComRdCost.h,
44951 source/Lib/TLibCommon/TComRom.cpp,
44952 source/Lib/TLibCommon/TComTrQuant.cpp,
44953 source/Lib/TLibCommon/TComTrQuant.h,
44954 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
44955 source/Lib/TLibCommon/TypeDef.h,
44956 source/Lib/TLibEncoder/AnnexBwrite.h,
44957 source/Lib/TLibEncoder/NALwrite.h,
44958 source/Lib/TLibEncoder/SEIwrite.h,
44959 source/Lib/TLibEncoder/TEncCavlc.cpp,
44960 source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp,
44961 source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncGOP.cpp,
44962 source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncSbac.h,
44963 source/Lib/TLibEncoder/TEncSearch.cpp,
44964 source/Lib/TLibEncoder/TEncSearch.h,
44965 source/Lib/TLibEncoder/TEncSlice.cpp,
44966 source/Lib/TLibEncoder/TEncSlice.h,
44967 source/Lib/TLibEncoder/TEncTop.cpp,
44968 source/Lib/TLibEncoder/TEncTop.h, source/PPA/ppa.h,
44969 source/VectorClass/vectori128.h, source/common/TShortYUV.cpp,
44970 source/common/TShortYUV.h, source/common/common.cpp,
44971 source/common/common.h, source/common/ipfilter.cpp,
44972 source/common/md5.cpp, source/common/md5.h, source/common/pixel.cpp,
44973 source/common/primitives.cpp, source/common/primitives.h,
44974 source/common/threadpool.cpp, source/common/vec/CMakeLists.txt,
44975 source/common/vec/blockcopy.inc, source/common/vec/intra-avx.cpp,
44976 source/common/vec/intra-avx2.cpp, source/common/vec/intra-sse2.cpp,
44977 source/common/vec/intra-sse3.cpp, source/common/vec/intra-sse41.cpp,
44978 source/common/vec/intra-sse42.cpp, source/common/vec/intra-
44979 ssse3.cpp, source/common/vec/intrapred.inc, source/common/vec
44980 /ipfilter-avx.cpp, source/common/vec/ipfilter-avx2.cpp,
44981 source/common/vec/ipfilter-sse2.cpp, source/common/vec/ipfilter-
44982 sse3.cpp, source/common/vec/ipfilter-sse41.cpp, source/common/vec
44983 /ipfilter-sse42.cpp, source/common/vec/ipfilter-ssse3.cpp,
44984 source/common/vec/ipfilter.inc, source/common/vec/pixel-avx.cpp,
44985 source/common/vec/pixel-avx2.cpp, source/common/vec/pixel-sse2.cpp,
44986 source/common/vec/pixel-sse3.cpp, source/common/vec/pixel-sse41.cpp,
44987 source/common/vec/pixel-sse42.cpp, source/common/vec/pixel-
44988 ssse3.cpp, source/common/vec/pixel.inc,
44989 source/common/vec/pixel16.inc, source/common/vec/pixel8.inc,
44990 source/common/vec/utils.h, source/common/vec/vec-primitives.cpp,
44991 source/common/vec/vecprimitives.inc, source/encoder/bitcost.cpp,
44992 source/encoder/bitcost.h, source/encoder/encoder.cpp,
44993 source/encoder/encoder.h, source/encoder/motion.cpp,
44994 source/input/y4m.cpp, source/input/yuv.cpp,
44995 source/output/output.cpp, source/output/output.h,
44996 source/output/y4m.cpp, source/output/yuv.cpp, source/output/yuv.h,
44997 source/test/intrapredharness.cpp, source/test/ipfilterharness.cpp,
44998 source/test/pixelharness.cpp, source/test/testbench.cpp,
44999 source/test/testharness.h, source/tools/dr_psnr/PsnrCalculator.h,
45000 source/tools/dr_psnr/SSIMCalculator.h, source/x265.cpp,
45001 source/x265.h, source/x265opts.h:
45002 Backed out changeset: 471c6f016b40
45005 * source/Lib/TLibCommon/AccessUnit.h,
45006 source/Lib/TLibCommon/ContextModel.cpp,
45007 source/Lib/TLibCommon/ContextModel3DBuffer.h,
45008 source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/SEI.h,
45009 source/Lib/TLibCommon/TComDataCU.cpp,
45010 source/Lib/TLibCommon/TComLoopFilter.cpp,
45011 source/Lib/TLibCommon/TComPattern.cpp,
45012 source/Lib/TLibCommon/TComPattern.h,
45013 source/Lib/TLibCommon/TComPic.cpp,
45014 source/Lib/TLibCommon/TComPicYuv.cpp,
45015 source/Lib/TLibCommon/TComPicYuv.h,
45016 source/Lib/TLibCommon/TComPrediction.cpp,
45017 source/Lib/TLibCommon/TComPrediction.h,
45018 source/Lib/TLibCommon/TComRdCost.cpp,
45019 source/Lib/TLibCommon/TComRdCost.h,
45020 source/Lib/TLibCommon/TComRom.cpp,
45021 source/Lib/TLibCommon/TComTrQuant.cpp,
45022 source/Lib/TLibCommon/TComTrQuant.h,
45023 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
45024 source/Lib/TLibCommon/TypeDef.h,
45025 source/Lib/TLibEncoder/AnnexBwrite.h,
45026 source/Lib/TLibEncoder/NALwrite.h,
45027 source/Lib/TLibEncoder/SEIwrite.h,
45028 source/Lib/TLibEncoder/TEncCavlc.cpp,
45029 source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp,
45030 source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncGOP.cpp,
45031 source/Lib/TLibEncoder/TEncGOP.h, source/Lib/TLibEncoder/TEncSbac.h,
45032 source/Lib/TLibEncoder/TEncSearch.cpp,
45033 source/Lib/TLibEncoder/TEncSearch.h,
45034 source/Lib/TLibEncoder/TEncSlice.cpp,
45035 source/Lib/TLibEncoder/TEncSlice.h,
45036 source/Lib/TLibEncoder/TEncTop.cpp,
45037 source/Lib/TLibEncoder/TEncTop.h, source/PPA/ppa.h,
45038 source/VectorClass/vectori128.h, source/common/TShortYUV.cpp,
45039 source/common/TShortYUV.h, source/common/common.cpp,
45040 source/common/common.h, source/common/ipfilter.cpp,
45041 source/common/md5.cpp, source/common/md5.h, source/common/pixel.cpp,
45042 source/common/primitives.cpp, source/common/primitives.h,
45043 source/common/threadpool.cpp, source/common/vec/CMakeLists.txt,
45044 source/common/vec/blockcopy.inc, source/common/vec/intra-avx.cpp,
45045 source/common/vec/intra-avx2.cpp, source/common/vec/intra-sse2.cpp,
45046 source/common/vec/intra-sse3.cpp, source/common/vec/intra-sse41.cpp,
45047 source/common/vec/intra-sse42.cpp, source/common/vec/intra-
45048 ssse3.cpp, source/common/vec/intrapred.inc, source/common/vec
45049 /ipfilter-avx.cpp, source/common/vec/ipfilter-avx2.cpp,
45050 source/common/vec/ipfilter-sse2.cpp, source/common/vec/ipfilter-
45051 sse3.cpp, source/common/vec/ipfilter-sse41.cpp, source/common/vec
45052 /ipfilter-sse42.cpp, source/common/vec/ipfilter-ssse3.cpp,
45053 source/common/vec/ipfilter.inc, source/common/vec/pixel-avx.cpp,
45054 source/common/vec/pixel-avx2.cpp, source/common/vec/pixel-sse2.cpp,
45055 source/common/vec/pixel-sse3.cpp, source/common/vec/pixel-sse41.cpp,
45056 source/common/vec/pixel-sse42.cpp, source/common/vec/pixel-
45057 ssse3.cpp, source/common/vec/pixel.inc,
45058 source/common/vec/pixel16.inc, source/common/vec/pixel8.inc,
45059 source/common/vec/utils.h, source/common/vec/vec-primitives.cpp,
45060 source/common/vec/vecprimitives.inc, source/encoder/bitcost.cpp,
45061 source/encoder/bitcost.h, source/encoder/encoder.cpp,
45062 source/encoder/encoder.h, source/encoder/motion.cpp,
45063 source/input/y4m.cpp, source/input/yuv.cpp,
45064 source/output/output.cpp, source/output/output.h,
45065 source/output/y4m.cpp, source/output/yuv.cpp, source/output/yuv.h,
45066 source/test/intrapredharness.cpp, source/test/ipfilterharness.cpp,
45067 source/test/pixelharness.cpp, source/test/testbench.cpp,
45068 source/test/testharness.h, source/tools/dr_psnr/PsnrCalculator.h,
45069 source/tools/dr_psnr/SSIMCalculator.h, source/x265.cpp,
45070 source/x265.h, source/x265opts.h:
45071 Backed out merge changeset: 899d27ae3960
45073 Backed out merge revision to its first parent (ffc3e2a59068)
45076 * source/common/vec/intra-avx.cpp, source/common/vec/intra-sse42.cpp,
45077 source/common/vec/intrapred.inc, source/test/intrapredharness.cpp:
45081 * source/common/vec/intrapred.inc:
45082 Partial vector implementation of IntrPredAng 32x32.
45085 2013-06-03 Steve Borho <steve@borho.org>
45087 * source/Lib/TLibCommon/AccessUnit.h,
45088 source/Lib/TLibCommon/ContextModel.cpp,
45089 source/Lib/TLibCommon/ContextModel3DBuffer.h,
45090 source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/SEI.h,
45091 source/Lib/TLibCommon/TComDataCU.cpp,
45092 source/Lib/TLibCommon/TComLoopFilter.cpp,
45093 source/Lib/TLibCommon/TComPattern.cpp,
45094 source/Lib/TLibCommon/TComPattern.h,
45095 source/Lib/TLibCommon/TComPic.cpp,
45096 source/Lib/TLibCommon/TComPicYuv.cpp,
45097 source/Lib/TLibCommon/TComPicYuv.h,
45098 source/Lib/TLibCommon/TComPrediction.cpp,
45099 source/Lib/TLibCommon/TComPrediction.h,
45100 source/Lib/TLibCommon/TComRdCost.cpp,
45101 source/Lib/TLibCommon/TComTrQuant.cpp,
45102 source/Lib/TLibCommon/TComTrQuant.h,
45103 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
45104 source/Lib/TLibEncoder/AnnexBwrite.h,
45105 source/Lib/TLibEncoder/NALwrite.h,
45106 source/Lib/TLibEncoder/SEIwrite.h,
45107 source/Lib/TLibEncoder/TEncCavlc.cpp,
45108 source/Lib/TLibEncoder/TEncCfg.h,
45109 source/Lib/TLibEncoder/TEncSearch.cpp,
45110 source/Lib/TLibEncoder/TEncSearch.h,
45111 source/Lib/TLibEncoder/TEncTop.h, source/PPA/ppa.h,
45112 source/common/TShortYUV.cpp, source/common/TShortYUV.h,
45113 source/common/common.cpp, source/common/common.h,
45114 source/common/ipfilter.cpp, source/common/md5.cpp,
45115 source/common/md5.h, source/common/pixel.cpp,
45116 source/common/primitives.cpp, source/common/primitives.h,
45117 source/common/threadpool.cpp, source/common/vec/blockcopy.inc,
45118 source/common/vec/intra-avx.cpp, source/common/vec/intra-sse42.cpp,
45119 source/common/vec/intrapred.inc, source/common/vec/ipfilter-avx.cpp,
45120 source/common/vec/ipfilter-avx2.cpp, source/common/vec/ipfilter-
45121 sse2.cpp, source/common/vec/ipfilter-sse3.cpp, source/common/vec
45122 /ipfilter-sse41.cpp, source/common/vec/ipfilter-sse42.cpp,
45123 source/common/vec/ipfilter-ssse3.cpp,
45124 source/common/vec/ipfilter.inc, source/common/vec/pixel-avx.cpp,
45125 source/common/vec/pixel-avx2.cpp, source/common/vec/pixel-sse2.cpp,
45126 source/common/vec/pixel-sse3.cpp, source/common/vec/pixel-sse41.cpp,
45127 source/common/vec/pixel-sse42.cpp, source/common/vec/pixel-
45128 ssse3.cpp, source/common/vec/pixel.inc,
45129 source/common/vec/pixel16.inc, source/common/vec/pixel8.inc,
45130 source/common/vec/utils.h, source/encoder/bitcost.cpp,
45131 source/encoder/bitcost.h, source/encoder/encoder.cpp,
45132 source/encoder/encoder.h, source/encoder/motion.cpp,
45133 source/input/y4m.cpp, source/input/yuv.cpp,
45134 source/output/output.cpp, source/output/output.h,
45135 source/output/y4m.cpp, source/output/yuv.cpp, source/output/yuv.h,
45136 source/test/intrapredharness.cpp, source/test/ipfilterharness.cpp,
45137 source/test/pixelharness.cpp, source/test/testbench.cpp,
45138 source/test/testharness.h, source/tools/dr_psnr/PsnrCalculator.h,
45139 source/tools/dr_psnr/SSIMCalculator.h, source/x265.cpp,
45140 source/x265.h, source/x265opts.h:
45141 uncrustify: catch up with several weeks of drift
45144 * source/Lib/TLibEncoder/TEncSearch.cpp:
45148 * source/Lib/TLibEncoder/TEncGOP.cpp,
45149 source/Lib/TLibEncoder/TEncGOP.h,
45150 source/Lib/TLibEncoder/TEncSlice.h:
45154 * source/Lib/TLibEncoder/TEncCu.h:
45158 * source/Lib/TLibEncoder/TEncSearch.cpp,
45159 source/Lib/TLibEncoder/TEncSearch.h,
45160 source/Lib/TLibEncoder/TEncTop.cpp:
45161 TEncSearch: reduce argument count for TEncSearch::Init() (it can
45165 * source/Lib/TLibEncoder/TEncCfg.h:
45166 TEncCfg: add accessors for all ME data
45169 * source/Lib/TLibEncoder/TEncTop.h:
45170 TEncTop: white-space nits
45173 * source/Lib/TLibEncoder/TEncTop.cpp,
45174 source/Lib/TLibEncoder/TEncTop.h:
45175 TEncTop: remove xInitPPSforTiles
45178 * source/Lib/TLibEncoder/TEncSearch.cpp,
45179 source/Lib/TLibEncoder/TEncSearch.h:
45180 TEncSearch: remove xTZ8PointSquareSearch
45183 * source/Lib/TLibEncoder/TEncSearch.cpp:
45184 TEncSlice: more white-space nits
45187 * source/Lib/TLibEncoder/TEncSearch.cpp:
45188 TEncSearch: fixup commit
45191 * source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TypeDef.h:
45192 Move DFunc enum from TypeDef.h to TComRdCost.h
45195 * source/Lib/TLibEncoder/TEncSearch.cpp:
45196 TEncSearch: add a note for future optimization
45199 * source/Lib/TLibCommon/TypeDef.h,
45200 source/Lib/TLibEncoder/TEncSearch.cpp,
45201 source/Lib/TLibEncoder/TEncSearch.h:
45202 Remove HHI_RQT_INTRA_SPEEDUP, HHI_RQT_INTRA_SPEEDUP_MOD. Assume
45206 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TypeDef.h,
45207 source/Lib/TLibEncoder/TEncSearch.cpp:
45208 Remove FAST_UDI_USE_MPM, always enabled
45211 * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncTop.cpp:
45212 Remove WRITE_BACK define, always enabled
45215 * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCfg.h,
45216 source/Lib/TLibEncoder/TEncTop.cpp:
45217 Remove AUTO_INTER_RPS define, always enabled
45220 * source/Lib/TLibEncoder/TEncTop.cpp,
45221 source/Lib/TLibEncoder/TEncTop.h:
45222 TEncTop: remove redundant m_uiNumSubstreams
45225 * source/Lib/TLibEncoder/TEncSlice.cpp,
45226 source/Lib/TLibEncoder/TEncTop.cpp,
45227 source/Lib/TLibEncoder/TEncTop.h:
45228 TEncTop: prep cleanup, remove unused m_cRDGoOnSbacCoder
45231 2013-06-04 Deepthi <Deepthi>
45233 * source/Lib/TLibEncoder/TEncSearch.cpp:
45234 xAddSymbolBitsInter: part replacement of entropy estimate
45237 * source/Lib/TLibEncoder/TEncSearch.cpp:
45238 Replacing zeroResidual mode bit estimate
45241 2013-06-03 Deepthi <Deepthi>
45243 * source/Lib/TLibEncoder/TEncSearch.cpp:
45244 Replacing entropy estimate for Skip.
45247 2013-06-03 Steve Borho <steve@borho.org>
45249 * source/Lib/TLibEncoder/TEncSbac.h,
45250 source/Lib/TLibEncoder/TEncSlice.cpp:
45251 TEncSlice: more white-space nits
45254 * source/Lib/TLibEncoder/TEncSearch.cpp:
45255 TEncSearch: white-space nits
45258 2013-06-03 Min Chen <chenm003@163.com>
45260 * source/common/vec/intrapred.inc:
45261 [review] more performance implement on predIntraPlanar4_sse4
45262 --- source/common/vec/intrapred.inc | 48
45263 ++++++++++++++++++++------------------ 1 files changed, 25
45264 insertions(+), 23 deletions(-)
45267 * source/common/vec/intrapred.inc:
45268 [review] instrinsic predIntraPlanar64_sse4
45269 --- source/common/vec/intrapred.inc | 126
45270 +++++++++++++++++++++++++++++++++++++-- 1 files changed, 121
45271 insertions(+), 5 deletions(-)
45274 * source/common/vec/intrapred.inc, source/test/intrapredharness.cpp:
45275 [review] instrinsic predIntraPlanar32_sse4
45276 --- source/common/vec/intrapred.inc | 82
45277 ++++++++++++++++++++++++++++++++++++++
45278 source/test/intrapredharness.cpp | 6 +- 2 files changed, 85
45279 insertions(+), 3 deletions(-)
45282 * source/common/vec/intrapred.inc:
45283 [review] instrinsic predIntraPlanar16_sse4
45284 --- source/common/vec/intrapred.inc | 97
45285 ++++++++++++--------------------------- 1 files changed, 30
45286 insertions(+), 67 deletions(-)
45289 * source/common/vec/intrapred.inc:
45290 [review] instrinsic predIntraPlanar16_sse4, performance
45291 --- source/common/vec/intrapred.inc | 112
45292 ++++++++++++++++++++++++++++++++++++++- 1 files changed, 110
45293 insertions(+), 2 deletions(-)
45296 * source/common/vec/intrapred.inc:
45297 [review] instrinsic predIntraPlanar8_sse4
45298 --- source/common/vec/intrapred.inc | 79
45299 ++++++++++++++++++++++++++++++++++++++- 1 files changed, 77
45300 insertions(+), 2 deletions(-)
45303 2013-06-03 Steve Borho <steve@borho.org>
45305 * source/Lib/TLibEncoder/TEncSearch.cpp:
45306 TencSearch: fix bit counting
45309 * source/common/vec/pixel8.inc:
45310 pixel: use real ints in vector code
45313 * source/Lib/TLibCommon/TComRdCost.cpp,
45314 source/Lib/TLibCommon/TComRdCost.h,
45315 source/Lib/TLibEncoder/TEncSearch.cpp:
45316 backout changes to TComRdCost, this file cannot use primitives.
45319 * Merged in ggopu/gopu_xhevc (pull request #180)
45321 * m_pcRdCost->getBits() replaced with BitCost.mvcost
45324 2013-06-03 ggopu <ggopu>
45326 * source/Lib/TLibCommon/TComRdCost.cpp,
45327 source/Lib/TLibCommon/TComRdCost.h,
45328 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/pixel.cpp,
45329 source/common/primitives.h, source/common/vec/pixel.inc,
45330 source/common/vec/pixel8.inc, source/test/pixelharness.cpp:
45331 * m_pcRdCost->getBits() replaced with BitCost.mvcost
45332 * Fixed other code blocks calling non-primitive SAD functions (crashes
45333 at sad8 - for load_a whereas works with just load)
45334 * Primitives for SSE functions
45337 2013-06-03 Steve Borho <steve@borho.org>
45339 * Merged in deepthidevaki/xhevc_deepthid (pull request #179)
45341 Enabled Intra Angular 16x16 in testbench
45344 2013-06-03 Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
45346 * Merged multicoreware/xhevc into default
45349 2013-06-03 Deepthi Devaki <Deepthi Devaki>
45351 * source/test/intrapredharness.cpp:
45352 Enabled Intra Angular 16x16 in testbench
45355 2013-06-03 Deepthi <Deepthi>
45360 * source/Lib/TLibEncoder/TEncSearch.cpp:
45364 * source/Lib/TLibEncoder/TEncCu.cpp:
45365 Making RDO optional
45368 2013-06-03 Steve Borho <steve@borho.org>
45370 * source/common/vec/CMakeLists.txt:
45371 cmake: add missing ipfilter-avx.cpp
45374 * source/common/vec/CMakeLists.txt:
45375 cmake: add new foo-avx.cpp files to -mavx properties list
45378 * source/common/vec/intrapred.inc:
45379 intrapred: add include for smmintrin.h
45382 * source/common/vec/vec-primitives.cpp:
45383 vec: allow VC9 and VC10 to use SSE4 primitives
45386 * source/VectorClass/vectori128.h, source/common/vec/intra-avx.cpp,
45387 source/common/vec/intra-sse42.cpp:
45388 vec: enable __forceinline for higher arches of intra primitives
45391 * source/common/vec/CMakeLists.txt, source/common/vec/ipfilter-
45392 avx.cpp, source/common/vec/ipfilter-avx2.cpp, source/common/vec
45393 /ipfilter-sse2.cpp, source/common/vec/ipfilter-sse3.cpp,
45394 source/common/vec/ipfilter-sse41.cpp, source/common/vec/ipfilter-
45395 sse42.cpp, source/common/vec/ipfilter-ssse3.cpp,
45396 source/common/vec/ipfilter.inc, source/common/vec/vecprimitives.inc:
45397 vec: split ipfilter primitives into their own C++ files
45400 * source/common/vec/CMakeLists.txt, source/common/vec/intra-avx.cpp,
45401 source/common/vec/intra-avx2.cpp, source/common/vec/intra-sse2.cpp,
45402 source/common/vec/intra-sse3.cpp, source/common/vec/intra-sse41.cpp,
45403 source/common/vec/intra-sse42.cpp, source/common/vec/intra-
45404 ssse3.cpp, source/common/vec/intrapred.inc,
45405 source/common/vec/vecprimitives.inc:
45406 vec: split intra primitives into their own C++ files
45409 * source/common/vec/CMakeLists.txt, source/common/vec/pixel-avx.cpp,
45410 source/common/vec/pixel-avx2.cpp, source/common/vec/pixel-sse2.cpp,
45411 source/common/vec/pixel-sse3.cpp, source/common/vec/pixel-sse41.cpp,
45412 source/common/vec/pixel-sse42.cpp, source/common/vec/pixel-
45413 ssse3.cpp, source/common/vec/pixel.inc,
45414 source/common/vec/pixel16.inc, source/common/vec/utils.h,
45415 source/common/vec/vecprimitives.inc:
45416 vec: split pixel primitives into their own C++ files
45419 2013-06-03 ShinYee Chung <shinyee@multicorewareinc.com>
45422 cmd: Fix segfault when an unrecognized option is given on the
45426 2013-06-02 Min Chen <chenm003@163.com>
45428 * source/common/vec/intrapred.inc:
45429 [review] instrinsic predIntraPlanar4_sse4
45430 --- source/common/vec/intrapred.inc | 59
45431 +++++++++++++++++++++++++++++++++++++++ 1 files changed, 59
45432 insertions(+), 0 deletions(-)
45435 * source/common/vec/intrapred.inc:
45436 intrapred: optimize by func_ptr in predIntraPlanar
45437 --- source/common/vec/intrapred.inc | 59
45438 ++++++++++++++++++-------------------- 1 files changed, 28
45439 insertions(+), 31 deletions(-)
45442 * source/common/vec/CMakeLists.txt:
45444 --- source/common/vec/CMakeLists.txt | 10 +++------- 1 files changed,
45445 3 insertions(+), 7 deletions(-)
45448 * source/common/vec/intrapred.inc:
45449 intrapred: simple predIntraPlanar4 by macro
45450 --- source/common/vec/intrapred.inc | 49
45451 ++++++++++++--------------------------- 1 files changed, 15
45452 insertions(+), 34 deletions(-)
45455 * source/common/vec/intrapred.inc:
45457 --- source/common/vec/intrapred.inc | 3 +++ 1 files changed, 3
45458 insertions(+), 0 deletions(-)
45461 2013-06-01 Steve Borho <steve@borho.org>
45464 x265: use output frame counts for progress reports
45466 This actually makes them less accurate in the short term because of
45467 the GOP cadence of the encode function. but it is more correct from
45468 a code logic point of view.
45471 * source/encoder/encoder.cpp:
45472 encoder: pull recon images from queue even when not requested
45474 When the app wasn't requesting recon images, they were queueing
45475 indefinitely in m_cListRecQueue (not quite as bad as it seems, it
45476 only queues pointers and the buffers are recycled). And it's was
45477 always returning 0 for iNumEncoded, which was bad.
45480 * source/encoder/motion.cpp, source/encoder/motion.h:
45481 motion: rename StarSearch to StarPatternSearch, make inline
45484 * source/encoder/motion.cpp:
45485 motion: fixup comments, remove tabs, simplify some macros
45488 * source/Lib/TLibCommon/TComRom.h:
45489 TComRom: remove unused extern
45492 * source/encoder/motion.h:
45493 motion: use sadStride in helper functions
45496 2013-06-01 Mandar Gurav <Mandar Gurav>
45498 * source/encoder/motion.cpp:
45499 motion: use sad_x4 in star Search for dist = 1.
45502 * source/common/common.h:
45503 motion: ME cycle count- Print lld
45506 * source/encoder/motion.cpp, source/encoder/motion.h:
45507 motion: TwoPoint search manually inlined. Now, exe_time_SUBSAMPLE_1
45508 < exe_time_SUBSAMPLE_0.
45511 * source/common/common.h:
45512 motion: Print Total Cycle count also. Avg. Cycle count doesn't give
45513 exact idea of performance - since num_calls_SUBSAMPLE_0 !=
45514 num_calls_SUBSAMPLE_1.
45517 * source/encoder/motion.cpp, source/encoder/motion.h:
45518 motion: Replace "stride << subsample" with "sadStride".
45521 * source/Lib/TLibCommon/TComRom.h:
45522 Merge conflict: Copy files directly from xhevc main repo. part 4
45525 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
45526 source/Lib/TLibEncoder/TEncAnalyze.h:
45527 Merge conflict: Copy files directly from xhevc main repo. part 3
45530 2013-05-31 Mandar Gurav <mandar@multicorewareinc.com>
45532 * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg, cfg/per-
45533 sequence/BQMall.cfg, cfg/per-sequence/BQSquare.cfg, cfg/per-
45534 sequence/BQTerrace.cfg, cfg/per-sequence/BasketballDrill.cfg, cfg
45535 /per-sequence/BasketballDrillText.cfg, cfg/per-
45536 sequence/BasketballDrive.cfg, cfg/per-sequence/BasketballPass.cfg,
45537 cfg/per-sequence/BlowingBubbles.cfg, cfg/per-sequence/Cactus.cfg,
45538 cfg/per-sequence/ChinaSpeed.cfg, cfg/per-sequence/FourPeople.cfg,
45539 cfg/per-sequence/Johnny.cfg, cfg/per-sequence/Kimono.cfg, cfg/per-
45540 sequence/KristenAndSara.cfg, cfg/per-
45541 sequence/NebutaFestival_10bit.cfg, cfg/per-sequence/ParkScene.cfg,
45542 cfg/per-sequence/PartyScene.cfg, cfg/per-
45543 sequence/PeopleOnStreet.cfg, cfg/per-sequence/RaceHorses.cfg, cfg
45544 /per-sequence/RaceHorsesC.cfg, cfg/per-sequence/SlideEditing.cfg,
45545 cfg/per-sequence/SlideShow.cfg, cfg/per-
45546 sequence/SteamLocomotiveTrain_10bit.cfg, cfg/per-
45547 sequence/Traffic.cfg, cfg/per-sequence/Vidyo1.cfg, cfg/per-
45548 sequence/Vidyo3.cfg, cfg/per-sequence/Vidyo4.cfg,
45549 source/Lib/CMakeLists.txt,
45550 source/Lib/TAppCommon/program_options_lite.cpp,
45551 source/Lib/TAppCommon/program_options_lite.h,
45552 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
45553 source/Lib/TLibEncoder/TEncAnalyze.h,
45554 source/Lib/TLibEncoder/TEncSearch.cpp,
45555 source/TestForChecking_BadCommit.bat, source/encoder/IntraPred.cpp,
45556 source/encoder/TShortYUV.cpp, source/encoder/TShortYUV.h,
45557 source/encoder/butterfly.h, source/encoder/common.cpp,
45558 source/encoder/common.h, source/encoder/ipfilter.cpp,
45559 source/encoder/macroblock.cpp, source/encoder/md5.cpp,
45560 source/encoder/md5.h, source/encoder/motion.cpp,
45561 source/encoder/motion.h, source/encoder/pixel.cpp,
45562 source/encoder/primitives.cpp, source/encoder/primitives.h,
45563 source/encoder/threading.cpp, source/encoder/threading.h,
45564 source/encoder/threadpool.cpp, source/encoder/threadpool.h,
45565 source/encoder/vec/CMakeLists.txt, source/encoder/vec/avx.cpp,
45566 source/encoder/vec/avx2.cpp, source/encoder/vec/blockcopy.inc,
45567 source/encoder/vec/intrapred.inc, source/encoder/vec/ipfilter.inc,
45568 source/encoder/vec/ipfilter16.inc, source/encoder/vec/ipfilter8.inc,
45569 source/encoder/vec/macroblock.inc, source/encoder/vec/pixel.inc,
45570 source/encoder/vec/pixel16.inc, source/encoder/vec/pixel8.inc,
45571 source/encoder/vec/sse2.cpp, source/encoder/vec/sse3.cpp,
45572 source/encoder/vec/sse41.cpp, source/encoder/vec/sse42.cpp,
45573 source/encoder/vec/ssse3.cpp, source/encoder/vec/vec-primitives.cpp,
45574 source/encoder/vec/vecprimitives.inc,
45575 source/encoder/x86/CMakeLists.txt, source/encoder/x86/asm-
45576 primitives.cpp, source/encoder/x86/const-a.asm,
45577 source/encoder/x86/cpu-a.asm, source/encoder/x86/pixel-32.asm,
45578 source/encoder/x86/pixel-a.asm, source/encoder/x86/pixel.h,
45579 source/encoder/x86/sad-a.asm, source/encoder/x86/x86inc.asm,
45580 source/encoder/x86/x86util.asm, source/x265cfg.cpp,
45581 source/x265cfg.h, source/x265enc.cpp, source/x265enc.h,
45582 source/x265main.cpp:
45583 Merged multicoreware/xhevc into default
45586 2013-06-01 Mandar Gurav <Mandar Gurav>
45588 * source/Lib/TLibEncoder/TEncSearch.cpp,
45589 source/Lib/TLibEncoder/TEncSearch.h:
45590 Merge conflict: Copy files directly from xhevc main repo. part 2
45593 2013-06-01 ggopu <ggopu>
45595 * source/encoder/motion.cpp, source/encoder/motion.h:
45596 Merge conflict: Copy files directly from xhevc main repo.
45599 2013-05-23 Mandar Gurav <mandar@multicorewareinc.com>
45601 * source/encoder/motion.cpp:
45602 Merged multicoreware/xhevc into default
45605 2013-05-24 ggopu <ggopu>
45607 * build/nmake/make-solutions.bat, source/Lib/TLibCommon/TComRom.cpp,
45608 source/Lib/TLibCommon/TComRom.h,
45609 source/Lib/TLibEncoder/TEncAnalyze.h,
45610 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/motion.cpp:
45614 2013-05-23 ggopu <ggopu>
45616 * source/Lib/TLibEncoder/TEncSearch.cpp:
45617 Backed out changeset: 06fa58c2176d
45620 2013-05-31 Steve Borho <steve@borho.org>
45622 * source/encoder/encoder.cpp:
45623 encoder: do not allow GOP size to be less than 1
45626 * source/Lib/TLibCommon/TComTrQuant.cpp:
45627 TrComQuant: remove unused variable, fix GCC warnings
45630 2013-05-30 Steve Borho <steve@borho.org>
45632 * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg, cfg/per-
45633 sequence/BQMall.cfg, cfg/per-sequence/BQSquare.cfg, cfg/per-
45634 sequence/BQTerrace.cfg, cfg/per-sequence/BasketballDrill.cfg, cfg
45635 /per-sequence/BasketballDrillText.cfg, cfg/per-
45636 sequence/BasketballDrive.cfg, cfg/per-sequence/BasketballPass.cfg,
45637 cfg/per-sequence/BlowingBubbles.cfg, cfg/per-sequence/Cactus.cfg,
45638 cfg/per-sequence/ChinaSpeed.cfg, cfg/per-sequence/FourPeople.cfg,
45639 cfg/per-sequence/Johnny.cfg, cfg/per-sequence/Kimono.cfg, cfg/per-
45640 sequence/KristenAndSara.cfg, cfg/per-
45641 sequence/NebutaFestival_10bit.cfg, cfg/per-sequence/ParkScene.cfg,
45642 cfg/per-sequence/PartyScene.cfg, cfg/per-
45643 sequence/PeopleOnStreet.cfg, cfg/per-sequence/RaceHorses.cfg, cfg
45644 /per-sequence/RaceHorsesC.cfg, cfg/per-sequence/SlideEditing.cfg,
45645 cfg/per-sequence/SlideShow.cfg, cfg/per-
45646 sequence/SteamLocomotiveTrain_10bit.cfg, cfg/per-
45647 sequence/Traffic.cfg, cfg/per-sequence/Vidyo1.cfg, cfg/per-
45648 sequence/Vidyo3.cfg, cfg/per-sequence/Vidyo4.cfg,
45649 source/CMakeLists.txt,
45650 source/Lib/TAppCommon/program_options_lite.cpp,
45651 source/Lib/TAppCommon/program_options_lite.h, source/x265cfg.cpp,
45652 source/x265cfg.h, source/x265enc.cpp, source/x265enc.h,
45653 source/x265main.cpp:
45654 x265-cli: remove old CLI program and config files
45656 old command line: x265-cli -i Vidyo4.yuv -c cfg/encoder_I_15P.cfg -c
45657 cfg/per-sequence/Vidyo4.cfg -b out.hevc new command line: x265
45658 Vidyo4.y4m out.hevc
45660 old command line: x265-cli -i Vidyo4.yuv -c cfg/encoder_all_I.cfg -c
45661 cfg/per-sequence/Vidyo4.cfg -b out.hevc new command line: x265
45662 Vidyo4.y4m out.hevc --sao -i 1
45665 2013-05-31 Steve Borho <steve@borho.org>
45667 * source/encoder/encoder.cpp:
45668 encoder: add "-i 32" hack to select "encoder_randomaccess_main"
45671 Also requires enabling --rect --amp --sao to match the output of
45675 2013-05-30 Steve Borho <steve@borho.org>
45677 * source/encoder/encoder.cpp:
45678 encoder: be explicit about slice type
45682 x265: fix warnings hidden by old x265-cli project
45685 2013-05-31 Steve Borho <steve@borho.org>
45687 * source/common/vec/CMakeLists.txt:
45688 cmake: fix another set_source_files problem
45691 * source/common/vec/CMakeLists.txt:
45692 cmake: avoid warnings from x64 MSVC compilers
45694 x64 implies at least SSE4, and gets tetchy when you say /arch:SSE2
45695 Previously, the set_source_files_properties line was busted by a bad
45699 2013-05-31 Min Chen <chenm003@163.com>
45701 * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/primitives.h,
45702 source/common/vec/pixel.inc:
45703 optimize by convert32to16_shr
45704 --- source/Lib/TLibCommon/TComTrQuant.cpp | 5 +----
45705 source/common/primitives.h | 2 ++ source/common/vec/pixel.inc | 24
45706 ++++++++++++++++++++++-- 3 files changed, 25 insertions(+), 6
45710 * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/primitives.h,
45711 source/common/vec/pixel.inc:
45712 optimize by convert16to32_shl
45713 --- source/Lib/TLibCommon/TComTrQuant.cpp | 17 ++++++++++++++---
45714 source/common/primitives.h | 2 ++ source/common/vec/pixel.inc | 18
45715 ++++++++++++++++++ 3 files changed, 34 insertions(+), 3 deletions(-)
45718 * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/primitives.h,
45719 source/common/vec/pixel.inc:
45720 optimize by convert32to16
45721 --- source/Lib/TLibCommon/TComTrQuant.cpp | 5 +----
45722 source/common/primitives.h | 2 ++ source/common/vec/pixel.inc | 19
45723 +++++++++++++++++++ 3 files changed, 22 insertions(+), 4
45727 * source/Lib/TLibCommon/TComTrQuant.cpp:
45728 TComTrQuant::xT: replace for_loop by memcpy()
45729 --- source/Lib/TLibCommon/TComTrQuant.cpp | 15 ++++----------- 1
45730 files changed, 4 insertions(+), 11 deletions(-)
45733 * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/primitives.h,
45734 source/common/vec/pixel.inc:
45735 optimize by convert16to32
45736 --- source/Lib/TLibCommon/TComTrQuant.cpp | 9 +++++----
45737 source/common/primitives.h | 3 +++ source/common/vec/pixel.inc | 20
45738 ++++++++++++++++++++ 3 files changed, 28 insertions(+), 4
45742 * source/encoder/wavefront.cpp:
45743 thread: bits matches to HM when single thread
45744 --- source/encoder/wavefront.cpp | 11 ++++++++--- 1 files changed, 8
45745 insertions(+), 3 deletions(-)
45748 * source/common/vec/macroblock.inc:
45750 --- source/common/vec/macroblock.inc | 87
45751 +++++++++++++++++++++++++------------ 1 files changed, 59
45752 insertions(+), 28 deletions(-)
45755 2013-05-31 Deepthi Devaki <Deepthi Devaki>
45757 * source/Lib/TLibEncoder/TEncSearch.cpp:
45758 Fix for 8bpp & 16bpp output mismatch
45761 2013-05-31 ShinYee Chung <shinyee@multicorewareinc.com>
45763 * source/Lib/TLibEncoder/TEncSearch.cpp:
45764 TEncSearch: Disable set but not used variables (-Werror=unused-but-
45768 * source/common/common.cpp:
45769 Common: Fix compile error -Werror=write-strings.
45772 2013-05-30 Steve Borho <steve@borho.org>
45774 * source/common/vec/ipfilter8.inc:
45775 ipfilter: work around unaligned data copies generated by VC9 (from
45779 2013-05-31 ShinYee Chung <shinyee@multicorewareinc.com>
45782 x265: Fix compile issue due to -Wwrite-strings and undeclared
45783 va_start() and va_end().
45786 2013-05-30 Steve Borho <steve@borho.org>
45788 * source/test/mbdstharness.cpp:
45789 dequant: fix a test bench typo
45792 * source/x265.cpp, source/x265opts.h:
45793 x265: make input/output bit depths function local to parse method,
45797 * source/x265cfg.cpp:
45798 x265cfg: set default log level for x265-cli to "debug"
45802 x265: add a CTRL+C handler
45805 * source/Lib/TLibEncoder/TEncCfg.h,
45806 source/Lib/TLibEncoder/TEncGOP.cpp, source/encoder/encoder.cpp,
45807 source/x265enc.cpp:
45808 TEncGOP: show per-frame statistics at log level X265_LOG_DEBUG
45811 * source/Lib/TLibEncoder/TEncTop.cpp,
45812 source/Lib/TLibEncoder/TEncTop.h, source/common/common.cpp,
45813 source/common/common.h, source/common/primitives.cpp,
45814 source/common/primitives.h, source/encoder/encoder.cpp,
45815 source/test/testbench.cpp, source/x265.cpp, source/x265.h,
45816 source/x265cfg.cpp, source/x265cfg.h, source/x265enc.cpp,
45818 x265: use x265_log when initializing primitives and thread pool
45820 * removes thread pool pointer from CLI apps, encoders initialize it
45822 * thread pool size validation moved to x265_check_params()
45825 * source/common/common.cpp, source/x265.cpp, source/x265.h,
45827 x265: introduce x265_param_t.logLevel, and x265_log()
45831 x265: fixup comment for iWaveFrontSynchro
45834 * source/x265.cpp, source/x265.h, source/x265opts.h:
45835 x265: introduce the concept of log levels
45839 x265: prune unused bits of public header
45842 * source/Lib/TLibEncoder/TEncGOP.cpp, source/x265.cpp:
45843 x265: add x264 style progress reporting, kbps numbers differ from HM
45846 * source/common/threadpool.cpp, source/common/threadpool.h,
45848 threadpool: report thread pool size, fix bug with CPU count auto-
45852 * source/CMakeLists.txt:
45853 cmake: remove short-lived openmp compile flags
45856 2013-05-30 ShinYee Chung <shinyee@multicorewareinc.com>
45858 * source/x265.cpp, source/x265cfg.cpp:
45859 Config: Force the threadpool to be single threaded when wavefront is
45863 * source/Lib/TLibEncoder/TEncSlice.cpp, source/encoder/CMakeLists.txt:
45864 WPP: Use the threadpool based wavefront parallel processing module.
45867 * source/encoder/wavefront.cpp, source/encoder/wavefront.h:
45868 WPP: Module for wavefront parallelization using threadpool.
45871 * source/Lib/TLibEncoder/TEncTop.h:
45872 TLibEncoder: Add threadpool accessor to TEncTop.
45875 2013-05-30 Steve Borho <steve@borho.org>
45877 * source/encoder/motion.cpp:
45878 motion: fix a bug introduced in last commit
45881 * source/encoder/motion.cpp:
45882 motion: two more SAD calls that were missed
45885 * source/encoder/motion.cpp:
45886 motion: fix a missed raw call to a sad() primitive
45889 * source/encoder/motion.cpp, source/encoder/motion.h:
45890 motion: minor cleanups, no behavior changes
45893 * source/encoder/motion.cpp:
45894 motion: else clause of primitive setup must always be compiled in
45896 This fixes some of the broken-ness when SUBSAMPLE_SAD is enabled
45899 * source/encoder/motion.cpp, source/encoder/motion.h:
45900 motion: remove unused blockWidth and blockHeight
45903 * Merged in ggopu/gopu_xhevc (pull request #176)
45905 Motion: implemented subsampling SAD when the block height is greater
45909 2013-05-30 ggopu <ggopu>
45911 * source/encoder/motion.cpp, source/encoder/motion.h:
45912 Motion: implemented subsampling SAD when the block height is greater
45916 2013-05-30 Gopu G <gopu@multicorewareinc.com>
45918 * Merged multicoreware/xhevc into default
45921 2013-05-29 Gopu G <gopu@multicorewareinc.com>
45923 * source/encoder/motion.cpp:
45924 Merged multicoreware/xhevc into default
45927 2013-05-30 ggopu <ggopu>
45929 * source/encoder/motion.cpp:
45933 2013-05-29 ggopu <ggopu>
45935 * source/encoder/motion.cpp:
45936 Motion: raster search refinement - sad_x4 Implementation
45939 2013-05-30 Steve Borho <steve@borho.org>
45941 * source/common/primitives.cpp, source/common/primitives.h,
45942 source/common/x86/README.txt, source/common/x86/asm-primitives.cpp,
45943 source/common/x86/pixel-a.asm, source/common/x86/pixel.h,
45944 source/common/x86/x86inc.asm:
45945 asm: rebrand x264 assembly functions with x265_ to avoid static link
45948 x265 compiles the routines with a different FENC_STRIDE, so they
45949 cannot have the same names as the x264 routines else x264 may break
45950 when linked together with x265 in the same application.
45953 2013-05-30 Deepthi <Deepthi>
45958 2013-05-30 praveen Tiwari <praveen@multicorewareinc.com>
45960 * Merged multicoreware/xhevc into default
45963 2013-05-30 praveentiwari <praveentiwari>
45965 * source/test/mbdstharness.cpp:
45969 2013-05-30 praveen Tiwari <praveen@multicorewareinc.com>
45971 * Merged multicoreware/xhevc into default
45974 2013-05-30 praveentiwari <praveentiwari>
45976 * source/test/mbdstharness.cpp:
45977 More comprehensive unit test code for xDeQuant.
45980 2013-05-30 praveen Tiwari <praveen@multicorewareinc.com>
45982 * Merged multicoreware/xhevc into default
45985 2013-05-29 praveentiwari <praveentiwari>
45987 * source/common/vec/macroblock.inc:
45988 Vector code for xDeQuant function
45991 2013-05-29 praveen Tiwari <praveen@multicorewareinc.com>
45993 * Merged multicoreware/xhevc into default
45996 2013-05-29 praveentiwari <praveentiwari>
45998 * source/Lib/TLibCommon/TComTrQuant.cpp, source/common/macroblock.cpp:
45999 Shorten the variable names
46002 2013-05-29 praveen Tiwari <praveen@multicorewareinc.com>
46004 * Merged multicoreware/xhevc into default
46007 * Merged multicoreware/xhevc into default
46010 2013-05-29 praveentiwari <praveentiwari>
46012 * source/common/macroblock.cpp:
46013 C primitive for xDeQuant function
46016 * source/test/mbdstharness.cpp, source/test/mbdstharness.h:
46017 Test code for xDeQuant
46020 * source/common/primitives.h:
46021 Added function pointer typedef for xDeQuant in primitives.h file
46024 * source/Lib/TLibCommon/TComTrQuant.cpp:
46025 Added a switch and modified argument list for xDeQuant to break
46026 dependecy from other member variable and functions
46029 2013-05-30 Deepthi <Deepthi>
46034 * source/Lib/TLibEncoder/TEncSearch.cpp:
46035 RDO: new version for fast mode decision
46038 2013-05-30 Steve Borho <steve@borho.org>
46040 * source/common/common.cpp:
46041 common: prevent a known-broken configuration (wpp+aqselect)
46044 * source/x265opts.h:
46045 x265opts: disable --depth when compiled for 8bpp, make --wpp a
46049 * source/common/common.cpp:
46050 common: give log indication when FAST_MODE_DECISION has been
46054 * source/common/common.cpp:
46055 common: show rect and amp options when enabled
46058 * source/common/common.cpp:
46059 common: group transform skip options together
46062 * source/CMakeLists.txt:
46063 cmake: give FAST_MODE_DECISION an accurate help message
46066 2013-05-30 Deepthi <Deepthi>
46068 * cfg/encoder_I_15P.cfg, source/CMakeLists.txt,
46069 source/Lib/TLibEncoder/TEncCu.cpp,
46070 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/common.cpp:
46074 * source/Lib/TLibEncoder/TEncCu.cpp,
46075 source/Lib/TLibEncoder/TEncSearch.cpp:
46076 First cut version of using SAD costs.
46079 * cfg/encoder_I_15P.cfg, source/common/common.cpp:
46080 Disabling rect and AMP search (for now)
46083 2013-05-29 Deepthi <Deepthi>
46085 * source/CMakeLists.txt, source/Lib/TLibEncoder/TEncSearch.cpp:
46086 ME satd costs and bits captured. FAST_MODE_DECISION introduced.
46089 2013-05-30 Steve Borho <steve@borho.org>
46091 * source/common/common.cpp, source/common/common.h:
46092 common: add x265_mdate() and fix rdoq option names
46095 2013-05-29 Steve Borho <steve@borho.org>
46097 * source/x265opts.h:
46098 x265: add "no-" options for boolean parameters, cleanup sao and hash
46103 x265: add basic command line help
46107 x265: improve reporting of invalid or extra vars, allow "x265 input
46111 * source/encoder/motion.cpp, source/encoder/motion.h:
46112 motion: introduce infrastructure for sub-sampled SAD
46114 When performing a motion search for a block taller than 12 pixels
46115 (16 or more) we want to use sub-sampled SAD, meaning we only measure
46116 every other row of the block. Normally one would do this by halving
46117 the number of rows and doubling the stride, and doubling the output
46118 SAD result but we have two caveats:
46120 1 - our sad_x3 and sad_x4 primitives have hard-coded fenc strides
46121 (FENC_STRIDE) and thus we cannot subsample the fenc block by
46122 doubling stride. Instead we have to actually subsample the block and
46123 store it in a buffer with FENC_STRIDE, which I've done in this
46124 commit. Now fencSad will always point to a buffer with FENC_STRIDE,
46125 and if this->subsample == 1, the buffer is subsampled.
46127 2 - since the SAD costs never leave this function, we do not have to
46128 shift up our sad results by one bit to account for the subsampling.
46129 The subpel refine step will remeasure with non-subsampled SATD and
46130 thus we don't care what the best SAD cost actually was (only that it
46131 was the best). The only place where we need to account for
46132 subsampling is in the SAD_THRESH macro. It must shift the sad cost
46133 up by this->subsample bits.
46135 Steps remaining (all to be done within #if SUBSAMPLE_SAD
46137 1 - Replace fenc with fencSad for all sad(), sad_x3(), sad_x4()
46138 calls 2 - shift the luma stride by this->subsample for sad(),
46139 sad_x3() and sad_x4() 3 - shift up SAD cost by this->subsample for
46140 SAD_THREAD checks 4 - make sure all the changes from 1..3 have no
46141 effect on SATD calls 5 - test, we should see a small quality loss
46142 and an ME perf gain when enabled
46145 * source/CMakeLists.txt:
46146 gcc: add openmp flags for gcc and icl
46149 * source/Lib/TLibEncoder/TEncSlice.cpp:
46150 TEncSlice: disable allocation and usage of events if numThreads == 1
46153 2013-05-23 Min Chen <chenm003@163.com>
46155 * source/Lib/TLibEncoder/TEncSlice.cpp:
46156 thread: improvement performance based on replace iFinish by Event
46157 --- source/Lib/TLibEncoder/TEncSlice.cpp | 41
46158 ++++++++++++++++++++++++++------- 1 files changed, 32 insertions(+),
46162 * source/CMakeLists.txt, source/Lib/TLibEncoder/TEncCu.cpp,
46163 source/Lib/TLibEncoder/TEncSlice.cpp:
46164 thread: the first worked version, turn on in WPP mode only
46167 * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg,
46168 source/Lib/TLibCommon/TComSlice.h,
46169 source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
46170 source/Lib/TLibEncoder/TEncGOP.cpp,
46171 source/Lib/TLibEncoder/TEncSearch.cpp,
46172 source/Lib/TLibEncoder/TEncSearch.h,
46173 source/Lib/TLibEncoder/TEncSlice.cpp,
46174 source/Lib/TLibEncoder/TEncSlice.h,
46175 source/Lib/TLibEncoder/TEncTop.cpp,
46176 source/Lib/TLibEncoder/TEncTop.h:
46177 thread: modify m_pcTrQuant to every thread, [BROKEN
46179 --- source/Lib/TLibCommon/TComSlice.h | 5 -----
46180 source/Lib/TLibEncoder/TEncCu.cpp | 3 ++-
46181 source/Lib/TLibEncoder/TEncCu.h | 1 +
46182 source/Lib/TLibEncoder/TEncGOP.cpp | 23 +++++++++++++++--------
46183 source/Lib/TLibEncoder/TEncSearch.cpp | 3 +--
46184 source/Lib/TLibEncoder/TEncSearch.h | 2 +-
46185 source/Lib/TLibEncoder/TEncSlice.cpp | 22 +++++++++++++++++++---
46186 source/Lib/TLibEncoder/TEncSlice.h | 2 +-
46187 source/Lib/TLibEncoder/TEncTop.cpp | 26 +++++++++++++-------------
46188 source/Lib/TLibEncoder/TEncTop.h | 4 ++-- 10 files changed, 55
46189 insertions(+), 36 deletions(-)
46192 2013-05-29 Steve Borho <steve@borho.org>
46194 * build/linux/batch.py:
46195 update batch.py to use x265.exe
46199 x265: destroy cliopt before checking for leaks (x265.exe now leak
46203 * source/encoder/encoder.cpp:
46204 encoder: destroy YUV buffers before deleting them
46207 * source/encoder/encoder.cpp:
46208 encoder: properly release reconstructed image buffers at close
46212 x265: cleanup library statics before exit, prevent leak reports
46215 * source/encoder/encoder.h:
46216 encoder: preallocate room in NAL containers
46219 * source/encoder/encoder.cpp, source/encoder/encoder.h:
46220 encoder: write output packets directly into std::string buffer
46223 * source/encoder/motion.cpp:
46224 motion: check motion candidates even for star search
46227 * source/encoder/motion.cpp:
46228 motion: use sad_x4 for raster search
46231 2013-05-29 Min Chen <chenm003@163.com>
46233 * source/encoder/encoder.cpp, source/x265.h, source/x265opts.h:
46234 x265: new option hash
46235 --- source/encoder/encoder.cpp | 2 +- source/x265.h | 3 +++
46236 source/x265opts.h | 1 + 3 files changed, 5 insertions(+), 1
46240 * source/encoder/encoder.cpp, source/encoder/encoder.h:
46241 x265: fix bug in nal write
46242 --- source/encoder/encoder.cpp | 6 +++++- source/encoder/encoder.h |
46243 1 + 2 files changed, 6 insertions(+), 1 deletions(-)
46246 2013-05-29 Steve Borho <steve@borho.org>
46248 * source/Lib/TLibEncoder/TEncCu.cpp,
46249 source/Lib/TLibEncoder/TEncSearch.cpp, source/PPA/ppaCPUEvents.h:
46250 ppa: tweak PPA events to extract more useful detail about threading
46254 x265: fix integer argument parsing
46257 * source/Lib/TLibEncoder/TEncCu.cpp, source/PPA/ppaCPUEvents.h:
46258 TEncCu: add separate PPA event for xCalcRDCostIntra
46261 * source/Lib/TLibEncoder/TEncCu.cpp, source/PPA/ppa.h,
46262 source/PPA/ppaCPUEvents.h:
46263 TEncCU: allow PPA to show recursive depth to xCompressCU
46266 * source/encoder/CMakeLists.txt:
46267 cmake: fix display of TLibEncoder headers
46270 * source/common/common.cpp, source/x265.cpp:
46271 common: improve the logging of configuration
46274 2013-05-28 Steve Borho <steve@borho.org>
46277 x265: report total elapsed time
46280 2013-05-29 Deepthi <Deepthi>
46285 * source/CMakeLists.txt, source/Lib/TLibEncoder/TEncCu.cpp:
46286 Early Partition Decision macro removed - the xCompressCU version has
46287 been commented out with a warning.
46290 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
46291 Cleanup - early exit
46294 2013-05-28 Deepthi <Deepthi>
46299 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
46300 Early exit reloaded.
46303 2013-05-27 Deepthi <Deepthi>
46305 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
46306 Adding CalcRDCostIntra
46309 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
46310 Separating out analysis structure from mode decision
46313 2013-05-28 Steve Borho <steve@borho.org>
46315 * source/encoder/motion.cpp:
46316 motion: hoist two-point early out out of function
46319 * source/encoder/motion.cpp:
46320 motion: convert two-point search into a table lookup
46323 * source/common/common.h, source/encoder/encoder.cpp:
46327 * source/Lib/TLibCommon/TComRom.cpp,
46328 source/Lib/TLibEncoder/TEncAnalyze.h,
46329 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/common.h,
46330 source/encoder/encoder.cpp:
46331 common: cleanup cycle counter, disable by default
46334 * source/common/common.h, source/encoder/motion.cpp:
46335 motion: rename some macros, enable sad_x4
46338 * source/encoder/encoder.cpp:
46339 encoder: use osstream.write() instead of << which appears to be zero
46343 2013-05-28 ggopu <ggopu>
46345 * source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
46346 source/Lib/TLibEncoder/TEncAnalyze.h,
46347 source/Lib/TLibEncoder/TEncSearch.cpp, source/common/common.h:
46348 Implemented the Cycle Count Calculation for Motion Estimation
46351 * source/common/common.h, source/encoder/motion.cpp:
46352 sad_x4 Implementation for Star Search
46355 2013-05-27 Steve Borho <steve@borho.org>
46357 * source/common/CMakeLists.txt, source/encoder/CMakeLists.txt:
46358 cmake: minor cleanups
46361 2013-05-27 Min Chen <chenm003@163.com>
46363 * source/VectorClass/vectori128.h, source/common/CMakeLists.txt,
46364 source/encoder/CMakeLists.txt:
46366 --- source/VectorClass/vectori128.h | 2 +-
46367 source/common/CMakeLists.txt | 3 ++- source/encoder/CMakeLists.txt |
46368 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-)
46371 2013-05-27 Steve Borho <steve@borho.org>
46374 x265: fix eoln mangling
46377 2013-05-27 praveentiwari <praveentiwari>
46379 * source/common/vec/macroblock.inc:
46380 .60x more performance gain for partailButterfly4 intrinsic version
46383 2013-05-26 Deepthi <Deepthi>
46385 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
46386 Adding CalcRDCostInter
46389 2013-05-25 Steve Borho <steve@borho.org>
46391 * source/encoder/encoder.cpp, source/x265.cpp:
46392 x265: encoder_all_I.cfg output now matches x265 -i1 --sao 1
46394 SAO was never disabled in the I frame config, so must be enabled to
46395 get the exact same bitstream
46398 * source/encoder/encoder.cpp:
46399 x265: I15P config now matches bit for bit with x265-cli
46402 * source/Lib/TLibEncoder/TEncGOP.cpp, source/encoder/encoder.cpp,
46403 source/encoder/encoder.h:
46404 x265: resolve some bitstream differences between CLI apps
46407 * source/TestForChecking_BadCommit.bat,
46408 source/tools/TestForChecking_BadCommit.bat:
46409 move regression batch file into tools folder
46416 * source/encoder/encoder.cpp, source/x265.cpp:
46417 encoder: correct NAL counts and a few other issues
46419 Byte count difference between the two CLI programs is now 2
46422 * source/encoder/encoder.cpp, source/encoder/encoder.h,
46424 encoder: plausible NAL write routines
46428 x265: enable NAL write functions
46431 * source/Lib/TLibCommon/CommonDef.h, source/common/common.h,
46432 source/x265.cpp, source/x265main.cpp:
46433 x265: move NVM macros to common.h
46436 * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/NAL.h,
46437 source/Lib/TLibCommon/TComSlice.h, source/x265.cpp, source/x265.h:
46438 x265: move NalUnitType from CommonDef.h to public x265.h
46441 * source/CMakeLists.txt, source/input/yuv.cpp:
46442 x265: more warnings cleanups
46445 * source/Lib/TLibEncoder/TEncGOP.cpp:
46446 TEncGOP: add missing semi-colons after PPA macros
46449 * source/input/yuv.cpp:
46450 x265: more compiler warnings fixes
46453 * source/test/CMakeLists.txt:
46454 cmake: test benches only need common.lib
46457 * source/input/y4m.cpp, source/input/y4m.h, source/x265.cpp:
46458 x265: fix compiler warnings that were accidentally hidden
46461 * source/CMakeLists.txt, source/Lib/CMakeLists.txt,
46462 source/common/CMakeLists.txt, source/encoder/CMakeLists.txt,
46463 source/test/CMakeLists.txt:
46464 cmake: merge TLibCommon into common.lib, TLibEncoder into
46467 This fixes link issues with GCC, and clarifies the project
46471 * source/x265.cpp, source/x265opts.h:
46472 x265opt: add help strings to CLI help output
46475 * source/x265opts.h:
46476 x265opt: more tuning of command line options
46479 * source/CMakeLists.txt:
46480 cmake: provide version number to x265.cpp
46483 * source/common/primitives.cpp, source/encoder/encoder.cpp:
46484 move x265_cleanup into the encoder/ folder, fixes link references
46487 * source/Lib/CMakeLists.txt, source/encoder/CMakeLists.txt:
46488 cmake: split HM into TLibEncoder and TLibCommon
46491 * source/CMakeLists.txt, source/common/CMakeLists.txt,
46492 source/common/IntraPred.cpp, source/common/TShortYUV.cpp,
46493 source/common/TShortYUV.h, source/common/butterfly.h,
46494 source/common/common.cpp, source/common/common.h,
46495 source/common/ipfilter.cpp, source/common/macroblock.cpp,
46496 source/common/md5.cpp, source/common/md5.h, source/common/pixel.cpp,
46497 source/common/primitives.cpp, source/common/primitives.h,
46498 source/common/threading.cpp, source/common/threading.h,
46499 source/common/threadpool.cpp, source/common/threadpool.h,
46500 source/common/vec/CMakeLists.txt, source/common/vec/avx.cpp,
46501 source/common/vec/avx2.cpp, source/common/vec/blockcopy.inc,
46502 source/common/vec/intrapred.inc, source/common/vec/ipfilter.inc,
46503 source/common/vec/ipfilter16.inc, source/common/vec/ipfilter8.inc,
46504 source/common/vec/macroblock.inc, source/common/vec/pixel.inc,
46505 source/common/vec/pixel16.inc, source/common/vec/pixel8.inc,
46506 source/common/vec/sse2.cpp, source/common/vec/sse3.cpp,
46507 source/common/vec/sse41.cpp, source/common/vec/sse42.cpp,
46508 source/common/vec/ssse3.cpp, source/common/vec/vec-primitives.cpp,
46509 source/common/vec/vecprimitives.inc,
46510 source/common/x86/CMakeLists.txt, source/common/x86/asm-
46511 primitives.cpp, source/common/x86/const-a.asm,
46512 source/common/x86/cpu-a.asm, source/common/x86/pixel-32.asm,
46513 source/common/x86/pixel-a.asm, source/common/x86/pixel.h,
46514 source/common/x86/sad-a.asm, source/common/x86/x86inc.asm,
46515 source/common/x86/x86util.asm, source/encoder/CMakeLists.txt,
46516 source/encoder/IntraPred.cpp, source/encoder/TShortYUV.cpp,
46517 source/encoder/TShortYUV.h, source/encoder/butterfly.h,
46518 source/encoder/common.cpp, source/encoder/common.h,
46519 source/encoder/ipfilter.cpp, source/encoder/macroblock.cpp,
46520 source/encoder/md5.cpp, source/encoder/md5.h,
46521 source/encoder/pixel.cpp, source/encoder/primitives.cpp,
46522 source/encoder/primitives.h, source/encoder/threading.cpp,
46523 source/encoder/threading.h, source/encoder/threadpool.cpp,
46524 source/encoder/threadpool.h, source/encoder/vec/CMakeLists.txt,
46525 source/encoder/vec/avx.cpp, source/encoder/vec/avx2.cpp,
46526 source/encoder/vec/blockcopy.inc, source/encoder/vec/intrapred.inc,
46527 source/encoder/vec/ipfilter.inc, source/encoder/vec/ipfilter16.inc,
46528 source/encoder/vec/ipfilter8.inc, source/encoder/vec/macroblock.inc,
46529 source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc,
46530 source/encoder/vec/pixel8.inc, source/encoder/vec/sse2.cpp,
46531 source/encoder/vec/sse3.cpp, source/encoder/vec/sse41.cpp,
46532 source/encoder/vec/sse42.cpp, source/encoder/vec/ssse3.cpp,
46533 source/encoder/vec/vec-primitives.cpp,
46534 source/encoder/vec/vecprimitives.inc,
46535 source/encoder/x86/CMakeLists.txt, source/encoder/x86/asm-
46536 primitives.cpp, source/encoder/x86/const-a.asm,
46537 source/encoder/x86/cpu-a.asm, source/encoder/x86/pixel-32.asm,
46538 source/encoder/x86/pixel-a.asm, source/encoder/x86/pixel.h,
46539 source/encoder/x86/sad-a.asm, source/encoder/x86/x86inc.asm,
46540 source/encoder/x86/x86util.asm, source/test/CMakeLists.txt:
46541 directory re-org, move primitives and infrastructure into common/
46544 This encoder/common split is also how x264 has its code arranged.
46546 common - performance primitives, threading, low level features
46547 encoder - analysis, mode decision, cabac, high level features
46549 General rules: 1. Things we're replacing from TLibCommon/ go in
46550 common/ 2. Things we're replacing from TLibEncoder/ go in encoder/
46553 2013-05-25 Deepthi <Deepthi>
46555 * source/Lib/TLibEncoder/TEncCu.cpp:
46556 More if - I_slice checks removed
46559 * source/Lib/TLibEncoder/TEncCu.cpp:
46560 Removing redundant if-I_slice checks
46563 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
46564 A separate path for Intra Slice Analysis
46567 * source/Lib/TLibEncoder/TEncCu.cpp:
46568 POinters for each NxN partition
46571 * source/Lib/TLibEncoder/TEncCu.cpp:
46572 This code snippet is baffling - no NxN partitions allowed at any
46573 level for inter-CUs.
46576 * source/Lib/TLibEncoder/TEncCu.cpp:
46580 * source/Lib/TLibEncoder/TEncCu.cpp:
46581 Removing PCM and AMP from EARLY_PARTITION.
46584 * source/Lib/TLibEncoder/TEncCu.cpp:
46585 Done experimenting - lets clean up and start afresh.
46588 * source/Lib/TLibEncoder/TEncCu.cpp:
46592 * source/Lib/TLibEncoder/TEncCu.cpp:
46593 Bug fix for no EARLY_DECISION path. The difference between #ifndef
46597 2013-05-24 Deepthi <Deepthi>
46599 * source/Lib/TLibEncoder/TEncCu.cpp:
46600 Eliminating repetitive cost checks for 4 NxN partitions
46603 2013-05-24 Steve Borho <steve@borho.org>
46605 * source/encoder/encoder.cpp:
46606 encoder: correct the flush argument to TEncTop::encoder()
46609 * source/Lib/TLibEncoder/TEncGOP.cpp:
46610 TEncGOP: use less horizontal space to print per-frame PSNR
46613 * source/encoder/encoder.cpp:
46614 encoder: reorder some lines, should have no effect
46617 * source/Lib/TLibEncoder/TEncGOP.cpp, source/PPA/ppaCPUEvents.h:
46618 ppa: add wrapping event for loop filters
46622 x265: combine two log lines, remove bitstream filename (not
46626 * source/encoder/common.cpp:
46627 common: change more defaults to match I15P
46630 * source/encoder/encoder.cpp, source/encoder/encoder.h:
46631 encoder: pull in really ugly GOP intialization/validation code from
46634 This all goes away once we have a proper lookahead
46637 * source/encoder/common.cpp:
46638 common: fixup default params
46641 * source/Lib/TLibEncoder/TEncTop.cpp:
46642 nits, no code change
46646 x265: fix input file arg indexing
46649 2013-05-25 ShinYee Chung <shinyee@multicorewareinc.com>
46651 * source/encoder/vec/intrapred.inc:
46652 intra: Fix compile warning for HIGH_BIT_DEPTH (-Werror=shadow).
46655 * source/encoder/vec/intrapred.inc:
46656 intra: Fix compile warning for HIGH_BIT_DEPTH (-Werror=unused-but-
46660 * source/encoder/vec/intrapred.inc:
46661 intra: Fix vector conversion errors.
46663 source/encoder/vec/intrapred.inc:570:66: error: conversion from
46664 ‘Vec128b’ to non-scalar type ‘Vec8s’ requested Vec8s
46665 v_topRow = load_partial(const_int(8), &pSrc[-srcStride]); // topRow
46671 x265: Fix compile error due to undeclared strncmp function.
46674 2013-05-24 ShinYee Chung <shinyee@multicorewareinc.com>
46676 * source/encoder/motion.h:
46677 motion: Fix compile warning due to -Wparentheses.
46680 2013-05-23 ShinYee Chung <shinyee@multicorewareinc.com>
46682 * source/encoder/vec/intrapred.inc:
46683 intrapred: Fix compile warnings/errors due to -Wmaybe-uninitialized.
46686 2013-05-24 Steve Borho <steve@borho.org>
46689 x265: more debugging
46692 * source/x265.cpp, source/x265opts.h:
46693 x265: more work on CLI options
46696 * source/CMakeLists.txt, source/x265.cpp, source/x265opts.h:
46697 x265: add getopt() to new CLI app, tune short flags to match x264
46700 * source/Lib/TLibEncoder/TEncCu.cpp:
46701 re-apply bug fix, there must have been a bad merge somewhere
46704 * Merged in deepthidevaki/xhevc_deepthid (pull request #170)
46706 IntraPredAng 16x16 with all modes
46709 2013-05-24 Deepthi Devaki <Deepthi Devaki>
46711 * source/encoder/vec/intrapred.inc:
46715 * source/encoder/vec/intrapred.inc:
46716 IntraPredAng 16x16 with all modes
46719 * source/VectorClass/vectori128.h:
46720 ForceInline few more functions in vectorclass
46723 * build/nmake/make-solutions.bat:
46727 * source/encoder/vec/intrapred.inc:
46728 IntraPredAng16x16 few modes, not getting called yet, shall be
46729 included on completion
46732 2013-05-24 nandaku2 <deepthi@multicorewareinc.com>
46734 * Merged in praveentiwari/xhevc_praveent (pull request #169)
46736 Added logic to avoid saturation in partialButterfly4 intrinsic
46740 2013-05-24 praveentiwari <praveentiwari>
46742 * source/encoder/vec/macroblock.inc:
46743 Added logic to avoid saturation in partialButterfly4 intrinsic
46747 * source/encoder/vec/macroblock.inc:
46748 Removed unused vectors from partialButterflyInverse32 code
46751 * source/encoder/vec/macroblock.inc:
46752 Removed unused vectors from partialButterflyInverse16
46755 * source/encoder/vec/macroblock.inc:
46756 Removed unused vectore from partialButterflyInvers8 code
46759 * source/encoder/vec/macroblock.inc:
46760 optimized saturation mechanism in partialButterflyInvers16 vector
46764 * source/encoder/vec/macroblock.inc:
46765 Removed unnecessary computation from partialButterflyInverse4 vector
46769 * source/encoder/vec/macroblock.inc:
46770 changed saturation mechanism for partialButterflyInverse8 vector
46774 2013-05-24 Deepthi <Deepthi>
46779 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
46780 Storing NxN CU's at each depth
46783 * source/Lib/TLibEncoder/TEncCu.cpp:
46784 Bug fix for m_NxNCU
46787 * source/Lib/TLibEncoder/TEncCu.cpp:
46788 More cleanup; Rmeoving CheckBestMode out of CheckInterCost
46791 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
46792 Cleanup: Remove extra arguments from xCheckRDCostInter/Intra
46795 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
46796 Adding data structures for NxN information
46799 2013-05-24 praveentiwari <praveentiwari>
46801 * source/encoder/vec/macroblock.inc:
46802 Changed packing mechanism for partialButterfly8 intrinsic version
46805 2013-05-24 praveen Tiwari <praveen@multicorewareinc.com>
46807 * Merged multicoreware/xhevc into default
46810 2013-05-24 praveentiwari <praveentiwari>
46812 * source/encoder/vec/macroblock.inc:
46813 Removed unnecessary computation from partialButterflyInverse32
46816 2013-05-24 praveen Tiwari <praveen@multicorewareinc.com>
46818 * Merged multicoreware/xhevc into default
46821 * build/nmake/make-solutions.bat:
46822 Merged multicoreware/xhevc into default
46825 2013-05-23 praveen Tiwari <praveen@multicorewareinc.com>
46827 * Merged multicoreware/xhevc into default
46830 * Merged multicoreware/xhevc into default
46833 2013-05-24 Deepthi Devaki <Deepthi Devaki>
46835 * source/encoder/vec/intrapred.inc:
46836 Fixed build for HIGH_BIT_DEPTH enabled
46839 2013-05-23 Steve Borho <steve@borho.org>
46841 * source/encoder/motion.cpp:
46842 motion: fix star search's raster step
46844 tmv's loop range covers the entire search area. The search origin
46845 should not be added to it.
46848 * source/encoder/encoder.cpp, source/encoder/encoder.h:
46849 encoder: hard-code our simple P frame GOP structure
46851 It will be the default GOP structure, but "All I" can be selected
46852 simply by adding --keyint 1 option. Will add another option for
46856 * source/encoder/vec/CMakeLists.txt, source/encoder/vec/vec-
46858 cmake: prevent VC9 and VC10 from using SSE4, fixes aligned move
46862 * source/Lib/TLibCommon/TComPrediction.cpp:
46866 * source/encoder/vec/macroblock.inc:
46867 macroblock: do not use SSE4 intrinsics for lower instrset builds
46870 * source/encoder/vec/ipfilter8.inc:
46871 ipfilter: use immediate load-partial, fixes VC9 x64 crashes
46874 * source/encoder/vec/macroblock.inc:
46875 macroblock: do not use SSE4 intrinsics for lower instrset builds
46878 * source/Lib/TLibCommon/TComPrediction.cpp:
46879 TComPrediction: only allocate extY tmp buffer when necessary, use
46883 * build/nmake/make-solutions.bat:
46884 build: drop nmake script - was only a temp hack for ASM support
46887 * source/Lib/TLibEncoder/TEncSearch.h:
46892 x265: inline the NAL write functions into CLIOptions
46896 x265: include assert.h for VLD validation checks
46899 * source/encoder/motion.h:
46900 motion: manually enforce 16 byte alignment for fenc buffer
46903 2013-05-23 Deepthi <Deepthi>
46905 * source/encoder/vec/macroblock.inc:
46912 2013-05-23 praveen Tiwari <praveen@multicorewareinc.com>
46914 * Merged multicoreware/xhevc into default
46917 2013-05-23 praveentiwari <praveentiwari>
46919 * source/encoder/vec/macroblock.inc:
46920 Intrinsic code for partialButterflyInverse16
46923 2013-05-23 praveen Tiwari <praveen@multicorewareinc.com>
46925 * Merged multicoreware/xhevc into default
46928 2013-05-23 praveentiwari <praveentiwari>
46930 * source/encoder/vec/macroblock.inc:
46931 Intrinsic code for partialButterflyInverse8
46934 2013-04-17 praveen Tiwari <praveen@multicorewareinc.com>
46936 * source/encoder/vec/macroblock.inc:
46937 Merged multicoreware/xhevc into default
46940 2013-05-23 Deepthi Devaki <Deepthi Devaki>
46945 * source/encoder/vec/intrapred.inc:
46946 Improvement in Intra Angular 8x8 vector implementation
46949 2013-05-23 Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
46951 * Merged multicoreware/xhevc into default
46954 2013-05-23 Deepthi Devaki <Deepthi Devaki>
46956 * source/VectorClass/vectori128.h:
46957 ForceInlined a few more functions in vectori128
46960 * source/encoder/vec/intrapred.inc, source/test/intrapredharness.cpp:
46961 IntraPredAng 8x8 HIGH_BIT disabled - with special case
46962 implementation for 8 modes.
46965 2013-05-23 Deepthi <Deepthi>
46967 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
46968 Defining lambda values for Check Best Mode
46971 2013-05-23 Steve Borho <steve@borho.org>
46973 * source/CMakeLists.txt, source/encoder/encoder.cpp,
46974 source/encoder/encoder.h, source/x265.cpp, source/x265.h:
46975 encoder: introduce new cli front-end, to eventually replace x265-cli
46977 cfg/*, x265main, x265cfg, and x265enc will all go away as soon as
46981 2013-05-23 Deepthi <Deepthi>
46986 * source/Lib/TLibCommon/TypeDef.h:
46987 Best value of lambda select set to 0.6
46990 2013-05-22 Steve Borho <steve@borho.org>
46992 * source/Lib/TLibEncoder/TEncSearch.cpp:
46993 TEncSearch: remove my comments from HM source, they were also wrong
46996 * source/encoder/motion.cpp:
46997 motion: better document search shapes
47000 * source/VectorClass/vectorclass.h, source/VectorClass/vectorf128.h,
47001 source/VectorClass/vectori128.h:
47002 vector: disable floating point vector classes, avoids GCC warnings,
47005 vecprimitives.inc:73:1: error: '__m128d selectd(const __m128d&,
47006 const __m128d&, const __m128d&)' conflicts with a previous
47010 * source/encoder/vec/intrapred.inc:
47011 intrapred: fix GCC warnings
47013 intrapred.inc:1340:45: error: conversion from 'Vec16c' to non-scalar
47014 type 'Vec16uc' intrapred.inc:1362:17: error: declaration of 'k'
47015 shadows a previous local
47018 * source/encoder/vec/macroblock.inc:
47019 macroblock: fix GCC warnings again, perhaps line argument should be
47022 macroblock.inc:562:9: error: statement has no effect [-Werror
47026 * source/encoder/encoder.cpp, source/encoder/motion.cpp,
47027 source/encoder/motion.h, source/x265.h, source/x265cfg.cpp:
47028 motion: rename our adapted HM search to "STAR"
47031 * Merged in praveentiwari/xhevc_praveent (pull request #161)
47033 Intrinsic code for partialButterfly8
47036 2013-05-22 praveen Tiwari <praveen@multicorewareinc.com>
47038 * Merged multicoreware/xhevc into default
47041 2013-05-22 praveentiwari <praveentiwari>
47043 * source/encoder/vec/macroblock.inc:
47044 Intrinsic code for partialButterfly8
47047 2013-05-22 Steve Borho <steve@borho.org>
47049 * Merged in deepthidevaki/xhevc_deepthid (pull request #160)
47051 IntraPredAngular 4x4 HIGH_BIT depth enabled
47054 2013-05-22 Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
47056 * Merged multicoreware/xhevc into default
47059 2013-05-22 Deepthi Devaki <Deepthi Devaki>
47061 * source/Lib/TLibCommon/TComPrediction.cpp,
47062 source/encoder/IntraPred.cpp, source/encoder/primitives.h,
47063 source/encoder/vec/intrapred.inc, source/test/intrapredharness.cpp:
47064 IntraPredAngular 4x4 HIGH_BIT depth enabled
47067 * source/encoder/vec/vecprimitives.inc:
47068 Fix back slash in #include
47071 2013-05-22 Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
47073 * Merged multicoreware/xhevc into default
47076 2013-05-21 Deepthi Devaki <Deepthi Devaki>
47081 * source/encoder/IntraPred.cpp, source/encoder/vec/intrapred.inc,
47082 source/encoder/vec/vecprimitives.inc,
47083 source/test/intrapredharness.cpp:
47084 xPredIntraAng 4x4 HIGH_BIT disabled
47087 * source/VectorClass/vectori128.h, source/test/intrapredharness.cpp:
47088 Force inline functions in vectori128.h
47091 2013-05-22 Steve Borho <steve@borho.org>
47093 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/motion.cpp,
47094 source/encoder/motion.h:
47095 motion: use square pattern for subpel refinement
47098 * source/encoder/motion.cpp:
47099 motion: allow fpel star refinement if two point search finds new
47103 2013-05-22 ggopu <ggopu>
47105 * source/Lib/TLibEncoder/TEncSearch.cpp:
47106 Temporary fix to crash
47109 2013-05-22 Steve Borho <steve@borho.org>
47111 * source/encoder/motion.cpp:
47112 motion: use COPY2_IF_LT in subpel refine, simplifies logic
47117 * source/encoder/motion.cpp:
47118 motion: if first subpel iteration found no improvement, skip later
47121 Should have no coding effect, but should help perf slightly.
47124 2013-05-21 Steve Borho <steve@borho.org>
47126 * source/encoder/motion.cpp:
47127 motion: only adjust subpel search center once per iteration
47129 Basing the offsets from BMV was allowing the search to wander away
47130 on less fruitful paths. Best to wait for all results to come in
47131 before moving the search center point.
47134 2013-05-22 ShinYee Chung <shinyee@multicorewareinc.com>
47136 * source/encoder/encoder.h:
47137 Encoder: Fix enum accesses.
47140 * source/encoder/motion.cpp:
47141 motion: Fix compile warning/error due to shadow variable in COST_MV
47145 * source/Lib/TLibEncoder/TEncTop.cpp:
47146 TLibEncoder: Fix compile error due to undeclared INT_MAX.
47149 2013-05-21 Steve Borho <steve@borho.org>
47151 * source/encoder/common.cpp, source/encoder/encoder.cpp,
47152 source/x265.h, source/x265cfg.cpp, source/x265cfg.h,
47153 source/x265enc.cpp:
47154 api: further trim x265_param_t, remove PCM and rate control and
47157 We will add these back later as we optimize and/or adapt these
47161 * source/encoder/common.cpp, source/encoder/encoder.cpp,
47162 source/x265cfg.cpp:
47163 encoder: plumb in a parse function
47166 * source/Lib/TLibEncoder/TEncCfg.h:
47167 TEncCfg: white-space nit
47170 * source/Lib/TLibEncoder/TEncCfg.h,
47171 source/Lib/TLibEncoder/TEncTop.cpp,
47172 source/Lib/TLibEncoder/TEncTop.h, source/encoder/encoder.cpp,
47173 source/x265enc.cpp:
47174 encoder: simply encode() function signature, auto-detect frames to
47178 * source/Lib/TLibEncoder/TEncTop.cpp:
47179 TEncTop: simplify destroy method slightly
47182 2013-05-21 Min Chen <chenm003@163.com>
47184 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
47185 cleanup: remove unused pointer from TEncCu
47187 From 28a48831f9571ff030574c4e28c75e4afc8105f3 Mon Sep 17 00:00:00
47189 --- source/Lib/TLibEncoder/TEncCu.cpp | 3 ---
47190 source/Lib/TLibEncoder/TEncCu.h | 3 --- 2 files changed, 0
47191 insertions(+), 6 deletions(-)
47194 2013-05-20 Min Chen <chenm003@163.com>
47196 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
47197 source/Lib/TLibEncoder/TEncGOP.cpp,
47198 source/Lib/TLibEncoder/TEncSearch.h,
47199 source/Lib/TLibEncoder/TEncSlice.cpp,
47200 source/Lib/TLibEncoder/TEncSlice.h,
47201 source/Lib/TLibEncoder/TEncTop.cpp,
47202 source/Lib/TLibEncoder/TEncTop.h:
47203 thread: [BITS CHANGED] split m_pcRDGoOnSbacCoder into own thread
47204 --- source/Lib/TLibEncoder/TEncCu.cpp | 3 ++-
47205 source/Lib/TLibEncoder/TEncCu.h | 2 +-
47206 source/Lib/TLibEncoder/TEncGOP.cpp | 4 ++--
47207 source/Lib/TLibEncoder/TEncSearch.h | 2 +-
47208 source/Lib/TLibEncoder/TEncSlice.cpp | 7 ++++---
47209 source/Lib/TLibEncoder/TEncSlice.h | 2 +-
47210 source/Lib/TLibEncoder/TEncTop.cpp | 6 +++---
47211 source/Lib/TLibEncoder/TEncTop.h | 4 ++-- 8 files changed, 16
47212 insertions(+), 14 deletions(-)
47215 2013-05-21 Steve Borho <steve@borho.org>
47217 * source/encoder/encoder.cpp, source/encoder/encoder.h:
47218 encoder: remove some includes only used by new main
47221 * source/Lib/TLibEncoder/TEncTop.cpp:
47222 TEncTop: call destroy() on CU encoders before deleting them
47224 HM class destructors do not necessarily free memory. This fixes some
47228 * source/Lib/TLibEncoder/TEncCfg.h, source/encoder/encoder.cpp,
47229 source/x265enc.cpp:
47230 cruft: remove setFrameSkip/getFrameSkip() from TencCfg
47232 The encoder should be unaware of file I/O properties.
47233 setFramesToBeEncoded() should also be removed, but the encoder needs
47234 the last frame number in order to handle edge cases at the end of
47238 * source/encoder/encoder.h:
47239 encoder: remove obsolete cruft, assign default level and profile
47242 * source/encoder/encoder.cpp, source/encoder/encoder.h:
47243 encoder: improve defaults to match current behavior, simplify
47246 * source/x265cfg.cpp:
47250 * source/encoder/vec/macroblock.inc:
47251 macroblock: tabs to spaces
47254 * source/encoder/vec/macroblock.inc:
47255 Merged in praveentiwari/xhevc_praveent (pull request #159)
47257 Intrinsic code for partialButterflyInverse4
47260 2013-05-21 praveentiwari <praveentiwari>
47262 * source/encoder/vec/macroblock.inc:
47263 Intrinsic code for partialButterflyInverse4
47266 * source/CMakeLists.txt, source/encoder/vec/macroblock.inc,
47267 source/test/filterharness.cpp, source/test/mbdstharness.cpp,
47268 source/test/testbench.cpp:
47269 Backed out changeset: 6a5d35fd39fb
47272 * source/CMakeLists.txt, source/encoder/vec/macroblock.inc,
47273 source/test/filterharness.cpp, source/test/mbdstharness.cpp,
47274 source/test/testbench.cpp:
47275 Intrinsic code for partialButterflyInverse4
47278 2013-05-21 Steve Borho <steve@borho.org>
47280 * source/encoder/motion.cpp:
47281 motion: do not check candidate MVs for HM style search
47283 No compelling reason for this, except to help debug differences
47286 * source/Lib/TLibEncoder/TEncSearch.cpp:
47287 TEncSearch: disable SAD subsampling while we debug ME
47289 It's not clear we ever want to turn this back on, at least before
47290 we've added subsampling to x265 ME
47293 * source/Lib/TLibEncoder/TEncSearch.cpp:
47294 TEncSearch: give the real MVP to x265 ME, not just zero
47296 This is the bug that has been preventing UMH from working as
47299 DIA: 461.0320 31.4553 36.0712 36.1111 HEX: 457.8880 31.4728 36.0830
47300 36.1282 UMH: 457.3520 31.4723 36.1079 36.1460 HM: 458.6560 31.4827
47301 36.1382 36.1273 ORIG: 456.0960 31.5091 36.1377 36.1228
47303 Our HM version still has a bug; need to find it
47306 * source/encoder/motion.cpp:
47307 motion: use MV 0 prediction as search start if cheaper than MVP
47310 * source/Lib/TLibEncoder/TEncSearch.cpp:
47311 TEncSearch: use actual enum for selecting x265 ME routine
47314 * source/encoder/motion.cpp:
47315 motion: remove hard-coded mode selection
47318 * source/encoder/motion.cpp, source/encoder/motion.h:
47319 motion: fix bugs in my changes, add relevant comments for future
47323 * source/encoder/motion.cpp, source/encoder/motion.h,
47324 source/encoder/mv.h:
47325 motion: simplify HM search method code
47328 * source/encoder/common.cpp, source/x265.h:
47329 api: add original HM search as valid configurable option
47332 * Merged in ggopu/ggopu_xhevc (pull request #158)
47334 Implemented the HM ME to Motion.cpp
47337 2013-05-21 ggopu <ggopu>
47339 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/motion.cpp,
47340 source/encoder/motion.h, source/encoder/mv.h:
47341 Implemented the HM ME to Motion.cpp
47344 * source/Lib/TLibEncoder/TEncSearch.cpp:
47348 * source/encoder/motion.cpp, source/encoder/motion.h,
47349 source/encoder/mv.h:
47350 Implemented HM ME to Motion.cpp
47353 2013-05-21 Steve Borho <steve@borho.org>
47355 * source/encoder/encoder.cpp:
47356 encoder: fix another shadowed variable warning
47359 * source/encoder/CMakeLists.txt, source/encoder/encoder.cpp:
47360 encoder: fix GCC compiler warnings
47363 * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg,
47364 source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCfg.h,
47365 source/Lib/TLibEncoder/TEncCu.cpp,
47366 source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/common.cpp,
47367 source/encoder/encoder.cpp, source/x265.h, source/x265cfg.cpp,
47368 source/x265enc.cpp:
47369 api: rename enableAMPRefine to useRectInter
47371 This configurable was mis-named. It has nothing to do with AMP, it
47372 is disabling the use of rectangular inter prediction modes (which
47373 has the side-effect of also disabling AMP since AMP is not checked
47374 if the rectangular mode of similar shape was not checked).
47376 This configurable should never have been in TComSlice since the flag
47377 is not signaled in the slice header like AMP activation is.
47380 * source/encoder/vec/macroblock.inc:
47381 macroblock: fix GCC compiler warning
47383 macroblock.inc: In function 'void
47384 {anonymous}::partialButterfly4(short int*, short int*, int, int)':
47385 macroblock.inc:1326:12: error: parameter 'line' set but not used
47386 [-Werror=unused-but-set-parameter]
47389 2013-05-21 praveen Tiwari <praveen@multicorewareinc.com>
47391 * Merged multicoreware/xhevc into default
47394 2013-05-21 praveentiwari <praveentiwari>
47396 * source/Lib/TLibCommon/TComTrQuant.cpp,
47397 source/encoder/vec/macroblock.inc:
47398 Fixed alignment issue for partialButterfly32
47401 2013-05-21 praveen Tiwari <praveen@multicorewareinc.com>
47403 * Merged multicoreware/xhevc into default
47406 2013-05-21 praveentiwari <praveentiwari>
47408 * source/encoder/vec/macroblock.inc:
47409 Fixed encoder crash for partialButterfly32
47412 * source/encoder/vec/macroblock.inc:
47413 Code cleanup for partialButterfly4
47416 2013-05-21 https://mandarmcw <https://mandarmcw@bitbucket.org/mandarmcw/xhevc_mandar1>
47418 * source/TestForChecking_BadCommit.bat:
47419 Test script to find bad commit
47422 2013-05-21 Steve Borho <steve@borho.org>
47424 * source/encoder/CMakeLists.txt, source/encoder/encoder.cpp,
47425 source/encoder/encoder.h:
47426 api: new encoder class and main function
47429 * source/encoder/common.cpp, source/x265cfg.cpp:
47430 api: use new methods to validate and print public params (CHANGES
47433 This changes the look of the output log, but should not change any
47437 * source/encoder/common.cpp, source/encoder/common.h:
47438 common: add new methods for validating and printing the public
47442 * source/x265.h, source/x265cfg.cpp:
47443 api: make iMaxCuDQPDepth a uint32_t, like the other depth settings
47446 2013-05-20 Steve Borho <steve@borho.org>
47448 * source/x265cfg.cpp:
47449 fix HIGH_BIT_DEPTH=1 build
47452 * source/Lib/TLibCommon/ContextModel3DBuffer.h,
47453 source/Lib/TLibCommon/TComPrediction.cpp:
47454 minor nit fixes, no behavior changes
47457 * source/encoder/common.cpp, source/x265.h, source/x265cfg.cpp,
47458 source/x265enc.cpp:
47459 api: remove m_ prefix from x265_param_t data members
47462 2013-05-21 ShinYee Chung <shinyee@multicorewareinc.com>
47464 * source/encoder/vec/macroblock.inc:
47465 Vec: Fix compile warnings/errors due to unused typedef.
47468 2013-05-20 Steve Borho <steve@borho.org>
47470 * source/x265cfg.cpp:
47471 cfg: simplify log header a bit
47474 * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg,
47475 source/encoder/common.cpp, source/x265.h, source/x265cfg.cpp,
47476 source/x265enc.cpp:
47477 cfg: replace MaxCUWidth, MaxCUHeight with single MaxCUSize
47480 * source/x265cfg.cpp:
47481 x265cfg: remove redundant ME name array, white-space cleanups
47484 * source/x265cfg.cpp:
47485 x265cfg: move the default output filename to a better location
47488 * source/encoder/bitcost.cpp, source/encoder/bitcost.h:
47489 bitcost: match BitCost::bitcost() to TComRdCost:getCost() [CHANGES
47492 The HM counts MVD bits in integer, while we were using log2n() and
47493 keeping floats. Our MV costs were smoother across the range of MV's
47494 but this is a false accuracy. Encoding cost is rounded to nearest
47495 bit. This change improves compression efficiency.
47498 * source/x265main.cpp:
47499 main: minor nit cleanups
47502 * source/encoder/vec/macroblock.inc, source/x265.h:
47503 fix GCC compile warnings
47506 2013-05-20 praveentiwari <praveentiwari>
47508 * source/encoder/vec/macroblock.inc:
47509 32bit build issue fix for partialButterfly4 intrinsic function.
47510 Further optimisation.
47513 2013-05-20 sumalatha <sumalatha>
47515 * source/tools/performanceProfiler/Profiler.bat,
47516 source/tools/performanceProfiler/Readme.txt,
47517 source/tools/performanceProfiler/config.txt,
47518 source/tools/performanceProfiler/performanceProfiler.bat:
47519 modified the scripts files to take the application's(.exe) from the
47520 relative path to the curent directory
47523 2013-05-20 Steve Borho <steve@borho.org>
47525 * source/Lib/TLibEncoder/TEncSearch.cpp:
47526 TEncSearch: use x265's optimized bitcost() method for xCheckBestMVP
47528 Minor performance improvement
47531 2013-05-20 Deepthi Devaki <Deepthi Devaki>
47533 * source/Lib/TLibCommon/TComPrediction.cpp:
47534 Fix for compilation error in HIGH_BIT_DEPTH enabled
47537 2013-05-19 Steve Borho <steve@borho.org>
47539 * source/encoder/common.cpp, source/x265.h, source/x265cfg.cpp,
47541 api: further work triming x265_param_t and implementing public API
47544 * source/x265cfg.cpp:
47545 x265cfg: white-space nits
47548 * source/Lib/TLibCommon/TComPicYuv.cpp,
47549 source/Lib/TLibCommon/TComPicYuv.h,
47550 source/Lib/TLibEncoder/TEncTop.cpp,
47551 source/Lib/TLibEncoder/TEncTop.h, source/encoder/common.cpp,
47552 source/input/input.h, source/input/y4m.cpp, source/input/y4m.h,
47553 source/input/yuv.cpp, source/input/yuv.h, source/output/output.h,
47554 source/output/y4m.cpp, source/output/y4m.h, source/output/yuv.cpp,
47555 source/output/yuv.h, source/x265.h, source/x265cfg.h,
47556 source/x265enc.cpp:
47557 api: rename some public structures to follow x264 style, hide some
47560 If I have no idea how a param is configured or used, I removed it
47561 from the public data structure.
47564 * source/Lib/TLibEncoder/TEncSearch.cpp:
47565 TEncSearch: fix comments in xTZ8PointDiamondSearch
47567 Removes one extraneaous if() level by chaining together if() else
47571 * source/encoder/motion.cpp:
47572 Backout 1545:eaaa4edde516 (tested worse in regression suite)
47575 * source/encoder/motion.cpp:
47576 motion: fix GCC shadow variable warning (tmv is used inside COST_MV)
47579 * source/encoder/motion.cpp:
47580 motion: start fpel search at best predictor
47582 HM and x264 both do this, but has uncertain results. Will test in
47583 regression suite with more videos
47586 * source/encoder/motion.cpp:
47587 motion: use roundToFPel() when converting clipped MVP to fpel
47589 x264 does this, and it seems to help compression slightly.
47592 * source/encoder/motion.cpp, source/encoder/mv.h:
47593 motion: only remeasure bmv at fpel if pmv had subpel fractions
47596 * source/encoder/motion.cpp:
47597 motion: remove omv=bmv assignment that x264 UMH does not do
47600 * source/encoder/motion.cpp:
47601 motion: avoid rechecking bestpre
47604 * source/encoder/motion.cpp:
47605 motion: improve UMH comments, add a TODO for further analysis
47608 * source/encoder/motion.cpp:
47609 motion: do not check candidates equal to MVP, clarify prep code
47612 * source/encoder/motion.cpp:
47613 motion: move warning disable to top of file
47616 * source/encoder/motion.cpp:
47617 motion: use x265.h enums for motion search methods
47620 * source/encoder/motion.cpp:
47624 * source/encoder/motion.cpp, source/encoder/mv.h:
47625 mv: explicit notZero() method
47628 2013-05-19 Min Chen <chenm003@163.com>
47630 * source/Lib/TLibEncoder/TEncSlice.cpp,
47631 source/Lib/TLibEncoder/TEncSlice.h,
47632 source/Lib/TLibEncoder/TEncTop.cpp,
47633 source/Lib/TLibEncoder/TEncTop.h:
47634 thread: modify m_pcCuEncoder to every thread
47635 --- source/Lib/TLibEncoder/TEncSlice.cpp | 22 +++++++++++-----------
47636 source/Lib/TLibEncoder/TEncSlice.h | 4 ++--
47637 source/Lib/TLibEncoder/TEncTop.cpp | 8 +++++---
47638 source/Lib/TLibEncoder/TEncTop.h | 4 ++-- 4 files changed, 20
47639 insertions(+), 18 deletions(-)
47642 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
47643 source/Lib/TLibEncoder/TEncSearch.cpp,
47644 source/Lib/TLibEncoder/TEncSearch.h,
47645 source/Lib/TLibEncoder/TEncSlice.cpp,
47646 source/Lib/TLibEncoder/TEncSlice.h,
47647 source/Lib/TLibEncoder/TEncTop.cpp,
47648 source/Lib/TLibEncoder/TEncTop.h:
47649 thread: modify m_pcPredSearch to every thread
47650 --- source/Lib/TLibEncoder/TEncCu.cpp | 2 +-
47651 source/Lib/TLibEncoder/TEncCu.h | 2 ++
47652 source/Lib/TLibEncoder/TEncSearch.cpp | 6 ++----
47653 source/Lib/TLibEncoder/TEncSearch.h | 2 --
47654 source/Lib/TLibEncoder/TEncSlice.cpp | 10 ++++++++--
47655 source/Lib/TLibEncoder/TEncSlice.h | 2 +-
47656 source/Lib/TLibEncoder/TEncTop.cpp | 8 +++++++-
47657 source/Lib/TLibEncoder/TEncTop.h | 7 +++++-- 8 files changed, 26
47658 insertions(+), 13 deletions(-)
47661 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
47662 source/Lib/TLibEncoder/TEncGOP.cpp,
47663 source/Lib/TLibEncoder/TEncGOP.h,
47664 source/Lib/TLibEncoder/TEncSearch.h,
47665 source/Lib/TLibEncoder/TEncSlice.cpp,
47666 source/Lib/TLibEncoder/TEncSlice.h,
47667 source/Lib/TLibEncoder/TEncTop.cpp,
47668 source/Lib/TLibEncoder/TEncTop.h:
47669 thread: modify m_pcEntropyCoder and fix bug in HM when WPP
47670 --- source/Lib/TLibEncoder/TEncCu.cpp | 3 +-
47671 source/Lib/TLibEncoder/TEncCu.h | 1 +
47672 source/Lib/TLibEncoder/TEncGOP.cpp | 122
47673 +++++++++++++++++----------------- source/Lib/TLibEncoder/TEncGOP.h
47674 | 2 +- source/Lib/TLibEncoder/TEncSearch.h | 2 +
47675 source/Lib/TLibEncoder/TEncSlice.cpp | 39 +++++++-----
47676 source/Lib/TLibEncoder/TEncSlice.h | 2 +-
47677 source/Lib/TLibEncoder/TEncTop.cpp | 6 ++-
47678 source/Lib/TLibEncoder/TEncTop.h | 5 +- 9 files changed, 98
47679 insertions(+), 84 deletions(-)
47682 2013-05-19 Steve Borho <steve@borho.org>
47684 * source/encoder/motion.cpp:
47685 motion: do two subpel iterations for hpel and qpel
47687 This will find corner vectors, where previous simple DIA did not.
47688 This catches us up quite a bit:
47690 DIA: 467.8400 31.3870 36.0379 36.0973 HEX: 466.5200 31.3955 36.0604
47691 36.1248 UMH: 463.1120 31.4415 36.1199 36.1584 HM: 456.4880 31.4984
47695 2013-05-18 Steve Borho <steve@borho.org>
47697 * source/encoder/motion.cpp:
47698 motion: use ints for temp vars
47700 Using sub-word integers is usually a perf loss, and opens you up to
47701 wierd overflow bugs.
47704 * source/encoder/motion.cpp:
47705 motion: minor cleanups, no effects
47708 * source/encoder/motion.cpp, source/encoder/mv.h:
47709 motion: convert hex4 to MV, use tmv for checkRange within hex grid
47712 x264 checks tmv there (mv being tested), not bmv (current best mv)
47715 2013-05-18 Min Chen <chenm003@163.com>
47717 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
47718 source/Lib/TLibEncoder/TEncGOP.cpp,
47719 source/Lib/TLibEncoder/TEncSearch.h,
47720 source/Lib/TLibEncoder/TEncSlice.cpp,
47721 source/Lib/TLibEncoder/TEncSlice.h,
47722 source/Lib/TLibEncoder/TEncTop.cpp,
47723 source/Lib/TLibEncoder/TEncTop.h:
47724 thread: [NEED VERIFY] modify logic and remove unused code for
47725 m_pppcRDSbacCoder Conflicts:
47727 source/Lib/TLibEncoder/TEncTop.cpp
47728 --- source/Lib/TLibEncoder/TEncCu.cpp | 5 +++-
47729 source/Lib/TLibEncoder/TEncCu.h | 1 +
47730 source/Lib/TLibEncoder/TEncGOP.cpp | 3 +-
47731 source/Lib/TLibEncoder/TEncSearch.h | 1 +
47732 source/Lib/TLibEncoder/TEncSlice.cpp | 9 ++----
47733 source/Lib/TLibEncoder/TEncSlice.h | 1 -
47734 source/Lib/TLibEncoder/TEncTop.cpp | 46
47735 +++------------------------------ source/Lib/TLibEncoder/TEncTop.h |
47736 6 +--- 8 files changed, 17 insertions(+), 55 deletions(-)
47739 2013-05-18 Steve Borho <steve@borho.org>
47741 * source/encoder/motion.cpp:
47742 motion: adapt "full MB size" check to HEVC CTU
47744 This had no measurable effect, but seemed more correct
47747 * source/encoder/motion.cpp:
47748 motion: fix arguments to CROSS macro in UMH
47751 * source/encoder/motion.cpp:
47752 motion: remove SIMPLE_HEX, the outputs are now the same
47755 * source/encoder/x86/x86util.asm:
47756 asm: fix FENC_STRIDE to HEVC size
47759 * source/encoder/motion.cpp:
47760 motion: remove BITS_MVD again (was resurrected during a merge)
47763 * source/encoder/motion.cpp:
47764 motion: enable SIMPLE_HEX by default, until the "fast" path is
47768 2013-05-18 Min Chen <chenm003@163.com>
47770 * source/Lib/TLibEncoder/TEncSlice.cpp:
47771 thread: avoid reference to m_pppcRDSbacCoder[0][CI_CURR_BEST]
47772 --- source/Lib/TLibEncoder/TEncSlice.cpp | 4 ++-- 1 files changed, 2
47773 insertions(+), 2 deletions(-)
47776 * source/Lib/TLibEncoder/TEncSlice.cpp,
47777 source/Lib/TLibEncoder/TEncSlice.h:
47778 thread: remove unused code for m_pcBufferBinCoderCABACs
47779 --- source/Lib/TLibEncoder/TEncSlice.cpp | 12 ++----------
47780 source/Lib/TLibEncoder/TEncSlice.h | 1 - 2 files changed, 2
47781 insertions(+), 11 deletions(-)
47784 * source/Lib/TLibEncoder/TEncSlice.cpp:
47785 thread: move pppcRDSbacCoder into loop
47786 --- source/Lib/TLibEncoder/TEncSlice.cpp | 8 ++++---- 1 files
47787 changed, 4 insertions(+), 4 deletions(-)
47790 * source/Lib/TLibEncoder/TEncSlice.cpp,
47791 source/Lib/TLibEncoder/TEncSlice.h:
47792 cleanup: remove unused code for pcBufferLowLatSbacCoders
47793 --- source/Lib/TLibEncoder/TEncSlice.cpp | 15 ---------------
47794 source/Lib/TLibEncoder/TEncSlice.h | 2 -- 2 files changed, 0
47795 insertions(+), 17 deletions(-)
47798 * source/Lib/TLibEncoder/TEncCu.cpp:
47799 cleanup: remove unused code
47800 --- source/Lib/TLibEncoder/TEncCu.cpp | 17 ----------------- 1 files
47801 changed, 0 insertions(+), 17 deletions(-)
47804 2013-05-18 Steve Borho <steve@borho.org>
47806 * source/Lib/TLibEncoder/TEncSearch.cpp,
47807 source/Lib/TLibEncoder/TEncSearch.h:
47808 TEncSearch: remove m_fencbuf and SAD primitive use from HM ME
47810 This fixes BIDIR and weighted P prediction
47813 * cfg/encoder_all_I.cfg:
47814 encoder_all_I: nit cleanups
47817 * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg,
47818 source/Lib/TLibEncoder/TEncCfg.h,
47819 source/Lib/TLibEncoder/TEncSearch.cpp,
47820 source/Lib/TLibEncoder/TEncSearch.h,
47821 source/Lib/TLibEncoder/TEncTop.cpp, source/encoder/motion.cpp,
47822 source/encoder/motion.h, source/x265.h, source/x265cfg.cpp,
47823 source/x265enc.cpp:
47824 replace FastSearch configurable with motion search method
47827 * source/encoder/vec/macroblock.inc:
47828 macroblock: disable partialButterfly4, it is failing in the
47832 * source/encoder/motion.cpp:
47836 * source/Lib/TLibCommon/TComDataCU.cpp:
47837 TComDataCU: fix GCC compile warnings
47840 * source/encoder/motion.cpp:
47841 motion: fix GCC compile warnings
47844 * source/encoder/IntraPred.cpp:
47845 intrapred: fix include path again
47848 * source/encoder/IntraPred.cpp, source/encoder/primitives.h:
47849 IntraPred: do not use pointer reference
47851 1 - this is a C++ only construct, and would make ASM opts very
47852 difficult 2 - the pointer value being passed was a temp rvalue, not
47856 2013-05-18 Deepthi <Deepthi>
47858 * source/encoder/vec/macroblock.inc:
47859 Disabling 4 and 32 butterfly intrinsic implementations
47862 * source/Lib/TLibCommon/TComPrediction.cpp:
47863 Remove xPredIntraAngRefBuf from HM - they are now part of
47867 * source/Lib/TLibEncoder/TEncSearch.cpp:
47871 2013-05-17 Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
47873 * Merged multicoreware/xhevc into default
47876 2013-05-16 Deepthi Devaki <Deepthi Devaki>
47881 * source/Lib/TLibCommon/TComPrediction.cpp,
47882 source/encoder/IntraPred.cpp, source/encoder/primitives.h,
47883 source/test/intrapredharness.cpp, source/test/intrapredharness.h:
47884 Unit test for Intra Angular primitives
47887 2013-05-16 Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
47889 * Merged multicoreware/xhevc into default
47892 2013-05-16 Deepthi Devaki <Deepthi Devaki>
47897 * source/Lib/TLibCommon/TComPattern.cpp,
47898 source/Lib/TLibCommon/TComPattern.h,
47899 source/Lib/TLibCommon/TComPrediction.cpp,
47900 source/Lib/TLibCommon/TComPrediction.h,
47901 source/Lib/TLibEncoder/TEncSearch.cpp:
47902 Redesigned intraprediction for angular modes to use buffered
47906 2013-05-18 Steve Borho <steve@borho.org>
47908 * source/encoder/motion.cpp:
47909 motion: make UMH the default (this needs to be a param)
47912 * source/encoder/motion.cpp:
47913 motion: make "optimized" HEX the default now
47916 * source/encoder/motion.cpp:
47917 motion: remove unused BITS_MVD macro
47920 * source/encoder/motion.cpp:
47921 motion: measure MV cost in qpel in COST_MV
47924 2013-05-17 Steve Borho <steve@borho.org>
47926 * source/encoder/motion.cpp:
47927 motion: simplify COST_MV_X4
47930 * source/encoder/motion.cpp:
47931 motion: add range check for subpel refine
47934 * source/encoder/motion.cpp:
47935 motion: cleanup hex and square offset arrays
47938 * source/encoder/motion.cpp:
47939 motion: add default case to switch statement
47942 * source/encoder/motion.cpp:
47943 motion: make HEX the default for the moment
47946 * source/encoder/mv.h:
47947 mv: add a helpful comment
47950 * source/encoder/motion.cpp:
47951 motion: fix obvious bug in COST_MV(). HEX mode now looks ok
47953 This is a quality/perf progression you would expect for DIA and HEX
47955 Kbps Y PSNR U PSNR V PSNR elapsed time DIA: 499.9280 31.1502
47956 35.8939 35.9815 27sec HEX: 474.3600 31.3310 36.0312 36.1283 28sec
47957 HM: 456.4880 31.4984 36.1100 36.1101 30sec
47959 UMH is worse than HEX, better than DIA. Which means there are still
47962 UMH: 481.9600 31.2575 36.0621 36.0658 28sec
47964 The "optimized" HEX path is also broken (worse numbers than these)
47967 * source/encoder/motion.cpp:
47968 motion: add descriptive #if 0 from x264
47970 It is useful because it is a simpler version of hex that can be more
47971 easily debugged, and the later version should match the outputs
47974 * source/encoder/motion.cpp:
47975 motion: white-space nit, no code change
47978 * source/encoder/motion.cpp:
47979 motion: remove redundant code
47982 * source/encoder/motion.cpp:
47983 motion: just a single stride var is necessary
47986 * source/encoder/motion.cpp:
47987 motion: use bmv.checkRange()
47990 * source/encoder/motion.cpp:
47991 motion: take advantage of MV union
47994 * source/encoder/motion.cpp:
47995 motion: include assert.h
47998 * source/encoder/motion.cpp:
47999 motion: use MV copy constructor some more
48002 * source/encoder/motion.cpp:
48003 motion: HEVC does not have 4x4 inter partitions
48006 * source/encoder/motion.cpp:
48007 motion: pmv needs to be a full-pel motion vector
48010 * source/encoder/motion.cpp:
48011 motion: use MV copy constructor
48014 * source/encoder/motion.cpp:
48015 motion: remove dup variable i_me_range
48018 * source/encoder/motion.cpp:
48022 * source/encoder/motion.cpp:
48023 motion: remove unnecessary dup variables
48026 * source/encoder/motion.cpp, source/encoder/motion.h:
48027 motion: save the partition enum for the current PU
48030 * source/encoder/motion.cpp:
48031 motion: turn size_scale the right way around
48034 * source/encoder/motion.cpp:
48035 motion: remove cruft
48038 * source/encoder/motion.cpp:
48039 motion: fix obvious bug in x265_predictor_difference
48042 * source/encoder/motion.cpp:
48043 cleanups, no behavior change
48046 * source/encoder/common.cpp, source/encoder/common.h,
48047 source/encoder/motion.cpp:
48048 motion: move common macros to common.h
48051 * source/encoder/motion.cpp, source/encoder/vec/macroblock.inc,
48052 source/x265cfg.cpp:
48053 fix GCC compilation warnings
48056 * Merged in sumalatha/xhevc_sumalatha (pull request #148)
48058 fix for decoder crash in xcompresscu() [early_abort optimization]
48061 2013-05-17 sumalatha <sumalatha>
48063 * source/Lib/TLibEncoder/TEncCu.cpp:
48064 fix for removing the decoder crash in xcompressCU() - early
48065 partition optimization
48068 2013-05-17 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
48070 * build/dr_psnr_script/TAppDecoder.exe,
48071 build/dr_psnr_script/psnr_script.bat,
48072 source/Lib/TLibEncoder/TEncCu.cpp:
48073 Merged multicoreware/xhevc into default
48076 2013-05-17 sumalatha <sumalatha>
48078 * source/Lib/TLibEncoder/TEncCu.cpp:
48079 Backed out changeset: 78976eb7f3fa
48082 * source/Lib/TLibEncoder/TEncCu.cpp:
48083 fix for decoder crash in xcompresscu() {early_abort optimization]
48086 2013-05-17 Steve Borho <steve@borho.org>
48088 * source/encoder/vec/macroblock.inc:
48089 partialButterfly4 does not compile on 32bit x86
48091 _mm_cvtsi64_si128 does not exist on 32bit systems
48094 2013-05-17 praveen Tiwari <praveen@multicorewareinc.com>
48096 * build/dr_psnr_script/TAppDecoder.exe,
48097 build/dr_psnr_script/psnr_script.bat:
48098 Merged multicoreware/xhevc into default
48101 2013-05-17 praveentiwari <praveentiwari>
48103 * source/encoder/vec/macroblock.inc:
48104 intrinsic code for partialButterfly32
48107 2013-05-17 Deepthi <Deepthi>
48109 * .hgignore, build/dr_psnr_script/TAppDecoder.exe,
48110 build/dr_psnr_script/psnr_script.bat, source/tools/HM
48111 decoder/TAppDecoder.exe:
48112 Relocating HM decoder to tools. Removing build/dr_psnr_script
48118 2013-05-17 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
48120 * Merged multicoreware/xhevc into default
48123 2013-05-17 sumalatha <sumalatha>
48125 * source/tools/performanceProfiler/Profiler.bat,
48126 source/tools/performanceProfiler/Readme.txt,
48127 source/tools/performanceProfiler/config.txt,
48128 source/tools/performanceProfiler/performanceProfiler.bat:
48129 Modified the testing scripts for running both yuv files and y4m
48133 2013-05-17 Deepthi <Deepthi>
48135 * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCu.cpp:
48136 More refinement of early abort conditions
48142 * source/Lib/TLibEncoder/TEncCu.cpp:
48143 refining early abort
48146 * source/Lib/TLibEncoder/TEncCu.cpp:
48147 fixing the decoder crash
48150 * source/Lib/TLibEncoder/TEncCu.cpp:
48154 * source/Lib/TLibEncoder/TEncCu.cpp:
48155 Remove AMP for now from EARLY_ABORT mode decision
48158 2013-05-17 Steve Borho <steve@borho.org>
48160 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/motion.cpp:
48161 TEncSearch: pass neighbor MVs to motionEstimate (UMH seems to
48165 2013-05-17 ggopu <ggopu>
48167 * source/encoder/motion.cpp:
48168 Motion Estimation : UMH implementation stage 1
48171 2013-05-16 Gopu G <gopu@multicorewareinc.com>
48173 * Merged multicoreware/xhevc into default
48176 * Merged multicoreware/xhevc into default
48179 2013-05-14 Gopu G <gopu@multicorewareinc.com>
48181 * source/test/timer.cpp:
48182 Merged multicoreware/xhevc into default
48185 2013-05-13 Gopu G <gopu@multicorewareinc.com>
48187 * Merged multicoreware/xhevc into default
48190 2013-05-13 ggopu <ggopu>
48192 * source/encoder/motion.cpp:
48193 Motion Estimation : UMH implementation stage 1
48196 2013-05-16 Steve Borho <steve@borho.org>
48198 * source/x265main.cpp:
48199 vld: add assert for zero leaks (DEBUG only)
48202 * source/x265main.cpp:
48203 x265main: explicit allocation and deallocation of TAppEncTop
48206 * source/Lib/TLibCommon/TComPicYuv.cpp:
48207 TComPicYuv: TComPicYuv are re-used, check before allocating subpel
48211 * source/x265cfg.cpp, source/x265cfg.h:
48212 x265cfg: release thread pool handle at exit
48215 * source/x265main.cpp:
48216 x265main: ask VLD to output the leak log to the debugger output
48219 This way the leak report survives after the run.
48222 * source/CMakeLists.txt, source/cmake/FindVLD.cmake,
48223 source/x265main.cpp:
48224 cmake: add detection and use of Visual Leak Detector
48227 * source/Lib/TLibEncoder/TEncGOP.cpp:
48228 TEncGOP: disable printing of per-frame encode time, prune unused
48231 This just makes the frame logs non-deterministic.
48234 * source/Lib/TLibEncoder/TEncGOP.cpp:
48238 * build/linux/batch.py:
48239 write batch outputs into a folder
48242 * build/linux/batch.py:
48243 add MD5 hashes to batch run output log
48246 * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg, source/x265cfg.cpp:
48247 remove filenames from configuration files
48249 Hard-code the default filename for an output stream. Default to no
48250 recon output file if none is specified on the CLI.
48253 2013-05-16 Deepthi <Deepthi>
48255 * source/Lib/TLibEncoder/TEncCu.cpp:
48256 Preserving the original xcompressCU implementation until the
48257 EARLY_PARTITION_DECISION mode has been fully debugged.
48260 2013-05-16 Steve Borho <steve@borho.org>
48262 * source/tools/CMakeLists.txt:
48263 backout change to source/tools/CMakeLists.txt
48265 The performanceProfiler/ folder has no CMakeLists.txt within it.
48268 2013-05-16 sumalatha <sumalatha>
48270 * source/tools/CMakeLists.txt,
48271 source/tools/performanceProfiler/Profiler.bat,
48272 source/tools/performanceProfiler/Readme.txt,
48273 source/tools/performanceProfiler/config.txt,
48274 source/tools/performanceProfiler/performanceProfiler.bat:
48275 Added the scripts for validating the encoded bitstream(running HM
48276 decoder) and measuring the the performance like PSNR values,
48277 Timetaken for encoing and the bytes written in encoded bitstream.
48278 For running the scripts, use Readme.txt
48281 2013-05-16 Deepthi <Deepthi>
48286 * source/Lib/TLibEncoder/TEncCu.cpp:
48290 * source/Lib/TLibEncoder/TEncCu.cpp:
48291 AMP after 2nxn, nx2n, if at all
48294 * source/Lib/TLibEncoder/TEncCu.cpp:
48295 2nxn and nx2n comparisons only if nxn mode better than 2nx2n
48298 * source/Lib/TLibEncoder/TEncCu.cpp:
48299 Cleanup; remove erroneous paths
48302 * source/Lib/TLibEncoder/TEncCu.cpp:
48306 * source/Lib/TLibEncoder/TEncCu.cpp:
48307 Initial version of compare 2nx2n with sum of nxn costs
48310 * source/Lib/TLibEncoder/TEncCu.cpp:
48311 Getting rid of EARLY_PARITION_DECISION macro (temporarily)
48314 * source/Lib/TLibEncoder/TEncCu.cpp:
48315 Init Sub CUs to prevent crash when early detection is OFF
48318 * source/Lib/TLibEncoder/TEncCu.cpp:
48319 Scalar expansion for subCUs
48322 2013-05-15 Deepthi <Deepthi>
48324 * source/Lib/TLibEncoder/TEncCu.cpp:
48328 2013-05-16 Steve Borho <steve@borho.org>
48330 * build/linux/batch.py:
48331 add a batch launch script for litespeed server
48334 2013-05-15 Steve Borho <steve@borho.org>
48336 * source/encoder/x86/asm-primitives.cpp:
48337 asm: fix a bug found by x86-64 linux and GDB
48340 * source/encoder/vec/vecprimitives.inc:
48341 vec: GCC needs smmintrin.h for some intrinsics we use in
48345 * source/VectorClass/vectori128.h:
48346 vector: use correct build define for fromUint64
48349 * source/CMakeLists.txt:
48350 cmake: reverse yasm version logic, so all versions less than 1.2.0
48353 previous logic was allowing 1.1.0.X
48356 2013-05-15 Min Chen <min.chen@multicorewareinc.com>
48358 * source/Lib/TLibEncoder/TEncSlice.cpp,
48359 source/Lib/TLibEncoder/TEncSlice.h:
48360 thread: [NEED VERIFY] modify logic about m_pcBufferSbacCoders, from
48361 [sliceID] to [wpp_line]
48362 --- source/Lib/TLibEncoder/TEncSlice.cpp | 21 +++++++++++----------
48363 source/Lib/TLibEncoder/TEncSlice.h | 2 +- 2 files changed, 12
48364 insertions(+), 11 deletions(-)
48367 * source/Lib/TLibEncoder/TEncSlice.cpp:
48368 thread: [NEED VERIFY] simplify logic about WPP SBAC context manage
48369 --- source/Lib/TLibEncoder/TEncSlice.cpp | 24
48370 ++++++------------------ 1 files changed, 6 insertions(+), 18
48374 2013-05-15 Steve Borho <steve@borho.org>
48376 * source/CMakeLists.txt, source/cmake/FindYasm.cmake,
48377 source/cmake/version.cmake:
48378 cmake: detect and enforce minimal YASM version
48380 x264 assembly code requires YASM 1.2.0 (for AVX2, etc)
48383 2013-05-15 Min Chen <min.chen@multicorewareinc.com>
48385 * source/Lib/TLibEncoder/TEncSlice.cpp:
48386 thread: remove reduce call to m_pcCfg->getWaveFrontsynchro()
48387 --- source/Lib/TLibEncoder/TEncSlice.cpp | 3 ++- 1 files changed, 2
48388 insertions(+), 1 deletions(-)
48391 * source/Lib/TLibEncoder/TEncSlice.cpp:
48392 thread: move define of uiCUAddr into loop
48393 --- source/Lib/TLibEncoder/TEncSlice.cpp | 4 +--- 1 files changed, 1
48394 insertions(+), 3 deletions(-)
48397 * source/Lib/TLibEncoder/TEncSlice.cpp:
48398 thread: simplify uiSubStrm
48399 --- source/Lib/TLibEncoder/TEncSlice.cpp | 4 ++-- 1 files changed, 2
48400 insertions(+), 2 deletions(-)
48403 2013-05-15 Steve Borho <steve@borho.org>
48405 * source/test/intrapredharness.cpp, source/test/testbench.cpp:
48406 testbench: GCC compilation fixes
48409 * source/cmake/version.cmake:
48410 cmake: avoid use of HG find_package
48413 * source/encoder/common.cpp:
48414 GCC compilation fix
48417 * source/encoder/vec/macroblock.inc:
48418 macroblock: enable partialButterfly4 for X86_64 builds only
48420 The primitive does not compile on x86
48423 2013-05-15 Deepthi <Deepthi>
48425 * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp,
48426 source/test/timer.cpp, source/x265.h, source/x265cfg.cpp,
48427 source/x265enc.cpp:
48431 * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp,
48432 source/x265.h, source/x265cfg.cpp, source/x265enc.cpp:
48433 Early CU option removed.
48436 * source/Lib/TLibEncoder/TEncCu.cpp:
48437 More useless skip control variables removed.
48440 * source/Lib/TLibCommon/CommonDef.h,
48441 source/Lib/TLibEncoder/TEncCu.cpp:
48442 Removing extraneous SKIP macros. A more relevant Skip threshold
48443 macro can be added later.
48446 2013-05-15 praveentiwari <praveentiwari>
48448 * source/encoder/macroblock.cpp:
48449 C primitive for partialButterfly4
48452 2013-05-14 Min Chen <min.chen@multicorewareinc.com>
48454 * source/VectorClass/vectori128.h:
48455 vector128i: fix bug report by Shazeb, it don't broad to high element
48456 --- source/VectorClass/vectori128.h | 13 +++++++++---- 1 files
48457 changed, 9 insertions(+), 4 deletions(-)
48460 * source/Lib/TLibEncoder/TEncGOP.cpp:
48461 cleanup: remove code for loop
48462 --- source/Lib/TLibEncoder/TEncGOP.cpp | 27
48463 ++++----------------------- 1 files changed, 4 insertions(+), 23
48467 * source/Lib/TLibEncoder/TEncGOP.cpp,
48468 source/Lib/TLibEncoder/TEncSlice.cpp,
48469 source/Lib/TLibEncoder/TEncSlice.h:
48470 cleanup: remove code for boundingCUAddr
48471 --- source/Lib/TLibEncoder/TEncGOP.cpp | 3 +--
48472 source/Lib/TLibEncoder/TEncSlice.cpp | 20 ++++++--------------
48473 source/Lib/TLibEncoder/TEncSlice.h | 2 +- 3 files changed, 8
48474 insertions(+), 17 deletions(-)
48477 * source/Lib/TLibEncoder/TEncSlice.cpp:
48478 thread: simplify, uiTotalCUs always multiple of CUSize
48479 --- source/Lib/TLibEncoder/TEncSlice.cpp | 3 ++- 1 files changed, 2
48480 insertions(+), 1 deletions(-)
48483 * source/Lib/TLibCommon/TComSlice.cpp,
48484 source/Lib/TLibCommon/TComSlice.h,
48485 source/Lib/TLibEncoder/TEncCavlc.cpp,
48486 source/Lib/TLibEncoder/TEncCfg.h,
48487 source/Lib/TLibEncoder/TEncGOP.cpp,
48488 source/Lib/TLibEncoder/TEncSlice.cpp,
48489 source/Lib/TLibEncoder/TEncTop.cpp, source/x265.h,
48490 source/x265cfg.cpp, source/x265enc.cpp:
48491 thread: simplify, iNumSubstreams always equal to maxCUHeight
48492 --- source/Lib/TLibCommon/TComSlice.cpp | 1 -
48493 source/Lib/TLibCommon/TComSlice.h | 6 ------
48494 source/Lib/TLibEncoder/TEncCavlc.cpp | 2 +-
48495 source/Lib/TLibEncoder/TEncCfg.h | 5 -----
48496 source/Lib/TLibEncoder/TEncGOP.cpp | 12 +++++++-----
48497 source/Lib/TLibEncoder/TEncSlice.cpp | 31
48498 +++++++++++++++++++------------ source/Lib/TLibEncoder/TEncTop.cpp |
48499 7 ------- source/x265.h | 1 - source/x265cfg.cpp | 5 +----
48500 source/x265enc.cpp | 1 - 10 files changed, 28 insertions(+), 43
48504 * source/Lib/TLibEncoder/TEncSlice.cpp:
48505 thread: don't calculate uiLin and uiCol from uiCUAddr, they are
48507 --- source/Lib/TLibEncoder/TEncSlice.cpp | 3 --- 1 files changed, 0
48508 insertions(+), 3 deletions(-)
48511 * source/Lib/TLibEncoder/TEncGOP.cpp,
48512 source/Lib/TLibEncoder/TEncGOP.h:
48513 cleanup: remove unused code for startCUAddrSliceSegment
48514 --- source/Lib/TLibEncoder/TEncGOP.cpp | 29
48515 ++++------------------------- source/Lib/TLibEncoder/TEncGOP.h | 1 -
48516 2 files changed, 4 insertions(+), 26 deletions(-)
48519 * source/Lib/TLibCommon/TComSlice.cpp,
48520 source/Lib/TLibCommon/TComSlice.h,
48521 source/Lib/TLibEncoder/TEncGOP.cpp,
48522 source/Lib/TLibEncoder/TEncSlice.cpp:
48523 cleanup: remove unused code for nextSliceSegment
48524 --- source/Lib/TLibCommon/TComSlice.cpp | 2 --
48525 source/Lib/TLibCommon/TComSlice.h | 5 -----
48526 source/Lib/TLibEncoder/TEncGOP.cpp | 21 +--------------------
48527 source/Lib/TLibEncoder/TEncSlice.cpp | 1 - 4 files changed, 1
48528 insertions(+), 28 deletions(-)
48531 * source/Lib/TLibCommon/TComSlice.cpp,
48532 source/Lib/TLibCommon/TComSlice.h,
48533 source/Lib/TLibEncoder/TEncCavlc.cpp,
48534 source/Lib/TLibEncoder/TEncCu.cpp,
48535 source/Lib/TLibEncoder/TEncGOP.cpp,
48536 source/Lib/TLibEncoder/TEncSlice.cpp:
48537 cleanup: simplify since sliceSegmentCurEndCUAddr always equal to
48539 --- source/Lib/TLibCommon/TComSlice.cpp | 2 --
48540 source/Lib/TLibCommon/TComSlice.h | 5 -----
48541 source/Lib/TLibEncoder/TEncCavlc.cpp | 2 +-
48542 source/Lib/TLibEncoder/TEncCu.cpp | 16 ++++++++--------
48543 source/Lib/TLibEncoder/TEncGOP.cpp | 12 ++++++------
48544 source/Lib/TLibEncoder/TEncSlice.cpp | 20 ++------------------ 6
48545 files changed, 17 insertions(+), 40 deletions(-)
48548 * source/Lib/TLibEncoder/TEncSlice.cpp:
48549 thread: ident, no code changes
48550 --- source/Lib/TLibEncoder/TEncSlice.cpp | 217
48551 +++++++++++++++++----------------- 1 files changed, 108
48552 insertions(+), 109 deletions(-)
48555 * source/Lib/TLibEncoder/TEncSlice.cpp:
48556 thread: replace while_loop to row/col for_loop
48557 --- source/Lib/TLibEncoder/TEncSlice.cpp | 16 +++++++++++++--- 1
48558 files changed, 13 insertions(+), 3 deletions(-)
48561 * source/Lib/TLibEncoder/TEncSlice.cpp:
48562 cleanup: remove unused TilesCol, etc
48563 --- source/Lib/TLibEncoder/TEncSlice.cpp | 38
48564 +++++++++------------------------- 1 files changed, 10
48565 insertions(+), 28 deletions(-)
48568 * source/Lib/TLibEncoder/TEncSlice.cpp:
48569 cleanup: replace uiEncCUOrder to uiCUAddr since they always equal
48570 --- source/Lib/TLibEncoder/TEncSlice.cpp | 8 +++----- 1 files
48571 changed, 3 insertions(+), 5 deletions(-)
48574 * source/Lib/TLibEncoder/TEncGOP.cpp,
48575 source/Lib/TLibEncoder/TEncSlice.cpp,
48576 source/Lib/TLibEncoder/TEncSlice.h:
48577 cleanup: StartCUAddr always zero
48578 --- source/Lib/TLibEncoder/TEncGOP.cpp | 3 +--
48579 source/Lib/TLibEncoder/TEncSlice.cpp | 10 ++++------
48580 source/Lib/TLibEncoder/TEncSlice.h | 2 +- 3 files changed, 6
48581 insertions(+), 9 deletions(-)
48584 2013-05-14 Steve Borho <steve@borho.org>
48586 * source/test/intrapredharness.cpp, source/test/ipfilterharness.cpp,
48587 source/test/mbdstharness.cpp, source/test/pixelharness.cpp,
48588 source/test/testharness.h:
48589 testharness: simplify REPORT_SPEEDUP, use varargs to avoid bugs
48592 * source/test/CMakeLists.txt, source/test/intrapredharness.cpp,
48593 source/test/ipfilterharness.cpp, source/test/mbdstharness.cpp,
48594 source/test/pixelharness.cpp, source/test/testharness.h,
48595 source/test/timer.cpp:
48596 testbench: remove unused timer class
48599 * source/test/testbench.cpp:
48603 * source/encoder/vec/macroblock.inc:
48604 macroblock: disable partialButterfly4 for 32bit builds
48605 (_mm_cvtsi64_si128)
48607 The _mm_cvtsi64_si128 instrinsic is only supported in 64bit
48611 * source/encoder/vec/intrapred.inc:
48612 intrapred: use X86_64 instead of _WIN64
48615 * source/CMakeLists.txt:
48616 cmake: add X86_64 define for 64bit builds
48619 * Merged in shazebnawazkhan/xhevc_shazeb (pull request #141)
48621 Pred Intra Planar 16x16 vectorization
48624 2013-05-14 Deepthi Devaki <Deepthi Devaki>
48629 * source/encoder/vec/intrapred.inc:
48630 uncrustified intrapred.inc
48633 * source/encoder/vec/intrapred.inc, source/test/intrapredharness.cpp:
48634 Pred Intra Planar 16x16 vectorization
48637 2013-05-14 Steve Borho <steve@borho.org>
48639 * source/test/mbdstharness.cpp:
48640 mbdstharness: remove redundant enum
48643 * source/encoder/vec/macroblock.inc:
48644 macroblock: disable BUTTERFLY_4 until it as a C reference
48647 * source/test/testbench.cpp:
48648 testbench: zero C primitive struct to better isolate missing C
48652 2013-05-14 praveentiwari <praveentiwari>
48654 * source/test/mbdstharness.h:
48655 Added extra buffer for intrinsic code test
48658 * source/encoder/vec/macroblock.inc:
48659 Intrinsic Code for partialButterfly4
48662 2013-05-14 praveen Tiwari <praveen@multicorewareinc.com>
48664 * Merged multicoreware/xhevc into default
48667 * Merged multicoreware/xhevc into default
48670 2013-05-14 praveentiwari <praveentiwari>
48672 * source/test/mbdstharness.cpp:
48673 Test code for PartialButterfly4 intrisic code
48676 2013-05-14 Deepthi <Deepthi>
48681 * source/Lib/TLibEncoder/TEncCu.cpp:
48682 Modify mode decision to include NxN cost as well
48685 2013-05-14 Deepthi Devaki <Deepthi Devaki>
48690 * source/encoder/vec/intrapred.inc:
48691 Predict intraplanar 8x8 - vector implementation
48694 * source/test/intrapredharness.cpp, source/test/intrapredharness.h:
48695 Predict IntraPlanar - unit test integration
48698 2013-05-14 https://mandarmcw <https://mandarmcw@bitbucket.org/mandarmcw/xhevc_mandar1>
48700 * build/BuildEncoderApplications.bat,
48701 build/RunEncoderApplications.bat:
48702 Removed ENABLE_PRIMITIVES macro from Regression test
48708 * build/BuildEncoderApplications.bat,
48709 build/CreateRegressionPackage.bat, build/RunEncoderApplications.bat,
48711 Modified RegressionTest script for 8bit and 16bit
48714 2013-05-14 Deepthi <Deepthi>
48716 * source/Lib/TLibEncoder/TEncCu.cpp:
48717 Removing abortflag control - performance and bitrate impact mostly
48721 * source/Lib/TLibEncoder/TEncCu.cpp:
48722 Modifying the recursion abort condition
48725 * source/Lib/TLibEncoder/TEncCu.cpp:
48726 Fix for compile error with early partition select ON.
48729 2013-05-13 Deepthi <Deepthi>
48731 * source/CMakeLists.txt, source/Lib/TLibEncoder/TEncCu.cpp:
48732 Early exit for partition selection - macro defined. Will be disabled
48733 by default - bitcost too high.
48736 2013-05-13 sumalatha <sumalatha>
48738 * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCu.cpp:
48739 renamed the macro QUALITYFACTOR to LAMBDA_PARTITION_SELECT
48742 * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCu.cpp,
48743 source/Lib/TLibEncoder/TEncCu.h:
48744 Made optimizations on xcompressCU - to check the cost of each 2Nx2N
48745 block with the corresponding cost of the same CU with NxN partition.
48746 Aborts recursion if 2Nx2N mode is better.
48749 2013-05-12 Steve Borho <steve@borho.org>
48751 * source/Lib/TLibCommon/SEI.h, source/Lib/TLibEncoder/SEIwrite.cpp,
48752 source/Lib/TLibEncoder/SEIwrite.h, source/Lib/TLibEncoder/TEncCfg.h,
48753 source/Lib/TLibEncoder/TEncGOP.cpp,
48754 source/Lib/TLibEncoder/TEncGOP.h, source/x265.h, source/x265cfg.cpp,
48755 source/x265enc.cpp:
48756 remove frame packing SEI
48758 This packet only contained data passed in by the user. They can
48759 generate it themselves
48762 * source/Lib/TLibCommon/SEI.cpp, source/Lib/TLibCommon/SEI.h,
48763 source/Lib/TLibCommon/TypeDef.h,
48764 source/Lib/TLibEncoder/SEIwrite.cpp,
48765 source/Lib/TLibEncoder/SEIwrite.h, source/Lib/TLibEncoder/TEncCfg.h,
48766 source/Lib/TLibEncoder/TEncGOP.cpp,
48767 source/Lib/TLibEncoder/TEncGOP.h, source/x265.h, source/x265cfg.cpp,
48768 source/x265enc.cpp:
48769 remove J0149_TONE_MAPPING_SEI
48771 If an app wants to generate this SEI, they can do so themselves.
48772 There's no point cluttering the encoder with metadata like this.
48775 * source/x265cfg.cpp:
48776 x265cfg: do not print chroma QP offsets if they are 0
48779 * source/Lib/TLibCommon/TComDataCU.cpp,
48780 source/Lib/TLibEncoder/TEncCavlc.cpp,
48781 source/Lib/TLibEncoder/TEncSlice.cpp:
48782 cleanup unused variable warnings found by GCC
48785 * source/Lib/TLibEncoder/TEncSearch.cpp,
48786 source/Lib/TLibEncoder/TEncSlice.cpp, source/encoder/motion.cpp,
48787 source/encoder/primitives.cpp, source/encoder/primitives.h,
48788 source/test/testharness.h, source/test/timer.cpp:
48789 primitives: fix EMMS calls from the HM libraries, make compiler safe
48791 Use inline when available, else use ASM version of EMMS
48794 * source/x265cfg.cpp:
48795 x265cfg: white-space tweaks, no code changes
48798 * build/BuildEncoderApplications.bat,
48799 build/CreateRegressionPackage.sh, source/CMakeLists.txt,
48800 source/Lib/TLibCommon/TComInterpolationFilter.cpp,
48801 source/Lib/TLibCommon/TComPicYuv.cpp,
48802 source/Lib/TLibCommon/TComPrediction.cpp,
48803 source/Lib/TLibCommon/TComTrQuant.cpp,
48804 source/Lib/TLibCommon/TComYuv.cpp,
48805 source/Lib/TLibEncoder/TEncSearch.cpp,
48806 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/CMakeLists.txt,
48807 source/encoder/motion.cpp, source/encoder/primitives.cpp,
48808 source/test/CMakeLists.txt, source/test/testbench.cpp:
48809 cleanup: remove ENABLE_PRIMITIVES cmake build option, always enabled
48812 * source/Lib/TLibEncoder/TEncSearch.cpp:
48813 cleanup: remove redundant brace levels, no logic changes
48816 * source/Lib/TLibEncoder/TEncSearch.cpp:
48817 cleanup: remove unnecessary x264_cpu_emms()
48820 * source/Lib/TLibEncoder/TEncCu.cpp:
48821 cleanup: remove extra levels of indent in TEncCU.cpp, no logic
48825 * source/Lib/TLibEncoder/TEncCu.cpp:
48826 cleanup: remove iMinQP
48829 * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg,
48830 source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp,
48831 source/Lib/TLibEncoder/TEncSearch.cpp, source/x265.h,
48832 source/x265cfg.cpp, source/x265enc.cpp:
48833 remove FEN configurable, assume always true
48836 * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg,
48837 source/Lib/TLibEncoder/TEncCfg.h,
48838 source/Lib/TLibEncoder/TEncSlice.cpp,
48839 source/Lib/TLibEncoder/TEncTop.cpp, source/x265.h,
48840 source/x265cfg.cpp, source/x265enc.cpp:
48841 remove max delta QP configuration logic
48844 * source/Lib/TLibEncoder/TEncCu.cpp:
48845 TEncCu: prune per-CU multiple QP logic
48847 When we add/enable rate control, each CU will only be coded once
48848 with its determined QP. We won't be encoding the CU multiple times
48852 * source/Lib/TLibEncoder/TEncCu.cpp:
48853 TEncCU: rename rpcCU to pcCu since it is no longer a reference
48856 2013-05-11 Steve Borho <steve@borho.org>
48858 * source/Lib/TLibEncoder/TEncSlice.cpp,
48859 source/Lib/TLibEncoder/TEncSlice.h:
48860 remove slice-level per-delta QP and lambda
48863 * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg,
48864 source/Lib/TLibEncoder/TEncCfg.h,
48865 source/Lib/TLibEncoder/TEncGOP.cpp,
48866 source/Lib/TLibEncoder/TEncSlice.cpp,
48867 source/Lib/TLibEncoder/TEncSlice.h, source/x265.h,
48868 source/x265cfg.cpp, source/x265enc.cpp:
48869 remove slice-level multiple-QP rate distortion loop
48872 * source/Lib/TLibEncoder/TEncSlice.cpp:
48876 * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp,
48877 source/Lib/TLibEncoder/TEncGOP.cpp,
48878 source/Lib/TLibEncoder/TEncSearch.cpp,
48879 source/Lib/TLibEncoder/TEncSearch.h,
48880 source/Lib/TLibEncoder/TEncSlice.cpp,
48881 source/Lib/TLibEncoder/TEncTop.cpp:
48882 uncrustify: tidy white-space
48885 * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg:
48886 remove no longer supported config options
48889 * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp,
48890 source/Lib/TLibEncoder/TEncCu.h,
48891 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
48892 source/Lib/TLibEncoder/TEncSlice.cpp,
48893 source/Lib/TLibEncoder/TEncTop.cpp, source/x265.h,
48894 source/x265cfg.cpp, source/x265enc.cpp:
48895 merge with slice/tile removal
48898 * source/x265cfg.cpp:
48899 don't print configurations that cannot change
48902 2013-05-11 Min Chen <min.chen@multicorewareinc.com>
48904 * source/Lib/TLibEncoder/TEncCu.cpp:
48905 cleanup: remove code for bSliceStart
48906 --- source/Lib/TLibEncoder/TEncCu.cpp | 9 +++------ 1 files changed,
48907 3 insertions(+), 6 deletions(-)
48910 * source/Lib/TLibCommon/TComDataCU.cpp,
48911 source/Lib/TLibCommon/TComDataCU.h,
48912 source/Lib/TLibCommon/TComSlice.cpp,
48913 source/Lib/TLibCommon/TComSlice.h,
48914 source/Lib/TLibEncoder/TEncCavlc.cpp,
48915 source/Lib/TLibEncoder/TEncCu.cpp,
48916 source/Lib/TLibEncoder/TEncGOP.cpp,
48917 source/Lib/TLibEncoder/TEncSlice.cpp:
48918 cleanup: remove code for sliceStartCU
48919 --- source/Lib/TLibCommon/TComDataCU.cpp | 169
48920 +++-------------------------------
48921 source/Lib/TLibCommon/TComDataCU.h | 4 -
48922 source/Lib/TLibCommon/TComSlice.cpp | 4 -
48923 source/Lib/TLibCommon/TComSlice.h | 10 --
48924 source/Lib/TLibEncoder/TEncCavlc.cpp | 18 +---
48925 source/Lib/TLibEncoder/TEncCu.cpp | 35 ++------
48926 source/Lib/TLibEncoder/TEncGOP.cpp | 24 +-----
48927 source/Lib/TLibEncoder/TEncSlice.cpp | 130
48928 ++++----------------------- 8 files changed, 44 insertions(+), 350
48932 * source/Lib/TLibCommon/TComSlice.cpp,
48933 source/Lib/TLibCommon/TComSlice.h,
48934 source/Lib/TLibEncoder/TEncCavlc.cpp,
48935 source/Lib/TLibEncoder/TEncSlice.cpp,
48936 source/Lib/TLibEncoder/TEncTop.cpp:
48937 cleanup: remove unused code since dependentSliceSegmentsEnabledFlag
48939 --- source/Lib/TLibCommon/TComSlice.cpp | 1 -
48940 source/Lib/TLibCommon/TComSlice.h | 5 -
48941 source/Lib/TLibEncoder/TEncCavlc.cpp | 6 +-
48942 source/Lib/TLibEncoder/TEncSlice.cpp | 156
48943 +-------------------------------- source/Lib/TLibEncoder/TEncTop.cpp
48944 | 12 --- 5 files changed, 6 insertions(+), 174 deletions(-)
48947 * source/Lib/TLibCommon/TComPicSym.cpp,
48948 source/Lib/TLibCommon/TComPicSym.h:
48949 cleanup: remove unused xCalculateNxtCUAddr
48950 --- source/Lib/TLibCommon/TComPicSym.cpp | 25
48951 ------------------------- source/Lib/TLibCommon/TComPicSym.h | 1 - 2
48952 files changed, 0 insertions(+), 26 deletions(-)
48955 * source/Lib/TLibCommon/TComPicSym.cpp,
48956 source/Lib/TLibCommon/TComPicSym.h,
48957 source/Lib/TLibEncoder/TEncGOP.cpp,
48958 source/Lib/TLibEncoder/TEncSlice.cpp:
48959 cleanup: remove class TComTile
48960 --- source/Lib/TLibCommon/TComPicSym.cpp | 41
48961 +-------------------------------- source/Lib/TLibCommon/TComPicSym.h
48962 | 31 ------------------------- source/Lib/TLibEncoder/TEncGOP.cpp |
48963 6 ----- source/Lib/TLibEncoder/TEncSlice.cpp | 17 ++++++------- 4
48964 files changed, 10 insertions(+), 85 deletions(-)
48967 * source/Lib/TLibCommon/TComPicSym.cpp,
48968 source/Lib/TLibCommon/TComPicSym.h,
48969 source/Lib/TLibEncoder/TEncGOP.cpp:
48970 cleanup: cleanup code for getTileWidth and getTileHeight
48971 --- source/Lib/TLibCommon/TComPicSym.cpp | 12 +++++-------
48972 source/Lib/TLibCommon/TComPicSym.h | 10 ----------
48973 source/Lib/TLibEncoder/TEncGOP.cpp | 7 ------- 3 files changed, 5
48974 insertions(+), 24 deletions(-)
48977 * source/Lib/TLibCommon/TComPicSym.cpp,
48978 source/Lib/TLibCommon/TComPicSym.h,
48979 source/Lib/TLibEncoder/TEncCu.cpp,
48980 source/Lib/TLibEncoder/TEncGOP.cpp,
48981 source/Lib/TLibEncoder/TEncSlice.cpp:
48982 cleanup: cleanup code for getPicSCUEncOrder and getPicSCUAddr
48983 --- source/Lib/TLibCommon/TComPicSym.cpp | 10 ----------
48984 source/Lib/TLibCommon/TComPicSym.h | 2 --
48985 source/Lib/TLibEncoder/TEncCu.cpp | 6 +++---
48986 source/Lib/TLibEncoder/TEncGOP.cpp | 6 +++---
48987 source/Lib/TLibEncoder/TEncSlice.cpp | 20 ++++++++++---------- 5
48988 files changed, 16 insertions(+), 28 deletions(-)
48991 * source/Lib/TLibCommon/TComDataCU.cpp,
48992 source/Lib/TLibCommon/TComPic.cpp,
48993 source/Lib/TLibCommon/TComPicSym.cpp,
48994 source/Lib/TLibCommon/TComPicSym.h,
48995 source/Lib/TLibEncoder/TEncCavlc.cpp,
48996 source/Lib/TLibEncoder/TEncCu.cpp,
48997 source/Lib/TLibEncoder/TEncGOP.cpp,
48998 source/Lib/TLibEncoder/TEncSlice.cpp:
48999 cleanup: cleanup more code for CUOrderMap
49000 --- source/Lib/TLibCommon/TComDataCU.cpp | 24
49001 ++++++++++++------------ source/Lib/TLibCommon/TComPic.cpp | 4 ++--
49002 source/Lib/TLibCommon/TComPicSym.cpp | 4 ++--
49003 source/Lib/TLibCommon/TComPicSym.h | 4 ----
49004 source/Lib/TLibEncoder/TEncCavlc.cpp | 2 +-
49005 source/Lib/TLibEncoder/TEncCu.cpp | 18 +++++++++---------
49006 source/Lib/TLibEncoder/TEncGOP.cpp | 2 +-
49007 source/Lib/TLibEncoder/TEncSlice.cpp | 20 ++++++++++---------- 8
49008 files changed, 37 insertions(+), 41 deletions(-)
49011 * source/Lib/TLibCommon/TComPicSym.cpp,
49012 source/Lib/TLibCommon/TComPicSym.h,
49013 source/Lib/TLibEncoder/TEncGOP.cpp:
49014 cleanup: cleanup code for CUOrderMap
49015 --- source/Lib/TLibCommon/TComPicSym.cpp | 17 -----------------
49016 source/Lib/TLibCommon/TComPicSym.h | 10 ++--------
49017 source/Lib/TLibEncoder/TEncGOP.cpp | 13 +------------ 3 files
49018 changed, 3 insertions(+), 37 deletions(-)
49021 * source/Lib/TLibCommon/TComDataCU.cpp,
49022 source/Lib/TLibCommon/TComDataCU.h,
49023 source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
49024 source/Lib/TLibCommon/TComPicSym.cpp,
49025 source/Lib/TLibCommon/TComPicSym.h,
49026 source/Lib/TLibEncoder/TEncGOP.cpp,
49027 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
49028 source/Lib/TLibEncoder/TEncSlice.cpp:
49029 cleanup: cleanup code for tilesIDX
49030 --- source/Lib/TLibCommon/TComDataCU.cpp | 33 +++-----
49031 source/Lib/TLibCommon/TComDataCU.h | 3 +-
49032 source/Lib/TLibCommon/TComPic.cpp | 34 +-------
49033 source/Lib/TLibCommon/TComPic.h | 2 +-
49034 source/Lib/TLibCommon/TComPicSym.cpp | 83 +++-----------------
49035 source/Lib/TLibCommon/TComPicSym.h | 7 +-
49036 source/Lib/TLibEncoder/TEncGOP.cpp | 4 +-
49037 .../Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp | 12 ++--
49038 source/Lib/TLibEncoder/TEncSlice.cpp | 66 +++------------- 9 files
49039 changed, 50 insertions(+), 194 deletions(-)
49042 * source/Lib/TLibCommon/TComSlice.cpp,
49043 source/Lib/TLibCommon/TComSlice.h,
49044 source/Lib/TLibEncoder/TEncGOP.cpp:
49045 cleanup: remove unused code for uniformSpacingFlag
49046 --- source/Lib/TLibCommon/TComSlice.cpp | 1 -
49047 source/Lib/TLibCommon/TComSlice.h | 5 ----
49048 source/Lib/TLibEncoder/TEncGOP.cpp | 37
49049 +--------------------------------- 3 files changed, 2 insertions(+),
49053 * source/Lib/TLibCommon/TComSlice.cpp,
49054 source/Lib/TLibCommon/TComSlice.h,
49055 source/Lib/TLibEncoder/TEncCavlc.cpp,
49056 source/Lib/TLibEncoder/TEncTop.cpp:
49057 cleanup: remove unused code since tilesEnabledFlag always false
49058 --- source/Lib/TLibCommon/TComSlice.cpp | 1 -
49059 source/Lib/TLibCommon/TComSlice.h | 5 -----
49060 source/Lib/TLibEncoder/TEncCavlc.cpp | 33
49061 +++------------------------------ source/Lib/TLibEncoder/TEncTop.cpp
49062 | 1 - 4 files changed, 3 insertions(+), 37 deletions(-)
49065 * source/Lib/TLibEncoder/TEncSlice.cpp:
49066 cleanup: remove unused code since uiTilesAcross always 1
49067 --- source/Lib/TLibEncoder/TEncSlice.cpp | 30
49068 ++++++++---------------------- 1 files changed, 8 insertions(+), 22
49072 * source/Lib/TLibCommon/TComSlice.h,
49073 source/Lib/TLibEncoder/TEncCavlc.cpp,
49074 source/Lib/TLibEncoder/TEncCfg.h,
49075 source/Lib/TLibEncoder/TEncTop.cpp, source/x265.h,
49076 source/x265cfg.cpp, source/x265enc.cpp:
49077 cleanup: remove code for option TilesFixedStructure
49078 --- source/Lib/TLibCommon/TComSlice.h | 6 ------
49079 source/Lib/TLibEncoder/TEncCavlc.cpp | 2 +-
49080 source/Lib/TLibEncoder/TEncCfg.h | 5 -----
49081 source/Lib/TLibEncoder/TEncTop.cpp | 1 - source/x265.h | 1 -
49082 source/x265cfg.cpp | 1 - source/x265enc.cpp | 1 - 7 files changed, 1
49083 insertions(+), 16 deletions(-)
49086 * source/x265.h, source/x265cfg.cpp, source/x265enc.cpp:
49087 cleanup: remove code for option LFCrossTileBoundaryFlag
49088 --- source/x265.h | 1 - source/x265cfg.cpp | 1 - source/x265enc.cpp |
49089 3 --- 3 files changed, 0 insertions(+), 5 deletions(-)
49092 * source/Lib/TLibEncoder/TEncCfg.h,
49093 source/Lib/TLibEncoder/TEncTop.cpp, source/x265.h,
49094 source/x265cfg.cpp, source/x265enc.cpp:
49095 cleanup: remove code for options UniformSpacingIdc
49096 --- source/Lib/TLibEncoder/TEncCfg.h | 5 -----
49097 source/Lib/TLibEncoder/TEncTop.cpp | 1 - source/x265.h | 1 -
49098 source/x265cfg.cpp | 1 - source/x265enc.cpp | 1 - 5 files changed, 0
49099 insertions(+), 9 deletions(-)
49102 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
49103 source/Lib/TLibEncoder/TEncGOP.cpp:
49104 cleanup: remove unused code in TComPic::createNonDBFilterInfo
49105 --- source/Lib/TLibCommon/TComPic.cpp | 10 +++-------
49106 source/Lib/TLibCommon/TComPic.h | 1 -
49107 source/Lib/TLibEncoder/TEncGOP.cpp | 2 +- 3 files changed, 4
49108 insertions(+), 9 deletions(-)
49111 * source/x265cfg.cpp:
49112 cleanup: remove unused code since tileFlag always false
49113 --- source/x265cfg.cpp | 30 ++---------------------------- 1 files
49114 changed, 2 insertions(+), 28 deletions(-)
49117 * source/Lib/TLibCommon/TComPicSym.cpp,
49118 source/Lib/TLibCommon/TComPicSym.h,
49119 source/Lib/TLibCommon/TComSlice.cpp,
49120 source/Lib/TLibCommon/TComSlice.h,
49121 source/Lib/TLibEncoder/TEncCavlc.cpp,
49122 source/Lib/TLibEncoder/TEncCfg.h,
49123 source/Lib/TLibEncoder/TEncGOP.cpp,
49124 source/Lib/TLibEncoder/TEncSlice.cpp,
49125 source/Lib/TLibEncoder/TEncTop.cpp, source/x265.h,
49126 source/x265cfg.cpp, source/x265cfg.h, source/x265enc.cpp:
49127 cleanup: remove code for options NumTileColumnsMinus1 and
49129 --- source/Lib/TLibCommon/TComPicSym.cpp | 38 +++++-------
49130 source/Lib/TLibCommon/TComPicSym.h | 12 ----
49131 source/Lib/TLibCommon/TComSlice.cpp | 14 ----
49132 source/Lib/TLibCommon/TComSlice.h | 42 -------------
49133 source/Lib/TLibEncoder/TEncCavlc.cpp | 20 +------
49134 source/Lib/TLibEncoder/TEncCfg.h | 51 ----------------
49135 source/Lib/TLibEncoder/TEncGOP.cpp | 44 ++++----------
49136 source/Lib/TLibEncoder/TEncSlice.cpp | 20 +++---
49137 source/Lib/TLibEncoder/TEncTop.cpp | 73 +----------------------
49138 source/x265.h | 2 - source/x265cfg.cpp | 109
49139 +--------------------------------- source/x265cfg.h | 5 --
49140 source/x265enc.cpp | 12 ---- 13 files changed, 43 insertions(+), 399
49144 * source/Lib/TLibCommon/TComDataCU.cpp:
49145 cleanup: onlyOneSliceInPic always true
49146 --- source/Lib/TLibCommon/TComDataCU.cpp | 188
49147 ++-------------------------------- 1 files changed, 8 insertions(+),
49151 * source/Lib/TLibCommon/TComDataCU.cpp,
49152 source/Lib/TLibCommon/TComDataCU.h,
49153 source/Lib/TLibCommon/TComLoopFilter.cpp,
49154 source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
49155 source/Lib/TLibCommon/TComSlice.cpp,
49156 source/Lib/TLibCommon/TComSlice.h,
49157 source/Lib/TLibEncoder/TEncCavlc.cpp,
49158 source/Lib/TLibEncoder/TEncCfg.h,
49159 source/Lib/TLibEncoder/TEncGOP.cpp,
49160 source/Lib/TLibEncoder/TEncTop.cpp, source/x265.h,
49161 source/x265cfg.cpp, source/x265enc.cpp:
49162 cleanup: remove code for LFCrossSliceBoundaryFlag
49163 --- source/Lib/TLibCommon/TComDataCU.cpp | 19 +++++++++----------
49164 source/Lib/TLibCommon/TComDataCU.h | 1 -
49165 source/Lib/TLibCommon/TComLoopFilter.cpp | 18 +++++++++---------
49166 source/Lib/TLibCommon/TComPic.cpp | 12 ------------
49167 source/Lib/TLibCommon/TComPic.h | 1 -
49168 source/Lib/TLibCommon/TComSlice.cpp | 2 --
49169 source/Lib/TLibCommon/TComSlice.h | 10 ----------
49170 source/Lib/TLibEncoder/TEncCavlc.cpp | 6 +++---
49171 source/Lib/TLibEncoder/TEncCfg.h | 6 ------
49172 source/Lib/TLibEncoder/TEncGOP.cpp | 12 ++----------
49173 source/Lib/TLibEncoder/TEncTop.cpp | 1 - source/x265.h | 1 -
49174 source/x265cfg.cpp | 1 - source/x265enc.cpp | 3 --- 14 files
49175 changed, 23 insertions(+), 70 deletions(-)
49178 * source/Lib/TLibCommon/TypeDef.h:
49179 cleanup: remove enum SliceConstraint
49180 --- source/Lib/TLibCommon/TypeDef.h | 9 --------- 1 files changed, 0
49181 insertions(+), 9 deletions(-)
49184 * source/Lib/TLibCommon/TComSlice.cpp,
49185 source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCfg.h,
49186 source/Lib/TLibEncoder/TEncCu.cpp,
49187 source/Lib/TLibEncoder/TEncGOP.cpp,
49188 source/Lib/TLibEncoder/TEncSlice.cpp,
49189 source/Lib/TLibEncoder/TEncTop.cpp, source/x265.h,
49190 source/x265cfg.cpp, source/x265enc.cpp:
49191 cleanup: remove code for option sliceSegmentMode and
49192 sliceSegmentModeArgument
49193 --- source/Lib/TLibCommon/TComSlice.cpp | 4 -
49194 source/Lib/TLibCommon/TComSlice.h | 9 ---
49195 source/Lib/TLibEncoder/TEncCfg.h | 11 ---
49196 source/Lib/TLibEncoder/TEncCu.cpp | 12 ----
49197 source/Lib/TLibEncoder/TEncGOP.cpp | 2 +-
49198 source/Lib/TLibEncoder/TEncSlice.cpp | 118
49199 +---------------------------------
49200 source/Lib/TLibEncoder/TEncTop.cpp | 4 - source/x265.h | 4 -
49201 source/x265cfg.cpp | 17 +----- source/x265enc.cpp | 9 --- 10 files
49202 changed, 3 insertions(+), 187 deletions(-)
49205 * source/Lib/TLibCommon/TComSlice.cpp,
49206 source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCfg.h,
49207 source/Lib/TLibEncoder/TEncCu.cpp,
49208 source/Lib/TLibEncoder/TEncGOP.cpp,
49209 source/Lib/TLibEncoder/TEncSlice.cpp, source/x265.h,
49210 source/x265cfg.cpp, source/x265enc.cpp:
49211 cleanup: remove code for option sliceMode and sliceModeArgument
49212 --- source/Lib/TLibCommon/TComSlice.cpp | 4 -
49213 source/Lib/TLibCommon/TComSlice.h | 10 ---
49214 source/Lib/TLibEncoder/TEncCfg.h | 12 ----
49215 source/Lib/TLibEncoder/TEncCu.cpp | 11 +---
49216 source/Lib/TLibEncoder/TEncGOP.cpp | 7 +-
49217 source/Lib/TLibEncoder/TEncSlice.cpp | 106
49218 +-------------------------------- source/x265.h | 3 -
49219 source/x265cfg.cpp | 20 +------ source/x265enc.cpp | 17 ------ 9
49220 files changed, 10 insertions(+), 180 deletions(-)
49223 * source/Lib/TLibCommon/TComDataCU.cpp,
49224 source/Lib/TLibCommon/TComPic.h, source/Lib/TLibEncoder/TEncCu.cpp,
49225 source/Lib/TLibEncoder/TEncCu.h,
49226 source/Lib/TLibEncoder/TEncSlice.cpp,
49227 source/Lib/TLibEncoder/TEncSlice.h:
49228 threading: remove unused C++ pointer reference (variant name do not
49229 modify for keep compatible)
49230 --- source/Lib/TLibCommon/TComDataCU.cpp | 4 ++--
49231 source/Lib/TLibCommon/TComPic.h | 2 +-
49232 source/Lib/TLibEncoder/TEncCu.cpp | 2 +-
49233 source/Lib/TLibEncoder/TEncCu.h | 2 +-
49234 source/Lib/TLibEncoder/TEncSlice.cpp | 8 ++++----
49235 source/Lib/TLibEncoder/TEncSlice.h | 4 ++-- 6 files changed, 11
49236 insertions(+), 11 deletions(-)
49239 2013-05-11 Steve Borho <steve@borho.org>
49241 * source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp,
49242 source/Lib/TLibEncoder/TEncCu.h,
49243 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
49244 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
49245 source/Lib/TLibEncoder/TEncSearch.cpp,
49246 source/Lib/TLibEncoder/TEncSearch.h,
49247 source/Lib/TLibEncoder/TEncSlice.cpp,
49248 source/Lib/TLibEncoder/TEncTop.cpp, source/x265.h,
49249 source/x265cfg.cpp, source/x265enc.cpp:
49250 Remove SBACRD configuration option
49253 * source/Lib/TLibEncoder/TEncSearch.cpp:
49254 TEncSearch: fix 16bpp compiler warnings
49257 * source/Lib/TLibCommon/TComRdCost.cpp,
49258 source/Lib/TLibCommon/TComRdCost.h:
49259 TComRdCost: remove dead 2x2 satd code paths
49261 HEVC does not support 2x2 partitions, even for chroma. See
49262 http://forum.doom9.org/showthread.php?t=167081
49265 * source/Lib/TLibCommon/TComRdCost.cpp:
49266 TComRdCost: fix old HM bug in dead 2x2 logic
49269 * source/Lib/TLibEncoder/TEncSearch.cpp:
49270 TEncSearch: use SATD primitives to measure chroma intra residual
49273 * source/encoder/x86/asm-primitives.cpp:
49274 asm: use XOP satd primitives when available; roughly 10x C versions
49277 * source/encoder/x86/asm-primitives.cpp:
49278 asm: use x264_pixel_satd_4x16_avx when available
49281 * source/encoder/x86/asm-primitives.cpp:
49282 asm: use x264_pixel_satd_4x16_sse4 when available
49285 * source/encoder/x86/asm-primitives.cpp:
49286 asm: use SSE2 satd functions for all partitions, where available
49288 Roughly 6x faster than C, 2x faster than MMX
49291 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/pixel.cpp,
49292 source/encoder/primitives.h, source/encoder/x86/asm-primitives.cpp,
49293 source/test/pixelharness.cpp:
49294 primitive: add sa8d_32x32 and sa8d_64x64, use for intra cost
49298 * source/Lib/TLibEncoder/TEncCu.cpp:
49299 TEncCu: remove for-loops over QP, make them simple expressions
49301 No sane encoder would ever do that sort of redundant analysis. There
49302 is a lot of cleanup that needs to trickle up from here. iMinQP and
49303 isAddLowestQP can probably be removed, and all the slice and SPS
49304 fields for QP RD can be removed, all the way up to the config
49305 options that enabled it.
49308 2013-05-10 Steve Borho <steve@borho.org>
49310 * source/Lib/TLibEncoder/TEncSearch.h, source/encoder/motion.h:
49311 fix aligned pixel caches for x86 and x64 builds
49313 Tested on VC10, VC11, and MinGW x86
49316 * source/Lib/TLibCommon/TComPicYuv.cpp,
49317 source/Lib/TLibCommon/TComPrediction.cpp,
49318 source/Lib/TLibCommon/TComPrediction.h,
49319 source/Lib/TLibEncoder/TEncSearch.cpp,
49320 source/encoder/CMakeLists.txt,
49321 source/encoder/InterpolationFilter.cpp,
49322 source/encoder/InterpolationFilter.h:
49323 remove unused InterpolationFilter.cpp, move filter args back into
49327 * source/Lib/TLibEncoder/TEncSearch.cpp:
49328 TEncSearch: replace filterCopy() call with cpyblock primitive
49331 * source/encoder/motion.h:
49332 motion: lessen alignment restriction for pixel cache
49334 Prevents compiler warnings about required padding
49337 * source/encoder/primitives.cpp:
49338 primitives: report XOP and FMA detection as well as CPU SIMD level
49341 * source/Lib/TLibEncoder/TEncSearch.h:
49342 TEncSearch: re-order member variables to avoid alignment causing
49345 Some VC versions will issue warnings if alignment decls require
49346 padding to be added (a performance warning)
49349 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/motion.cpp,
49350 source/encoder/motion.h:
49351 motion: rename MotionReference.plane to lumaPlane, remove unused
49355 * Merged in sumalatha/xhevc_sumalatha (pull request #132)
49357 Changed the variable name according to naming convention of HM
49360 2013-05-10 sumalatha <sumalatha>
49362 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
49363 changed the variable name according to naming convention of HM
49364 Included the comment such that early abort can be disabled
49367 * source/Lib/TLibEncoder/TEncCu.cpp:
49368 removed goto statement.
49371 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
49372 Incorporated Steves changes in optimized xcompressCU() to abort
49373 recursion if cost of child CU is greater that the cost of parent CU.
49376 2013-05-10 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
49378 * Merged multicoreware/xhevc into default
49381 2013-05-09 sumalatha <sumalatha>
49383 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h:
49384 optimized xcompressCU() to abort recursion if cost of child CU is
49385 greater that the cost of parent CU.
49388 2013-05-10 https://mandarmcw <https://mandarmcw@bitbucket.org/mandarmcw/xhevc_mandar1>
49390 * build/BuildEncoderApplications.bat:
49391 Implemented all posible configurations into Regression test(8bit_pre
49392 m(enable_test),8bit_HM(disable_test),16bit_prem(enable_test),16bit_H
49396 2013-05-10 ShinYee Chung <shinyee@multicorewareinc.com>
49398 * source/encoder/vec/intrapred.inc:
49399 Intra: Fix compile errors due to vector conversions.
49402 * source/encoder/common.cpp:
49403 Common: Fix the type mismatch between printf format and argument.
49406 * source/encoder/common.cpp:
49407 Common: Fix broken eol, tabs, spaces.
49410 2013-05-10 Steve Borho <steve@borho.org>
49412 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/bitcost.cpp,
49413 source/encoder/bitcost.h, source/encoder/motion.cpp,
49414 source/encoder/motion.h:
49415 motion: new bitcost method for BitCost and MotionEstimate classes
49418 * source/Lib/TLibCommon/TComRdCost.cpp,
49419 source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TypeDef.h,
49420 source/Lib/TLibEncoder/TEncSearch.cpp,
49421 source/Lib/TLibEncoder/TEncSlice.cpp:
49422 remove WEIGHTED_CHROMA_DISTORTION define
49425 * source/Lib/TLibCommon/CommonDef.h,
49426 source/Lib/TLibEncoder/TEncSearch.cpp:
49427 Remove GPB_SIMPLE_UNI define
49430 2013-05-10 Min Chen <min.chen@multicorewareinc.com>
49432 * source/encoder/vec/intrapred.inc:
49433 intrapred: optimize predIntraPlanar4 with 16bpp
49434 --- source/encoder/vec/intrapred.inc | 87
49435 +++++++++++++++++++++++++------------- 1 files changed, 58
49436 insertions(+), 29 deletions(-)
49439 * source/Lib/TLibCommon/TComPrediction.cpp:
49440 TComPrediction: fix build warning at 16bpp
49441 --- source/Lib/TLibCommon/TComPrediction.cpp | 4 ++-- 1 files
49442 changed, 2 insertions(+), 2 deletions(-)
49445 2013-05-10 Steve Borho <steve@borho.org>
49447 * source/encoder/vec/intrapred.inc,
49448 source/encoder/vec/vecprimitives.inc:
49449 vec: inc files should not have includes of their own
49452 2013-05-10 Min Chen <min.chen@multicorewareinc.com>
49454 * source/Lib/TLibCommon/TComPrediction.cpp,
49455 source/encoder/IntraPred.cpp, source/encoder/primitives.h,
49456 source/encoder/vec/intrapred.inc,
49457 source/encoder/vec/vecprimitives.inc:
49458 intrapred: optimize predIntraPlanar4 with 8bpp
49459 --- source/Lib/TLibCommon/TComPrediction.cpp | 15 +++-
49460 source/encoder/IntraPred.cpp | 51 +++++++++
49461 source/encoder/primitives.h | 2 + source/encoder/vec/intrapred.inc |
49462 169 ++++++++++++++++++++++++++++++
49463 source/encoder/vec/vecprimitives.inc | 1 + 5 files changed, 236
49464 insertions(+), 2 deletions(-)
49467 * source/VectorClass/vectori128.h:
49468 vector128: unsafe compress(map to packuswb)
49469 --- source/VectorClass/vectori128.h | 4 ++++ 1 files changed, 4
49470 insertions(+), 0 deletions(-)
49473 * source/VectorClass/vectori128.h:
49474 vector128: constant shift right and broadcast
49475 --- source/VectorClass/vectori128.h | 39
49476 +++++++++++++++++++++++++++++++++++++++ 1 files changed, 39
49477 insertions(+), 0 deletions(-)
49480 * source/VectorClass/vectori128.h:
49481 vector128: constant shift left
49482 --- source/VectorClass/vectori128.h | 31
49483 +++++++++++++++++++++++++++++++ 1 files changed, 31 insertions(+), 0
49487 2013-05-09 Steve Borho <steve@borho.org>
49489 * source/encoder/motion.cpp, source/encoder/motion.h:
49490 motion: remove fref class member
49493 * source/encoder/motion.cpp, source/encoder/motion.h:
49494 motion: remove residual functions from class
49496 motion compensation can happen well outside of the analysis loop, so
49497 there is no benefit in trying to re-use our pixel cache
49500 * source/test/ipfilterharness.cpp, source/test/testharness.h:
49501 testharness: adopt checkasm approach to measuring performance
49504 * source/Lib/TLibCommon/TComRdCost.cpp, source/encoder/x86/asm-
49505 primitives.cpp, source/encoder/x86/const-a.asm,
49506 source/encoder/x86/cpu-a.asm, source/encoder/x86/pixel-a.asm,
49507 source/encoder/x86/pixel.h, source/encoder/x86/sad-a.asm,
49508 source/encoder/x86/x86inc.asm, source/encoder/x86/x86util.asm:
49509 asm: enable x264 sad, sad_x3, sad_x4, sa8d, and satd assembly
49512 This required removing sa8d and satd primitives from TComRdCost.cpp
49513 - they are only called from the new motion search now. x264 asm has
49514 been updated to tip
49517 2013-05-09 Mandar Gurav <Mandar Gurav>
49519 * cfg/per-sequence/FourPeople.cfg:
49520 Implemented Steve's comments - 2
49523 * build/dr_psnr_script/psnr_script.bat, cfg/per-
49524 sequence/BasketballDrive.cfg, cfg/per-sequence/FourPeople.cfg:
49525 Implemented Steve's comments.
49528 2013-05-09 Mandar Gurav <mandar@multicorewareinc.com>
49530 * Merged multicoreware/xhevc into default
49533 2013-05-09 Mandar Gurav <Mandar Gurav>
49535 * build/dr_psnr_script/dr_psnr.exe,
49536 build/dr_psnr_script/psnr_script.bat:
49537 Use tools/dr_psnr binary built from the source directory. And use
49538 YUV file as input to dr_psnr instead of y4m.
49541 2013-05-09 Mandar Gurav <mandar@multicorewareinc.com>
49543 * Merged multicoreware/xhevc into default
49546 2013-05-08 Mandar Gurav <Mandar Gurav>
49551 * build/dr_psnr_script/psnr_script.bat:
49552 Implemented suggestions from Steve.
49555 2013-05-08 Mandar Gurav <mandar@multicorewareinc.com>
49557 * Merged multicoreware/xhevc into default
49560 2013-05-08 Mandar Gurav <Mandar Gurav>
49562 * build/dr_psnr_script/BasketballDrive.cfg,
49563 build/dr_psnr_script/FourPeople.cfg,
49564 build/dr_psnr_script/encoder_I_15P.cfg,
49565 build/dr_psnr_script/encoder_all_I.cfg,
49566 build/dr_psnr_script/psnr_script.bat, cfg/per-
49567 sequence/BasketballDrive.cfg, cfg/per-sequence/FourPeople.cfg:
49568 Implemented suggestions from Deepthi N.
49571 2013-05-08 Mandar Gurav <mandar@multicorewareinc.com>
49573 * Merged multicoreware/xhevc into default
49576 * Merged multicoreware/xhevc into default
49579 2013-05-07 Mandar Gurav <Mandar Gurav>
49581 * build/dr_psnr_script/BasketballDrive.cfg,
49582 build/dr_psnr_script/FourPeople.cfg,
49583 build/dr_psnr_script/TAppDecoder.exe,
49584 build/dr_psnr_script/dr_psnr.exe,
49585 build/dr_psnr_script/encoder_I_15P.cfg,
49586 build/dr_psnr_script/encoder_all_I.cfg,
49587 build/dr_psnr_script/psnr_script.bat:
49588 Script for generating dr_psnr output. Output files are as follows
49589 * encoder_output.txt
49590 * decoder_output.txt
49591 * dr_psnr_output.txt
49594 2013-05-09 Deepthi Devaki <Deepthi Devaki>
49599 * source/Lib/TLibCommon/TComPicYuv.cpp:
49603 * source/Lib/TLibCommon/TComPicYuv.cpp:
49604 Remove copy of Full Pel from filter. Instead copy it in
49608 2013-05-09 Steve Borho <steve@borho.org>
49610 * source/Lib/TLibEncoder/TEncSearch.cpp:
49611 motion: remove redundant plane pointer assignments
49614 * source/Lib/TLibEncoder/TEncSearch.cpp:
49615 disable new motion search until UMH mode is added
49617 The UMH search should have comparable quality to the HM search. The
49618 DIA search loses too much compression efficiency to use as a default
49621 * Merged in ggopu/ggopu_xhevc (pull request #129)
49623 motion: fix reference plane pointers and strides
49626 2013-05-09 ggopu <ggopu>
49628 * source/Lib/TLibEncoder/TEncSearch.cpp:
49629 Integrated new motion vector changes
49632 * source/Lib/TLibEncoder/TEncSearch.cpp:
49633 motion: fix reference plane pointers and strides
49636 2013-05-09 Deepthi Devaki <Deepthi Devaki>
49638 * source/Lib/TLibCommon/TComPicYuv.cpp:
49639 Fix output mismatch: change input width/height for filter
49642 2013-05-08 Steve Borho <steve@borho.org>
49644 * source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TypeDef.h,
49645 source/Lib/TLibEncoder/SEIwrite.cpp,
49646 source/Lib/TLibEncoder/SEIwrite.h, source/Lib/TLibEncoder/TEncCfg.h,
49647 source/Lib/TLibEncoder/TEncGOP.cpp,
49648 source/Lib/TLibEncoder/TEncGOP.h, source/x265cfg.cpp,
49649 source/x265enc.cpp:
49650 Remove REMOVE_SINGLE_SEI_EXTENSION_FLAGS, K0180_SCALABLE_NESTING_SEI
49654 * source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TypeDef.h,
49655 source/Lib/TLibEncoder/SEIwrite.cpp,
49656 source/Lib/TLibEncoder/SEIwrite.h, source/Lib/TLibEncoder/TEncCfg.h,
49657 source/Lib/TLibEncoder/TEncGOP.cpp,
49658 source/Lib/TLibEncoder/TEncTop.cpp,
49659 source/Lib/TLibEncoder/TEncTop.h, source/x265cfg.cpp,
49660 source/x265enc.cpp:
49661 Remove L0208_SOP_DESCRIPTION_SEI define (remove from HM)
49664 * source/Lib/TLibCommon/TComSlice.cpp,
49665 source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TypeDef.h,
49666 source/Lib/TLibEncoder/TEncCavlc.cpp,
49667 source/Lib/TLibEncoder/TEncCavlc.h, source/x265cfg.cpp,
49668 source/x265enc.cpp:
49669 Remove SIGNAL_BITRATE_PICRATE_IN_VPS define (removed from tip of HM)
49672 * source/compat/msvc/getopt.c, source/tools/dr_psnr/CMakeLists.txt,
49673 source/tools/dr_psnr/SSIMCalculator.cpp:
49674 dr_psnr: fix GCC build warnings
49677 * source/CMakeLists.txt, source/tools/CMakeLists.txt,
49678 source/tools/dr_psnr/CMakeLists.txt,
49679 source/tools/dr_psnr/PsnrCalculator.cpp,
49680 source/tools/dr_psnr/PsnrCalculator.h,
49681 source/tools/dr_psnr/SSIMCalculator.cpp,
49682 source/tools/dr_psnr/SSIMCalculator.h,
49683 source/tools/dr_psnr/dr_psnr.cpp:
49684 tools: add a tools/ folder and start with dr_psnr
49687 * source/Lib/TLibCommon/AccessUnit.h,
49688 source/Lib/TLibCommon/ContextModel.h, source/Lib/TLibCommon/NAL.h,
49689 source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComBitCounter.h,
49690 source/Lib/TLibCommon/TComBitStream.h,
49691 source/Lib/TLibCommon/TComList.h,
49692 source/Lib/TLibEncoder/AnnexBwrite.h,
49693 source/Lib/TLibEncoder/NALwrite.h,
49694 source/Lib/TLibEncoder/SEIwrite.h,
49695 source/Lib/TLibEncoder/SyntaxElementWriter.h,
49696 source/Lib/TLibEncoder/TEncAnalyze.h,
49697 source/Lib/TLibEncoder/TEncCavlc.h,
49698 source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncSbac.h:
49699 cleanup compile guards, no code effects
49702 * source/Lib/TLibCommon/ContextTables.h:
49703 remove FIX827, FIX712 #defines
49706 * source/Lib/TLibCommon/TComDataCU.h,
49707 source/Lib/TLibEncoder/TEncSlice.h,
49708 source/Lib/TLibEncoder/TEncTop.cpp,
49709 source/Lib/TLibEncoder/TEncTop.h:
49710 random white-space cleanups, no code changes
49713 2013-05-08 nandaku2 <deepthi@multicorewareinc.com>
49715 * Merged in deepthidevaki/xhevc_deepthid (pull request #124)
49717 Modifications to subpel generation
49720 2013-05-08 Deepthi Devaki <Deepthi Devaki>
49725 * source/Lib/TLibCommon/TComPicYuv.cpp:
49729 * source/Lib/TLibCommon/TComPicYuv.cpp:
49730 Change filter temp variable to short* instead of TshortYuv
49733 * source/Lib/TLibCommon/TComPicYuv.cpp,
49734 source/Lib/TLibCommon/TComPrediction.cpp:
49735 Uncrustified two files.
49738 * source/Lib/TLibCommon/TComPicYuv.cpp,
49739 source/Lib/TLibCommon/TComPrediction.cpp:
49740 Use block copy primitives instead of filterCopy
49746 2013-05-07 Deepthi Devaki <Deepthi Devaki>
49748 * source/encoder/vec/ipfilter.inc, source/encoder/vec/ipfilter16.inc,
49749 source/encoder/vec/ipfilter8.inc, source/test/ipfilterharness.cpp:
49750 Backed out changeset: 1baaa3822b79
49753 * source/encoder/vec/ipfilter.inc, source/encoder/vec/ipfilter16.inc,
49754 source/encoder/vec/ipfilter8.inc, source/test/ipfilterharness.cpp:
49755 Backed out changeset: da889c1d7641
49758 2013-05-08 Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
49760 * Merged multicoreware/xhevc into default
49763 * source/Lib/TLibCommon/TComPicYuv.cpp:
49764 Merged multicoreware/xhevc into default
49767 2013-05-07 Deepthi Devaki <Deepthi Devaki>
49769 * source/Lib/TLibCommon/TComPicYuv.cpp,
49770 source/Lib/TLibCommon/TComPicYuv.h,
49771 source/Lib/TLibCommon/TComPrediction.cpp,
49772 source/Lib/TLibEncoder/TEncSearch.cpp:
49773 Remove unwanted comments and code.
49776 2013-05-08 Deepthi <Deepthi>
49781 * source/encoder/CMakeLists.txt, source/encoder/common.cpp,
49782 source/encoder/common.h:
49783 Debug Support for dumping buffers. Simply typecast all pointers to
49784 void*, and it will dump the required number of bytes into a buffer.
49787 2013-05-08 Steve Borho <steve@borho.org>
49789 * source/test/testharness.h:
49790 testbench: GCC build fixes
49793 * Merged in mandarmcw/xhevc_mandar_mahesh (pull request #121)
49795 Prints the avg. number of cycles taken for vec_primitive and C
49799 2013-05-07 Mandar Gurav <Mandar Gurav>
49801 * source/test/testharness.h:
49802 Prints the avg. number of cycles taken for vec_primitive and C
49806 2013-05-08 nandaku2 <deepthi@multicorewareinc.com>
49808 * Merged in sumalatha/xhevc_sumalatha (pull request #122)
49810 fix for the output mismatch issue. Now when AMPREfine flag is not
49811 set, output matches
49814 2013-05-08 sumalatha <sumalatha>
49816 * source/Lib/TLibEncoder/TEncTop.cpp:
49817 fix for the output mismatch issue. Now when AMPREfine flag is not
49818 set, output matches
49821 2013-05-07 Steve Borho <steve@borho.org>
49823 * source/Lib/TLibCommon/TComPicYuv.cpp, source/PPA/ppaCPUEvents.h:
49824 ppa: add an event for TComPicYuv::extendPicBorder()
49827 * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg:
49828 white-space nits in config files
49831 2013-05-07 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
49833 * source/test/filterharness.cpp, source/test/filterharness.h:
49834 Merged multicoreware/xhevc into default
49837 2013-05-07 sumalatha <sumalatha>
49839 * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg,
49840 source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCfg.h,
49841 source/Lib/TLibEncoder/TEncCu.cpp,
49842 source/Lib/TLibEncoder/TEncTop.cpp, source/x265.h,
49843 source/x265cfg.cpp, source/x265enc.cpp:
49844 Included additional flag "AMPRefine" in cfg file and made changes in
49845 the code such that if the flag is enabled, the partition size Nx2N
49846 and 2NxN is used for search and other operations in INTER otherwise
49847 these two partition sizes are excluded.
49850 2013-05-07 Deepthi Devaki <Deepthi Devaki>
49852 * source/Lib/TLibCommon/TComPrediction.cpp,
49853 source/Lib/TLibEncoder/TEncSearch.cpp,
49854 source/Lib/TLibEncoder/TEncSearch.h:
49855 Removed unwanted comments
49858 * source/encoder/InterpolationFilter.cpp:
49859 Modified filterverticalpel_pel
49862 * source/encoder/vec/ipfilter.inc, source/encoder/vec/ipfilter16.inc,
49863 source/encoder/vec/ipfilter8.inc, source/test/ipfilterharness.cpp:
49864 Added vector primitives for filtervertical_pel_pel
49867 * source/Lib/TLibCommon/TComPicYuv.cpp,
49868 source/Lib/TLibCommon/TComPicYuv.h:
49869 Remove all references to chroma filterBlocks.
49872 * source/Lib/TLibCommon/TComPicYuv.cpp,
49873 source/Lib/TLibCommon/TComPicYuv.h,
49874 source/Lib/TLibCommon/TComPrediction.cpp,
49875 source/Lib/TLibEncoder/TEncSearch.cpp,
49876 source/Lib/TLibEncoder/TEncSearch.h:
49877 ME and Prediction uses new Luma subpel blocks, instead of generating
49881 * source/test/CMakeLists.txt, source/test/filterharness.cpp,
49882 source/test/filterharness.h, source/test/testbench.cpp:
49883 Removed old filter from testbench
49886 * source/encoder/macroblock.cpp:
49887 Removed old filter c primitives from macroblock.cpp
49890 * source/encoder/vec/macroblock.inc:
49891 Removed old filters vec primitives
49894 2013-05-06 Steve Borho <steve@borho.org>
49896 * source/encoder/vec/blockcopy.inc:
49897 blockcopy: retask 8bpp s_p for s_c
49900 * source/encoder/pixel.cpp, source/encoder/primitives.h,
49901 source/test/pixelharness.cpp, source/test/pixelharness.h:
49902 pixel: introduce blockcopy_s_c primitive for expanding bytes to
49905 In some places, we always want to expand bytes to shorts
49906 unconditionally, regardless of the size of pixel/Pel. This function
49907 pointer may be used for that. Implementation wise, it should use the
49908 existing vectorized function for 8bpp blockcopy_s_p.
49911 * source/Lib/TLibCommon/TComPrediction.cpp:
49912 TComPrediction: fix build warning at 16bpp
49915 * Merged in deepthidevaki/xhevc_deepthid (pull request #118)
49917 Added function to generate Luma subpels for entire frame.
49920 2013-05-06 Deepthi Devaki <Deepthi Devaki>
49922 * source/Lib/TLibCommon/TComPicYuv.cpp:
49923 Modified function to generate Luma subpels for entire frame.
49926 * source/Lib/TLibCommon/TComPicYuv.cpp:
49927 Functions to generate QPels for entire frame
49930 * source/Lib/TLibCommon/TComPicYuv.cpp,
49931 source/Lib/TLibCommon/TComPicYuv.h,
49932 source/encoder/InterpolationFilter.h:
49933 Generate Hpel for entire frame. (tested!)
49936 2013-05-06 Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
49938 * source/Lib/TLibCommon/TComPicYuv.h,
49939 source/encoder/vec/interpolationfilter.inc:
49940 Merged multicoreware/xhevc into default
49943 2013-05-03 Deepthi Devaki <Deepthi Devaki>
49945 * source/Lib/TLibCommon/TComPicYuv.h:
49946 Added access functions for filteredBlocks
49952 * source/Lib/TLibCommon/TComPicYuv.cpp:
49953 Initialize m_filterBlocks to NULL
49956 * source/Lib/TLibCommon/TComPicYuv.cpp:
49957 Fix deallocating filterBlocks memory.
49960 * source/Lib/TLibCommon/TComPicYuv.cpp,
49961 source/Lib/TLibCommon/TComPicYuv.h, source/encoder/TShortYUV.h:
49962 Added Data structures for H/Q planes
49965 2013-05-06 Steve Borho <steve@borho.org>
49967 * source/test/intrapredharness.cpp:
49968 intrapredharness: prevent out-of-bounds reads during validation
49972 * source/encoder/vec/ipfilter.inc:
49973 ipfilter: remove cruft that was only for preventing unused parameter
49977 * source/encoder/vec/ipfilter.inc, source/encoder/vec/ipfilter8.inc:
49978 Merged in mandarmcw/xhevc_mandar_mahesh (pull request #117)
49980 Filter implementation for HIGH_BIT_DEPTH=0
49983 2013-05-06 Mandar Gurav <Mandar Gurav>
49985 * source/encoder/vec/ipfilter.inc, source/encoder/vec/ipfilter8.inc:
49986 Filter implementation for HIGH_BIT_DEPH=0
49989 2013-05-06 Min Chen <chenm003@163.com>
49991 * source/test/intrapredharness.cpp, source/test/intrapredharness.h:
49992 intrapred: testbench for xPredIntraDC
49993 --- source/test/intrapredharness.cpp | 59
49994 +++++++++++++++++++++++++++++---------
49995 source/test/intrapredharness.h | 4 ++- 2 files changed, 48
49996 insertions(+), 15 deletions(-)
49999 * source/Lib/TLibCommon/TComPrediction.cpp,
50000 source/encoder/IntraPred.cpp, source/encoder/primitives.h,
50001 source/encoder/vec/intrapred.inc:
50002 intrapred: C reference model and code cleanup
50003 --- source/Lib/TLibCommon/TComPrediction.cpp | 12 ++-
50004 source/encoder/IntraPred.cpp | 44 ++++++++++-
50005 source/encoder/primitives.h | 6 +- source/encoder/vec/intrapred.inc
50006 | 132 +----------------------------- 4 files changed, 53
50007 insertions(+), 141 deletions(-)
50010 * source/encoder/vec/intrapred.inc:
50011 intrapred: simplify in xDCPredFiltering()
50012 --- source/encoder/vec/intrapred.inc | 10 ++++++---- 1 files changed,
50013 6 insertions(+), 4 deletions(-)
50016 * source/Lib/TLibCommon/TComPrediction.cpp,
50017 source/encoder/IntraPred.cpp, source/encoder/primitives.h,
50018 source/encoder/vec/intrapred.inc:
50019 intrapred: new vector optimize code for predIntraDC,
50021 --- source/Lib/TLibCommon/TComPrediction.cpp | 4 +
50022 source/encoder/IntraPred.cpp | 1 + source/encoder/primitives.h | 2 +
50023 source/encoder/vec/intrapred.inc | 471
50024 ++++++++++++++++++++++++++++++ 4 files changed, 478 insertions(+), 0
50028 * source/VectorClass/vectori128.h:
50029 vector128: constant shift for Vec8us
50030 --- source/VectorClass/vectori128.h | 12 ++++++++++++ 1 files
50031 changed, 12 insertions(+), 0 deletions(-)
50034 * source/VectorClass/vectori128.h, source/encoder/vec/intrapred.inc:
50035 vector128: more general load_partial and store_partial
50036 --- source/VectorClass/vectori128.h | 56
50037 +++++++++++++++++++++++++++++++------
50038 source/encoder/vec/intrapred.inc | 3 +- 2 files changed, 48
50039 insertions(+), 11 deletions(-)
50042 * source/VectorClass/vectori128.h, source/encoder/vec/intrapred.inc:
50043 vectorclass: fix Vec4ui wrong action and name
50044 --- source/VectorClass/vectori128.h | 4 ++--
50045 source/encoder/vec/intrapred.inc | 4 ++-- 2 files changed, 4
50046 insertions(+), 4 deletions(-)
50049 2013-05-06 Steve Borho <steve@borho.org>
50051 * source/encoder/vec/ipfilter16.inc, source/encoder/vec/ipfilter8.inc:
50052 ipfilter: more pruning
50055 * source/encoder/vec/ipfilter.inc, source/encoder/vec/ipfilter16.inc,
50056 source/encoder/vec/ipfilter8.inc,
50057 source/encoder/vec/vecprimitives.inc:
50058 vec: inc files should not include other headers
50060 Only vecprimitives.inc may include files; the other files are being
50061 included within a namespace and can cause strange link problems if
50062 headers are included.
50065 * source/Lib/TLibEncoder/TEncSlice.cpp:
50066 TEncSlice: backout replacement of calcRdCost64 with CALCRDCOST_SAD
50068 Those were two entirely different function calls
50071 2013-05-06 nandaku2 <deepthi@multicorewareinc.com>
50073 * source/encoder/vec/interpolationfilter.inc:
50074 Merged in mandarmcw/xhevc_mandar_mahesh (pull request #116)
50076 Interpolationfilter primitives restructured.
50079 2013-05-06 Mandar Gurav <Mandar Gurav>
50081 * source/encoder/vec/CMakeLists.txt,
50082 source/encoder/vec/interpolationfilter.inc,
50083 source/encoder/vec/ipfilter.inc, source/encoder/vec/ipfilter16.inc,
50084 source/encoder/vec/ipfilter8.inc,
50085 source/encoder/vec/vecprimitives.inc:
50086 Interpolationfilter primitives restructured.
50089 2013-05-06 sumalatha <sumalatha>
50091 * source/Lib/TLibCommon/TComRdCost.h,
50092 source/Lib/TLibEncoder/TEncCu.cpp,
50093 source/Lib/TLibEncoder/TEncSearch.cpp,
50094 source/Lib/TLibEncoder/TEncSlice.cpp:
50095 Replaced the function call for calcRdCost() with MACRO CALCRDCOST
50096 such that in macro, the switch case for selection of "eDFunc" is
50100 2013-05-05 Steve Borho <steve@borho.org>
50102 * source/Lib/TLibEncoder/TEncSearch.cpp:
50103 TEncSearch: fix warning with 15bpp build
50106 * source/Lib/TLibCommon/TComYuv.cpp:
50107 TComYuv: use primitives for remaining copy functions
50110 * source/Lib/TLibCommon/TComYuv.cpp:
50111 TComYuv: use pixel copy primitives
50114 * source/Lib/TLibCommon/TComDataCU.h,
50115 source/Lib/TLibCommon/TComPicYuv.h:
50116 white-space nits, no changes
50119 * source/Lib/TLibEncoder/TEncSearch.cpp:
50120 TEncSearch: get access to the original source pixel plane and real
50124 * source/Lib/TLibEncoder/TEncSearch.cpp:
50125 TEncSearch: get offset into original picture buffer
50127 pcOrgYuv seems to point to a small YUV buffer holding only the
50128 pixels for the current CTU under analysis.
50131 * source/Lib/TLibCommon/TComPrediction.cpp:
50132 TComPrediction: fix MSVC reported stack corruption
50134 When run in debug mode, MSVC reported stack corruption near
50135 leftColumn. The 1st for loop is iterating over blkSize+1
50137 This looks like an HM bug exposed by reducing MAX_CU_SIZE to the
50141 * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc,
50142 source/encoder/vec/pixel8.inc:
50143 pixel: add vectorized sad_48_x3
50146 * source/encoder/pixel.cpp, source/encoder/vec/pixel.inc,
50147 source/encoder/vec/pixel16.inc, source/encoder/vec/pixel8.inc:
50148 pixel: add vectorized sad_48_x4
50151 * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc,
50152 source/encoder/vec/pixel8.inc:
50153 pixel: add vectorized sad 48
50156 * source/encoder/vec/pixel16.inc:
50157 pixel16: fix bug in sad_12_x4
50160 * source/encoder/vec/pixel16.inc:
50161 pixel16: fix bug in sad_12_x3
50164 * source/Lib/TLibEncoder/TEncSearch.cpp:
50165 TEncSearch: fix compiler warning
50168 * source/encoder/vec/pixel8.inc:
50169 pixel8: fix bug in sad_4_x4
50172 * source/encoder/pixel.cpp, source/encoder/primitives.cpp,
50173 source/encoder/primitives.h, source/test/pixelharness.cpp:
50174 pixel: add 48 sized partitions
50177 2013-05-05 Min Chen <chenm003@163.com>
50179 * source/Lib/TLibCommon/TComPattern.cpp,
50180 source/Lib/TLibCommon/TComPrediction.cpp,
50181 source/Lib/TLibCommon/TComRom.h:
50182 intrapred: use alignment piAdibuf
50183 --- source/Lib/TLibCommon/TComPattern.cpp | 18 +++++++++---------
50184 source/Lib/TLibCommon/TComPrediction.cpp | 4 ++--
50185 source/Lib/TLibCommon/TComRom.h | 1 + 3 files changed, 12
50186 insertions(+), 11 deletions(-)
50189 * source/Lib/TLibCommon/TComPattern.cpp:
50190 intrapred: perform by merge loop
50191 --- source/Lib/TLibCommon/TComPattern.cpp | 10 ++-------- 1 files
50192 changed, 2 insertions(+), 8 deletions(-)
50195 * source/Lib/TLibCommon/TComPattern.cpp:
50196 intrapred: perform pixel copy with memcpy() in
50197 TComPattern::fillReferenceSamples
50198 --- source/Lib/TLibCommon/TComPattern.cpp | 23
50199 ++++------------------- 1 files changed, 4 insertions(+), 19
50203 * source/Lib/TLibCommon/TComPattern.cpp,
50204 source/Lib/TLibCommon/TComPattern.h:
50205 intrapred: remove unsupported mode code for Chroma_FromLuma
50206 --- source/Lib/TLibCommon/TComPattern.cpp | 15 +++------------
50207 source/Lib/TLibCommon/TComPattern.h | 3 +-- 2 files changed, 4
50208 insertions(+), 14 deletions(-)
50211 * source/Lib/TLibCommon/TComPattern.cpp:
50212 intrapred: perform pixel copy with memcpy() in
50213 TComPattern::initAdiPattern
50214 --- source/Lib/TLibCommon/TComPattern.cpp | 11 +++-------- 1 files
50215 changed, 3 insertions(+), 8 deletions(-)
50218 * source/Lib/TLibCommon/TComPrediction.cpp,
50219 source/Lib/TLibCommon/TComPrediction.h,
50220 source/Lib/TLibEncoder/TEncSearch.cpp:
50221 intrapred: correct buffer name from YuvExt to PredBuf
50222 --- source/Lib/TLibCommon/TComPrediction.cpp | 14 +++++++-------
50223 source/Lib/TLibCommon/TComPrediction.h | 12 ++++++------
50224 source/Lib/TLibEncoder/TEncSearch.cpp | 14 +++++++------- 3 files
50225 changed, 20 insertions(+), 20 deletions(-)
50228 * source/Lib/TLibCommon/TComRom.h:
50229 reduce MAX_CU_SIZE to 64
50230 --- source/Lib/TLibCommon/TComRom.h | 2 +- 1 files changed, 1
50231 insertions(+), 1 deletions(-)
50234 2013-05-05 Steve Borho <steve@borho.org>
50236 * source/Lib/TLibEncoder/TEncSearch.cpp,
50237 source/Lib/TLibEncoder/TEncSearch.h:
50238 TEncSearch: SAD primitives all expect 16byte aligned fenc buffer
50241 * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc,
50242 source/encoder/vec/pixel8.inc:
50243 pixel: finish optimizations - performance summary below
50245 Measured on AMD Trinity A10M (more tuning can be done)
50247 16b orig 16b opt 8b orig 8b opt sad[ 4x4] 3.79x 3.51x 2.53x 3.34x
50248 sad_x3[ 4x4] 2.02x 4.17x 4.17x 5.99x sad_x4[ 4x4] 3.63x 4.35x 3.64x
50249 5.95x sad[ 4x8] 3.76x 3.90x 4.21x 3.47x sad_x3[ 4x8] 3.64x 4.33x
50250 5.67x 7.58x sad_x4[ 4x8] 2.56x 4.74x 6.39x 8.21x sad[ 4x12] 4.25x
50251 3.94x 3.11x 4.74x sad_x3[ 4x12] 4.67x 4.98x 4.93x 8.96x sad_x4[
50252 4x12] 2.82x 5.31x 6.71x 9.39x sad[ 4x16] 4.42x 3.96x 3.41x 3.60x
50253 sad_x3[ 4x16] 4.65x 5.09x 6.98x 8.60x sad_x4[ 4x16] 3.17x 5.35x
50254 7.81x 8.41x sad[ 4x24] 5.08x 4.07x 3.69x 4.19x sad_x3[ 4x24] 5.53x
50255 5.83x 7.70x 8.82x sad_x4[ 4x24] 3.52x 5.73x 8.32x 9.37x sad[ 4x32]
50256 5.59x 3.94x 3.99x 4.00x sad_x3[ 4x32] 5.83x 5.27x 7.39x 9.31x
50257 sad_x4[ 4x32] 3.46x 5.41x 7.94x 9.42x sad[ 4x64] 5.40x 3.68x 3.60x
50258 4.36x sad_x3[ 4x64] 5.89x 5.95x 8.27x 8.82x sad_x4[ 4x64] 3.56x
50259 6.37x 9.17x 9.50x sad[ 8x4] 6.10x 5.74x 5.87x 5.84x sad_x3[ 8x4]
50260 6.39x 8.13x 9.75x 11.53x sad_x4[ 8x4] 3.26x 8.52x 9.19x 10.51x sad[
50261 8x8] 6.05x 6.33x 8.87x 8.01x sad_x3[ 8x8] 6.32x 9.18x 11.84x 13.61x
50262 sad_x4[ 8x8] 4.14x 10.67x 12.58x 14.97x sad[ 8x12] 8.03x 6.79x
50263 10.30x 6.91x sad_x3[ 8x12] 8.84x 10.46x 12.15x 17.12x sad_x4[ 8x12]
50264 5.28x 11.92x 12.83x 16.98x sad[ 8x16] 8.23x 6.79x 7.63x 9.17x
50265 sad_x3[ 8x16] 9.26x 11.33x 13.88x 17.11x sad_x4[ 8x16] 5.49x 12.22x
50266 14.27x 17.19x sad[ 8x24] 10.02x 6.93x 8.16x 9.32x sad_x3[ 8x24]
50267 11.32x 11.86x 15.38x 17.91x sad_x4[ 8x24] 6.48x 13.29x 15.28x 17.95x
50268 sad[ 8x32] 10.96x 6.94x 8.03x 7.51x sad_x3[ 8x32] 12.70x 10.95x
50269 14.03x 17.67x sad_x4[ 8x32] 6.87x 13.09x 15.16x 17.80x sad[ 8x64]
50270 10.61x 6.76x 8.18x 8.75x sad_x3[ 8x64] 12.35x 12.67x 16.05x 17.61x
50271 sad_x4[ 8x64] 6.70x 14.02x 17.93x 17.90x sad[ 12x4] 12.01x 8.40x
50272 4.32x 11.48x sad_x3[ 12x4] 14.04x 7.17x 9.33x 12.21x sad_x4[ 12x4]
50273 4.42x 7.61x 9.60x 12.85x sad[ 12x8] 5.78x 10.04x 3.35x 14.10x
50274 sad_x3[ 12x8] 5.31x 8.08x 10.47x 15.54x sad_x4[ 12x8] 4.34x 9.55x
50275 11.67x 16.22x sad[12x12] 6.83x 10.16x 2.92x 15.61x sad_x3[12x12]
50276 6.52x 9.10x 9.02x 18.85x sad_x4[12x12] 3.65x 9.97x 11.17x 18.88x
50277 sad[12x16] 6.68x 10.00x 3.90x 14.68x sad_x3[12x16] 6.04x 9.09x
50278 12.11x 18.01x sad_x4[12x16] 4.12x 10.20x 10.40x 16.77x sad[12x24]
50279 7.30x 10.50x 3.72x 17.46x sad_x3[12x24] 6.50x 9.48x 11.51x 18.17x
50280 sad_x4[12x24] 4.42x 10.80x 12.50x 19.86x sad[12x32] 7.26x 10.35x
50281 3.60x 15.86x sad_x3[12x32] 7.37x 9.28x 10.14x 19.57x sad_x4[12x32]
50282 4.50x 10.46x 11.64x 19.26x sad[12x64] 7.39x 10.43x 3.68x 16.47x
50283 sad_x3[12x64] 6.97x 9.85x 11.97x 19.00x sad_x4[12x64] 4.74x 10.70x
50284 13.86x 19.14x sad[ 16x4] 6.70x 11.02x 16.55x 15.20x sad_x3[ 16x4]
50285 2.94x 10.38x 14.13x 20.10x sad_x4[ 16x4] 9.72x 10.35x 13.35x 18.95x
50286 sad[ 16x8] 8.44x 13.62x 23.35x 22.69x sad_x3[ 16x8] 8.36x 11.16x
50287 17.99x 25.49x sad_x4[ 16x8] 12.18x 13.23x 18.34x 23.65x sad[16x12]
50288 10.72x 13.74x 25.86x 19.47x sad_x3[16x12] 11.61x 13.38x 19.21x
50289 31.36x sad_x4[16x12] 13.33x 13.83x 19.15x 31.15x sad[16x16] 9.02x
50290 13.12x 20.34x 24.25x sad_x3[16x16] 10.56x 13.96x 22.97x 31.96x
50291 sad_x4[16x16] 14.20x 14.20x 23.01x 28.75x sad[16x24] 11.53x 13.88x
50292 25.07x 21.63x sad_x3[16x24] 12.69x 14.23x 25.64x 32.38x
50293 sad_x4[16x24] 12.16x 15.11x 21.14x 34.09x sad[16x32] 13.78x 12.36x
50294 24.08x 20.00x sad_x3[16x32] 11.73x 13.73x 25.03x 33.07x
50295 sad_x4[16x32] 12.30x 14.24x 17.85x 33.74x sad[16x64] 12.01x 14.42x
50296 29.62x 20.27x sad_x3[16x64] 9.17x 15.85x 28.93x 26.92x sad_x4[16x64]
50297 10.81x 13.19x 13.30x 27.21x sad[ 24x4] 11.59x 17.13x sad_x3[ 24x4]
50298 10.48x 13.78x sad_x4[ 24x4] 11.10x 11.48x sad[ 24x8] 12.13x 18.30x
50299 sad_x3[ 24x8] 10.54x 21.45x sad_x4[ 24x8] 10.38x 20.92x sad[24x12]
50300 13.24x 19.48x sad_x3[24x12] 11.65x 24.07x sad_x4[24x12] 10.70x
50301 23.24x sad[24x16] 14.78x 16.64x sad_x3[24x16] 12.28x 24.14x
50302 sad_x4[24x16] 11.00x 23.40x sad[24x24] 13.03x 18.30x sad_x3[24x24]
50303 11.58x 25.63x sad_x4[24x24] 11.58x 24.97x sad[24x32] 13.31x 20.60x
50304 sad_x3[24x32] 11.98x 24.82x sad_x4[24x32] 11.75x 24.23x sad[24x64]
50305 14.44x 19.69x sad_x3[24x64] 11.99x 24.59x sad_x4[24x64] 10.38x
50306 24.77x sad[ 32x4] 14.00x 13.52x 16.56x 22.89x sad_x3[ 32x4] 11.05x
50307 10.79x 19.78x 27.12x sad_x4[ 32x4] 10.05x 9.93x 13.85x 24.46x sad[
50308 32x8] 8.41x 14.32x 27.08x 25.34x sad_x3[ 32x8] 12.81x 11.18x 27.39x
50309 29.64x sad_x4[ 32x8] 10.39x 9.57x 13.85x 29.09x sad[32x12] 10.30x
50310 16.07x 26.75x 27.38x sad_x3[32x12] 14.42x 11.35x 23.73x 33.19x
50311 sad_x4[32x12] 10.77x 10.22x 16.79x 33.34x sad[32x16] 9.98x 15.20x
50312 29.70x 27.72x sad_x3[32x16] 10.34x 11.84x 27.65x 32.54x
50313 sad_x4[32x16] 10.91x 11.07x 12.62x 33.63x sad[32x24] 10.65x 15.88x
50314 32.63x 28.39x sad_x3[32x24] 11.09x 11.14x 29.62x 33.79x
50315 sad_x4[32x24] 11.21x 11.18x 13.53x 34.14x sad[32x32] 11.62x 14.51x
50316 32.15x 24.65x sad_x3[32x32] 14.23x 11.83x 29.88x 30.06x
50317 sad_x4[32x32] 11.63x 11.44x 15.78x 33.15x sad[32x64] 11.39x 15.72x
50318 35.13x 28.99x sad_x3[32x64] 10.43x 10.39x 28.87x 36.20x
50319 sad_x4[32x64] 10.73x 9.71x 14.08x 36.61x sad[ 64x4] 9.92x 12.61x
50320 24.17x 25.65x sad_x3[ 64x4] 10.89x 9.16x 20.94x 27.04x sad_x4[ 64x4]
50321 7.64x 9.67x 11.56x 24.33x sad[ 64x8] 8.64x 13.43x 25.54x 26.88x
50322 sad_x3[ 64x8] 11.55x 9.80x 22.40x 23.04x sad_x4[ 64x8] 8.34x 10.10x
50323 12.34x 18.87x sad[64x12] 9.41x 14.17x 27.20x 28.67x sad_x3[64x12]
50324 12.39x 9.30x 23.76x 26.13x sad_x4[64x12] 7.88x 9.21x 14.02x 22.10x
50325 sad[64x16] 8.66x 14.51x 28.84x 30.87x sad_x3[64x16] 8.98x 9.60x
50326 24.42x 27.69x sad_x4[64x16] 8.27x 9.67x 29.10x 24.21x sad[64x24]
50327 9.16x 13.90x 24.11x 27.05x sad_x3[64x24] 8.56x 9.75x 16.25x 28.11x
50328 sad_x4[64x24] 9.61x 9.99x 30.53x 24.77x sad[64x32] 10.06x 14.10x
50329 25.67x 28.96x sad_x3[64x32] 8.46x 9.97x 13.58x 29.50x sad_x4[64x32]
50330 10.15x 10.14x 31.67x 25.41x sad[64x64] 10.06x 14.75x 25.82x 32.25x
50331 sad_x3[64x64] 8.04x 8.93x 31.06x 30.90x sad_x4[64x64] 9.36x 9.88x
50335 * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc,
50336 source/encoder/vec/pixel8.inc:
50337 pixel: optimize sad_4 and sad_8 to not need helpers
50340 * source/encoder/vec/pixel8.inc:
50341 pixel8: more cleanups, no behavior changes
50344 * source/encoder/vec/pixel8.inc:
50345 pixel8: intermediate variable rename, to be consistent with pixel16
50348 * source/encoder/vec/pixel8.inc:
50349 pixel8: 8bpp sad_64_x4 and sad_64_x3 cannot have residual rows
50352 * source/encoder/vec/pixel16.inc:
50353 pixel16: optimize 16bpp sad_N_x3 (adapted copies of sad_N_x4)
50356 * source/encoder/vec/pixel16.inc:
50357 pixel16: optimize sad_N_x4 16bpp
50360 * source/encoder/vec/pixel.inc, source/encoder/vec/pixel8.inc:
50361 pixel8: optimize sad_N_x4 8bpp, add sad_24_x4
50364 * source/encoder/vec/pixel8.inc:
50365 pixel8: optimize 8bpp sad_12_x4
50368 * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc,
50369 source/encoder/vec/pixel8.inc:
50370 pixel: add sad_24 for 8bpp and 24bpp
50373 * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc:
50374 pixel16: add sad_24_x3
50377 * source/encoder/vec/pixel16.inc:
50378 pixel16: fix some unaligned access exceptions triggered by VC10
50382 * source/encoder/vec/pixel16.inc:
50383 pixel16: fixups for 16bpp primitives
50386 * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc,
50387 source/encoder/vec/pixel8.inc:
50388 pixel: optimize sad_8_x4 - now same X over C as sad_8_x3
50391 * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc,
50392 source/encoder/vec/pixel8.inc:
50393 pixel: optimize sad_4_x4, remove unnecessary sad_X_4_x4 functions
50396 * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc,
50397 source/encoder/vec/pixel8.inc:
50398 pixel: remove more useless lx parameters and for-loops for x3
50402 * source/encoder/vec/pixel8.inc:
50403 pixel: optimize sad_64_x3 - about 20% improvement
50406 * source/encoder/vec/pixel8.inc:
50407 pixel: optimize sad_32_x3 - about 20% improvement, remove unused
50411 * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc,
50412 source/encoder/vec/pixel8.inc:
50413 pixel: optimize sad_16_x3 - about 30% improvement, remove sad_16_4
50416 2013-05-04 Steve Borho <steve@borho.org>
50418 * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc,
50419 source/encoder/vec/pixel8.inc:
50420 pixel: optimize sad_12_x3 - about 2x improvement, remove sad_12_4
50423 * source/encoder/vec/pixel8.inc:
50424 pixel8: slight tuneup for sad_8_3x
50427 * source/encoder/vec/pixel8.inc:
50428 pixel8: allow 16 rows in a row of 4-wide 8bpp blocks - up to 30%
50432 * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc,
50433 source/encoder/vec/pixel8.inc:
50434 pixel: sad_8_x3<4> is faster than sad_8_4_x3<8,4> which seems to
50438 2013-05-05 ShinYee Chung <shinyee@multicorewareinc.com>
50440 * source/encoder/vec/CMakeLists.txt:
50441 cmake: Specify the compilation of architecture SSE2 explicitly.
50443 The VS2010 crashes when executing one of the sad variants. The
50444 instruction vmovdqa() was found generated, crashing cpuid == 4 CPU.
50447 2013-05-04 Steve Borho <steve@borho.org>
50449 * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc,
50450 source/encoder/vec/pixel8.inc:
50451 pixel: sad_4_x3 should not have lx template var; it was broken for
50454 Removes sad_4_4_x3 since it added no optimization
50457 * source/encoder/vec/pixel.inc:
50458 pixel: enable SAD PARTITION_16x24 now that it is supported for 8bpp
50461 * source/encoder/vec/pixel8.inc:
50462 pixel8: use Vec8us to accumulate sums with addSumAbsDiff()
50464 From 30 to 100% speedups for 8bpp SAD functions
50467 * source/VectorClass/vectori128.h:
50468 vector: add Vec8us::addSumAbsDiff()
50470 This avoids data casts and removes a couple of instructions from
50474 * source/encoder/vec/CMakeLists.txt:
50475 cmake: add a comment about inc files listed in PrimitivesVec project
50478 * source/CMakeLists.txt:
50479 cmake: remove option for multithreaded build, enable unconditionally
50482 2013-05-05 ShinYee Chung <shinyee@multicorewareinc.com>
50484 * source/encoder/vec/interpolationfilter.inc:
50485 Interpolation: Fix compile warning/error on unused parameter.
50488 * source/encoder/vec/vecprimitives.inc:
50489 primitives: Fix compile error on re-declaration of selectf() and
50492 It is probably due to cycle in the header includes.
50495 2013-05-04 Min Chen <chenm003@163.com>
50497 * source/VectorClass/vectori128.h, source/encoder/vec/intrapred.inc:
50498 intrapred: more improvement 8bpp DC for 32 and 64 blocks
50499 --- source/VectorClass/vectori128.h | 45
50500 ++++++++++++++++++++++++++++++++++++++
50501 source/encoder/vec/intrapred.inc | 38
50502 +++++++++++++------------------ 2 files changed, 61 insertions(+),
50506 * source/encoder/threadpool.cpp:
50507 threadpool: VS2008 not defined _WIN32_WINNT_VISTA
50508 --- source/encoder/threadpool.cpp | 2 +- 1 files changed, 1
50509 insertions(+), 1 deletions(-)
50512 2013-05-04 Steve Borho <steve@borho.org>
50514 * source/encoder/vec/intrapred.inc:
50515 intrapred: remove includes and namespace from inc header
50517 includes must be in vecprimitives.inc, outside of the anonoymous
50521 * source/encoder/vec/CMakeLists.txt:
50522 cmake: add intrapred.inc to the PrimitivesVec project
50524 So it's easy to find
50527 * source/VectorClass/vectori128.h, source/encoder/vec/intrapred.inc:
50528 vectori128: add fromUint64() method, only available for x64 builds
50530 Needs a better fallback and cross-platform x64 compilation detection
50533 * source/encoder/vec/intrapred.inc:
50534 intrapred: simplify 8bpp DC for 32 and 64 blocks, now faster than C
50537 * source/encoder/vec/intrapred.inc:
50538 intrapred: add an 8bpp path for DC pred (currently slower than C at
50541 This primitive might have to use aligned loads to be faster than C..
50542 or have a function pointer per intra-block width to avoid the switch
50546 2013-05-03 Steve Borho <steve@borho.org>
50548 * source/encoder/vec/intrapred.inc:
50549 intrapred: use g_aucConvertToBit for bit size
50552 * source/test/intrapredharness.cpp:
50553 intrapredharness: ensure top pixels always avail for perf test
50556 * source/encoder/vec/intrapred.inc:
50557 intrapred: perform horizontal sum at increased depth
50559 Test now passes with 10bit pixels
50562 * source/test/intrapredharness.cpp:
50563 intrapredharness: pre-calculate all random pixels, ensure top pixels
50567 * source/test/intrapredharness.cpp:
50568 intrapredharness: this primitive requires initROM() to be called
50571 * source/test/CMakeLists.txt:
50572 testbench: 8bpp link now requires HM, just for a global array
50575 * source/encoder/vec/intrapred.inc:
50576 intrapred: disable 4100 warnings until 8bpp is supported
50579 * source/encoder/threadpool.cpp:
50580 threadpool: further compilation fixes for other platforms
50583 * source/test/intrapredharness.cpp:
50584 intrapredharness: fix shadowed loop variable
50587 * source/test/CMakeLists.txt:
50588 cmake: add new intrapred harness to testbench build
50591 2013-05-04 Min Chen <chenm003@163.com>
50593 * source/test/intrapredharness.cpp, source/test/intrapredharness.h,
50594 source/test/testbench.cpp:
50595 intrapred: testbench
50597 From 990ec815902203bfb954921bac75e1913719e630 Mon Sep 17 00:00:00
50599 --- source/test/testbench.cpp | 5 +- source/test/intrapredharness.cpp
50600 | 122 ++++++++++++++++++++++++++++++++++++++
50601 source/test/intrapredharness.h | 53 ++++++++++++++++ 3 files
50602 changed, 179 insertions(+), 1 deletions(-) create mode 100644
50603 source/test/intrapredharness.cpp create mode 100644
50604 source/test/intrapredharness.h
50607 2013-05-03 Steve Borho <steve@borho.org>
50609 * source/encoder/vec/intrapred.inc:
50610 intrapred: fix one obvious bug, disable DC vec prim for 8bpp until
50614 * source/encoder/IntraPred.cpp:
50615 IntraPred: yes, pixel is an alias for Pel and vice-versa
50618 * source/encoder/CMakeLists.txt:
50619 cmake: add IntraPred.cpp to CPRIMITIVES file list
50622 2013-05-03 Min Chen <chenm003@163.com>
50624 * source/Lib/TLibCommon/TComPrediction.cpp,
50625 source/VectorClass/vectori128.h, source/encoder/IntraPred.cpp,
50626 source/encoder/primitives.cpp, source/encoder/primitives.h,
50627 source/encoder/vec/intrapred.inc,
50628 source/encoder/vec/vecprimitives.inc:
50629 intrapred: vector code
50630 --- source/Lib/TLibCommon/TComPrediction.cpp | 8 ++-
50631 source/VectorClass/vectori128.h | 9 ++ source/encoder/IntraPred.cpp
50632 | 83 ++++++++++++++++ source/encoder/primitives.cpp | 2 +
50633 source/encoder/primitives.h | 3 + source/encoder/vec/intrapred.inc |
50634 156 ++++++++++++++++++++++++++++++
50635 source/encoder/vec/vecprimitives.inc | 3 + 7 files changed, 263
50636 insertions(+), 1 deletions(-) create mode 100644
50637 source/encoder/IntraPred.cpp create mode 100644
50638 source/encoder/vec/intrapred.inc
50641 * source/Lib/TLibCommon/TComPattern.cpp,
50642 source/Lib/TLibCommon/TComPattern.h,
50643 source/Lib/TLibCommon/TComPrediction.cpp,
50644 source/Lib/TLibCommon/TComPrediction.h,
50645 source/Lib/TLibEncoder/TEncSearch.cpp:
50646 replace piAdiBuf type from Int to Pel
50647 --- source/Lib/TLibCommon/TComPattern.cpp | 28
50648 ++++++++++++++-------------- source/Lib/TLibCommon/TComPattern.h |
50649 14 +++++++------- source/Lib/TLibCommon/TComPrediction.cpp | 22
50650 +++++++++++----------- source/Lib/TLibCommon/TComPrediction.h | 6
50651 +++--- source/Lib/TLibEncoder/TEncSearch.cpp | 6 +++--- 5 files
50652 changed, 38 insertions(+), 38 deletions(-)
50655 * source/Lib/TLibCommon/TComPrediction.cpp:
50656 Intra dc prediction own function Conflicts:
50658 source/Lib/TLibCommon/TComPrediction.cpp
50659 --- source/Lib/TLibCommon/TComPrediction.cpp | 61
50660 +++++++++++++++++------------- 1 files changed, 35 insertions(+), 26
50664 * source/Lib/TLibCommon/TComPrediction.cpp,
50665 source/Lib/TLibCommon/TComPrediction.h:
50666 extract Intra prediction functions from class to normal
50667 --- source/Lib/TLibCommon/TComPrediction.cpp | 10 ++++++----
50668 source/Lib/TLibCommon/TComPrediction.h | 5 ----- 2 files changed, 6
50669 insertions(+), 9 deletions(-)
50672 * source/Lib/TLibCommon/TComPrediction.cpp:
50673 OPT predIntraLumaAng: merge function call
50674 --- source/Lib/TLibCommon/TComPrediction.cpp | 16 +++++----------- 1
50675 files changed, 5 insertions(+), 11 deletions(-)
50678 2013-05-03 Steve Borho <steve@borho.org>
50680 * source/test/pixelharness.cpp:
50681 pixelharness: cut down on iterations for measuring x3 and x4 perf
50684 * source/encoder/threadpool.cpp:
50685 threadpool: fixup commit for GCC and later Windows versions
50688 2013-05-03 Min Chen <chenm003@163.com>
50690 * source/encoder/threadpool.cpp:
50691 Fix WinXP compatible
50692 --- source/encoder/threadpool.cpp | 23 +++++++++++++++++++++-- 1
50693 files changed, 21 insertions(+), 2 deletions(-)
50696 2013-05-03 Steve Borho <steve@borho.org>
50698 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/motion.cpp,
50699 source/test/testbench.cpp:
50700 motion: make new motion search disappear without ENABLE_PRIMITIVES
50703 * source/Lib/TLibEncoder/TEncSearch.cpp:
50704 TEncSearch: don't use neighbor MVs as search candidates, merge will
50707 I'm leaving the search candidate arguments in place, later we might
50708 get some search candidates that are not also merge candidates
50709 (lookahead, for one)
50712 2013-05-02 Steve Borho <steve@borho.org>
50714 * source/Lib/TLibEncoder/TEncSearch.cpp:
50715 TEncSearch: found some predictor MVs
50718 * source/Lib/TLibEncoder/TEncSearch.cpp,
50719 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/motion.cpp,
50720 source/encoder/motion.h, source/encoder/mv.h:
50721 motion: partial integration into TEncSearch for debugging purposes
50723 Adds a small amount of overhead
50726 * source/encoder/vec/pixel.inc:
50727 pixel: disable satd function completely for 8bpp
50730 * source/Lib/TLibCommon/TComPicYuv.cpp:
50731 TComPicYuv: add TODOs where new performance primitives can be added
50734 * source/Lib/TLibCommon/TComPicYuv.cpp:
50735 TComPicYuv: white-space nits, no effect
50738 * source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h:
50739 TComPic: remove unused m_bNeededForOutput
50742 * source/encoder/motion.cpp:
50743 motion: use block copy primitive
50746 * source/CMakeLists.txt:
50747 cmake: the big switch. Make 8bpp the default build configuration
50750 * source/encoder/bitcost.cpp:
50751 bitcost: and another cast
50754 * source/encoder/bitcost.cpp:
50755 bitcost: add back explicit typecasts
50758 2013-05-03 ShinYee Chung <shinyee@multicorewareinc.com>
50760 * source/encoder/bitcost.cpp:
50761 bitcost: Use portable std::min() instead of implicit min().
50764 2013-05-02 Steve Borho <steve@borho.org>
50766 * source/encoder/bitcost.cpp:
50767 bitcost: document more differences between the HM and x264
50771 * source/encoder/bitcost.cpp:
50772 bitcost: use integer min() for MSVC compatibility
50775 2013-05-03 ShinYee Chung <shinyee@multicorewareinc.com>
50777 * source/encoder/bitcost.cpp:
50778 bitcost: Fix segfault due to out of bound accesses to logs table.
50781 * source/input/y4m.cpp:
50782 y4m: Fix -ve PSNR when encoding a y4m file.
50786 POC 0 TId: 0 ( I-SLICE, nQP 32 QP 32 ) 23444072 bits [Y -40.5587 dB
50787 U -40.8645 dB V -40.8654 dB] [ET 21 ] [L0 ] [L1 ]
50790 2013-05-02 ShinYee Chung <shinyee@multicorewareinc.com>
50792 * source/encoder/motion.cpp:
50793 motion: Fix a compile error due to undeclared memcpy().
50796 * source/encoder/motion.cpp, source/encoder/motion.h:
50797 motion: Fix compile warnings/errors due to shadowed variables.
50800 * source/CMakeLists.txt, source/encoder/bitcost.cpp:
50801 bitcost: Fix undeclared min().
50803 The math.h header defines fmin(), and algorithm header defines
50804 std::min(). We decided to use fmin().
50807 2013-05-02 nandaku2 <deepthi@multicorewareinc.com>
50809 * Merged in deepthidevaki/xhevc_deepthid (pull request #111)
50811 Fix compile issue in TComPrediction.cpp with disable primitives.
50814 2013-05-02 Deepthi Devaki <Deepthi Devaki>
50816 * source/Lib/TLibCommon/TComPrediction.cpp:
50817 Fix compile issue in TComPrediction.cpp with disable primitives.
50820 2013-05-02 Mandar Gurav <Mandar Gurav>
50822 * source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc,
50823 source/encoder/vec/pixel8.inc:
50824 Implementation of sad_x4 stage 2 and sad_x3
50827 2013-05-02 Mandar Gurav <mandar@multicorewareinc.com>
50829 * Merged multicoreware/xhevc into default
50832 * source/encoder/InterpolationFilter.cpp:
50833 Merged multicoreware/xhevc into default
50836 2013-05-02 Mandar Gurav <Mandar Gurav>
50838 * source/encoder/vec/pixel.inc, source/encoder/vec/pixel8.inc:
50839 Implementation for sad_x4 - 8,16,32,64 with HIGH_BT_WIDTH disabled.
50842 2013-05-02 Deepthi <Deepthi>
50844 * source/encoder/primitives.cpp:
50845 Compilation fix for primitives disabled
50848 2013-05-02 Deepthi Devaki <Deepthi Devaki>
50850 * source/encoder/CMakeLists.txt:
50854 * source/Lib/TLibCommon/TComPrediction.cpp,
50855 source/encoder/CMakeLists.txt,
50856 source/encoder/InterpolationFilter.cpp,
50857 source/encoder/InterpolationFilter.h:
50858 cleaning up TComPrediction.cpp with new filters
50861 * source/encoder/CMakeLists.txt,
50862 source/encoder/InterpolationFilter.cpp, source/encoder/ipfilter.cpp:
50863 Rename .cpp file with filter-primitives
50866 * source/encoder/InterpolationFilter.cpp,
50867 source/encoder/interpolationfilter.cpp:
50868 Backed out changeset: 2e29f87a6088
50871 * source/encoder/CMakeLists.txt:
50872 Backed out changeset: dd6580ef216e
50875 * source/encoder/CMakeLists.txt:
50876 Renaming interpolationfilter.cpp in CMakeList
50879 * source/encoder/InterpolationFilter.cpp,
50880 source/encoder/interpolationfilter.cpp:
50881 Rename .cpp file containing filter-primitives
50884 2013-05-02 Steve Borho <steve@borho.org>
50886 * source/encoder/CMakeLists.txt, source/encoder/motion.cpp,
50887 source/encoder/motion.h:
50888 motion: motion search now compiles, added to build but unused
50891 * Merged in praveentiwari/xhevc_praveent (pull request #108)
50893 2.20x more performance gain for partialButterflyInverse16
50896 2013-05-02 praveentiwari <praveentiwari>
50898 * source/encoder/vec/macroblock.inc:
50899 2.20x more performance gain for partialButterflyInverse16
50902 2013-05-02 Mandar Gurav <Mandar Gurav>
50904 * source/encoder/pixel.cpp, source/encoder/primitives.h,
50905 source/encoder/vec/interpolationfilter.inc,
50906 source/encoder/vec/pixel16.inc, source/test/pixelharness.cpp:
50907 Implementation of sad_x3 and sad_x4 with reference frame stride.
50910 2013-05-02 Steve Borho <steve@borho.org>
50912 * source/encoder/motion.cpp, source/encoder/motion.h:
50913 motion: compilation fixes - file still not part of build
50916 2013-05-01 Steve Borho <steve@borho.org>
50918 * source/encoder/vec/pixel8.inc:
50919 pixel8: remove unused satd_4x4 and sa8d_8x8
50922 2013-05-02 Mandar Gurav <Mandar Gurav>
50924 * source/encoder/vec/CMakeLists.txt,
50925 source/encoder/vec/interpolationfilter.inc,
50926 source/encoder/vec/pixel.inc, source/encoder/vec/pixel16.inc,
50927 source/encoder/vec/pixel8.inc, source/encoder/vec/vecprimitives.inc:
50928 Restructure pixel.inc
50931 2013-05-01 Steve Borho <steve@borho.org>
50933 * source/test/pixelharness.cpp:
50934 pixelharness: increase size of pixel buffers
50937 * source/test/pixelharness.cpp:
50938 pixelharness: test random PU block sizes
50941 * source/encoder/vec/blockcopy.inc, source/test/pixelharness.cpp:
50942 blockcopy: couple of bug fixes, now all but p_s pass with 8bpp
50945 * source/encoder/vec/blockcopy.inc, source/encoder/vec/pixel.inc:
50946 pixel: fix HIGH_BIT_DEPTH=0 build, temp fix
50949 * source/encoder/vec/CMakeLists.txt, source/encoder/vec/blockcopy.inc,
50950 source/encoder/vec/vecprimitives.inc:
50951 primitives: add blockcopy.inc - only HIGH_BIT_DEPTH is accelerated
50954 * source/encoder/pixel.cpp:
50955 pixel: fixes for block copy C ref
50958 * source/test/pixelharness.cpp:
50959 pixelharness: add block copy perf tests
50962 * source/encoder/pixel.cpp, source/encoder/primitives.h,
50963 source/test/pixelharness.cpp, source/test/pixelharness.h:
50964 primitive: add block copy primitives
50967 * source/test/pixelharness.cpp:
50968 pixelharness: nit white-space
50971 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/bitcost.cpp:
50972 bitcost: store logs as fractional values *CHANGES OUTPUTS*
50974 /me dumb. What was the point of storing the output of ceil() in a
50977 This was a small but unambiguous win in compression efficiency
50980 * source/encoder/bitcost.cpp:
50981 bitcost: use just one copy of "acquire" logic
50984 * source/encoder/bitcost.h:
50985 bitcost: nit - reorder methods in order they are typically used
50988 * source/encoder/bitcost.cpp, source/encoder/bitcost.h:
50989 bitcost: store cost estimates as 16bits, clamp to max16
50991 It's somewhat pedantic to keep more bits than this, and wasteful of
50992 precious CPU cache. If someone in the future really wants >16bit mv
50993 costs, they can template this class and instantiate the size they
50994 want. This had no measurable effect on the outputs.
50997 * source/encoder/bitcost.h:
50998 bitcost: reorder initializers to make GCC happy
51001 2013-04-30 Steve Borho <steve@borho.org>
51003 * source/encoder/primitives.h:
51004 primitives: avoid redecl of CDECL with GCC
51007 2013-05-01 Steve Borho <steve@borho.org>
51009 * source/encoder/primitives.h:
51010 Merged in mandarmcw/xhevc_mandar_mahesh (pull request #105)
51012 Implementation of sad_4_x3 and sad_12_x3. and sad_x4
51015 2013-05-01 Mandar Gurav <Mandar Gurav>
51017 * source/encoder/pixel.cpp, source/encoder/primitives.h,
51018 source/encoder/vec/pixel.inc, source/test/pixelharness.cpp,
51019 source/test/pixelharness.h:
51020 Implementation of sad_x4
51023 * source/encoder/vec/pixel.inc, source/test/pixelharness.cpp:
51024 Implementation of sad_4_x3 and sad_12_x3.
51027 2013-05-01 Steve Borho <steve@borho.org>
51029 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/bitcost.cpp,
51030 source/encoder/primitives.cpp, source/encoder/primitives.h:
51031 bitcost: use new bitcost class for mv cost estimates *CHANGES
51034 Sample encode statistics comparing HM vs x265 mv cost estimates:
51035 (comparing HM vs our HM optimization, not the x264 approach)
51037 kbps Y PSNR U PSNR V PSNR HM getCost(): 1381.8880 32.8096 41.0167
51038 43.3698 m_bc.mvcost(): 1383.2000 32.8171 41.0402 43.3580
51040 (mostly noise, but it is different)
51043 * source/encoder/bitcost.cpp, source/encoder/bitcost.h,
51044 source/encoder/primitives.cpp:
51045 bitcost: rename cleanupCosts to destroy
51048 * source/encoder/bitcost.cpp:
51049 bitcost: bring mv costs close in line with HM's methods
51051 mvcost rounds earlier, so it results in even scores while the HM
51052 rounds at the end so it usually gets odd scores, but they are
51053 typically one digit apart. In a few places logs[] will vary from
51054 Motion_Costs by 1, causing the result to differ by 1 lambda.
51057 2013-05-01 Deepthi <Deepthi>
51062 * source/x265enc.cpp:
51063 The very common sizeof bug.
51066 2013-05-01 Steve Borho <steve@borho.org>
51068 * source/encoder/primitives.cpp:
51069 primitives: free Motion_Cost in x265_cleanup()
51072 2013-04-30 Steve Borho <steve@borho.org>
51074 * source/encoder/bitcost.cpp, source/encoder/bitcost.h:
51075 bitcost: precalculate 2 * log2(n) for each MVD offset
51078 * source/encoder/mv.h:
51079 mv: bug fixes; cannot use word shifts because x or y can be signed
51082 * source/Lib/TLibEncoder/TEncSearch.cpp:
51083 TEncSearch: HM uses different sqrt(lambda) to calculate SAD bitcosts
51086 * source/Lib/TLibEncoder/TEncSearch.cpp:
51087 TEncSearch: comment improvements and white-space nits
51090 * source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/bitcost.cpp,
51091 source/encoder/bitcost.h:
51092 bitcost: bug fixes and enable integration into TEncSearch.cpp
51095 * source/Lib/TLibEncoder/TEncSearch.cpp,
51096 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/bitcost.cpp,
51097 source/encoder/bitcost.h, source/encoder/primitives.h:
51098 bitcost: begin integration into TEncSearch
51101 * source/encoder/bitcost.cpp, source/x265.h:
51105 * source/encoder/bitcost.cpp:
51106 bitcost: fix bug caused by bad eye-sight and worse fonts
51109 * source/encoder/primitives.cpp, source/x265.h, source/x265main.cpp:
51110 api: add x265_cleanup() method, to make leak detectors happy
51113 * source/encoder/CMakeLists.txt, source/encoder/bitcost.cpp,
51114 source/encoder/bitcost.h, source/encoder/motion.h:
51115 bitcost: add BitCost to x265 project build
51118 * source/Lib/TLibEncoder/TEncCu.cpp, source/encoder/mv.h:
51119 mv: remove getAbsHor|Ver access methods
51122 * source/Lib/TLibCommon/TComDataCU.cpp, source/encoder/mv.h:
51123 mv: move scaleMV method to file static in TComDataCU.cpp
51125 This was the only file to use it, and it requires CommonDef.h so it
51126 was cleaner to move it there than to #include CommonDef in our new
51130 * source/encoder/bitcost.h, source/encoder/motion.cpp,
51131 source/encoder/motion.h, source/encoder/mv.h:
51132 motion: simplify block offset calculations and MV API
51135 * source/Lib/TLibCommon/TComTrQuant.cpp:
51136 backout micro optimization in TComTrQuant
51138 uiQ is much larger than a pixel value, so doing calculation as Int64
51139 is correct This change was resulting in an infinite for-loop in
51143 * source/Lib/TLibCommon/TComLoopFilter.cpp,
51144 source/Lib/TLibCommon/TComMotionInfo.cpp, source/encoder/mv.h:
51145 mv: replace setZero() calls with assignments to 0 (implicit cast)
51148 * source/encoder/mv.h:
51149 mv: fix shadow compile warnings
51152 * source/encoder/vec/macroblock.inc:
51153 Merged in mandarmcw/xhevc_mandar_mahesh (pull request #103)
51155 Implementation of sad_16_x3, sad_32_x3 stage 1
51158 2013-04-30 Mandar Gurav <Mandar Gurav>
51160 * source/Lib/TLibCommon/TComRdCost.cpp,
51161 source/encoder/vec/macroblock.inc:
51162 Revert to xhevc code...
51165 * source/Lib/TLibCommon/TComRdCost.cpp,
51166 source/encoder/vec/macroblock.inc:
51170 * source/encoder/vec/pixel.inc:
51171 Implementation of sad_16_x3, sad_32_x3 stage 2
51174 2013-04-30 Mandar Gurav <mandar@multicorewareinc.com>
51176 * Merged multicoreware/xhevc into default
51179 2013-04-30 Mandar Gurav <Mandar Gurav>
51181 * source/encoder/vec/pixel.inc:
51182 Implementation of sad_16_x3, sad_32_x3 stage 1
51185 2013-04-30 Steve Borho <steve@borho.org>
51187 * source/Lib/TLibEncoder/TEncSearch.cpp:
51188 TEncSearch: white-space nits
51191 * source/Lib/TLibCommon/TComDataCU.cpp,
51192 source/Lib/TLibCommon/TComMv.h, source/encoder/CMakeLists.txt:
51193 mv: substitute our x265::MV class for TComMv
51196 * source/Lib/TLibCommon/TComTrQuant.cpp:
51197 TComTrQuant: white-space nits
51200 * source/Lib/TLibEncoder/TEncSearch.cpp:
51201 TEncSearch: eoln fixes
51204 * source/encoder/mv.h:
51205 mv: compilation fixes
51208 * source/encoder/motion.cpp:
51209 motion: call x264_cpu_emms() at end of motion search
51215 2013-04-30 Deepthi <Deepthi>
51217 * source/Lib/TLibCommon/TComSlice.h:
51218 Signed/unsigned comparison mismatch
51221 2013-04-30 Deepthi Devaki <Deepthi Devaki>
51223 * source/Lib/TLibCommon/TComPrediction.cpp,
51224 source/encoder/InterpolationFilter.cpp,
51225 source/encoder/InterpolationFilter.h, source/encoder/primitives.h:
51226 Filter in TComPrediction.cpp 0 - compiles with highBitDepth = 0/ 1
51229 2013-04-30 praveentiwari <praveentiwari>
51231 * source/encoder/vec/macroblock.inc:
51232 Robust logic for clip3 function and multiplication replaced with
51236 * source/encoder/vec/macroblock.inc:
51237 .62X more performance gain for partialButterflyInverse8
51240 2013-04-30 praveen Tiwari <praveen@multicorewareinc.com>
51242 * Merged multicoreware/xhevc into default
51245 * Merged multicoreware/xhevc into default
51248 2013-04-29 praveen Tiwari <praveen@multicorewareinc.com>
51250 * Merged multicoreware/xhevc into default
51253 2013-04-26 praveen Tiwari <praveen@multicorewareinc.com>
51255 * Merged multicoreware/xhevc into default
51258 2013-04-25 praveen Tiwari <praveen@multicorewareinc.com>
51260 * Merged multicoreware/xhevc into default
51263 * Merged multicoreware/xhevc into default
51266 2013-04-24 praveen Tiwari <praveen@multicorewareinc.com>
51268 * source/encoder/vec/macroblock.inc:
51269 Merged multicoreware/xhevc into default
51272 2013-04-30 Deepthi <Deepthi>
51274 * source/Lib/TLibCommon/TComRdCost.cpp,
51275 source/Lib/TLibCommon/TComRdCost.h,
51276 source/Lib/TLibEncoder/TEncSearch.cpp:
51277 Adding support for Short-Short/Pel-Short SSE calculations.
51283 * source/Lib/TLibCommon/TComRdCost.h:
51287 * source/Lib/TLibCommon/TComRdCost.cpp,
51288 source/Lib/TLibCommon/TComRdCost.h:
51289 Restructuring TComRdCost to allow for Pel,Short combinations of SSE
51293 2013-04-30 Steve Borho <steve@borho.org>
51295 * source/encoder/vec/pixel.inc:
51296 pixel: disable sad_x3 functions for HIGH_BIT_DEPTH=0
51299 * source/encoder/primitives.cpp, source/encoder/primitives.h:
51300 primitives: nit cleanups
51303 * source/encoder/primitives.h:
51304 Merged in ggopu/ggopu_xhevc (pull request #101)
51306 Removed GetCost() Function
51309 2013-04-29 ggopu <ggopu>
51311 * source/Lib/TLibCommon/TComRdCost.h,
51312 source/Lib/TLibEncoder/TEncSearch.cpp,
51313 source/encoder/primitives.cpp, source/encoder/primitives.h:
51314 Removed GetCost() Function
51317 2013-04-30 Steve Borho <steve@borho.org>
51319 * Merged in sumalatha/xhevc_sumalatha (pull request #99)
51321 C Level Optimization on xRateDistOptQuant()
51324 2013-04-30 sumalatha <sumalatha>
51326 * source/Lib/TLibCommon/TComTrQuant.cpp:
51327 C Level Optimization on xRateDistOptQuant() - 1. removed all memsets
51328 ( except for pdCostCoeffGroupSig[]) - initialized only those array
51329 elements that will be read first before its updated from the inside
51330 the main for loop itself. 2. optimized a few of local variables used
51331 in certain calculations inside the loop.
51333 Also done changes based on steves suggestion
51336 * source/Lib/TLibCommon/CommonDef.h,
51337 source/Lib/TLibCommon/TComTrQuant.cpp:
51338 Backed out changeset: eb3d76f250f8
51341 2013-04-30 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
51343 * source/Lib/TLibCommon/CommonDef.h,
51344 source/Lib/TLibCommon/TComTrQuant.cpp:
51345 Merged multicoreware/xhevc into default
51348 2013-04-29 sumalatha <sumalatha>
51350 * source/Lib/TLibCommon/CommonDef.h,
51351 source/Lib/TLibCommon/TComTrQuant.cpp:
51352 C Level Optimization on xRateDistOptQuant() - 1. removed all memsets
51353 ( except for pdCostCoeffGroupSig[]) - initialized only those array
51354 elements that will be read first before its updated from the inside
51355 the main for loop itself. 2. optimized a few of local variables used
51356 in certain calculations inside the loop.
51359 2013-04-30 Steve Borho <steve@borho.org>
51361 * Merged in mandarmcw/xhevc_mandar_mahesh (pull request #100)
51363 Incoprporated Steve's comments - stage 2.
51366 2013-04-30 Mandar Gurav <Mandar Gurav>
51368 * source/test/pixelharness.cpp, source/test/pixelharness.h:
51369 Incoprporated Steve's comments - stage 2.
51372 * source/encoder/pixel.cpp, source/encoder/primitives.h,
51373 source/encoder/vec/pixel.inc, source/test/pixelharness.cpp,
51374 source/test/pixelharness.h:
51375 Incoprporated Steve's comments.
51378 2013-04-30 Mandar Gurav <mandar@multicorewareinc.com>
51380 * source/VectorClass/vectori128.h:
51381 Merged multicoreware/xhevc into default
51384 2013-04-29 Mandar Gurav <Mandar Gurav>
51386 * source/VectorClass/vectori128.h, source/encoder/pixel.cpp,
51387 source/encoder/vec/pixel.inc:
51388 Revert old updates.
51391 * source/encoder/pixel.cpp, source/encoder/primitives.h,
51392 source/encoder/vec/pixel.inc, source/test/pixelharness.cpp,
51393 source/test/pixelharness.h:
51394 Implemented sad_x3 for calculation of 3 SAD's in single call.
51397 2013-04-28 Mandar Gurav <mandar@multicorewareinc.com>
51399 * source/VectorClass/vectori128.h, source/encoder/pixel.cpp,
51400 source/encoder/primitives.h, source/encoder/vec/pixel.inc,
51401 source/test/pixelharness.cpp:
51402 Merged multicoreware/xhevc into default
51405 2013-04-29 Mandar Gurav <Mandar Gurav>
51407 * source/encoder/vec/pixel.inc, source/test/pixelharness.cpp:
51408 Revert to new xhevc code.
51411 2013-04-23 Mandar Gurav <Mandar Gurav>
51413 * source/VectorClass/vectori128.h:
51414 Vector class library function
51417 * source/encoder/vec/pixel.inc:
51418 Implemented x265_sad16 function into vectorclass librasy.
51421 * source/encoder/pixel.cpp, source/encoder/primitives.h,
51422 source/encoder/vec/pixel.inc, source/test/pixelharness.cpp,
51423 source/test/pixelharness.h:
51424 Implementation of SAD using intrinsics for 8 bit values.
51427 2013-04-30 Steve Borho <steve@borho.org>
51429 * source/encoder/bitcost.cpp, source/encoder/bitcost.h,
51430 source/encoder/motion.cpp, source/encoder/motion.h,
51431 source/encoder/mv.h:
51432 add a new motion search core feature - is not part of the project
51435 The MV, BitCost, MotionReference, and MotionEstimation classes will
51436 form the core of the x265 motion estimation system; eventually
51437 replacing TEncSearch, TComMV, and most of TComRdCost.
51440 2013-04-29 Steve Borho <steve@borho.org>
51442 * source/VectorClass/instrset_detect.cpp:
51443 instrset_detect: workaround on Mac OS X
51446 * source/VectorClass/vectori128.h, source/encoder/vec/CMakeLists.txt:
51447 cmake: isolate warnings disables within vectori128.h with two
51451 * source/test/testbench.cpp:
51452 testbench: mingw_aligned_malloc requires malloc.h
51455 * source/test/CMakeLists.txt, source/test/filterharness.cpp,
51456 source/test/ipfilterharness.cpp, source/test/testbench.cpp:
51457 testbench: remove compiler warning training wheels
51460 * source/CMakeLists.txt:
51461 cmake: add a comment about why we ignore warnings in the CLI files
51464 * source/Lib/TLibEncoder/TEncGOP.cpp:
51465 TEncGOP: provide bool values for Bool arguments
51468 * source/Lib/TLibEncoder/TEncCfg.h:
51469 TEncCfg: fix compiler warning
51472 * source/Lib/TLibCommon/TComSlice.h:
51473 TComSlice: use Bools where appropriate
51476 * source/Lib/TLibCommon/TComPicSym.h:
51477 TComPicSym: fix signed/unsigned mangling in the header
51480 * source/Lib/TAppCommon/program_options_lite.h:
51481 TAppCommon: give classes noimpl copy constructors, makes MSVC happy
51484 * source/CMakeLists.txt:
51485 cmake: move tests above CLI, avoid pulling in disabled warnings
51488 * source/CMakeLists.txt:
51489 cmake: add /wd4800 and /wd4018 to x265main.cpp and x265cfg.cpp
51492 * source/Lib/CMakeLists.txt:
51493 cmake: add back /wd4018 and /wd4800 to HM source files
51495 It would be a gargantuan effort to clean all these up at this point.
51496 Instead we will just make all the new code compile clean and these
51497 old files will eventually be replaced
51500 * source/Lib/TLibCommon/CommonDef.h:
51501 Remove warnings disables from CommonDef.h, will add back with more
51504 These were leaking into the encoder/ folder where we want our new
51505 code to be warning free.
51508 2013-04-29 ShinYee Chung <shinyee@multicorewareinc.com>
51510 * source/encoder/TShortYUV.cpp:
51511 shortyuv: Fix compile warnings/errors due to comparing signed and
51516 source/encoder/TShortYUV.cpp:424:32: error: comparison between
51517 signed and unsigned integer expressions [-Werror=sign-compare]
51518 for(int x = 0; x < iWidth; x++)
51521 2013-04-29 Deepthi <Deepthi>
51523 * source/Lib/TLibEncoder/TEncSearch.cpp:
51524 Quick Fix for compilation errors in TEncSearch::xEstimateResidualQT.
51525 This has to be re-architected asap.
51528 * source/Lib/TLibCommon/TComTrQuant.cpp,
51529 source/Lib/TLibEncoder/TEncCu.cpp,
51530 source/Lib/TLibEncoder/TEncSearch.cpp, source/encoder/TShortYUV.h:
51534 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h:
51535 One more function for TComYuv
51538 * source/Lib/TLibEncoder/TEncSearch.cpp,
51539 source/Lib/TLibEncoder/TEncSearch.h:
51540 Changing the datatype of m_pcQTTempTComYuv. Need to review this at
51541 some point - why does it hold both recon and residual data?
51544 * source/Lib/TLibCommon/TComYuv.cpp:
51545 Changes in TComYuv class
51548 * source/Lib/TLibCommon/TComTrQuant.cpp,
51549 source/Lib/TLibCommon/TComTrQuant.h:
51550 Pel to Short changes in TComTrQuant
51553 * source/encoder/TShortYUV.cpp, source/encoder/TShortYUV.h:
51554 Adding more functions to TShortYUV for TComyuv compatilibity. We can
51555 use inheritance later for better maintenance and code reuse.
51558 2013-04-28 Deepthi <Deepthi>
51560 * source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
51561 source/Lib/TLibEncoder/TEncSearch.cpp,
51562 source/Lib/TLibEncoder/TEncSearch.h, source/encoder/TShortYUV.cpp,
51563 source/encoder/TShortYUV.h:
51564 Adding a bunch of function definition/declarations to TShortYUV and
51565 TComYUV classes. Compilation successful.
51568 2013-04-27 Deepthi <Deepthi>
51570 * source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
51571 source/Lib/TLibEncoder/TEncSearch.cpp,
51572 source/Lib/TLibEncoder/TEncSearch.h:
51573 Replacing all function declarations/definitions with TShortYUV.
51576 2013-04-29 ShinYee Chung <shinyee@multicorewareinc.com>
51578 * source/test/testharness.h:
51579 test: Fix compile error due to undefined size_t.
51582 * source/Lib/TLibCommon/CommonDef.h:
51583 HM/Common: Fix the undefined aligned memory allocation function.
51586 2013-04-28 Steve Borho <steve@borho.org>
51588 * source/test/mbdstharness.cpp, source/test/pixelharness.cpp,
51589 source/test/testbench.cpp, source/test/testharness.h:
51590 testbench: add aligned alloc and free helper functions
51593 * source/CMakeLists.txt, source/test/CMakeLists.txt:
51594 cmake: define PLATFORM_LIBS in main cmake file, use for x265-cli
51597 * source/Lib/TLibCommon/CommonDef.h:
51598 aligned_malloc() needs stdlib.h
51601 * source/encoder/threadpool.cpp:
51602 threadpool: use _BitScanReverse64() instead of __lzcnt64()
51604 All variants of __lzcnt() fail to work correctly on Intel CPUs, with
51608 * source/Lib/TLibCommon/TComRdCost.cpp,
51609 source/Lib/TLibCommon/TComRdCost.h,
51610 source/Lib/TLibEncoder/TEncSearch.cpp:
51611 remove FIX203 #define, it will always be 1
51614 2013-04-27 Steve Borho <steve@borho.org>
51616 * source/Lib/TLibCommon/TComRdCost.h,
51617 source/Lib/TLibEncoder/TEncSearch.cpp:
51618 rename GetsadFunctions to getSadFunctions()
51621 * source/Lib/TLibEncoder/TEncTop.cpp,
51622 source/Lib/TLibEncoder/TEncTop.h, source/encoder/primitives.cpp,
51623 source/encoder/threadpool.cpp, source/x265.h, source/x265cfg.cpp,
51625 api: improvements to C API, make encoder auto-setup primitives and
51628 Remove m_FrameSkip and m_framesToBeEncoded from the public params
51631 * source/Lib/TLibEncoder/TEncCu.cpp:
51632 nits, no logic changes
51635 * source/Lib/TLibEncoder/TEncCu.cpp,
51636 source/Lib/TLibEncoder/TEncSearch.cpp:
51640 * source/Lib/TLibEncoder/TEncCu.cpp,
51641 source/Lib/TLibEncoder/TEncGOP.cpp,
51642 source/Lib/TLibEncoder/TEncSearch.cpp,
51643 source/Lib/TLibEncoder/TEncSlice.cpp, source/PPA/ppa.h,
51644 source/PPA/ppaCPUEvents.h:
51645 ppa: add some high-level events
51648 * source/x265.h, source/x265cfg.cpp, source/x265cfg.h:
51649 x265: for public API, only internal bitdepth is configurable
51651 And when HIGH_BIT_DEPTH is 0, the value is ignored. This change
51652 allows the input and output bit depth fields to be configurable for
51653 !HIGH_BIT_DEPTH builds, but are only allowed to be 8.
51655 When x265 is used as a library, the input and output bitdepths are
51656 completely up to the user. libx265 does not have to know what they
51660 * source/encoder/CMakeLists.txt:
51661 cmake: add x265.h to libx265 project
51664 * source/Lib/TLibCommon/TComTrQuant.cpp:
51668 * source/Lib/TLibCommon/TComRdCost.cpp:
51669 TComRdCost: micro optimizations, more for clarity than anything else
51672 * source/CMakeLists.txt, source/Lib/TLibCommon/TypeDef.h:
51673 cmake: define HIGH_BIT_DEPTH to 0 for 8bpp
51676 * source/encoder/TShortYUV.h:
51677 tshortyuv: white-space nits
51680 * source/encoder/TShortYUV.h:
51681 tshortyuv: forward slashes for includes
51684 2013-04-27 Deepthi <Deepthi>
51686 * source/Lib/TLibEncoder/TEncSearch.cpp:
51687 Chroma fixes for Pixel=UShort; Bitrate issues sorted out, bit
51688 mismatch issues with Pixel=Short
51691 * source/Lib/TLibCommon/TComTrQuant.cpp,
51692 source/Lib/TLibEncoder/TEncSearch.cpp:
51696 * source/Lib/TLibCommon/TComTrQuant.cpp,
51697 source/Lib/TLibEncoder/TEncSearch.cpp:
51698 3 cheers!! Pixel now works with UShort (at a much higher bitrate).
51701 2013-04-26 Deepthi <Deepthi>
51703 * source/encoder/TShortYUV.h:
51704 Adding more member functions to TShortYUV
51707 2013-04-26 Steve Borho <steve@borho.org>
51709 * source/Lib/TLibCommon/TComRdCost.cpp:
51710 shift SAD result from TComRdCost::getSADPart() rather than each diff
51713 * source/Lib/TLibCommon/TComRdCost.cpp:
51714 remove partition size check from TComRdCost::getSADPart()
51717 * source/Lib/TLibCommon/TypeDef.h:
51718 remove unused Pxl type
51721 * source/Lib/TLibCommon/TypeDef.h:
51722 clean up white-space alignment in TypeDef.h
51725 * source/Lib/TLibCommon/TypeDef.h,
51726 source/Lib/TLibEncoder/TEncRateCtrl.cpp,
51727 source/Lib/TLibEncoder/TEncSlice.cpp:
51728 remove L0033_RC_BUGFIX #define, it will always be 1
51731 * source/Lib/TLibCommon/TComRdCost.cpp,
51732 source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TypeDef.h,
51733 source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp,
51734 source/Lib/TLibEncoder/TEncCu.h, source/Lib/TLibEncoder/TEncGOP.cpp,
51735 source/Lib/TLibEncoder/TEncRateCtrl.cpp,
51736 source/Lib/TLibEncoder/TEncRateCtrl.h,
51737 source/Lib/TLibEncoder/TEncSlice.cpp,
51738 source/Lib/TLibEncoder/TEncSlice.h,
51739 source/Lib/TLibEncoder/TEncTop.cpp, source/x265cfg.cpp,
51740 source/x265enc.cpp:
51741 remove RATE_CONTROL_LAMBDA_DOMAIN #define, it will always be 1
51744 * source/test/mbdstharness.cpp:
51748 * source/encoder/x86/CMakeLists.txt:
51749 cmake: tell gcc not to sqawk about empty ASM setup function
51752 * source/Lib/TLibCommon/CommonDef.h,
51753 source/Lib/TLibCommon/TComTrQuant.cpp:
51754 improve portability of alignment macros
51757 * source/Lib/TLibCommon/TComTrQuant.cpp,
51758 source/Lib/TLibCommon/TypeDef.h:
51759 remove MATRIX_MULT #define, it will always be 0
51762 * source/Lib/TLibCommon/TComDataCU.cpp,
51763 source/Lib/TLibCommon/TComDataCU.h,
51764 source/Lib/TLibCommon/TComPicSym.cpp,
51765 source/Lib/TLibCommon/TComSlice.cpp,
51766 source/Lib/TLibCommon/TComSlice.h,
51767 source/Lib/TLibCommon/TComTrQuant.cpp,
51768 source/Lib/TLibCommon/TComTrQuant.h,
51769 source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCfg.h,
51770 source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
51771 source/Lib/TLibEncoder/TEncGOP.cpp,
51772 source/Lib/TLibEncoder/TEncSearch.cpp,
51773 source/Lib/TLibEncoder/TEncSearch.h,
51774 source/Lib/TLibEncoder/TEncSlice.cpp,
51775 source/Lib/TLibEncoder/TEncTop.cpp, source/x265cfg.cpp,
51776 source/x265enc.cpp:
51777 remove ADAPTIVE_QP_SELECTION #define, it will always be 1
51780 * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncGOP.cpp,
51781 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
51782 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h:
51783 remove SAO_ENCODING_CHOICE #define, it will always be 1
51786 * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCfg.h,
51787 source/Lib/TLibEncoder/TEncSearch.cpp, source/x265cfg.cpp,
51788 source/x265enc.cpp:
51789 remove L0232_RD_PENALTY #define, it will always be 1
51792 * source/Lib/TLibCommon/TypeDef.h,
51793 source/Lib/TLibEncoder/TEncCavlc.cpp:
51794 remove L0372 #define, it will always be 1
51797 * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncGOP.cpp,
51798 source/x265cfg.cpp:
51799 remove L0444_FPA_TYPE #define, it will always be 1
51802 * source/Lib/TLibCommon/TypeDef.h,
51803 source/Lib/TLibEncoder/TEncCavlc.cpp,
51804 source/Lib/TLibEncoder/TEncTop.cpp:
51805 remove L0255_MOVE_PPS_FLAGS #define, it will always be 1
51808 * source/Lib/TLibCommon/TypeDef.h,
51809 source/Lib/TLibEncoder/TEncCavlc.cpp:
51810 remove L0363_BYTE_ALIGN #define, it will always be 1
51813 * source/Lib/TLibCommon/TComDataCU.cpp:
51814 fix eoln damage in TComDataCU.cpp
51817 * source/Lib/TLibCommon/TComDataCU.cpp,
51818 source/Lib/TLibCommon/TypeDef.h:
51819 remove L0363_MVP_POC #define, it will always be 1
51822 * source/Lib/TLibCommon/TComSlice.cpp,
51823 source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TypeDef.h,
51824 source/Lib/TLibEncoder/TEncCavlc.cpp,
51825 source/Lib/TLibEncoder/TEncCfg.h,
51826 source/Lib/TLibEncoder/TEncTop.cpp, source/x265cfg.cpp,
51827 source/x265enc.cpp:
51828 remove L0046_CONSTRAINT_FLAGS #define, it will always be 1
51831 * source/Lib/TLibCommon/TypeDef.h,
51832 source/Lib/TLibEncoder/TEncCavlc.cpp:
51833 remove L0043_MSS_IDC, L0116_ENTRY_POINT #defines, they will always
51837 * source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TypeDef.h,
51838 source/Lib/TLibEncoder/SEIwrite.cpp:
51839 remove L0045_CONDITION_SIGNALLING #define, it will always be 1
51842 * source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TypeDef.h,
51843 source/Lib/TLibEncoder/SEIwrite.cpp:
51844 remove L0046_RENAME_PROG_SRC_IDC #define, it will always be 1
51847 * source/Lib/TLibCommon/TComSlice.cpp,
51848 source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TypeDef.h,
51849 source/Lib/TLibEncoder/TEncCavlc.cpp,
51850 source/Lib/TLibEncoder/TEncGOP.cpp,
51851 source/Lib/TLibEncoder/TEncTop.cpp:
51852 remove L0043_TIMING_INFO #define, it will always be 1
51855 * source/Lib/TLibCommon/TypeDef.h:
51859 * source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TypeDef.h,
51860 source/Lib/TLibEncoder/SEIwrite.cpp,
51861 source/Lib/TLibEncoder/TEncGOP.cpp:
51862 remove L0047_APS_FLAGS #define, it will always be 1
51865 * source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TypeDef.h,
51866 source/Lib/TLibEncoder/SEIwrite.cpp,
51867 source/Lib/TLibEncoder/TEncGOP.cpp:
51868 remove L0044_CPB_DPB_DELAY_OFFSET #define, it will always be 1
51871 * source/Lib/TLibCommon/NAL.h, source/Lib/TLibCommon/TypeDef.h,
51872 source/Lib/TLibEncoder/SEIwrite.cpp,
51873 source/Lib/TLibEncoder/TEncGOP.cpp,
51874 source/Lib/TLibEncoder/TEncGOP.h:
51875 remove L0045_NON_NESTED_SEI_RESTRICTIONS #define, it will always be
51879 * source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TypeDef.h,
51880 source/Lib/TLibEncoder/SEIwrite.cpp,
51881 source/Lib/TLibEncoder/TEncGOP.cpp:
51882 remove L0045_PERSISTENCE_FLAGS #define, it will always be 1
51885 * source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TComSlice.cpp,
51886 source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TypeDef.h,
51887 source/Lib/TLibEncoder/SEIwrite.cpp,
51888 source/Lib/TLibEncoder/TEncCavlc.cpp,
51889 source/Lib/TLibEncoder/TEncGOP.cpp:
51890 remove L0044_DU_DPB_OUTPUT_DELAY_HRD #define, it will always be 1
51893 * source/Lib/TLibCommon/SEI.h, source/Lib/TLibCommon/TypeDef.h,
51894 source/Lib/TLibEncoder/SEIwrite.cpp,
51895 source/Lib/TLibEncoder/TEncGOP.cpp:
51896 remove L0328_SPLICING #define, it will always be 1
51899 * source/Lib/TLibCommon/TComSlice.cpp,
51900 source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TypeDef.h,
51901 source/Lib/TLibEncoder/TEncCavlc.cpp:
51902 remove L0363_DU_BIT_RATE #define, it will always be 1
51905 * source/Lib/TLibCommon/TComSlice.cpp,
51906 source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TypeDef.h,
51907 source/Lib/TLibEncoder/TEncCavlc.cpp:
51908 remove FIX1071 #define, this temporary fix has been there for 1.5
51912 * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCfg.h,
51913 source/Lib/TLibEncoder/TEncGOP.cpp,
51914 source/Lib/TLibEncoder/TEncGOP.h,
51915 source/Lib/TLibEncoder/TEncSlice.cpp,
51916 source/Lib/TLibEncoder/TEncTop.cpp, source/x265cfg.cpp,
51917 source/x265enc.cpp:
51918 remove L0386_DB_METRIC #define, it will always be 1
51921 * source/Lib/TLibCommon/TComSlice.cpp,
51922 source/Lib/TLibCommon/TypeDef.h,
51923 source/Lib/TLibEncoder/TEncCavlc.cpp, source/x265cfg.cpp:
51924 remove L0323_DPB #define, it will always be 1
51927 * source/Lib/TLibCommon/CommonDef.h,
51928 source/Lib/TLibCommon/TComSlice.cpp,
51929 source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibCommon/TypeDef.h,
51930 source/Lib/TLibEncoder/TEncCfg.h,
51931 source/Lib/TLibEncoder/TEncGOP.cpp,
51932 source/Lib/TLibEncoder/TEncSearch.cpp,
51933 source/Lib/TLibEncoder/TEncTop.cpp, source/x265cfg.cpp,
51934 source/x265enc.cpp:
51935 remove L0034_COMBINED_LIST_CLEANUP #define, it will always be 1
51938 * source/Lib/TLibCommon/ContextModel.cpp,
51939 source/Lib/TLibCommon/ContextModel.h,
51940 source/Lib/TLibCommon/TypeDef.h,
51941 source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp,
51942 source/Lib/TLibEncoder/TEncBinCoderCABAC.h,
51943 source/Lib/TLibEncoder/TEncBinCoderCABACCounter.cpp,
51944 source/Lib/TLibEncoder/TEncBinCoderCABACCounter.h,
51945 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
51946 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
51947 source/Lib/TLibEncoder/TEncSbac.h,
51948 source/Lib/TLibEncoder/TEncTop.cpp,
51949 source/Lib/TLibEncoder/TEncTop.h:
51950 remove FAST_BIT_EST #define, it will always be 1, improve
51954 * source/Lib/TLibCommon/TComRdCost.cpp,
51955 source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TypeDef.h,
51956 source/Lib/TLibEncoder/TEncSearch.cpp:
51957 remove NS_HAD #define, it will always be 0, improve readability
51960 * source/Lib/TLibCommon/TypeDef.h,
51961 source/Lib/TLibEncoder/TEncSearch.cpp,
51962 source/Lib/TLibEncoder/TEncSearch.h:
51963 remove ZERO_MVD_EST #define, it will always be 0, improve
51967 * source/Lib/TLibEncoder/TEncSearch.cpp:
51968 uncrustify: cleanup TEncSearch.cpp after AMP_MRG define removal
51971 * source/Lib/TLibCommon/TComDataCU.h, source/Lib/TLibCommon/TypeDef.h,
51972 source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
51973 source/Lib/TLibEncoder/TEncSearch.cpp,
51974 source/Lib/TLibEncoder/TEncSearch.h:
51975 remove AMP_MRG #define, it will always be 1, improve readability
51978 * source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibEncoder/TEncCu.cpp,
51979 source/Lib/TLibEncoder/TEncCu.h:
51980 remove AMP_ENC_SPEEDUP #define, it will always be 1, improve
51984 * source/Lib/TLibCommon/TComRdCost.cpp,
51985 source/Lib/TLibCommon/TComRdCost.h, source/Lib/TLibCommon/TypeDef.h,
51986 source/Lib/TLibEncoder/TEncSearch.cpp:
51987 remove AMP_SAD #define, it will always be 1, improve readability
51990 * source/encoder/x86/asm-primitives.cpp:
51991 asm: disable assembly; was causing stack corruption in debug runs
51993 The SATD functions are getting called from random places that do not
51994 enforce input buffer alignment. These need to be fixed before ASM
51998 * source/test/CMakeLists.txt:
51999 cmake: add primitive defines to test folder
52002 2013-04-27 ShinYee Chung <shinyee@multicorewareinc.com>
52004 * source/encoder/TShortYUV.cpp:
52005 shortyuv: Fix the '\' in an #include.
52007 Use '/' instead for compatibility with Windows and Linux.
52010 2013-04-26 Steve Borho <steve@borho.org>
52012 * source/Lib/TLibEncoder/TEncSearch.cpp,
52013 source/encoder/primitives.cpp, source/encoder/primitives.h:
52014 primitive: remove FastHeight(), use same logic with/without
52017 * Allow iSubShift if iRows is greater than 12, since half-height
52018 blocks will be supported.
52019 * Unconditionally use the partition returned from PartitionFromSizes()
52022 2013-04-26 nandaku2 <deepthi@multicorewareinc.com>
52024 * Merged in deepthidevaki/xhevc_deepthid (pull request #94)
52026 Modified FIlter vec primitives
52029 2013-04-26 Deepthi Devaki <Deepthi Devaki>
52031 * source/encoder/vec/interpolationfilter.inc:
52032 Modified Filter vec primitives
52035 * source/test/ipfilterharness.cpp:
52036 Fix errors in IPfilterharness
52039 2013-04-26 Deepthi <Deepthi>
52041 * source/encoder/CMakeLists.txt:
52045 * source/encoder/TShortYUV.cpp, source/encoder/TShortYUV.h:
52046 Formatting the TShortYUV class.
52049 * source/Lib/TLibCommon/TComPrediction.h,
52050 source/encoder/CMakeLists.txt, source/encoder/TShortYUV.cpp,
52051 source/encoder/TShortYUV.h:
52052 Introducing TShortYUV formally
52055 2013-04-26 Deepthi Devaki <Deepthi Devaki>
52057 * source/encoder/vec/interpolationfilter.inc,
52058 source/test/ipfilterharness.cpp:
52059 FilterConvert - vec primitives
52062 * source/encoder/InterpolationFilter.cpp,
52063 source/encoder/vec/interpolationfilter.inc:
52064 Vectorized FilterHorizontal-pel-pel and pel_short
52070 * source/test/ipfilterharness.cpp:
52071 Changes to ipfilterharness.cpp
52074 2013-04-25 Deepthi Devaki <Deepthi Devaki>
52076 * source/encoder/vec/CMakeLists.txt,
52077 source/encoder/vec/interpolationfilter.inc,
52078 source/encoder/vec/vecprimitives.inc,
52079 source/test/ipfilterharness.cpp:
52080 Vectorized version of filterVertical_short_Pel
52083 2013-04-26 Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
52085 * Merged multicoreware/xhevc into default
52088 2013-04-25 Deepthi Devaki <Deepthi Devaki>
52090 * source/encoder/InterpolationFilter.cpp:
52091 Typecast result val to pel.
52094 2013-04-25 Steve Borho <steve@borho.org>
52096 * source/x265cfg.cpp:
52097 x265: output string nit
52100 * source/x265.h, source/x265cfg.cpp, source/x265cfg.h,
52101 source/x265enc.cpp:
52102 x265: move encoder configurable fields into a C friendly header
52105 * source/CMakeLists.txt, source/encoder/CMakeLists.txt:
52106 cmake: make vector and asm build flags local to encoder/ folder
52108 Toggling the ASM or vector primitives should not require the HM
52109 library to be rebuilt.
52112 * source/CMakeLists.txt, source/encoder/CMakeLists.txt:
52113 cmake: move VectorClass include path within encoder/ folder
52116 * source/CMakeLists.txt:
52117 cmake: remove getopt from build; leave files in place for potential
52121 * source/CMakeLists.txt, source/Lib/CMakeLists.txt:
52122 cmake: move program_options_lite out of HM lib and into CLI project
52125 * source/encoder/primitives.cpp:
52126 primitives: turn partition checks into asserts; we expect success
52129 * source/x265main.cpp:
52130 main: nits in output header
52133 * source/encoder/vec/pixel.inc:
52134 pixel: add vector width/height 12 SAD functions
52137 * source/encoder/pixel.cpp, source/encoder/primitives.cpp,
52138 source/encoder/primitives.h, source/test/pixelharness.cpp:
52139 pixel: add support for width/height of 12
52142 * source/encoder/vec/pixel.inc:
52143 pixel: add vector width/height 24 SAD functions
52146 * source/test/pixelharness.cpp:
52147 pixelharness: fix up partition name strings
52150 * source/encoder/pixel.cpp, source/encoder/primitives.cpp,
52151 source/encoder/primitives.h:
52152 pixel: add support for width/height of 24
52155 * source/encoder/pixel.cpp:
52156 pixel: reorder C refs to match enums, add missing 64 sized SATD
52159 Intra will not use 64 sized partitions, but sub-pel inter might. I'm
52160 surprised this didn't break uterly before?
52163 * source/Lib/TLibEncoder/TEncSearch.cpp:
52167 * source/Lib/TLibEncoder/TEncSearch.cpp:
52168 search: do not use iSubShift if it would result in slow path
52171 This doesn't have a large impact on performance today because motion
52172 search is still so bloody innefficient. But it is the right thing to
52176 * source/encoder/primitives.cpp, source/encoder/primitives.h:
52177 primitives: add a FastHeight() method to give early warnings of slow
52181 * source/encoder/primitives.cpp:
52182 primitives: simplify PartitionFromSizes()
52185 * source/encoder/primitives.h:
52186 primitives: add macros for 32byte aligment
52189 * source/encoder/primitives.h:
52190 primitives: re-order enums so partitions with the same width are
52194 * source/Lib/TLibEncoder/TEncSearch.cpp,
52195 source/encoder/primitives.cpp:
52196 Merged in deepthidevaki/xhevc_deepthid (pull request #92)
52198 Call Filter Primitives from SamplingQ, SamplingH
52201 2013-04-25 Deepthi Devaki <Deepthi Devaki>
52203 * source/Lib/TLibEncoder/TEncSearch.cpp:
52204 Add filter Primitives call in SamplingQ
52207 * source/Lib/TLibEncoder/TEncSearch.cpp:
52208 Add Filter Primitives call in SamplingQ
52211 * source/encoder/InterpolationFilter.cpp:
52212 Remove assert from filters
52215 * source/Lib/TLibEncoder/TEncSearch.cpp:
52216 Call Filter Primitives from SamplingQ, SamplingH
52219 * source/Lib/TLibEncoder/TEncSearch.cpp,
52220 source/encoder/InterpolationFilter.h:
52224 * source/encoder/InterpolationFilter.cpp,
52225 source/test/ipfilterharness.cpp:
52226 Fix unused variables.
52229 2013-04-25 Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
52231 * Merged multicoreware/xhevc into default
52234 2013-04-25 Deepthi Devaki <Deepthi Devaki>
52236 * source/test/ipfilterharness.cpp:
52237 Add limits.h to IPFilterHarness.
52240 * source/encoder/CMakeLists.txt, source/encoder/primitives.cpp,
52241 source/test/CMakeLists.txt:
52242 Filter c primitives - add to Cmake and primitives.cpp
52245 2013-04-25 Steve Borho <steve@borho.org>
52247 * source/Lib/TLibEncoder/TEncSearch.cpp:
52248 Merged in ggopu/gopu_xhevc (pull request #89)
52250 included 64 Bit in PartitionFromSizes and Eliminated the
52251 setDisParam() call from xTZSearchHelp() and Removed the primitive
52252 call for rdCost for all the sad functions
52255 2013-04-25 ggopu <ggopu>
52257 * source/Lib/TLibEncoder/TEncSearch.cpp:
52258 included 64 Bit in PartitionFromSizes and Eliminated the
52259 setDisParam() call from xTZSearchHelp() and Removed the primitive
52260 call for rdCost for all the sad functions Resolved the issue based
52264 * source/Lib/TLibEncoder/TEncSearch.cpp:
52265 included 64 Bit in PartitionFromSizes and Eliminated the
52266 setDisParam() call from xTZSearchHelp() and Removed the primitive
52267 call for rdCost for all the sad functions
52268 --solved the issues based on the comment
52271 * source/Lib/TLibEncoder/TEncSearch.cpp:
52272 included 64 Bit in PartitionFromSizes and Eliminated the
52273 setDisParam() call from xTZSearchHelp() and Removed the primitive
52274 call for rdCost for all the sad functions
52275 -- solved the issues based on the comment
52278 * source/Lib/TLibCommon/TComRdCost.cpp,
52279 source/Lib/TLibCommon/TComRdCost.h,
52280 source/Lib/TLibEncoder/TEncSearch.cpp:
52281 included 64 Bit in PartitionFromSizes and Eliminated the
52282 setDisParam() call from xTZSearchHelp() and Removed the primitive
52283 call for rdCost for all the sad functions
52286 * source/Lib/TLibCommon/TComRdCost.cpp,
52287 source/Lib/TLibCommon/TComRdCost.h,
52288 source/Lib/TLibEncoder/TEncSearch.cpp,
52289 source/encoder/primitives.cpp:
52290 Included 64 Bit in PartitionFromSizes and Eliminated the
52291 setDisParam() call from xTZSearchHelp() Removed the primitive call
52292 for rdCost for all the sad functions
52295 2013-04-24 Gopu G <gopu@multicorewareinc.com>
52297 * Merged multicoreware/xhevc into default
52300 * Merged multicoreware/xhevc into default
52303 2013-04-23 Gopu G <gopu@multicorewareinc.com>
52305 * source/Lib/TLibVideoIO/TVideoIO.h,
52306 source/Lib/TLibVideoIO/TVideoIOY4m.cpp,
52307 source/Lib/TLibVideoIO/TVideoIOY4m.h,
52308 source/Lib/TLibVideoIO/TVideoIOYuv.cpp,
52309 source/Lib/TLibVideoIO/TVideoIOYuv.h:
52310 Merged multicoreware/xhevc into default
52313 2013-04-22 Gopu G <gopu@multicorewareinc.com>
52315 * source/Lib/encoder.cpp, source/Lib/encoder.h,
52316 source/Lib/libmd5/MD5.h, source/Lib/libmd5/libmd5.c,
52317 source/Lib/libmd5/libmd5.h:
52318 Merged multicoreware/xhevc into default
52321 2013-04-25 nandaku2 <deepthi@multicorewareinc.com>
52323 * Merged in deepthidevaki/xhevc_deepthid (pull request #91)
52325 Added new IPFilter function pointers. Added TestSuite for new
52326 IPFilter primitives.
52329 2013-04-25 Deepthi Devaki <Deepthi Devaki>
52331 * source/encoder/InterpolationFilter.cpp:
52335 * source/encoder/primitives.h, source/test/ipfilterharness.cpp,
52336 source/test/ipfilterharness.h, source/test/testbench.cpp:
52337 Added new IPFilter function pointers. Added TestSuite for new
52338 IPFilter primitives.
52341 2013-04-25 Deepthi <Deepthi>
52343 * source/Lib/TLibEncoder/TEncSearch.cpp:
52347 * source/Lib/TLibCommon/TComPrediction.cpp:
52348 Random data type changes
52351 * source/Lib/TLibEncoder/TEncSearch.cpp:
52352 Correct typecasts in IFSamplingQ and H
52355 * cfg/encoder_I_15P.cfg:
52359 2013-04-25 Deepthi Devaki <Deepthi Devaki>
52361 * source/encoder/CMakeLists.txt:
52362 Add InterpolationFilter.cpp to CMakeList
52365 * source/encoder/InterpolationFilter.cpp,
52366 source/encoder/InterpolationFilter.h:
52367 Changes to filter (fixing merge conflict)
52370 2013-04-25 Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
52372 * source/encoder/InterpolationFilter.h:
52373 Merged multicoreware/xhevc into default
52376 2013-04-25 Deepthi Devaki <Deepthi Devaki>
52378 * source/encoder/InterpolationFilter.h:
52379 Backed out changeset: cc54b45a0eac
52382 2013-04-24 Deepthi Devaki <Deepthi Devaki>
52384 * source/encoder/InterpolationFilter.cpp,
52385 source/encoder/InterpolationFilter.h:
52386 added filterVertical_pel_pel
52389 * source/encoder/InterpolationFilter.cpp,
52390 source/encoder/InterpolationFilter.h:
52391 Split interpolationfilter.h and .cpp
52394 * source/encoder/InterpolationFilter.h:
52395 Removed copying coeff to temporary array
52398 * source/Lib/TLibEncoder/TEncSearch.cpp,
52399 source/encoder/InterpolationFilter.h:
52400 modified filter assuming bitDepth is always 8
52403 * source/encoder/InterpolationFilter.h:
52404 Removed filterVertical_pel_pel.
52407 * source/encoder/InterpolationFilter.h:
52408 Add memcpy in filterCopy
52411 * source/Lib/TLibEncoder/TEncSearch.cpp,
52412 source/encoder/InterpolationFilter.h:
52413 Eliminated redundant operations in filter
52416 2013-04-24 Steve Borho <steve@borho.org>
52418 * source/encoder/vec/macroblock.inc:
52419 Merged in praveentiwari/xhevc_praveent (pull request #87)
52421 Vector code for partialButterflyInverse32
52424 2013-04-24 praveentiwari <praveentiwari>
52426 * source/Lib/TLibCommon/TComTrQuant.cpp,
52427 source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc:
52428 vector code for partialButterflyInverse32
52431 2013-04-24 praveen Tiwari <praveen@multicorewareinc.com>
52433 * Merged multicoreware/xhevc into default
52436 2013-04-24 praveentiwari <praveentiwari>
52438 * source/test/mbdstharness.cpp, source/test/mbdstharness.h:
52439 Test code for partialButterflyInverse32
52442 2013-04-24 ShinYee Chung <shinyee@multicorewareinc.com>
52444 * source/encoder/InterpolationFilter.h:
52445 Interpolation: Fix unused variable in the horizontal filter.
52448 2013-04-24 Steve Borho <steve@borho.org>
52450 * source/encoder/InterpolationFilter.h:
52451 fix build on Linux, always use forward slashes in includes
52454 2013-04-24 Deepthi <Deepthi>
52459 * source/Lib/TLibCommon/TComYuv.cpp:
52460 Static_casts in TComYuv
52463 2013-04-24 Deepthi Devaki <Deepthi Devaki>
52465 * source/Lib/TLibEncoder/TEncSearch.cpp:
52466 Fixed case mismatch in include
52469 2013-04-24 Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
52471 * source/Lib/TLibEncoder/TEncSearch.cpp:
52472 Merged multicoreware/xhevc into default
52475 2013-04-24 Deepthi Devaki <Deepthi Devaki>
52477 * source/encoder/InterpolationFilter.h:
52478 Added InterpolationFilter.h
52481 * source/encoder/interpolationFilter.h:
52482 removed interpolationFilter.h
52485 * source/Lib/TLibEncoder/TEncSearch.cpp,
52486 source/encoder/CMakeLists.txt, source/encoder/interpolationFilter.h:
52487 Fixed data types of srcPtr,dstPtr and intPtr.
52490 2013-04-23 Deepthi Devaki <Deepthi Devaki>
52492 * source/Lib/TLibEncoder/TEncSearch.cpp:
52493 Changed typecasting to Pel.
52496 * source/Lib/TLibEncoder/TEncSearch.cpp:
52497 Modified call to Filters based on input/ouput data type
52500 * source/encoder/CMakeLists.txt, source/encoder/interpolationFilter.h:
52501 Added new filter functions for different datatypes(Pel or short) for
52505 2013-04-23 Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
52507 * source/Lib/TLibVideoIO/TVideoIO.h,
52508 source/Lib/TLibVideoIO/TVideoIOY4m.cpp,
52509 source/Lib/TLibVideoIO/TVideoIOY4m.h,
52510 source/Lib/TLibVideoIO/TVideoIOYuv.cpp,
52511 source/Lib/TLibVideoIO/TVideoIOYuv.h,
52512 source/encoder/vec/macroblock.inc:
52513 Merged multicoreware/xhevc into default
52516 * source/Lib/encoder.cpp, source/Lib/encoder.h,
52517 source/Lib/libmd5/MD5.h, source/Lib/libmd5/libmd5.c,
52518 source/Lib/libmd5/libmd5.h, source/encoder/vec/macroblock.inc:
52519 Merged multicoreware/xhevc into default
52522 2013-04-23 Deepthi Devaki <Deepthi Devaki>
52524 * source/encoder/vec/macroblock.inc:
52525 fix the merge conflicts
52528 2013-04-19 Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
52530 * Merged multicoreware/xhevc into default
52533 2013-04-24 Deepthi <Deepthi>
52538 2013-04-23 Deepthi <Deepthi>
52540 * source/Lib/TLibEncoder/TEncSearch.cpp:
52541 More static_cast in IntraCoding
52547 * source/Lib/TLibEncoder/TEncSearch.cpp:
52548 static_casts in IntraCoding
52551 * source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp:
52552 Change to short to prevent infinite loop
52555 2013-04-23 Steve Borho <steve@borho.org>
52557 * source/x265enc.cpp:
52558 x265enc: check return status of input.readPicture()
52561 * source/input/y4m.cpp:
52562 input: further y4m reading fixes
52565 * source/input/y4m.cpp:
52566 input: declare header as char[] so sizeof works correctly
52569 2013-04-23 ShinYee Chung <shinyee@multicorewareinc.com>
52571 * source/encoder/md5.cpp:
52572 md5: Fix incorrect memory reset on MD5 context structure.
52575 2013-04-23 Steve Borho <steve@borho.org>
52577 * source/test/testbench.cpp:
52578 testbench: report bit depth in testbench output log
52581 * source/encoder/vec/pixel.inc:
52582 pixel: refactor pixel templates, optimizations mostly for 8bpp, see
52585 SAD part 16bpp opt 8bpp opt [4x4] 4.88x 4.24x 2.75x 3.16x [8x4]
52586 4.57x 6.40x 4.79x 5.87x [4x8] 4.95x 4.34x 3.08x 3.24x [8x8] 6.63x
52587 6.14x 6.03x 6.98x [4x16] 3.70x 6.10x 3.76x 3.67x [16x4] 8.51x 10.55x
52588 8.77x 10.75x [8x16] 7.08x 6.99x 6.65x 7.83x [16x8] 12.57x 14.31x
52589 11.21x 18.17x [16x16] 15.30x 13.36x 12.80x 26.20x [4x32] 4.83x 4.95x
52590 3.55x 3.99x [32x4] 10.30x 12.03x 7.07x 13.03x [8x32] 6.77x 7.66x
52591 6.43x 8.01x [32x8] 11.01x 14.35x 9.25x 13.80x [16x32] 14.12x 14.24x
52592 13.38x 17.81x [32x16] 10.75x 12.63x 9.72x 19.84x [32x32] 12.11x
52593 12.01x 9.19x 14.41x [4x64] 4.23x 4.12x 4.00x 4.73x [64x4] 11.34x
52594 11.63x 8.53x 14.24x [8x64] 7.68x 7.25x 7.74x 8.32x [64x8] 10.69x
52595 13.61x 8.79x 14.71x [16x64] 12.93x 12.82x 11.45x 21.61x [64x16]
52596 10.37x 10.46x 9.12x 17.29x [32x64] 13.22x 13.03x 10.34x 19.46x
52597 [64x32] 10.49x 10.81x 8.58x 13.40x [64x64] 11.19x 11.34x 9.45x
52601 * source/VectorClass/vectori128.h:
52602 vec: add two methods to Vec16uc that are handy for pixelcmp
52605 * source/x265cfg.cpp:
52606 x265cfg: more HIGH_BIT_DEPTH fixes
52609 * source/VectorClass/vectori128.h:
52610 vec: fix eoln in vectori128.h
52613 * source/PPA/ppaCPUEvents.h, source/output/y4m.cpp,
52614 source/output/yuv.cpp:
52615 ppa: add profile events for file write
52618 * source/input/input.h, source/input/y4m.h, source/output/y4m.cpp:
52619 nit: prune unnecessary includes
52622 * source/encoder/md5.cpp, source/encoder/md5.h:
52623 nit: hide internal function
52626 * source/encoder/threadpool.cpp, source/test/testpool.cpp:
52627 threadpool: fix 32bit Windows __lzcnt_2x32
52630 * doc/uncrustify/codingstyle.cfg:
52631 uncrustify: comment two lines that triggered warnings
52634 * source/Lib/TLibCommon/CommonDef.h,
52635 source/Lib/TLibEncoder/TEncGOP.cpp:
52636 take HM updates up to 10.1rc
52639 * source/output/output.h, source/output/y4m.h, source/output/yuv.h,
52640 source/x265cfg.cpp:
52641 output: add error handling for output reconstructed video file
52644 * source/output/yuv.cpp, source/output/yuv.h:
52645 output: use ofstream for yuv
52648 * source/output/y4m.cpp, source/output/y4m.h:
52649 output: use ofstream for y4m
52652 * source/output/output.cpp, source/output/output.h,
52653 source/output/y4m.cpp, source/output/y4m.h, source/x265cfg.cpp:
52654 output: pass frame rate to output file
52657 * source/x265enc.cpp:
52658 we must initialize the fields which have been deprecated from config
52661 * source/x265cfg.cpp:
52662 use estimated frame count
52665 * source/input/input.h, source/input/y4m.cpp, source/input/y4m.h,
52666 source/input/yuv.cpp, source/input/yuv.h:
52667 input: implement guessFrameCount(), use std::ifstream, cleanup Y4M
52670 Prevent double-close of YUV file handle
52673 * source/x265cfg.h:
52677 * source/x265cfg.cpp, source/x265cfg.h, source/x265enc.cpp:
52678 cli: make bit depth arguments go away when HIGH_BIT_DEPTH=0,
52681 Enforce the requirement that the output bit depth cannot be larger
52682 than the internal bit depth. Remove "conformance mode" and aiPad[].
52683 Those operations, including color space adjustments, don't belong in
52684 an encoder. They should be done by a video processing library prior
52688 * source/encoder/x86/asm-primitives.cpp:
52689 asm-primitives: use #if 0 rather than comments
52692 * source/encoder/vec/pixel.inc:
52693 pixel: add separate implementations for 8bit pixels
52695 the current 8bit versions are sub-optimal. Needs psadbw
52698 * source/encoder/pixel.cpp:
52699 pixel: remove old TODO comment
52702 2013-04-23 nandaku2 <deepthi@multicorewareinc.com>
52704 * Merged in praveentiwari/xhevc_praveent (pull request #84)
52706 Vector code for partialButterflyInverse16
52709 2013-04-23 praveentiwari <praveentiwari>
52711 * source/Lib/TLibCommon/TComTrQuant.cpp,
52712 source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc:
52713 Vector code for partialButterflyInverse16
52716 2013-04-23 praveen Tiwari <praveen@multicorewareinc.com>
52718 * Merged multicoreware/xhevc into default
52721 * Merged multicoreware/xhevc into default
52724 * Merged multicoreware/xhevc into default
52727 2013-04-23 praveentiwari <praveentiwari>
52729 * source/test/mbdstharness.cpp, source/test/mbdstharness.h:
52730 Testcode for partialButterflyInverse16
52733 2013-04-23 praveen Tiwari <praveen@multicorewareinc.com>
52735 * source/Lib/TLibVideoIO/TVideoIO.h,
52736 source/Lib/TLibVideoIO/TVideoIOY4m.cpp,
52737 source/Lib/TLibVideoIO/TVideoIOY4m.h,
52738 source/Lib/TLibVideoIO/TVideoIOYuv.cpp,
52739 source/Lib/TLibVideoIO/TVideoIOYuv.h:
52740 Merged multicoreware/xhevc into default
52743 2013-04-23 praveentiwari <praveentiwari>
52745 * source/encoder/vec/macroblock.inc:
52746 Robust alternative logic for Clip3
52749 2013-04-23 nandaku2 <deepthi@multicorewareinc.com>
52751 * Merged in ggopu/gopu_xhevc (pull request #83)
52753 Enhanced the Regression suite and added Regression suite for Mingw
52757 2013-04-22 ggopu <ggopu>
52759 * build/BuildEncoderApplications.bat,
52760 build/CreateRegressionPackage.bat, build/CreateRegressionPackage.sh,
52761 build/RunEncoderApplications.bat, build/config.txt:
52762 Enhanced the Regression suite and added Regression suite for Mingw
52766 2013-04-23 Deepthi <Deepthi>
52768 * source/Lib/TLibVideoIO/TVideoIO.h,
52769 source/Lib/TLibVideoIO/TVideoIOY4m.cpp,
52770 source/Lib/TLibVideoIO/TVideoIOY4m.h,
52771 source/Lib/TLibVideoIO/TVideoIOYuv.cpp,
52772 source/Lib/TLibVideoIO/TVideoIOYuv.h:
52776 * source/Lib/TLibCommon/TComPrediction.cpp:
52777 more precision related static casts in prediction.
52780 * source/Lib/TLibCommon/TComLoopFilter.cpp:
52781 Deblocking Filter made type safe
52784 2013-04-23 Steve Borho <steve@borho.org>
52786 * source/output/y4m.cpp:
52787 output: simplify frame header generation
52790 * source/output/yuv.cpp:
52791 output: handle 16bit YUV output files correctly
52795 hg: ignore y4m files
52798 2013-04-23 Deepthi <Deepthi>
52800 * source/Lib/TLibCommon/TComLoopFilter.cpp:
52801 static_cast to remove precision loss in loop filter (during Pel type
52805 2013-04-23 Steve Borho <steve@borho.org>
52807 * source/output/y4m.cpp, source/output/y4m.h, source/output/yuv.cpp,
52808 source/output/yuv.h, source/x265cfg.cpp, source/x265enc.cpp:
52809 output: handle 16bit Pel type from the encoder
52812 2013-04-22 Steve Borho <steve@borho.org>
52814 * source/CMakeLists.txt, source/Lib/CMakeLists.txt,
52815 source/Lib/TLibEncoder/TEncTop.h, source/Lib/TLibVideoIO/TVideoIO.h,
52816 source/Lib/TLibVideoIO/TVideoIOY4m.cpp,
52817 source/Lib/TLibVideoIO/TVideoIOY4m.h,
52818 source/Lib/TLibVideoIO/TVideoIOYuv.cpp,
52819 source/Lib/TLibVideoIO/TVideoIOYuv.h, source/output/CMakeLists.txt,
52820 source/output/output.cpp, source/output/output.h,
52821 source/output/y4m.cpp, source/output/y4m.h, source/output/yuv.cpp,
52822 source/output/yuv.h, source/x265cfg.cpp, source/x265cfg.h,
52823 source/x265enc.cpp, source/x265enc.h:
52824 replace TLibVideoIO with as-yet unimplemented Output classes
52827 2013-04-23 Steve Borho <steve@borho.org>
52829 * source/Lib/TLibCommon/TComSlice.cpp,
52830 source/Lib/TLibEncoder/TEncCavlc.cpp:
52831 remove unicode chars from HM source
52834 * source/test/timer.cpp:
52835 testbench: re-add EMMS calls to timer funcs, for x86 builds
52837 Apparently uint64_t somehow involves the same hardware registers as
52841 2013-04-22 Steve Borho <steve@borho.org>
52843 * source/test/timer.cpp:
52844 testbench: fix timer behavior on Linux
52847 * source/test/CMakeLists.txt, source/test/timer.cpp:
52848 testbench: fix Linux compile
52851 * source/test/CMakeLists.txt:
52852 cmake: the test bench apps no long need to link with the HM libs
52855 * source/test/filterharness.cpp, source/test/mbdstharness.cpp,
52856 source/test/pixelharness.cpp, source/test/testbench.cpp,
52857 source/test/testharness.h, source/test/timer.cpp:
52858 testbench: report only speedups over C reference
52861 * source/x265main.cpp:
52862 fix eoln damage to x265main.cpp
52865 * source/Lib/CMakeLists.txt, source/Lib/TLibCommon/TComPicYuvMD5.cpp,
52866 source/Lib/TLibEncoder/TEncGOP.cpp, source/Lib/libmd5/MD5.h,
52867 source/Lib/libmd5/libmd5.c, source/Lib/libmd5/libmd5.h,
52868 source/encoder/CMakeLists.txt, source/encoder/md5.cpp,
52869 source/encoder/md5.h, source/test/testpool.cpp:
52870 replace BSD libmd5 library with tweaked GPL MD5 from Min's x265
52873 * source/input/y4m.cpp, source/input/yuv.cpp, source/x265enc.cpp:
52874 move file read PPA events inside the file read classes
52877 * source/x265cfg.cpp:
52878 nit cleanups in x265cfg.cpp
52881 * source/x265main.cpp:
52882 use correct data type for clock() output
52885 * source/x265cfg.cpp, source/x265cfg.h, source/x265main.cpp:
52886 move some bits out of x265main into their proper locations
52889 * source/CMakeLists.txt, source/Lib/CMakeLists.txt,
52890 source/Lib/encoder.cpp, source/Lib/encoder.h, source/x265enc.cpp,
52891 source/x265enc.h, source/x265main.cpp:
52892 move CLI encoder toplevel class out of Lib/ folder
52895 * source/Lib/TLibCommon/TComPicYuv.cpp:
52896 fix eoln of TComPicYuv::copyFromPicture
52899 * source/Lib/TLibCommon/TComPicYuv.cpp,
52900 source/Lib/TLibCommon/TComPicYuv.h,
52901 source/Lib/TLibEncoder/TEncTop.cpp,
52902 source/Lib/TLibEncoder/TEncTop.h, source/Lib/encoder.cpp,
52903 source/x265cfg.cpp, source/x265cfg.h:
52904 Use Input classes for file reads, bit-exact
52907 * source/input/input.h, source/input/y4m.h, source/input/yuv.h:
52908 prune unnecessary Input class methods
52911 * source/input/input.h, source/input/y4m.cpp, source/input/y4m.h,
52912 source/input/yuv.cpp, source/input/yuv.h, source/x265.h:
52913 introduce x265.h - public interface header, C compatible
52916 * source/input/input.h, source/input/y4m.cpp:
52917 input: remove include of internal header
52920 * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg:
52921 remove ScalingListFile from config files
52923 It was never implemented, and we're unlikely to add it
52926 * source/Lib/TLibEncoder/TEncCu.cpp:
52927 white-space tweak to TEncCu.cpp
52930 * source/input/input.h, source/input/y4m.h, source/input/yuv.h:
52935 hg: ignore test run remnants
52938 2013-04-21 Steve Borho <steve@borho.org>
52940 * source/CMakeLists.txt:
52941 cmake: set -D_CRT_NONSTDC_NO_DEPRECATE on x265cfg.cpp
52944 * source/Lib/TLibEncoder/TEncCfg.h:
52945 TEncCfg: minor white-space cleanups
52948 2013-04-22 nandaku2 <deepthi@multicorewareinc.com>
52950 * Merged in praveentiwari/xhevc_praveent (pull request #82)
52952 Vectorized code for partialButterflyInverse8
52955 2013-04-22 praveentiwari <praveentiwari>
52957 * source/Lib/TLibCommon/TComTrQuant.cpp,
52958 source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc:
52959 Vectorized code for partialButterflyInverse8
52962 * source/test/mbdstharness.cpp, source/test/mbdstharness.h:
52963 Test code for partialButterflyInverse8
52966 2013-04-22 praveen Tiwari <praveen@multicorewareinc.com>
52968 * Merged multicoreware/xhevc into default
52971 2013-04-22 praveentiwari <praveentiwari>
52973 * source/Lib/TLibCommon/TComTrQuant.cpp,
52974 source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc:
52975 Vectorized code for partialButterflyInverse4
52978 * source/Lib/TLibCommon/TComTrQuant.cpp,
52979 source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc:
52980 Vectorized code for partialButterfly8
52983 * source/test/mbdstharness.cpp, source/test/mbdstharness.h:
52984 Test code for partialButterflyInverse4
52987 2013-04-22 Deepthi <Deepthi>
52989 * source/Lib/TLibVideoIO/TVideoIOY4m.cpp,
52990 source/Lib/TLibVideoIO/TVideoIOYuv.cpp:
52994 * source/Lib/TLibCommon/TComInterpolationFilter.h,
52995 source/Lib/TLibCommon/TComPrediction.cpp,
52996 source/Lib/TLibEncoder/TEncSearch.cpp:
52997 Final Short* parameter type casts. Now compiles with Pel as UShort.
53001 * source/Lib/TLibCommon/TComPrediction.h:
53005 2013-04-21 Deepthi <Deepthi>
53007 * source/Lib/TLibCommon/TComPrediction.h:
53011 2013-04-21 Steve Borho <steve@borho.org>
53013 * source/x265cfg.h:
53014 eoln fixes for x265cfg.h
53017 * source/cmake/version.cmake:
53018 cmake: print detected xhevc version
53021 * source/x265cfg.h:
53022 reintrodude old TVideIO classes, short term fix
53025 * source/Lib/TLibCommon/TComDataCU.cpp,
53026 source/Lib/TLibCommon/TComInterpolationFilter.cpp,
53027 source/Lib/TLibCommon/TComInterpolationFilter.h,
53028 source/Lib/TLibEncoder/TEncCavlc.h:
53029 re-apply some changes that were accidentally backed out
53032 * source/Lib/TLibCommon/TComSlice.cpp,
53033 source/Lib/TLibCommon/TComSlice.h,
53034 source/Lib/TLibCommon/TComTrQuant.cpp,
53035 source/Lib/TLibCommon/TComTrQuant.h,
53036 source/Lib/TLibCommon/TComWeightPrediction.cpp,
53037 source/Lib/TLibCommon/TComWeightPrediction.h,
53038 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
53039 source/Lib/TLibCommon/TypeDef.h,
53040 source/Lib/TLibEncoder/AnnexBwrite.h,
53041 source/Lib/TLibEncoder/NALwrite.cpp,
53042 source/Lib/TLibEncoder/SEIwrite.cpp,
53043 source/Lib/TLibEncoder/SyntaxElementWriter.h,
53044 source/Lib/TLibEncoder/TEncAnalyze.h,
53045 source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp,
53046 source/Lib/TLibEncoder/TEncBinCoderCABAC.h,
53047 source/Lib/TLibEncoder/TEncCavlc.cpp,
53048 source/Lib/TLibEncoder/TEncCavlc.h,
53049 source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp,
53050 source/Lib/TLibEncoder/TEncCu.h,
53051 source/Lib/TLibEncoder/TEncEntropy.cpp,
53052 source/Lib/TLibEncoder/TEncEntropy.h,
53053 source/Lib/TLibEncoder/TEncGOP.cpp,
53054 source/Lib/TLibEncoder/TEncGOP.h,
53055 source/Lib/TLibEncoder/TEncPic.cpp,
53056 source/Lib/TLibEncoder/TEncPic.h,
53057 source/Lib/TLibEncoder/TEncRateCtrl.cpp,
53058 source/Lib/TLibEncoder/TEncRateCtrl.h,
53059 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
53060 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
53061 source/Lib/TLibEncoder/TEncSbac.cpp,
53062 source/Lib/TLibEncoder/TEncSbac.h,
53063 source/Lib/TLibEncoder/TEncSearch.cpp,
53064 source/Lib/TLibEncoder/TEncSearch.h,
53065 source/Lib/TLibEncoder/TEncSlice.cpp,
53066 source/Lib/TLibEncoder/TEncSlice.h,
53067 source/Lib/TLibEncoder/TEncTop.cpp,
53068 source/Lib/TLibEncoder/TEncTop.h,
53069 source/Lib/TLibEncoder/WeightPredAnalysis.cpp,
53070 source/Lib/TLibEncoder/WeightPredAnalysis.h:
53071 remaining checkin of HM files
53074 * source/Lib/TLibCommon/TComPrediction.cpp,
53075 source/Lib/TLibCommon/TComPrediction.h,
53076 source/Lib/TLibCommon/TComRdCost.cpp,
53077 source/Lib/TLibCommon/TComRdCost.h,
53078 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
53079 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
53080 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h:
53081 partial checkin of more HM files
53084 * source/Lib/TLibCommon/TComPicSym.cpp,
53085 source/Lib/TLibCommon/TComPicSym.h,
53086 source/Lib/TLibCommon/TComPicYuv.cpp,
53087 source/Lib/TLibCommon/TComPicYuv.h:
53088 partial checkin of more HM files
53091 * source/Lib/TLibCommon/TComBitStream.h,
53092 source/Lib/TLibCommon/TComDataCU.h,
53093 source/Lib/TLibCommon/TComInterpolationFilter.cpp,
53094 source/Lib/TLibCommon/TComInterpolationFilter.h,
53095 source/Lib/TLibCommon/TComList.h,
53096 source/Lib/TLibCommon/TComLoopFilter.cpp,
53097 source/Lib/TLibCommon/TComLoopFilter.h,
53098 source/Lib/TLibCommon/TComMotionInfo.cpp,
53099 source/Lib/TLibCommon/TComMotionInfo.h,
53100 source/Lib/TLibCommon/TComMv.h,
53101 source/Lib/TLibCommon/TComPattern.cpp,
53102 source/Lib/TLibCommon/TComPattern.h,
53103 source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h:
53104 partial checkin of more HM files
53107 * source/Lib/TLibCommon/ContextModel.h, source/Lib/TLibCommon/SEI.h,
53108 source/Lib/TLibCommon/TComBitStream.h, source/x265cfg.h:
53109 apply uncrustify tweak
53112 * doc/uncrustify/codingstyle.cfg:
53113 uncrustify: yet another tweak
53116 * source/Lib/TAppCommon/program_options_lite.cpp,
53117 source/Lib/TAppCommon/program_options_lite.h,
53118 source/Lib/TLibCommon/CommonDef.h,
53119 source/Lib/TLibCommon/ContextModel.cpp,
53120 source/Lib/TLibCommon/ContextModel.h,
53121 source/Lib/TLibCommon/ContextModel3DBuffer.cpp,
53122 source/Lib/TLibCommon/ContextModel3DBuffer.h,
53123 source/Lib/TLibCommon/ContextTables.h,
53124 source/Lib/TLibCommon/SEI.cpp, source/Lib/TLibCommon/SEI.h,
53125 source/Lib/TLibCommon/TComBitCounter.h,
53126 source/Lib/TLibCommon/TComBitStream.cpp,
53127 source/Lib/TLibCommon/TComBitStream.h,
53128 source/Lib/TLibCommon/TComDataCU.cpp:
53129 partial checkin of more HM files
53132 * cfg/encoder_I_15P.cfg, source/Lib/encoder.cpp, source/x265cfg.cpp,
53134 partial check-in of HM bug fixes - hand tweaking of large table
53138 * source/Lib/TAppCommon/program_options_lite.cpp,
53139 source/Lib/TAppCommon/program_options_lite.h,
53140 source/Lib/TLibCommon/CommonDef.h,
53141 source/Lib/TLibCommon/ContextModel.h, source/Lib/TLibCommon/SEI.h,
53142 source/Lib/TLibCommon/TComBitCounter.h,
53143 source/Lib/TLibCommon/TComBitStream.cpp,
53144 source/Lib/TLibCommon/TComBitStream.h,
53145 source/Lib/TLibCommon/TComDataCU.cpp,
53146 source/Lib/TLibCommon/TComDataCU.h,
53147 source/Lib/TLibCommon/TComInterpolationFilter.cpp,
53148 source/Lib/TLibCommon/TComInterpolationFilter.h,
53149 source/Lib/TLibCommon/TComMotionInfo.h,
53150 source/Lib/TLibCommon/TComMv.h, source/Lib/TLibCommon/TComPattern.h,
53151 source/Lib/TLibCommon/TComPic.h, source/Lib/TLibCommon/TComPicSym.h,
53152 source/Lib/TLibCommon/TComPicYuv.cpp,
53153 source/Lib/TLibCommon/TComPicYuv.h,
53154 source/Lib/TLibCommon/TComPrediction.cpp,
53155 source/Lib/TLibCommon/TComPrediction.h,
53156 source/Lib/TLibCommon/TComRdCost.cpp,
53157 source/Lib/TLibCommon/TComRdCost.h,
53158 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
53159 source/Lib/TLibCommon/TComSlice.h,
53160 source/Lib/TLibCommon/TComTrQuant.cpp,
53161 source/Lib/TLibCommon/TComTrQuant.h,
53162 source/Lib/TLibCommon/TComYuv.h,
53163 source/Lib/TLibEncoder/NALwrite.cpp,
53164 source/Lib/TLibEncoder/SyntaxElementWriter.h,
53165 source/Lib/TLibEncoder/TEncAnalyze.h,
53166 source/Lib/TLibEncoder/TEncBinCoder.h,
53167 source/Lib/TLibEncoder/TEncBinCoderCABAC.h,
53168 source/Lib/TLibEncoder/TEncCavlc.h,
53169 source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.h,
53170 source/Lib/TLibEncoder/TEncEntropy.h,
53171 source/Lib/TLibEncoder/TEncGOP.h,
53172 source/Lib/TLibEncoder/TEncPic.cpp,
53173 source/Lib/TLibEncoder/TEncPic.h,
53174 source/Lib/TLibEncoder/TEncRateCtrl.h,
53175 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
53176 source/Lib/TLibEncoder/TEncSbac.h,
53177 source/Lib/TLibEncoder/TEncSearch.h,
53178 source/Lib/TLibEncoder/TEncSlice.cpp,
53179 source/Lib/TLibEncoder/TEncSlice.h,
53180 source/Lib/TLibEncoder/TEncTop.cpp,
53181 source/Lib/TLibEncoder/TEncTop.h,
53182 source/Lib/TLibVideoIO/TVideoIOY4m.h, source/Lib/encoder.cpp,
53183 source/encoder/pixel.cpp, source/encoder/primitives.cpp,
53184 source/encoder/primitives.h, source/encoder/threading.cpp,
53185 source/encoder/threadpool.cpp, source/encoder/vec/pixel.inc,
53186 source/encoder/vec/vec-primitives.cpp,
53187 source/encoder/vec/vecprimitives.inc, source/input/input.cpp,
53188 source/input/y4m.cpp, source/input/y4m.h, source/input/yuv.cpp,
53189 source/input/yuv.h, source/test/filterharness.cpp,
53190 source/test/filterharness.h, source/test/mbdstharness.cpp,
53191 source/test/pixelharness.cpp, source/test/pixelharness.h,
53192 source/test/testbench.cpp, source/test/testharness.h,
53193 source/test/testpool.cpp, source/test/timer.cpp:
53194 uncrustify: apply coding style tweaks
53196 The new style needed to be in place before I updated the HM code, in
53197 order to reduce the number of diffs to sift through.
53200 * doc/uncrustify/codingstyle.cfg:
53201 uncrustify: more tweaks to style setting
53204 * doc/uncrustify/apply-to-all-source.py,
53205 doc/uncrustify/codingstyle.cfg, doc/uncrustify/uncrustify.exe:
53206 uncrustify: update uncrustify executable
53209 * source/encoder/x86/asm-primitives.cpp:
53210 asm: disable SAD assembly to get back to bit-exact outputs
53212 Perhaps a data alignment problem, or arguments in the wrong order
53219 2013-04-21 Deepthi <Deepthi>
53221 * source/Lib/TLibCommon/TComPrediction.cpp,
53222 source/Lib/TLibCommon/TComPrediction.h:
53223 Cleanups; remove TComYUV structure.
53226 * source/Lib/TLibEncoder/TEncSearch.cpp:
53227 Replace TComYUV class by TShortYUV
53230 * source/Lib/TLibCommon/TComPrediction.h:
53231 More members functions added to TShortYUV
53234 * source/Lib/TLibCommon/TComPrediction.cpp,
53235 source/Lib/TLibCommon/TComPrediction.h:
53236 Create and destroy filteredTmp class
53239 * source/Lib/TLibCommon/TComPrediction.h:
53240 Defining a new class for holding Short YUV buffers. This will
53241 replace the Pel YUV intermediate buffers in filter interpolation.
53244 2013-04-20 Steve Borho <steve@borho.org>
53246 * source/encoder/macroblock.cpp:
53247 cleanup some unfortunate uncrustify expression reflows
53250 2013-04-20 Mandar Gurav <Mandar Gurav>
53252 * source/Lib/TLibCommon/TComInterpolationFilter.cpp,
53253 source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc,
53254 source/test/filterharness.cpp:
53255 * Implemented vectorization of Filter_horizontal_4
53256 * Uncrustify all the commit files
53257 * Print one more field (speedup = c_time/vec_time) in testbench
53260 2013-04-20 Deepthi <Deepthi>
53262 * source/Lib/TLibCommon/TComPrediction.cpp:
53263 Changing the intermediate filtering output to short-lived heap
53264 memory (type short).
53267 * source/Lib/TLibCommon/TComInterpolationFilter.cpp,
53268 source/encoder/macroblock.cpp, source/encoder/primitives.h,
53269 source/encoder/vec/macroblock.inc, source/test/filterharness.cpp:
53273 2013-04-19 Mandar Gurav <Mandar Gurav>
53275 * source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc:
53276 Filter Horizontal vectorization stage 2
53279 2013-04-19 Mandar Gurav <mandar@multicorewareinc.com>
53281 * Merged multicoreware/xhevc into default
53284 * source/Lib/TLibCommon/TComInterpolationFilter.cpp,
53285 source/encoder/macroblock.cpp, source/encoder/primitives.h,
53286 source/encoder/vec/macroblock.inc, source/test/filterharness.cpp:
53287 Merged multicoreware/xhevc into default
53290 * source/encoder/macroblock.cpp:
53291 Merged multicoreware/xhevc into default
53294 2013-04-17 Mandar Gurav <mandar@multicorewareinc.com>
53296 * source/Lib/TLibCommon/TComInterpolationFilter.cpp,
53297 source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc,
53298 source/test/filterharness.cpp:
53299 Merged multicoreware/xhevc into default
53302 2013-04-18 Mandar Gurav <Mandar Gurav>
53304 * source/Lib/TLibCommon/TComInterpolationFilter.cpp:
53305 Copy file directly from xhevc.
53308 2013-04-17 Mandar Gurav <mandar@multicorewareinc.com>
53310 * build/RegressionTester.bat, source/Lib/config.cpp,
53311 source/Lib/config.h, source/encoder/macroblock.cpp,
53312 source/encoder/primitives.h, source/encoder/vec/macroblock.inc,
53313 source/test/filterharness.cpp:
53314 Merged multicoreware/xhevc into default
53317 2013-04-17 Mandar Gurav <Mandar Gurav>
53319 * source/encoder/primitives.h:
53320 Move to Xhevc source stage 2
53323 * source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc,
53324 source/test/filterharness.cpp:
53325 Move to latest xhevc source
53328 * source/encoder/macroblock.cpp:
53332 * source/encoder/macroblock.cpp:
53333 Copy file directly from xHEVC
53336 2013-04-16 Mandar Gurav <Mandar Gurav>
53338 * source/Lib/TLibCommon/TComInterpolationFilter.cpp,
53339 source/encoder/macroblock.cpp, source/encoder/primitives.h,
53340 source/encoder/vec/macroblock.inc, source/test/filterharness.cpp:
53341 Restrctured filter function calling/template as per the discussion
53344 2013-04-20 Deepthi <Deepthi>
53346 * source/encoder/macroblock.cpp, source/encoder/primitives.h,
53347 source/encoder/vec/macroblock.inc:
53351 * source/Lib/TLibCommon/TComInterpolationFilter.cpp,
53352 source/Lib/TLibCommon/TComInterpolationFilter.h,
53353 source/encoder/macroblock.cpp, source/encoder/primitives.h,
53354 source/encoder/vec/macroblock.inc, source/test/filterharness.cpp,
53355 source/test/filterharness.h:
53356 Changing all filter interpolation primitives to accept short
53360 * source/Lib/TLibCommon/TComInterpolationFilter.cpp,
53361 source/Lib/TLibCommon/TComInterpolationFilter.h:
53362 Changing all filter interpolation functions to accept Short
53366 2013-04-19 Steve Borho <steve@borho.org>
53368 * source/encoder/x86/CMakeLists.txt:
53369 cmake: use .obj extension for ASM compilation outputs, makes VS
53373 * source/CMakeLists.txt:
53374 cmake: enable /Oi flag globally for Visual Studio
53376 This makes the test bench run faster compiled with VS than with GCC
53379 * source/Lib/TLibCommon/TComRdCost.cpp,
53380 source/Lib/TLibEncoder/TEncSearch.cpp:
53381 add x264_cpu_emms() in some likely locations
53384 * source/encoder/x86/asm-primitives.cpp:
53385 asm: disable many of the sa8d_8x8 functions, they are causing
53388 (perhaps misalingment related, don't know. this will have to be
53392 * source/encoder/x86/asm-primitives.cpp:
53393 asm: enable many more primitives, leave bunches disabled
53395 Many of the high-bit depth primitives seem to be busted, they cause
53396 stack corruption even when called from GCC, at least the versions we
53400 * source/test/pixelharness.cpp:
53401 pixelharness: tweak print statements to show progress more clearly
53404 * source/encoder/x86/CMakeLists.txt:
53405 cmake: pass ARCH_X86_64 flag to asm-primitives.cpp
53408 * source/encoder/vec/pixel.inc:
53409 pixel: add a 16x4 satd vector primitive
53412 * source/encoder/pixel.cpp:
53413 pixel: fix larger dimension satd C primitives, using simple template
53416 * source/encoder/x86/CMakeLists.txt, source/encoder/x86/sad-a.asm:
53417 cmake: add x264's sad-a.asm for more SAD functions
53420 * source/encoder/x86/CMakeLists.txt:
53421 cmake: fix linking of assembly code with MSVC x86
53424 * source/encoder/x86/asm-primitives.cpp:
53425 asm-primitives: repair EOLN
53428 * source/input/yuv.cpp:
53429 yuv: fix MSVC x86 compiler warning
53432 * source/encoder/primitives.h, source/encoder/x86/CMakeLists.txt,
53433 source/encoder/x86/asm-primitives.cpp:
53434 cmake: fix linking of assembly code with MSVC builds (rename outputs
53438 * source/encoder/primitives.h, source/encoder/x86/CMakeLists.txt,
53439 source/encoder/x86/asm-primitives.cpp, source/encoder/x86/cpu-a.asm,
53440 source/test/CMakeLists.txt, source/test/timer.cpp:
53441 asm: pull in cpu-a.asm from x264, includes EMMS function
53443 The intrinsic support for EMMS is broken with MS compilers, so we
53444 have to use this short function provided by x264. We could improve
53445 this somewhat with inline assembly in primitives.h, but it would
53446 have to be cross-compiler.
53448 linking the assembly with MSVC seems clearly broken
53451 * source/Lib/TLibCommon/TComTrQuant.cpp,
53452 source/Lib/TLibVideoIO/TVideoIOY4m.h:
53453 EOLN repair in HM files
53456 * source/cmake/CMakeASM_YASMInformation.cmake,
53457 source/cmake/CMakeDetermineASM_YASMCompiler.cmake,
53458 source/cmake/CMakeTestASM_YASMCompiler.cmake,
53459 source/cmake/version.cmake:
53460 cmake: dos to unix eoln
53463 * source/test/timer.cpp:
53464 timer: issue EMMS before attempting any floating point math
53467 * source/cmake/CMakeASM_YASMInformation.cmake, source/encoder/x86/asm-
53468 primitives.cpp, source/test/CMakeLists.txt:
53469 cmake: fix GCC Win32 linkage with x264 assembly
53472 * source/input/y4m.cpp:
53473 input: fix GCC build
53476 * source/input/input.h, source/input/y4m.cpp, source/input/y4m.h,
53477 source/input/yuv.cpp, source/input/yuv.h:
53478 input: remove unnecessary public methods, cleanup read functions
53480 fread returns the count of elements read. The file reader should
53481 know nothing about margins.
53484 * source/input/y4m.cpp, source/input/yuv.cpp:
53485 input: fix compile warnings
53488 * source/input/input.h, source/input/y4m.cpp, source/input/y4m.h,
53489 source/input/yuv.cpp, source/input/yuv.h:
53490 input: update headers and classes
53493 2013-04-18 Steve Borho <steve@borho.org>
53495 * source/encoder/macroblock.cpp:
53496 macroblock: move warning disable to top of file, remove dups
53499 2013-04-19 Steve Borho <steve@borho.org>
53501 * Merged in praveentiwari/xhevc_praveent (pull request #78)
53503 Vectorized code for partialButterfly32
53506 2013-04-19 praveentiwari <praveentiwari>
53508 * source/test/mbdstharness.cpp, source/test/mbdstharness.h:
53509 Test code of partialButterfly8
53512 2013-04-19 praveen Tiwari <praveen@multicorewareinc.com>
53514 * source/Lib/TLibCommon/TComTrQuant.cpp:
53515 Merged multicoreware/xhevc into default
53518 * source/encoder/vec/macroblock.inc:
53519 Merged multicoreware/xhevc into default
53522 * source/encoder/vec/macroblock.inc:
53523 Merged multicoreware/xhevc into default
53526 2013-04-19 praveentiwari <praveentiwari>
53528 * source/Lib/TLibCommon/TComTrQuant.cpp,
53529 source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc:
53530 Vectorized code for partialButterfly32
53533 2013-04-19 Steve Borho <steve@borho.org>
53538 2013-04-19 Deepthi <Deepthi>
53540 * source/Lib/TLibCommon/TComTrQuant.cpp:
53541 Changing 16-bit hard coded memory copy in TComTrQuant::xT
53544 * source/Lib/TLibCommon/TComTrQuant.cpp:
53545 Changing 16-bit hard coded memory copy in TComTrQuant::xIT
53548 2013-04-19 Deepthi Devaki <Deepthi Devaki>
53550 * source/encoder/vec/macroblock.inc:
53551 Fix build issue in macroblock.inc with Mingw, Msys
53554 2013-04-19 Deepthi <Deepthi>
53556 * source/encoder/vec/macroblock.inc:
53560 2013-04-19 Deepthi Devaki <Deepthi Devaki>
53562 * source/encoder/vec/macroblock.inc, source/test/filterharness.cpp:
53563 Vertical Filter - vector primitive with 32 bit operations.
53566 * source/Lib/TLibCommon/TComInterpolationFilter.cpp,
53567 source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc:
53568 Filter C - primitive with isFirst, isLast and 32 bit sums.
53571 2013-04-19 Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
53573 * source/encoder/macroblock.cpp:
53574 Merged multicoreware/xhevc into default
53577 2013-04-19 Deepthi Devaki <Deepthi Devaki>
53579 * source/Lib/TLibCommon/TComInterpolationFilter.cpp,
53580 source/encoder/macroblock.cpp, source/encoder/primitives.h,
53581 source/encoder/vec/macroblock.inc, source/test/filterharness.cpp:
53582 Backed out changeset: c51b962d2155
53585 2013-04-18 Rajesh <Rajesh>
53587 * source/Lib/TLibCommon/TComInterpolationFilter.cpp,
53588 source/encoder/macroblock.cpp, source/encoder/primitives.h,
53589 source/encoder/vec/macroblock.inc, source/test/filterharness.cpp:
53590 Changed the array of Filter function pointers in primitives.h to
53591 have only Filter[V_8] and FIlter[V_4].
53594 2013-04-19 praveentiwari <praveentiwari>
53596 * source/test/mbdstharness.cpp, source/test/mbdstharness.h:
53597 Test code for partialButterfly32
53600 2013-04-18 Steve Borho <steve@borho.org>
53602 * source/CMakeLists.txt, source/encoder/CMakeLists.txt:
53603 cmake: move CPRIMITIVES variable creation into
53604 source/encoder/CMakeLists.txt
53607 * source/encoder/CMakeLists.txt:
53608 cmake: document the reason for the -march-i686 flag
53611 * source/encoder/threading.cpp, source/encoder/threading.h,
53612 source/encoder/threadpool.cpp:
53613 threading: cleanup of shutdown methods
53615 This fixes the deadlock we see once 1 in 1 million runs of the pool
53619 * source/encoder/primitives.cpp:
53620 primitives: remove PartitionFromSizes if primitives are disabled
53623 * source/encoder/primitives.cpp, source/x265main.cpp:
53624 primitives: report primitive compilation settings when setting up
53628 * source/encoder/primitives.cpp:
53629 primitives: fix GCC compile without primitives
53632 * source/test/testbench.cpp:
53633 testbench: allow to compile without primitives
53636 2013-04-18 Deepthi <Deepthi>
53638 * source/encoder/macroblock.cpp:
53639 reverting vertical filter to isLast and isFirst as template
53643 2013-04-17 Steve Borho <steve@borho.org>
53645 * source/encoder/threadpool.cpp:
53646 threadpool: ensure threads spin up before allowing any jobs to
53650 * source/test/testpool.cpp:
53651 testpool: output nothing to stdout unless hashes mismatch
53654 * source/encoder/threadpool.cpp, source/encoder/threadpool.h,
53655 source/test/testpool.cpp:
53656 threadpool: prevent threads seing partially destroyed job providers
53659 * source/encoder/x86/asm-primitives.cpp, source/test/mbdstharness.cpp:
53663 * source/encoder/vec/macroblock.inc:
53664 vec: fix GCC build of macroblock.inc
53667 * source/encoder/threadpool.cpp:
53668 threadpool: add a mechanism to determine safety of job provider
53672 * source/encoder/x86/CMakeLists.txt:
53673 cmake: unify assembly file list, use a common object file name
53676 2013-04-18 Steve Borho <steve@borho.org>
53678 * source/encoder/x86/CMakeLists.txt, source/encoder/x86/asm-
53679 primitives.cpp, source/encoder/x86/const-a.asm:
53680 asm: Fix integrations of pixel-a.asm.
53683 2013-04-18 Deepthi <Deepthi>
53685 * source/encoder/vec/macroblock.inc:
53689 2013-04-17 Deepthi <Deepthi>
53691 * source/encoder/vec/macroblock.inc:
53698 2013-04-17 Deepthi Devaki <Deepthi Devaki>
53700 * source/encoder/vec/macroblock.inc:
53701 Modified vertical_filter to pre-load coeff
53704 * source/encoder/vec/macroblock.inc, source/test/filterharness.cpp:
53705 Backed out changeset: b520a3ddbf36
53708 * source/encoder/vec/macroblock.inc, source/test/filterharness.cpp:
53709 Modified vertical_filter to pre-load coeff
53712 * source/encoder/vec/macroblock.inc:
53713 Backed out changeset: 0848ac28c541
53716 * source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc:
53717 Backed out changeset: fbbc5ec48951
53720 * source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc:
53721 Backed out changeset: bd537ec0cba7
53724 * source/encoder/vec/macroblock.inc:
53725 Backed out changeset: db0ac8504e1a
53728 * source/Lib/TLibCommon/TComInterpolationFilter.cpp:
53729 Modifed TComInterpolationFilter.cpp to call vertical-filter
53733 * source/test/filterharness.cpp:
53734 Modifed filterharness to test vertical filter.
53737 * source/encoder/vec/macroblock.inc:
53738 Modifed vertical-filter
53741 * source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc:
53742 Added vectorized vertical Filter
53745 * source/encoder/macroblock.cpp:
53746 Added filter_Vertical C-primitive with isFirst = isLAst = True
53750 * source/encoder/macroblock.cpp:
53751 Added filter_Vertical C-primitive with isFirst = isLAst = True
53755 2013-04-17 Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
53757 * build/RegressionTester.bat, source/Lib/config.cpp,
53758 source/Lib/config.h, source/encoder/macroblock.cpp:
53759 Merged multicoreware/xhevc into default
53762 2013-04-17 Deepthi Devaki <Deepthi Devaki>
53764 * source/encoder/macroblock.cpp:
53765 Backed out changeset: 0826f419aa6d
53768 2013-04-16 Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
53770 * Merged multicoreware/xhevc into default
53773 2013-04-15 Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
53775 * source/Lib/TLibCommon/TComInterpolationFilter.cpp,
53776 source/encoder/macroblock.cpp:
53777 Merged multicoreware/xhevc into default
53780 2013-04-15 Deepthi Devaki <Deepthi Devaki>
53782 * source/Lib/TLibCommon/TComInterpolationFilter.cpp:
53783 Backed out changeset: 0826f419aa6d
53786 2013-04-12 Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
53788 * source/encoder/macroblock.cpp:
53789 Merged multicoreware/xhevc into default
53792 2013-04-12 Rajesh <Rajesh>
53794 * source/Lib/TLibCommon/TComInterpolationFilter.cpp,
53795 source/encoder/macroblock.cpp:
53796 Added filter c primitive to macroblock.cpp. Changed
53797 TComInterpolationfilter.cpp to call filter primitives
53800 2013-03-26 deepthidevaki <deepthidevaki>
53802 * source/encoder/TComRdCost_SSE.cpp:
53803 Modified xCalcHADs4x4 for better optimization
53806 2013-04-17 Deepthi <Deepthi>
53808 * source/Lib/TLibCommon/TComTrQuant.cpp:
53809 MingW support for alignment.
53812 2013-04-17 praveentiwari <praveentiwari>
53814 * source/encoder/vec/macroblock.inc:
53815 partialButterfly16 vectorized code
53818 2013-04-17 praveen Tiwari <praveen@multicorewareinc.com>
53820 * source/encoder/vec/macroblock.inc:
53821 Merged multicoreware/xhevc into default
53824 2013-04-17 praveentiwari <praveentiwari>
53826 * source/encoder/vec/macroblock.inc:
53827 solving merge conflict
53830 * source/encoder/vec/macroblock.inc:
53834 * source/encoder/vec/macroblock.inc:
53835 solving merge conflict
53838 * source/encoder/vec/macroblock.inc:
53839 solving merge conflict
53842 * source/encoder/vec/macroblock.inc:
53843 Replaced Vec16s and Vec8i usage with Vec8s and Vec4i for Vec-
53847 2013-04-17 Deepthi <Deepthi>
53849 * source/Lib/TLibCommon/TComTrQuant.cpp,
53850 source/encoder/vec/macroblock.inc:
53851 Enforcing memory alignment in inversedst.
53854 * source/test/mbdstharness.cpp:
53855 Aligned mem in mbdst test harness
53858 * source/encoder/vec/macroblock.inc:
53859 Removing extraneous min,max - performance improvements by 20%
53862 * source/encoder/vec/macroblock.inc:
53866 2013-04-17 praveentiwari <praveentiwari>
53868 * source/test/butterflyharness.cpp, source/test/butterflyharness.h:
53869 removed butterflyharness files
53872 2013-04-17 praveen Tiwari <praveen@multicorewareinc.com>
53874 * Merged multicoreware/xhevc into default
53877 2013-04-17 praveentiwari <praveentiwari>
53879 * source/test/CMakeLists.txt, source/test/mbdstharness.cpp,
53880 source/test/mbdstharness.h, source/test/testbench.cpp:
53881 Moved the butterfly-harness into mbdst-harness
53884 2013-04-17 praveen Tiwari <praveen@multicorewareinc.com>
53886 * build/RegressionTester.bat, source/Lib/config.cpp,
53887 source/Lib/config.h, source/encoder/macroblock.cpp,
53888 source/test/CMakeLists.txt:
53889 Merged multicoreware/xhevc into default
53892 2013-04-16 praveen Tiwari <praveen@multicorewareinc.com>
53894 * source/encoder/macroblock.cpp:
53895 Merged multicoreware/xhevc into default
53898 2013-04-16 praveentiwari <praveentiwari>
53900 * source/test/CMakeLists.txt:
53901 Included butterflyharness.h and .cpp file in make file
53904 * source/test/butterflyharness.cpp:
53905 Increased the buffer size and used more meaningful name in Test Code
53906 of partialButterfly16
53909 2013-04-16 praveen Tiwari <praveen@multicorewareinc.com>
53911 * Merged multicoreware/xhevc into default
53914 2013-04-16 praveentiwari <praveentiwari>
53916 * source/Lib/TLibCommon/TComTrQuant.cpp,
53917 source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc:
53918 Added vectorized code for partialButterfly16 and removed unused
53922 * source/test/butterflyharness.cpp, source/test/butterflyharness.h,
53923 source/test/testbench.cpp:
53924 Test Suit for partialButterfly16
53927 2013-04-16 praveen Tiwari <praveen@multicorewareinc.com>
53929 * source/encoder/vec/macroblock.inc, source/test/testbench.cpp:
53930 Merged multicoreware/xhevc into default
53933 2013-04-16 praveentiwari <praveentiwari>
53935 * source/test/testbench.cpp:
53936 TestBench MergeConflict
53939 * source/test/testbench.cpp:
53943 * source/test/testbench.cpp:
53944 Solving merge conflict with TestBench.cpp
53947 * source/test/testbench.cpp:
53948 Solving merge conflict with Testbench.cpp
53951 2013-04-15 praveentiwari <praveentiwari>
53953 * source/Lib/TLibCommon/TComTrQuant.cpp,
53954 source/encoder/macroblock.cpp, source/encoder/vec/macroblock.inc:
53955 Added Primitives for partialButterfly32
53958 2013-04-15 praveen Tiwari <praveen@multicorewareinc.com>
53960 * source/test/testbench.cpp:
53961 Merged multicoreware/xhevc into default
53964 2013-04-15 praveentiwari <praveentiwari>
53966 * source/Lib/TLibCommon/TComTrQuant.cpp, source/encoder/butterfly.h,
53967 source/encoder/macroblock.cpp, source/encoder/primitives.h,
53968 source/encoder/vec/macroblock.inc, source/test/testbench.cpp:
53969 Fixed alignment problem with partialButterfly16
53972 * source/Lib/TLibCommon/TComTrQuant.cpp:
53973 Fixed alignment problem with ENABLE_PRIMITIVES switch for
53977 * source/Lib/TLibCommon/TComTrQuant.cpp,
53978 source/encoder/macroblock.cpp, source/encoder/primitives.h,
53979 source/encoder/vec/macroblock.inc, source/test/testbench.cpp:
53980 Added ENABLE_PRIMITIVES switch for partialButterfly16
53983 2013-04-15 praveen Tiwari <praveen@multicorewareinc.com>
53985 * Merged multicoreware/xhevc into default
53988 * source/encoder/macroblock.cpp, source/encoder/primitives.h,
53989 source/encoder/vec/macroblock.inc:
53990 Merged multicoreware/xhevc into default
53993 2013-04-12 praveen Tiwari <praveen@multicorewareinc.com>
53995 * source/encoder/macroblock.cpp, source/encoder/primitives.h,
53996 source/encoder/vec/macroblock.inc:
53997 Merged multicoreware/xhevc into default
54000 * source/encoder/macroblock.cpp:
54001 Merged multicoreware/xhevc into default
54004 2013-04-11 praveen Tiwari <praveen@multicorewareinc.com>
54006 * Merged multicoreware/xhevc into default
54009 * source/encoder/macroblock.cpp, source/encoder/primitives.h,
54010 source/encoder/vec/macroblock.inc:
54011 Merged multicoreware/xhevc into default
54014 2013-04-10 praveen Tiwari <praveen@multicorewareinc.com>
54016 * source/encoder/macroblock.cpp, source/encoder/primitives.h,
54017 source/encoder/vec/macroblock.inc:
54018 Merged multicoreware/xhevc into default
54021 2013-04-10 praveentiwari <praveentiwari>
54023 * source/encoder/macroblock.cpp, source/encoder/primitives.h,
54024 source/encoder/vec/macroblock.inc:
54025 resolving merge conflict
54028 * source/encoder/macroblock.cpp, source/encoder/primitives.h,
54029 source/encoder/vec/macroblock.inc:
54030 Added C and Vector primitives for partialButterfly16
54033 * source/encoder/butterfly.h:
54034 Created butterfly.h to read the value from the g_aiT array
54037 2013-04-17 Deepthi <Deepthi>
54047 2013-04-16 Steve Borho <steve@borho.org>
54049 * source/encoder/x86/CMakeLists.txt:
54050 cmake: figure out a workaround for YASM builds of assembly files
54054 * source/CMakeLists.txt, source/encoder/CMakeLists.txt,
54055 source/encoder/vec/CMakeLists.txt,
54056 source/encoder/x86/CMakeLists.txt:
54057 cmake: allow YASM to be used by MSVC, even though its currently
54060 Rename primitive projects so they sort together in VC
54063 * source/CMakeLists.txt, source/Lib/CMakeLists.txt,
54064 source/Lib/config.cpp, source/Lib/config.h, source/Lib/encoder.h,
54065 source/input/CMakeLists.txt, source/input/input.cpp,
54066 source/input/input.h, source/input/y4m.cpp, source/input/y4m.h,
54067 source/input/yuv.cpp, source/input/yuv.h, source/x265cfg.cpp,
54069 establish a new input file library, move CLI and command parsing to
54073 * source/test/CMakeLists.txt:
54074 cmake: disable the pool test by default, even when tests are enabled
54076 Now that its functional, not many people will want to build/run it
54079 * source/test/timer.cpp:
54080 timer: replace NULL with 0
54083 * source/test/pixelharness.cpp:
54084 pixelharness: fix MinGW build
54087 * source/test/timer.cpp:
54088 timer: use native Windows high resolution timer
54091 * source/test/filterharness.cpp, source/test/filterharness.h,
54092 source/test/mbdstharness.cpp, source/test/mbdstharness.h,
54093 source/test/pixelharness.cpp, source/test/pixelharness.h,
54094 source/test/testharness.h:
54095 dos to unix eoln for test harnesses
54098 * source/test/testpool.cpp:
54099 trim trailing white-space
54102 * source/test/testpool.cpp:
54103 testpool: verify below row is restartable
54105 output is now deterministic regardless of thread count
54108 * source/encoder/macroblock.cpp:
54109 Partial Backout changeset: 81101974408f
54112 * build/BuildEncoderApplications.bat:
54113 white-space cleanup in BuildEncoderApplications.bat
54116 * build/RegressionTester.bat:
54120 * source/test/pixelharness.cpp:
54121 testbench: add a POSIX friendly aligned malloc, pad to 32 bytes
54124 2013-04-16 Deepthi <Deepthi>
54126 * source/encoder/macroblock.cpp:
54127 Changing 32-bit multiplies to 16-bit multiplies for filter. (This
54128 may need more testing).
54131 * source/test/pixelharness.cpp:
54132 Aligned mallocs and frees in pixel buffers
54135 2013-04-16 nandaku2 <deepthi@multicorewareinc.com>
54137 * build/RegressionTester.bat:
54138 Merged in ggopu/gopu_xhevc (pull request #66)
54140 Redesigned the Regression test script - the script will be
54141 compatible for vc 9, vc 10 and vc 11
54144 2013-04-15 ggopu <ggopu>
54146 * build/BuildEncoderApplications.bat,
54147 build/CreateRegressionPackage.bat, build/RegressionTester.bat,
54149 Redesigned the Regression test script - the script will be
54150 compatible for vc 9, vc 10 and vc 11
54153 2013-04-16 sumalatha <sumalatha>
54155 * source/Lib/TLibVideoIO/TVideoIOY4m.cpp:
54156 Fixed issue in handling y4m files Issue: The reconstructed file(yuv)
54157 were all zeros Fix: In y4m handler, bitDepthShiftY, bitDepthShiftC
54158 were not updated properly in the open(), so changed the code to
54159 update it properly.
54162 2013-04-15 Steve Borho <steve@borho.org>
54164 * source/test/testbench.cpp:
54165 testbench: add the ability to easily bypass some tests
54168 * source/test/filterharness.cpp, source/test/testbench.cpp:
54169 testbench: GCC compilation fixes
54172 * source/test/CMakeLists.txt, source/test/filterharness.cpp,
54173 source/test/filterharness.h, source/test/mbdstharness.cpp,
54174 source/test/mbdstharness.h, source/test/pixelharness.cpp,
54175 source/test/pixelharness.h, source/test/testbench.cpp,
54176 source/test/testharness.h, source/test/timer.cpp:
54177 testbench: split into classes that know how to test each primitive
54181 * source/test/testbench.cpp:
54182 testbench: remove unused defines
54185 * source/test/testbench.cpp:
54186 testbench: don't forget to test the detected CPUID
54189 * source/test/testbench.cpp:
54190 less cargo-cult programming please
54192 checkasm used BENCH_ALIGNS to over-allocate the buffers then fix the
54193 alignment We're just over-allocating buffers
54196 * source/test/testbench.cpp:
54197 testbench: tune iterations to primitive type so test finishes in 60
54201 * source/test/testbench.cpp:
54202 testbench: fix bugs exposed by GCC warnings
54204 t_size was being used as a global by two different primitives, and
54205 then defined locally by one of them.
54208 * source/encoder/vec/pixel.inc:
54209 pixel: use aligned loads for 8 and 16 wide SAD 14% improvement
54211 Using this optimization before the other loop optimizations hid the
54212 benefits of reducing the pipeline stalls. 350->300ms for 16x16
54213 testbench (many) iterations
54216 * source/test/testbench.cpp:
54217 testbench: check primitive accuracy on all SIMD architectures
54219 Measure performance only once, with the most optimized primitives
54223 * source/encoder/vec/pixel.inc:
54224 pixel: optimize 4 pixel wide SAD
54226 Now 4x faster than the C version. We accumulate 8 values then
54227 discard half at the end.
54230 * source/encoder/vec/pixel.inc:
54231 pixel: further optimize multiples of 16 wide SAD
54234 * source/test/testbench.cpp:
54235 testbench: use a pseudo-random seed
54238 * source/encoder/vec/pixel.inc:
54239 pixel: use lower case var named
54242 * source/encoder/vec/pixel.inc:
54243 pixel: collect SAD sums in vectors, do horizontal_add_x only at end
54245 The gives at least a 2X speedup. Many SAD functions are now 10x
54246 faster than the C primitives.
54249 * source/VectorClass/vectori128.h, source/encoder/vec/macroblock.inc:
54250 inversedst: use blend8s to generate outputs 30% faster
54253 * source/encoder/vec/sse2.cpp, source/encoder/vec/sse3.cpp,
54254 source/encoder/vec/ssse3.cpp:
54255 vectorized: correct the INSTRSET values for SSE2, SSE3, and SSSE3
54258 2013-04-15 Mandar Gurav <mandar@multicorewareinc.com>
54260 * Merged multicoreware/xhevc into default
54263 2013-04-15 https://mandarmcw <https://mandarmcw@bitbucket.org/mandarmcw/xhevc_mandar1>
54265 * source/test/testbench.cpp:
54266 Used more meaningful variable names
54269 * source/test/testbench.cpp:
54270 Implemented init/clean function for filter testbench.
54273 * source/test/testbench.cpp:
54274 Print a more meaningful message - replace %d value with a meaningful
54275 string showing the filter configuration.
54278 2013-04-15 Deepthi <Deepthi>
54280 * source/encoder/vec/pixel.inc:
54281 Reverting aligned loads in pixel.inc - caused crash. This needs more
54285 2013-04-14 Steve Borho <steve@borho.org>
54287 * source/Lib/TLibCommon/TComInterpolationFilter.cpp:
54288 cleanup TComInterpolationFilter.cpp
54291 * source/Lib/TLibCommon/TComRdCost.cpp, source/encoder/vec/pixel.inc:
54292 change order of arguments to SATD primitives to match x264 assembly
54294 x264 assembly code wants fenc, fencstride, fref, frefstride. fenc is
54295 assumed to be aligned by the block size.
54298 * source/encoder/vec/pixel.inc, source/test/testbench.cpp:
54299 pixel: use aligned loads for piOrg (encoded block), enable sad_4
54301 vectorized sad_4 is now just a little bit faster than the C version.
54304 * source/Lib/TLibCommon/TComRdCost.cpp:
54305 change order of arguments to SAD primitives to match x264 assembly
54307 x264 assembly code wants fenc, fencstride, fref, frefstride. fenc is
54308 assumed to be aligned by the block size.
54311 * source/Lib/config.cpp:
54312 unfortunately the FrameN options are currently necessary
54315 * source/Lib/config.cpp:
54316 nuke the --FrameN command line options
54318 These make the command line help really annoying
54321 * source/encoder/vec/pixel.inc:
54322 pixel: add sad_4, but do not use it for now
54324 When memory alignment is considered, it may be faster than the C
54328 * source/encoder/vec/pixel.inc:
54329 pixel: add 16-wide vector SAD, instantiate all but 4x
54333 * source/encoder/pixel.cpp:
54334 pixel: add C SAD partitions sized 64
54337 2013-04-13 Steve Borho <steve@borho.org>
54339 * source/Lib/TLibCommon/TComInterpolationFilter.cpp,
54340 source/encoder/macroblock.cpp, source/encoder/primitives.h,
54341 source/encoder/vec/macroblock.inc, source/test/testbench.cpp:
54342 backout bitdepth argument changes, the HM does not operate this way
54345 The HM allows you to encode 8 bit pixels with HIGH_BIT_DEPTH
54346 enabled, so we cannot assume the bit depth is 10 just because
54347 HIGH_BIT_DEPTH is enabled.
54349 However, the test bench should always test 10 bit pixels in that
54353 2013-04-13 https://mandarmcw <https://mandarmcw@bitbucket.org/mandarmcw/xhevc_mandar1>
54355 * source/Lib/TLibCommon/TComInterpolationFilter.cpp,
54356 source/encoder/macroblock.cpp, source/encoder/macroblock.h,
54357 source/encoder/primitives.h, source/encoder/vec/macroblock.inc,
54358 source/test/testbench.cpp, source/test/unittest.h:
54359 Updated the source as per the comments from Steve.
54360 * Unit test for filter improved.
54361 * bitDepth taken as a MACRO
54362 * Moved #define to respective cpp files
54363 * Remove unnecessary lines
54364 * Names added to copyright headers
54367 2013-04-13 Mandar Gurav <mandar@multicorewareinc.com>
54369 * Merged multicoreware/xhevc into default
54372 2013-04-12 https://mandarmcw <https://mandarmcw@bitbucket.org/mandarmcw/xhevc_mandar1>
54374 * source/Lib/TLibCommon/TComInterpolationFilter.cpp,
54375 source/encoder/macroblock.h, source/encoder/vec/macroblock.inc,
54376 source/test/testbench.cpp, source/test/unittest.h:
54377 vectorization of filter<8,0,...> stage 1 Added testbench support
54380 2013-04-13 Deepthi <Deepthi>
54382 * source/encoder/macroblock.cpp:
54383 Removing implicit-type conversion warnings.
54386 2013-04-12 Steve Borho <steve@borho.org>
54388 * source/encoder/macroblock.cpp:
54389 macroblock: remove pixel typecasts, since block is now a Short*
54392 2013-04-13 ShinYee Chung <shinyee@multicorewareinc.com>
54394 * source/encoder/threadpool.cpp:
54395 threadpool: Fix incorrect memory deallocation.
54397 The in-place buffer is an array.
54400 * source/encoder/threadpool.cpp:
54401 threadpool: Fix incorrect use of &= operator.
54404 2013-04-12 Steve Borho <steve@borho.org>
54406 * source/Lib/TLibCommon/TComRdCost.cpp:
54410 * source/encoder/threadpool.cpp:
54411 threadpool: fix VC9 compile
54414 2013-04-12 Deepthi <Deepthi>
54416 * source/Lib/TLibCommon/TComRdCost.cpp:
54417 Replacing primitive call in xHADs8 and xHADs
54420 * source/Lib/TLibCommon/TComRdCost.cpp:
54421 Replacing primitive call in xHads4
54424 * source/Lib/TLibCommon/TComRdCost.cpp:
54425 Fixing final scaling in sad primitives; disabling satd primitives.
54428 2013-04-12 Steve Borho <steve@borho.org>
54430 * source/Lib/TLibCommon/TComTrQuant.cpp:
54434 2013-04-12 Deepthi <Deepthi>
54439 * source/Lib/TLibCommon/TComTrQuant.cpp:
54440 Replacing original inversedst with primitives
54443 * source/encoder/macroblock.cpp, source/encoder/primitives.h,
54444 source/encoder/vec/macroblock.inc, source/test/testbench.cpp:
54445 Changing inversedst primitives parameters from pixel to short
54448 2013-04-11 Steve Borho <steve@borho.org>
54450 * source/test/testpool.cpp:
54451 testpool: use fflush() on stdout
54454 * source/encoder/threadpool.cpp:
54455 threadpool: wait for threads to quiesce before shutting them down
54458 * source/test/testpool.cpp:
54459 testpool: ensure MD5Frame is freed before pool
54462 * source/encoder/threading.cpp, source/encoder/threading.h:
54463 threading: build fixes for linux, more error checking
54466 * source/test/testpool.cpp:
54467 testpool: add indication of thread pool size
54470 * source/encoder/threading.h, source/encoder/threadpool.cpp,
54471 source/test/testpool.cpp:
54472 threadpool: use counting semaphore on POSIX, single wake event, lock
54475 To avoid race hazards at the end of each row, a row deciding to quit
54476 because it is block needs to block out the row above it that might
54477 be trying to exit. The is only ever between two threads, so
54478 hopefully it is low-contention.
54480 This patch also goes back to a blocking wait when idle, to save
54483 Note: the test does not currently pass. there is still a data hazard
54487 2013-04-11 Deepthi <Deepthi>
54489 * source/test/testbench.cpp:
54490 Increase iteration count for better measurements
54493 2013-04-11 ShinYee Chung <shinyee@multicorewareinc.com>
54495 * source/encoder/macroblock.cpp:
54496 macroblock: Fix the path in an #include.
54498 Use / instead of \ to remain portable to Windows and Linux.
54501 * source/Lib/TLibVideoIO/TVideoIOY4m.cpp:
54502 y4m: Fix missing math header include for function ceil().
54504 We probably also need to add linking to the math library.
54507 2013-04-11 nandaku2 <deepthi@multicorewareinc.com>
54509 * Merged in ggopu/gopu_x265 (pull request #57)
54511 Fixed the issue for inversedst and malloc issue
54514 2013-04-11 ggopu <ggopu>
54516 * source/test/testbench.cpp:
54517 Fixed the issue for inversedst and malloc issue
54520 2013-04-11 sumalatha <sumalatha>
54522 * source/Lib/encoder.cpp:
54523 The code was crashing when the reconstructed filename is not given
54524 in the cfg file. Fixed it in this version. The fix was like in the
54525 xCreateLib(), the reconstructed file is opened based on the flag
54526 "m_pchReconFile"(this flag is set when the recon filename is given
54527 in cfg), but in xDestroyLib(), the recon file is closed always, so
54528 have included the check like close the file only when the
54529 m_pchReconFile is set.
54532 2013-04-11 Deepthi <Deepthi>
54534 * source/Lib/TLibCommon/TComInterpolationFilter.cpp,
54535 source/encoder/macroblock.cpp, source/encoder/primitives.h,
54536 source/encoder/vec/macroblock.inc:
54537 Filter coefficients should always be const short* (irrespective of
54541 * source/test/testbench.cpp:
54542 Comments for direction
54545 2013-04-10 nandaku2 <deepthi@multicorewareinc.com>
54547 * Merged in sumalatha/xhevc_sumalatha (pull request #54)
54549 support for y4m files(skipping the frame headers at each frame)
54552 2013-04-10 sumalatha <sumalatha>
54554 * source/Lib/TLibVideoIO/TVideoIO.h,
54555 source/Lib/TLibVideoIO/TVideoIOY4m.cpp,
54556 source/Lib/TLibVideoIO/TVideoIOY4m.h,
54557 source/Lib/TLibVideoIO/TVideoIOYuv.cpp,
54558 source/Lib/TLibVideoIO/TVideoIOYuv.h, source/Lib/config.cpp,
54559 source/Lib/config.h, source/Lib/encoder.cpp, source/Lib/encoder.h:
54560 added support for y4m files (like skipping the plain-text frame
54561 headers present in each frame)
54564 2013-04-10 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
54566 * source/Lib/TLibCommon/TComRdCost.cpp,
54567 source/encoder/vec/macroblock.inc:
54568 Merged multicoreware/xhevc into default
54571 * source/encoder/vec/macroblock.inc:
54572 Merged multicoreware/xhevc into default
54575 2013-04-09 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
54577 * Merged multicoreware/xhevc into default
54580 2013-04-08 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
54582 * source/encoder/vec/macroblock.inc, source/encoder/vec/pixel.inc,
54583 source/encoder/vec/vecprimitives.inc:
54584 Merged multicoreware/xhevc into default
54587 2013-04-08 sumalatha <sumalatha>
54589 * source/encoder/TComRdCost_SSE.cpp:
54590 Deleted this file to remove merge conflict
54593 2013-04-05 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
54595 * source/Lib/TLibCommon/TComRdCost.cpp, source/encoder/vec/pixel.inc:
54596 Merged multicoreware/xhevc into default
54599 2013-04-04 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
54601 * source/encoder/vec/pixel.inc, source/test/TestBench.cpp,
54602 source/test/UnitTest.cpp, source/test/UnitTest.h:
54603 Merged multicoreware/xhevc into default
54606 * source/Lib/TLibCommon/TComRdCost.cpp,
54607 source/VectorClass/dispatch_example.cpp,
54608 source/encoder/TComRdCost_SSE.cpp,
54609 source/encoder/vec/macroblock.inc, source/encoder/vec/pixel.inc,
54610 source/encoder/vec/vecprimitives.inc:
54611 Merged multicoreware/xhevc into default
54614 2013-04-04 sumalatha <sumalatha>
54616 * source/Lib/TLibCommon/TComRdCost.cpp,
54617 source/encoder/TComRdCost_SSE.cpp,
54618 source/encoder/vec/vecprimitives.inc:
54619 Backed out changeset: 914f5238a7df
54622 * source/encoder/TComRdCost_SSE.cpp:
54623 Backed out changeset: 850f67a0d4be
54626 * source/Lib/TLibCommon/TComRdCost.cpp:
54627 Backed out changeset: 11f514fc3415
54630 2013-04-03 Steve Borho <steve@borho.org>
54632 * source/Lib/TLibCommon/TComRdCost.cpp:
54633 made changes to remove merge conflicts
54636 * source/encoder/TComRdCost_SSE.cpp:
54637 made changes to remove the merge conflict
54640 * source/Lib/TLibCommon/TComRdCost.cpp,
54641 source/encoder/TComRdCost_SSE.cpp,
54642 source/encoder/vec/vecprimitives.inc:
54643 moved the "xCalcHADs8x8()" from TComRdCost_SSE.cpp to
54647 2013-04-10 nandaku2 <deepthi@multicorewareinc.com>
54649 * Merged in ggopu/gopu_x265 (pull request #55)
54651 Created the New script for Regression testing
54654 2013-04-10 ggopu <ggopu>
54656 * build/RegressionTester.bat, build/config.txt:
54657 Created the New script for Regression testing
54660 2013-04-10 Deepthi <Deepthi>
54662 * source/test/testbench.cpp:
54666 * source/test/testbench.cpp:
54667 Cleanup of cycle count measurement
54670 * source/test/testbench.cpp:
54671 Disable cycle count. Separate mbdst testing into init_buffer,
54672 checkprimitive and clearbuffer.
54675 * source/test/testbench.cpp:
54676 Buffer handling separated. pixelcmp buffers stay global for now.
54679 * source/test/testbench.cpp:
54680 More global vars removed
54683 * source/test/testbench.cpp:
54684 Removing unnecessary global variables
54687 * source/test/testbench.cpp:
54688 Replace delete with free.
54691 2013-04-10 Deepthi Devaki <Deepthi Devaki>
54693 * source/Lib/TLibCommon/TComInterpolationFilter.cpp,
54694 source/encoder/macroblock.cpp, source/encoder/primitives.h,
54695 source/encoder/vec/macroblock.inc:
54696 Used array of function pointers for filter primitives. Added C
54697 primitives for filter_nonvertical.
54700 2013-04-10 praveen Tiwari <praveen@multicorewareinc.com>
54702 * Merged multicoreware/xhevc into default
54705 2013-04-10 praveentiwari <praveentiwari>
54707 * source/encoder/macroblock.cpp:
54708 Fixed fastInverseDst function in encoder primitive file by adding
54712 * source/Lib/TLibCommon/TComTrQuant.cpp:
54713 Added missing line in fastInverseDst function
54716 * source/Lib/TLibCommon/TComTrQuant.cpp:
54717 Removed last calculation in fastInverseDst function
54720 2013-04-10 Steve Borho <steve@borho.org>
54722 * source/test/testbench.cpp:
54723 testbench: give an indication of pixel size in test bench
54726 * source/Lib/TLibCommon/TComRdCost.cpp:
54727 TComRdCost: fix handling of iSubShift
54729 When iSubShift was 1, the strides were already being doubled. We
54730 just needed to halve the rows and run the matching primitive. Also,
54731 the subpel functions were checking for iStep == 0, but xCalcHADs8x8
54732 was asserting the value to be 1. So it was never calling our satd
54733 performance primitives.
54736 2013-04-09 Deepthi <Deepthi>
54738 * source/test/testbench.cpp:
54739 Fix memory leak in testbench
54742 2013-04-09 Steve Borho <steve@borho.org>
54744 * source/test/testbench.cpp:
54745 testbench: fix warnings and errors when compiled with GCC
54748 * source/Lib/TLibCommon/CommonDef.h,
54749 source/VectorClass/instrset_detect.cpp:
54750 more Linux Intel compiler fixes
54753 * source/Lib/TLibCommon/CommonDef.h:
54754 Prevent multiple NVM_COMPILEDBY definitions
54757 * source/CMakeLists.txt:
54758 cmake: use CXX env var, which is not a full path
54761 * source/CMakeLists.txt:
54762 cmake: treat Intel C++ compiler on Linux as gcc
54765 * source/encoder/vec/macroblock.inc, source/test/testbench.cpp:
54769 2013-04-09 Deepthi <Deepthi>
54771 * source/test/testbench.cpp:
54775 * source/test/testbench.cpp:
54776 Removing redundant function
54779 * source/test/testbench.cpp:
54780 Clearer error message
54783 * source/test/testbench.cpp:
54784 Renaming check_*_primitive functions.
54787 2013-04-09 ggopu <ggopu>
54789 * source/test/testbench.cpp:
54790 Added IntraDct check
54793 2013-04-09 https://mandarmcw <https://mandarmcw@bitbucket.org/mandarmcw/xhevc_mandar1>
54795 * source/Lib/TLibCommon/TComInterpolationFilter.cpp,
54796 source/encoder/macroblock.cpp, source/encoder/primitives.h,
54797 source/encoder/vec/macroblock.inc:
54798 Modified Filter<8.0,..> functions as per the comments
54801 2013-04-08 Steve Borho <steve@borho.org>
54803 * source/test/testbench.cpp:
54804 testbench: call Setup_Assembly_Primitives() to setup assembly
54808 * source/test/testbench.cpp:
54809 testbench: fix a compiler warning, add notice of which primitives
54813 * source/test/testbench.cpp:
54814 testbench: use single pixelcmp test function, tighten up output
54818 * source/cmake/FindHg.cmake:
54819 cmake: backout FindHg.cmake, it only causes further problems
54822 * source/cmake/FindHg.cmake, source/cmake/version.cmake:
54823 cmake: add FindHg.cmake to our repo, only very recent cmake versions
54826 and fix case-sensitivity issue
54829 2013-04-08 ggopu <ggopu>
54831 * source/test/testbench.cpp:
54832 Included comment to specify the source of code snippet
54835 * source/test/testbench.cpp:
54836 Implemented the Cycle testing
54839 2013-04-07 Steve Borho <steve@borho.org>
54841 * source/CMakeLists.txt:
54842 cmake: disable ASM compilation for non-GCC compilers until a
54843 workaround is found
54846 * source/cmake/CMakeASM_YASMInformation.cmake:
54847 cmake: use ASM_DIALECT consistently in
54848 CMakeASM_YASMInformation.cmake
54851 * build/nmake/make-solutions.bat:
54852 cmake: add a VC11 nmake batch file, to test ASM builds
54855 * source/test/testbench.cpp:
54856 testbench: fix a couple of bugs
54859 * source/CMakeLists.txt, source/encoder/CMakeLists.txt:
54860 cmake: rename primitive variables so they are listed together in
54864 * source/cmake/version.cmake:
54865 cmake: add version detection support for hg archives
54868 * source/CMakeLists.txt, source/cmake/version.cmake:
54869 cmake: move version detection into cmake/version.cmake
54872 * source/encoder/CMakeLists.txt, source/encoder/primitives.cpp,
54873 source/encoder/primitives.h, source/encoder/vec/CMakeLists.txt,
54874 source/encoder/vec/vec-primitives.cpp,
54875 source/encoder/x86/CMakeLists.txt, source/encoder/x86/asm-
54876 primitives.cpp, source/test/testbench.cpp:
54877 Move primitive setup functions closer to their implementations
54880 * source/cmake/CMakeASM_YASMInformation.cmake,
54881 source/cmake/CMakeDetermineASM_YASMCompiler.cmake,
54882 source/cmake/CMakeTestASM_YASMCompiler.cmake:
54883 cmake: add yasm compilation ability
54886 * source/CMakeLists.txt, source/cmake/FindYasm.cmake:
54887 cmake: introduce a cmake/ folder, add a package to find a yasm
54891 * source/encoder/x86/util.h:
54892 remove x264's utils.h, it has inline assembly we cannot use
54894 And the functions implemented are not obviously applicable to HEVC
54897 2013-04-06 Steve Borho <steve@borho.org>
54899 * source/CMakeLists.txt, source/encoder/CMakeLists.txt,
54900 source/encoder/primitives.cpp, source/encoder/x86/CMakeLists.txt,
54901 source/encoder/x86/pixel-32.asm, source/encoder/x86/pixel-a.asm,
54902 source/encoder/x86/pixel.h, source/encoder/x86/util.h,
54903 source/encoder/x86/x86inc.asm, source/encoder/x86/x86util.asm,
54904 source/test/CMakeLists.txt, source/test/testbench.cpp,
54905 source/test/unittest.cpp:
54906 cmake: begin to add plumbing for assembly language primitives
54908 This changeset makes the vectorized primitives a build option,
54909 seperate from the C primitives and ASM primitives.
54912 * source/CMakeLists.txt:
54913 cmake: improve version detection logic from revision control
54916 * source/CMakeLists.txt:
54917 cmake: multithreaded make does not appear to work; gmake users
54921 2013-04-05 Steve Borho <steve@borho.org>
54923 * source/encoder/CMakeLists.txt, source/encoder/TComRdCost_SSE.cpp:
54924 remove TComRdCost_SSE.cpp
54927 * source/encoder/CMakeLists.txt:
54928 cmake: show the GPL license file in Visual Studio in the x265
54932 * source/test/unittest.cpp:
54933 unittest: fix pixel variable shadowing type name from primitives.h
54935 Only broke the GCC build
54938 * source/CMakeLists.txt, source/compat/msvc/getopt.c,
54939 source/compat/msvc/getopt.h:
54940 add GNU getopt library from glibc for argument parsing
54942 Will replace all of TAppCommon and allow us to use getopt() style
54943 argument parsing on all platforms.
54946 * source/CMakeLists.txt, source/x265main.cpp:
54947 cmake: compile a version number from Mercurial into x265-cli.exe
54949 The version number is only updated when cmake is run, so if you care
54950 about the version number you should trigger a cmake update by
54951 touching a cmake file (or building from a clean repository)
54954 * source/encoder/macroblock.cpp:
54955 comment cleanups in macroblock.cpp
54958 * source/encoder/vec/pixel.inc:
54959 pixel: add 16x16 and 32x32 vectorized SAD functions
54962 2013-04-05 Deepthi Devaki <Deepthi Devaki>
54967 * source/encoder/vec/pixel.inc:
54968 Uncrustified pixel.inc after changing sa8d_8x8
54971 * source/encoder/vec/pixel.inc:
54972 Backed out changeset: dc9cf177f0d9
54975 * source/encoder/vec/pixel.inc:
54976 Uncrustified pixel.inc after changing sa8d_8x8
54979 2013-04-05 Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
54981 * Merged multicoreware/xhevc into default
54984 2013-04-05 Deepthi Devaki <Deepthi Devaki>
54986 * source/encoder/vec/pixel.inc:
54987 Fixed overflow issue when 10 bit pixels are used in vec-sa8d_8x8
54990 * source/encoder/vec/pixel.inc:
54991 Backed out changeset: b39276d2ef19
54994 * source/encoder/vec/pixel.inc:
54995 Added cases for high bit depth = 1 and 0 in vec-sa8d_8x8 in
54999 2013-04-05 Deepthi <Deepthi>
55001 * source/encoder/primitives.cpp:
55002 Disabling 64-size primitives temporarily.
55005 * source/encoder/primitives.cpp:
55006 Fixing the partition array for 64.
55009 * source/encoder/primitives.cpp:
55010 Rollback: to 8x8 matrix
55013 * source/encoder/primitives.cpp:
55014 Rollback: 64 expands the array heavily.
55017 * source/encoder/primitives.cpp:
55018 Width and height permitted to be > 32
55024 * source/encoder/primitives.cpp:
55025 Expanding the psize static array to 64.
55028 * source/encoder/primitives.h:
55029 Expanding Partitions enum
55035 * source/Lib/TLibCommon/TComPrediction.cpp:
55036 Temporary array to match Pel
55039 * source/Lib/TLibCommon/TComInterpolationFilter.cpp:
55040 Fix Error - matching function declaration and definition
55043 2013-04-05 Steve Borho <steve@borho.org>
55045 * source/encoder/macroblock.cpp:
55046 fix implicit integer type conversions in macroblock.cpp
55049 * source/x265main.cpp:
55050 fix build error in x265main.cpp
55053 2013-04-04 Steve Borho <steve@borho.org>
55055 * source/encoder/primitives.cpp, source/x265main.cpp:
55056 rewrite main(), add code that describes detected CPU type and other
55060 2013-04-05 praveentiwari <praveentiwari>
55062 * source/Lib/TLibCommon/TComTrQuant.cpp,
55063 source/Lib/TLibCommon/TComTrQuant.h,
55064 source/Lib/TLibCommon/TypeDef.h, source/encoder/macroblock.cpp,
55065 source/encoder/primitives.cpp, source/encoder/primitives.h,
55066 source/encoder/vec/macroblock.inc:
55067 Cleaned up the files checked in for modified encoder performance
55068 primitive for fastinversedst.
55071 * source/encoder/TComTrQuant_SSE.cpp:
55072 Removed as it is no longer needed.
55075 2013-04-04 praveen Tiwari <praveen@multicorewareinc.com>
55077 * Merged multicoreware/xhevc into default
55080 * Merged multicoreware/xhevc into default
55083 * source/encoder/primitives.h, source/encoder/vec/pixel.inc:
55084 Merged multicoreware/xhevc into default
55087 2013-04-04 praveentiwari <praveentiwari>
55089 * source/encoder/macroblock.cpp, source/encoder/primitives.h,
55090 source/encoder/vec/macroblock.inc:
55091 Modified encoder performance primitive for fastinversedst
55094 2013-04-04 praveen Tiwari <praveen@multicorewareinc.com>
55096 * Merged multicoreware/xhevc into default
55099 * source/encoder/vec/macroblock.inc, source/encoder/vec/pixel.inc,
55100 source/encoder/vec/vecprimitives.inc, source/test/TestBench.cpp,
55101 source/test/UnitTest.cpp, source/test/UnitTest.h:
55102 Merged multicoreware/xhevc into default
55105 2013-04-04 praveentiwari <praveentiwari>
55107 * source/encoder/vec/pixel.inc:
55108 resolving merge conflict with pixel.inc
55111 * source/Lib/TLibCommon/TypeDef.h, source/encoder/vec/macroblock.inc,
55112 source/encoder/vec/pixel.inc:
55113 resolving merge conflicts with pixel.inc and macroblock.inc
55116 * source/encoder/vec/vecprimitives.inc:
55117 second attempt to resolve merge conflict
55120 * source/encoder/vec/vecprimitives.inc:
55121 solving merge conflict with vecprimitives.inc
55124 * source/encoder/macroblock.cpp, source/encoder/primitives.cpp,
55125 source/encoder/primitives.h, source/encoder/vec/vecprimitives.inc:
55126 Encoder Performance Primitive fastInverseDst
55129 * source/encoder/primitives.h:
55130 Added a cdecl funcdef to primitives.h and function pointer to
55131 EncoderPrimitives structure
55134 2013-04-03 praveen Tiwari <praveen@multicorewareinc.com>
55136 * source/Lib/TLibCommon/TComTrQuant.cpp,
55137 source/Lib/TLibCommon/TComTrQuant.h,
55138 source/VectorClass/dispatch_example.cpp,
55139 source/encoder/CMakeLists.txt:
55140 Merged multicoreware/xhevc into default
55143 2013-04-04 praveentiwari <praveentiwari>
55145 * source/Lib/TLibCommon/TComTrQuant.cpp:
55146 Solving merge conflict with TComTrQuant.cpp file
55149 2013-04-03 praveen Tiwari <praveen@multicorewareinc.com>
55151 * source/encoder/CMakeLists.txt:
55152 Merged multicoreware/xhevc into default
55155 2013-04-03 praveentiwari <praveentiwari>
55157 * source/encoder/CMakeLists.txt:
55158 Second attempt to solve merge conflict
55161 * source/encoder/CMakeLists.txt:
55162 solving merge conflict with CMakeLists.txt
55165 * cfg/per-sequence/BasketballPass.cfg:
55166 Backed out changeset: 1801be94c033
55169 * source/encoder/CMakeLists.txt:
55173 * cfg/per-sequence/BasketballPass.cfg:
55177 2013-04-02 praveentiwari <praveentiwari>
55179 * source/Lib/TLibCommon/TComTrQuant.h, source/encoder/CMakeLists.txt:
55180 fastInverseDst with declarartion in TComTrQuant.h file
55183 * source/encoder/CMakeLists.txt:
55184 Solving merge conflict with CMakeLists.txt
55187 2013-04-01 praveen Tiwari <praveen@multicorewareinc.com>
55189 * source/encoder/CMakeLists.txt:
55190 Merged multicoreware/xhevc into default
55193 2013-03-31 praveen Tiwari <praveen@multicorewareinc.com>
55195 * source/encoder/CMakeLists.txt, source/x265cfg.cpp, source/x265cfg.h,
55196 source/x265top.cpp, source/x265top.h:
55197 Merged multicoreware/xhevc into default
55200 2013-03-28 praveen Tiwari <praveen@multicorewareinc.com>
55202 * source/encoder/CMakeLists.txt:
55203 Merged multicoreware/xhevc into default
55206 2013-03-28 praveentiwari <praveentiwari>
55208 * source/encoder/CMakeLists.txt:
55209 Trying to resolve conflict during merge
55212 2013-03-27 praveentiwari <praveentiwari>
55214 * source/Lib/TLibCommon/TComTrQuant.cpp,
55215 source/Lib/TLibCommon/TComTrQuant.h,
55216 source/encoder/TComTrQuant_SSE.cpp:
55217 Vectorized fastInverseDst with added fastInverse decleration and
55218 ENABLE_VECTOR macro
55221 * source/Lib/TLibCommon/TComTrQuant.cpp,
55222 source/encoder/TComTrQuant_SSE.cpp:
55223 Backed out changeset: 587fa81d140b
55226 * source/Lib/TLibCommon/TComTrQuant.cpp,
55227 source/encoder/TComTrQuant_SSE.cpp:
55228 Replaced Clip3 and Inhanced techniqueVectorized
55229 TComTrQuant::fastInverseDst with added ENABLE_VECTOR macro
55232 2013-03-27 praveen Tiwari <praveen@multicorewareinc.com>
55234 * Merged multicoreware/xhevc into default
55237 2013-03-26 praveentiwari <praveentiwari>
55239 * source/encoder/TComTrQuant_SSE.cpp:
55240 Replaced Clip3 and Inhanced technique to load data in vectorization
55241 of TComTrQuant::fastInverseDst
55244 2013-03-26 praveen Tiwari <praveen@multicorewareinc.com>
55246 * source/encoder/CMakeLists.txt:
55247 Merged multicoreware/xhevc into default
55250 2013-03-25 praveentiwari <praveentiwari>
55252 * source/encoder/TComTrQuant_SSE.cpp:
55253 Vectorized code for TComTrQuant::fastInverseDst
55256 * source/encoder/CMakeLists.txt:
55257 Modified CMakeLists.txt for TComTrQuant_SSE.cpp
55260 * source/Lib/TLibCommon/TComTrQuant.cpp,
55261 source/encoder/CMakeLists.txt:
55262 Backed out changeset: aa84b30cd9ae
55265 * source/Lib/TLibCommon/TComTrQuant.cpp,
55266 source/encoder/CMakeLists.txt:
55267 Modified CMakeLists.txt for TComTrQuant.cpp
55270 * source/Lib/TLibCommon/TComTrQuant.cpp:
55271 First attempt to vectorize
55274 2013-04-04 Steve Borho <steve@borho.org>
55276 * source/test/testbench.cpp:
55277 testbench: add remaining pixel functions
55280 * source/test/testbench.cpp:
55281 testbench: use a for() loop, rename numofprim to curpar
55284 * source/test/testbench.cpp:
55285 testbench: combine loops
55288 * source/test/testbench.cpp, source/test/unittest.cpp,
55289 source/test/unittest.h:
55290 testbench: remove redundant partition enum, clean unittest.h
55292 Headers should #include only the minimal number of headers required
55293 to ensure their own data types are defined. They should also not use
55294 "using namespace", only CPP files should use those statements.
55297 * source/test/testbench.cpp:
55298 testbench: more flexible argument parsing
55301 * source/test/testbench.cpp:
55302 testbench: remove unused do_bench
55305 * source/test/testbench.cpp:
55306 testbench: allow cpuid to be user-provided
55309 * source/test/testbench.cpp:
55310 pass primitive function tables to validate to the check* functions
55313 * source/test/testbench.cpp:
55314 testbench: fix typos in comments, remove unused global var
55317 * source/Lib/TLibCommon/TComRdCost.cpp:
55318 xCalcHADs8x8 should call sa8d_8x8, remove satd calls from similar
55321 xCalcHADs16x4() and xCalcHADs4x16() would both need sa8d primitives
55324 * source/encoder/pixel.cpp, source/encoder/primitives.h,
55325 source/encoder/vec/pixel.inc:
55326 primitives: add sa8d_8x8 and sa8d_16x16 primitives
55328 I copied C references for those functions from x264, and renamed
55329 satd_8x8 in pixel.inc to sa8d_8x8 since that is what it implements.
55332 2013-04-04 ggopu <ggopu>
55334 * source/test/testbench.cpp, source/test/unittest.cpp,
55335 source/test/unittest.h:
55336 Added header and removed unwanted variable and comments
55339 * doc/UnitTestUsage.txt, source/test/testbench.cpp:
55340 Added Test bench usage Doc and Included the Single primitive check
55341 and Fixed all the Warning in test bench
55344 2013-04-04 Gopu G <gopu@multicorewareinc.com>
55346 * source/test/CMakeLists.txt:
55347 Merged multicoreware/xhevc into default
55350 2013-04-04 ggopu <ggopu>
55352 * source/test/CMakeLists.txt:
55353 solved conflict issue
55356 * source/test/CMakeLists.txt:
55357 Disabled warnings for testbench
55360 * doc/UnitTestUsage.txt:
55361 Added Doc for UnitTest Usage
55364 * source/test/testbench.cpp:
55365 Added Single primitive check
55368 2013-04-04 Steve Borho <steve@borho.org>
55370 * source/encoder/vec/pixel.inc:
55371 uncrustify: fix eoln damage in pixel.inc
55374 2013-04-04 Deepthi <Deepthi>
55379 * source/encoder/vec/pixel.inc:
55380 Removing shadows/redeclarations
55383 2013-04-04 Steve Borho <steve@borho.org>
55385 * source/test/CMakeLists.txt:
55386 cmake: rename thread pool test to PoolTest
55389 * source/test/CMakeLists.txt:
55390 cmake: fix case of test bench filenames
55393 2013-04-04 nandaku2 <deepthi@multicorewareinc.com>
55395 * source/test/unittest.CPP:
55396 Merged in ggopu/gopu_x265 (pull request #33)
55398 file name extension issue fixed
55401 2013-04-04 ggopu <ggopu>
55403 * source/test/unittest.CPP, source/test/unittest.cpp:
55404 File name Extension issue fixed
55407 2013-04-04 nandaku2 <deepthi@multicorewareinc.com>
55409 * Merged in deepthidevaki/xhevc_deepthid (pull request #32)
55411 Added vectorized satd_8x8 to pixel.inc
55414 2013-04-04 Deepthi Devaki <Deepthi Devaki>
55416 * source/encoder/vec/pixel.inc:
55417 Added vectorized satd_8x8 to pixel.inc
55420 2013-04-04 nandaku2 <deepthi@multicorewareinc.com>
55422 * source/test/TestBench.cpp, source/test/UnitTest.cpp,
55423 source/test/UnitTest.h:
55424 Merged in ggopu/gopu_x265 (pull request #31)
55426 changed the file name conversion and added comparision for c and
55430 2013-04-04 ggopu <ggopu>
55432 * source/test/TestBench.cpp, source/test/UnitTest.cpp,
55433 source/test/UnitTest.h, source/test/testbench.cpp,
55434 source/test/unittest.CPP, source/test/unittest.h:
55435 Changed file name conversion and included the c and vector primitive
55439 2013-04-03 Gopu G <gopu@multicorewareinc.com>
55441 * source/VectorClass/dispatch_example.cpp, source/test/TestBench.cpp:
55442 Merged multicoreware/xhevc into default
55445 2013-04-03 ggopu <ggopu>
55447 * source/test/TestBench.cpp:
55451 * source/test/TestBench.cpp:
55452 resolved conflict error
55455 * source/test/TestBench.cpp:
55456 solved conflict error
55459 * source/test/TestBench.cpp:
55460 resolved conflict error
55463 2013-04-03 Gopu G <gopu@multicorewareinc.com>
55465 * Merged multicoreware/xhevc into default
55468 2013-04-02 Gopu G <gopu@multicorewareinc.com>
55470 * Merged multicoreware/xhevc into default
55473 2013-04-02 ggopu <ggopu>
55475 * source/test/TestBench.cpp:
55476 Enhanced test bench for satd*x*
55479 2013-04-01 Gopu G <gopu@multicorewareinc.com>
55481 * source/test/TestBench.cpp, source/x265cfg.cpp, source/x265cfg.h,
55482 source/x265top.cpp, source/x265top.h:
55483 Merged multicoreware/xhevc into default
55486 2013-04-01 ggopu <ggopu>
55488 * source/test/TestBench.cpp:
55489 Resolved the Conflict Error
55492 * source/test/TestBench.cpp:
55496 2013-03-28 ggopu <ggopu>
55498 * source/test/TestBench.cpp:
55499 included test functions like pixelcmp
55502 2013-04-04 Steve Borho <steve@borho.org>
55504 * source/encoder/vec/CMakeLists.txt,
55505 source/encoder/vec/macroblock.inc, source/encoder/vec/pixel.inc,
55506 source/encoder/vec/vecprimitives.inc:
55507 break vecprimitives.inc into multiple headers
55510 2013-04-03 Steve Borho <steve@borho.org>
55512 * source/encoder/macroblock.cpp, source/encoder/primitives.cpp,
55513 source/encoder/primitives.h:
55514 make an empty shell for macroblock.cpp
55517 * source/Lib/TLibCommon/TComPicYuv.cpp,
55518 source/Lib/TLibCommon/TComSlice.cpp,
55519 source/Lib/TLibEncoder/TEncPreanalyzer.cpp:
55520 uncrustify: fixup some code where uncrustify thought it saw
55523 x<foo>> 1 was converted to x<foo> > 1 instead of x < (foo>>1). I
55524 added parens to avoid this abiguity.
55527 * source/encoder/macroblock.cpp:
55528 change macroblock.cpp to unix eoln
55531 * source/encoder/primitives.cpp, source/encoder/primitives.h:
55535 2013-04-04 Deepthi <Deepthi>
55537 * source/encoder/CMakeLists.txt:
55538 cmake: add macroblock.cpp
55541 * source/encoder/macroblock.cpp:
55542 Adding new file macroblock.cpp
55545 * source/encoder/primitives.cpp, source/encoder/primitives.h:
55546 Move Setup_C_PixelPrimitives decl to header file
55549 2013-04-03 Steve Borho <steve@borho.org>
55551 * source/Lib/TLibCommon/TComDataCU.h,
55552 source/Lib/TLibEncoder/TEncRateCtrl.h:
55553 uncrustify: final run, fixups my hand edits
55556 * source/Lib/TAppCommon/program_options_lite.h,
55557 source/Lib/TLibCommon/ContextModel.cpp,
55558 source/Lib/TLibCommon/ContextModel3DBuffer.cpp,
55559 source/Lib/TLibCommon/SEI.cpp, source/Lib/TLibCommon/TComDataCU.h,
55560 source/Lib/TLibCommon/TComPicSym.h,
55561 source/Lib/TLibCommon/TComPicYuv.h,
55562 source/Lib/TLibCommon/TComRdCost.cpp,
55563 source/Lib/TLibCommon/TComRdCost.h,
55564 source/Lib/TLibCommon/TComSlice.h, source/Lib/TLibEncoder/TEncCfg.h,
55565 source/Lib/TLibEncoder/TEncCu.cpp, source/Lib/TLibEncoder/TEncCu.h,
55566 source/Lib/TLibEncoder/TEncEntropy.h,
55567 source/Lib/TLibEncoder/TEncGOP.cpp,
55568 source/Lib/TLibEncoder/TEncRateCtrl.h,
55569 source/Lib/TLibEncoder/TEncSbac.h,
55570 source/Lib/TLibEncoder/TEncSearch.cpp, source/Lib/config.cpp,
55571 source/Lib/encoder.cpp, source/Lib/libmd5/libmd5.c:
55572 uncrustify: apply globally again
55574 After the first pass, some of the distance thresholds are now
55575 exceeded, requiring #endif comments or better wrapping. I've hand
55576 edited a few spots to make them easier to read
55579 * doc/uncrustify/apply-to-all-source.py:
55580 uncrustify: do not apply style to VectorClass headers
55582 They are difficult functions to align mechanically, just leave them
55586 * source/Lib/TAppCommon/program_options_lite.cpp,
55587 source/Lib/TAppCommon/program_options_lite.h,
55588 source/Lib/TLibCommon/AccessUnit.h,
55589 source/Lib/TLibCommon/CommonDef.h,
55590 source/Lib/TLibCommon/ContextModel.cpp,
55591 source/Lib/TLibCommon/ContextModel.h,
55592 source/Lib/TLibCommon/ContextModel3DBuffer.cpp,
55593 source/Lib/TLibCommon/ContextModel3DBuffer.h,
55594 source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibCommon/NAL.h,
55595 source/Lib/TLibCommon/SEI.cpp, source/Lib/TLibCommon/SEI.h,
55596 source/Lib/TLibCommon/TComBitCounter.h,
55597 source/Lib/TLibCommon/TComBitStream.cpp,
55598 source/Lib/TLibCommon/TComBitStream.h,
55599 source/Lib/TLibCommon/TComCABACTables.cpp,
55600 source/Lib/TLibCommon/TComCABACTables.h,
55601 source/Lib/TLibCommon/TComDataCU.cpp,
55602 source/Lib/TLibCommon/TComDataCU.h,
55603 source/Lib/TLibCommon/TComInterpolationFilter.cpp,
55604 source/Lib/TLibCommon/TComInterpolationFilter.h,
55605 source/Lib/TLibCommon/TComList.h,
55606 source/Lib/TLibCommon/TComLoopFilter.cpp,
55607 source/Lib/TLibCommon/TComLoopFilter.h,
55608 source/Lib/TLibCommon/TComMotionInfo.cpp,
55609 source/Lib/TLibCommon/TComMotionInfo.h,
55610 source/Lib/TLibCommon/TComMv.h,
55611 source/Lib/TLibCommon/TComPattern.cpp,
55612 source/Lib/TLibCommon/TComPattern.h,
55613 source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
55614 source/Lib/TLibCommon/TComPicSym.cpp,
55615 source/Lib/TLibCommon/TComPicSym.h,
55616 source/Lib/TLibCommon/TComPicYuv.cpp,
55617 source/Lib/TLibCommon/TComPicYuv.h,
55618 source/Lib/TLibCommon/TComPicYuvMD5.cpp,
55619 source/Lib/TLibCommon/TComPrediction.cpp,
55620 source/Lib/TLibCommon/TComPrediction.h,
55621 source/Lib/TLibCommon/TComRdCost.cpp,
55622 source/Lib/TLibCommon/TComRdCost.h,
55623 source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp,
55624 source/Lib/TLibCommon/TComRdCostWeightPrediction.h,
55625 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
55626 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
55627 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
55628 source/Lib/TLibCommon/TComSlice.cpp,
55629 source/Lib/TLibCommon/TComSlice.h,
55630 source/Lib/TLibCommon/TComTrQuant.cpp,
55631 source/Lib/TLibCommon/TComTrQuant.h,
55632 source/Lib/TLibCommon/TComWeightPrediction.cpp,
55633 source/Lib/TLibCommon/TComWeightPrediction.h,
55634 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
55635 source/Lib/TLibCommon/TypeDef.h,
55636 source/Lib/TLibEncoder/AnnexBwrite.h,
55637 source/Lib/TLibEncoder/NALwrite.cpp,
55638 source/Lib/TLibEncoder/NALwrite.h,
55639 source/Lib/TLibEncoder/SEIwrite.cpp,
55640 source/Lib/TLibEncoder/SEIwrite.h,
55641 source/Lib/TLibEncoder/SyntaxElementWriter.cpp,
55642 source/Lib/TLibEncoder/SyntaxElementWriter.h,
55643 source/Lib/TLibEncoder/TEncAnalyze.cpp,
55644 source/Lib/TLibEncoder/TEncAnalyze.h,
55645 source/Lib/TLibEncoder/TEncBinCoder.h,
55646 source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp,
55647 source/Lib/TLibEncoder/TEncBinCoderCABAC.h,
55648 source/Lib/TLibEncoder/TEncBinCoderCABACCounter.cpp,
55649 source/Lib/TLibEncoder/TEncBinCoderCABACCounter.h,
55650 source/Lib/TLibEncoder/TEncCavlc.cpp,
55651 source/Lib/TLibEncoder/TEncCavlc.h,
55652 source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp,
55653 source/Lib/TLibEncoder/TEncCu.h,
55654 source/Lib/TLibEncoder/TEncEntropy.cpp,
55655 source/Lib/TLibEncoder/TEncEntropy.h,
55656 source/Lib/TLibEncoder/TEncGOP.cpp,
55657 source/Lib/TLibEncoder/TEncGOP.h,
55658 source/Lib/TLibEncoder/TEncPic.cpp,
55659 source/Lib/TLibEncoder/TEncPic.h,
55660 source/Lib/TLibEncoder/TEncPreanalyzer.cpp,
55661 source/Lib/TLibEncoder/TEncPreanalyzer.h,
55662 source/Lib/TLibEncoder/TEncRateCtrl.cpp,
55663 source/Lib/TLibEncoder/TEncRateCtrl.h,
55664 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
55665 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
55666 source/Lib/TLibEncoder/TEncSbac.cpp,
55667 source/Lib/TLibEncoder/TEncSbac.h,
55668 source/Lib/TLibEncoder/TEncSearch.cpp,
55669 source/Lib/TLibEncoder/TEncSearch.h,
55670 source/Lib/TLibEncoder/TEncSlice.cpp,
55671 source/Lib/TLibEncoder/TEncSlice.h,
55672 source/Lib/TLibEncoder/TEncTop.cpp,
55673 source/Lib/TLibEncoder/TEncTop.h,
55674 source/Lib/TLibEncoder/WeightPredAnalysis.cpp,
55675 source/Lib/TLibEncoder/WeightPredAnalysis.h,
55676 source/Lib/TLibVideoIO/TVideoIOYuv.cpp,
55677 source/Lib/TLibVideoIO/TVideoIOYuv.h, source/Lib/config.cpp,
55678 source/Lib/config.h, source/Lib/encoder.cpp, source/Lib/encoder.h,
55679 source/Lib/libmd5/MD5.h, source/Lib/libmd5/libmd5.c,
55680 source/Lib/libmd5/libmd5.h, source/PPA/ppa.cpp, source/PPA/ppa.h,
55681 source/PPA/ppaApi.h, source/VectorClass/instrset.h,
55682 source/VectorClass/instrset_detect.cpp,
55683 source/encoder/TComRdCost_SSE.cpp, source/encoder/pixel.cpp,
55684 source/encoder/primitives.cpp, source/encoder/primitives.h,
55685 source/encoder/threading.cpp, source/encoder/threading.h,
55686 source/encoder/threadpool.cpp, source/encoder/threadpool.h,
55687 source/encoder/vec/vecprimitives.inc, source/test/TestBench.cpp,
55688 source/test/UnitTest.cpp, source/test/UnitTest.h,
55689 source/test/testpool.cpp:
55690 uncrustify: apply globally
55693 * doc/uncrustify/apply-to-all-source.py, doc/uncrustify/drag-
55695 uncrustify: add a drag/drop batch file for uncrustify, and apply-to-
55699 * source/VectorClass/dispatch_example.cpp:
55700 remove VectorClass/dispatch_example.cpp
55703 * source/encoder/threading.cpp:
55704 threading: do not call pthread_exit after joining a thread
55707 * source/encoder/pixel.cpp, source/encoder/primitives.cpp:
55708 primitives: allow for the fact that multiple C++ files will define C
55712 * source/VectorClass/instrset_detect.cpp:
55713 instrset: prevent compiler warnings about nop function
55716 * source/encoder/pixel.cpp:
55717 pixel: 4x16 and 16x4 were backwards
55720 * source/VectorClass/instrset_detect.cpp:
55721 instrset: improve compiler fallbacks for xgetbv
55724 * source/encoder/TComRdCost_SSE.cpp:
55725 remove cruft from TComRdCost_SSE.cpp
55728 * source/encoder/vec/vecprimitives.inc:
55729 astyle: cleanup vecprimitives.inc
55732 * Merged in deepthidevaki/xhevc_deepthid (pull request #30)
55734 Added satd4x4 in vecprimitives.inv
55737 2013-04-03 Deepthi Devaki <Deepthi Devaki>
55739 * source/encoder/vec/vecprimitives.inc:
55740 Added vectorized hads4x4(satd_4x4) to vecprimitive.inc
55743 2013-04-03 Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
55745 * Merged multicoreware/xhevc into default
55748 * source/encoder/TComRdCost_SSE.cpp:
55749 Merged multicoreware/xhevc into default
55752 2013-04-03 Deepthi Devaki <Deepthi Devaki>
55754 * source/encoder/TComRdCost_SSE.cpp:
55755 Vectorized xCalcHADS8x8 with 16 bit operations
55758 * source/encoder/TComRdCost_SSE.cpp:
55759 Backed out changeset: e4616400a510
55762 * source/encoder/TComRdCost_SSE.cpp:
55763 Backed out changeset: e500456e0146
55766 2013-04-03 Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
55768 * Merged multicoreware/xhevc into default
55771 2013-04-02 Deepthi Devaki <Deepthi Devaki>
55773 * source/encoder/TComRdCost_SSE.cpp:
55774 Modifed xCalcHADS8x8 with 16bit operations.
55777 * source/encoder/TComRdCost_SSE.cpp:
55778 Modified xCalcHADS8x8 with 16bit operations.
55781 2013-04-03 Steve Borho <steve@borho.org>
55783 * source/encoder/threadpool.cpp:
55784 threadpool: use InterlockedCompareExchange64
55787 * source/encoder/primitives.cpp, source/encoder/primitives.h:
55788 rename cpuIDDetect to CpuIDDetect, to follow convention of
55792 * source/encoder/primitives.cpp, source/encoder/primitives.h,
55793 source/encoder/vec/CMakeLists.txt:
55794 cmake: gcc 4.6 supports AVX, but not yet AVX2
55797 2013-04-03 Deepthi <Deepthi>
55799 * source/encoder/primitives.cpp, source/encoder/primitives.h:
55800 Moving function declarations to the header file.
55803 2013-04-03 Steve Borho <steve@borho.org>
55805 * source/encoder/pixel.cpp, source/encoder/primitives.cpp,
55806 source/encoder/primitives.h, source/encoder/vec/vecprimitives.inc:
55810 2013-04-03 Deepthi <Deepthi>
55812 * source/encoder/pixel.cpp, source/encoder/primitives.cpp,
55813 source/encoder/primitives.h, source/encoder/vec/vecprimitives.inc:
55814 Changing Primitives Setup for C and vector code.
55817 2013-04-02 Deepthi <Deepthi>
55819 * source/encoder/primitives.cpp:
55820 Bug Fix for crashes in PartitionFromSizes
55823 2013-03-30 Steve Borho <steve@borho.org>
55825 * source/Lib/TLibCommon/TComRdCost.cpp,
55826 source/Lib/TLibCommon/TypeDef.h, source/encoder/TComRdCost_SSE.cpp:
55827 Replace #define ENABLE_VECTOR with ENABLE_PRIMITIVES cmake option
55829 Use x265 performance primitives. We need to profile which of the 12,
55830 24, 48, and 64 partition sizes are worth adding as primitives.
55832 Ditto for the SSE (sum of square differences) functions.
55835 2013-04-02 Steve Borho <steve@borho.org>
55837 * doc/uncrustify/codingstyle.cfg:
55838 uncrustify: tweak enum and struct bracing and comment margins
55841 * doc/uncrustify/codingstyle.cfg, source/PPA/ppaApi.h,
55842 source/encoder/pixel.cpp, source/encoder/primitives.cpp,
55843 source/encoder/primitives.h, source/encoder/threading.cpp,
55844 source/encoder/threading.h, source/encoder/threadpool.cpp,
55845 source/encoder/threadpool.h, source/encoder/vec/vecprimitives.inc:
55846 Prepare to use uncrustify on our encoder sources
55849 * doc/uncrustify/codingstyle.cfg, doc/uncrustify/uncrustify.bat,
55850 doc/uncrustify/uncrustify.exe:
55851 add uncrustify and a base config
55854 * source/encoder/threadpool.cpp:
55855 threadpool: remove semicolon from macro definition
55858 * source/encoder/primitives.cpp:
55859 primitives: replace asserts with if() checks
55862 * source/test/testpool.cpp:
55863 testpool: add another assertion
55866 * source/encoder/threadpool.cpp:
55867 threadpool: correct the order of the arguments to
55868 InterlockedCompareExchange()
55870 Amusingly, it mostly worked the wrong way, except it never cleared
55871 any bits, so the worker threads kept working on rows until the frame
55875 * source/test/testpool.cpp:
55876 testpool: stop processing CUs on the last column
55879 * source/encoder/threadpool.cpp:
55880 threadpool: use the correct MSVC instrinsic for integer CAS
55883 * source/encoder/threadpool.cpp:
55884 threadpool: use atomic compare and swap when consuming rows
55886 The GCC __sync_and_and_fetch() instrinsic was returning the new
55887 value, which is entirely useless. The thread could not tell if it
55888 was the one which cleared the bit. So I've switched it to a compare
55889 and swap operation. Now the thread pool test runs correctly when
55893 * source/encoder/threadpool.cpp:
55894 threadpool: remove redundant semicolon
55897 * source/encoder/primitives.cpp:
55898 apply coding style to primitives.cpp, minor cleanups
55901 * source/encoder/primitives.cpp:
55902 primitives: remove cruft from primitives.cpp, add compiler checks
55904 Do not try to access vectorized architectures that we know the
55905 compiler cannot generate.
55908 * source/encoder/primitives.cpp, source/encoder/primitives.h:
55909 primitives: do not include instrset.h from primitives.h
55911 Just declare the instrset_detect() function as an extern in
55915 * source/encoder/CMakeLists.txt:
55916 cmake: tabs to spaces
55919 2013-04-02 sumalatha <sumalatha>
55921 * source/encoder/CMakeLists.txt, source/encoder/primitives.cpp,
55922 source/encoder/primitives.h:
55923 1. Included the cpu detection logic in SetupPrimitives() function.
55924 2. Changed the SetupPrimitives() function such that, based on the
55925 cpuid, the corresponing vector architure and fucntions are selected
55928 * source/encoder/CMakeLists.txt, source/encoder/primitives.cpp,
55929 source/x265main.cpp:
55930 Backed out changeset: 94aff9bad183
55933 * source/encoder/cpu_detection.cpp, source/encoder/cpu_detection.h,
55934 source/encoder/instrset.h, source/encoder/instrset_detect.cpp:
55935 Backed out changeset: 36b4e54f54b9
55938 2013-04-02 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
55940 * source/encoder/CMakeLists.txt:
55941 Merged multicoreware/xhevc into default
55944 2013-04-01 sumalatha <sumalatha>
55946 * source/encoder/cpu_detection.cpp, source/encoder/cpu_detection.h,
55947 source/encoder/instrset.h, source/encoder/instrset_detect.cpp:
55948 these files has to go with the previous checkin version(199)
55951 * source/encoder/CMakeLists.txt, source/encoder/primitives.cpp,
55952 source/x265main.cpp:
55953 1. Included the cpu detection logic in the main 2. Changed the
55954 SetupPrimitives() function such that, based on the cpuid, the
55955 corresponing vector architure and fucntions are selected
55958 2013-04-02 Steve Borho <steve@borho.org>
55960 * source/CMakeLists.txt, source/encoder/CMakeLists.txt,
55961 source/encoder/primitives.h:
55962 cmake: x64 Linux build fixes
55965 * source/CMakeLists.txt:
55966 cmake: provide an appopriate -march for 64bit GCC targets
55969 2013-04-01 Steve Borho <steve@borho.org>
55971 * source/Lib/CMakeLists.txt, source/encoder/CMakeLists.txt,
55972 source/encoder/vec/CMakeLists.txt, source/test/CMakeLists.txt:
55973 cmake: use GCC variable, in lieu of CMAKE_COMPILER_IS_GNUCXX
55976 * source/CMakeLists.txt:
55977 cmake: detect 64bit build, set GCC flag if GCC is detected
55979 Both of these can be used in internal CMakeLists.txt files, to
55983 2013-04-01 deepthidevaki <deepthidevaki>
55985 * source/encoder/TComRdCost_SSE.cpp:
55986 Modified xCalcHADS4x4 to use 16bit operations.
55989 2013-03-30 Steve Borho <steve@borho.org>
55991 * source/Lib/TLibCommon/TypeDef.h:
55992 Disable DISTORTION_PRECISION_ADJUSTMENT when HIGH_BIT_DEPTH is
55995 This turns the operation into a >> 0, which any sane compiler will
55999 * source/encoder/primitives.cpp, source/encoder/primitives.h:
56000 add mapping function from Width x Height to Partition enum
56003 * source/CMakeLists.txt, source/Lib/CMakeLists.txt,
56004 source/Lib/config.cpp, source/Lib/config.h, source/Lib/encoder.cpp,
56005 source/Lib/encoder.h, source/x265cfg.cpp, source/x265cfg.h,
56006 source/x265main.cpp, source/x265top.cpp, source/x265top.h:
56007 move top level encoder classes into Lib/ folder
56009 The encoder should be usable as a shared library (x265.lib +
56010 HM.lib). The top level class should not be part of the CLI-only
56011 portion of the source.
56014 * source/encoder/CMakeLists.txt:
56015 remove unused set_source_files_properties
56018 * source/Lib/TLibEncoder/TEncCavlc.h:
56019 fix VC compiler warnings (unreferenced formal parameter) in HM
56023 * source/Lib/TLibCommon/TComDataCU.h:
56024 fix VC compiler warnings (integer size type conversions) in HM
56028 * source/Lib/TLibCommon/ContextModel3DBuffer.h:
56029 fix VC compiler warning in the HM source
56032 2013-03-29 Steve Borho <steve@borho.org>
56034 * source/Lib/TLibCommon/TComPicYuvMD5.cpp:
56035 prevent one compile warning when HIGH_BIT_DEPTH is disabled
56038 * source/encoder/vec/vecprimitives.inc:
56039 add a stub 8bit vectorized primitive to prevent compile warnings
56042 * source/encoder/pixel.cpp, source/encoder/primitives.h:
56043 move primitives_c extern to the file(s) which define its methods
56046 * source/encoder/CMakeLists.txt, source/encoder/pixel.cpp:
56047 add templated SATD functions, based on x264's macro routines
56049 These use SWAR to do two operations in each clock cycle
56052 * source/encoder/pixel.cpp, source/encoder/primitives.h:
56053 add more irregular partition sizes (we probably still need 24s)
56056 * source/encoder/CMakeLists.txt, source/encoder/pixel.cpp:
56057 add pixel.cpp with templated sad function
56060 * source/encoder/vec/vecprimitives.inc:
56061 bug fix in vecprimitives.inc
56064 * source/encoder/vec/vecprimitives.inc:
56065 declare seperate implementations of vector primitives for 8bit and
56069 * source/encoder/primitives.cpp, source/encoder/primitives.h:
56070 stub in support for C reference versions of each encoder primitive
56073 * source/compat/msvc/stdint.h:
56074 ensure intptr_t is defined on MSVC compiles
56077 * source/encoder/primitives.h, source/encoder/vec/vecprimitives.inc:
56078 compiler portable CDECL macro
56081 * source/PPA/ppa.cpp, source/PPA/ppa.h, source/PPA/ppaApi.h,
56082 source/encoder/TComRdCost_SSE.cpp, source/encoder/primitives.cpp,
56083 source/encoder/primitives.h, source/encoder/threading.cpp,
56084 source/encoder/threading.h, source/encoder/threadpool.cpp,
56085 source/encoder/threadpool.h, source/encoder/vec/avx.cpp,
56086 source/encoder/vec/avx2.cpp, source/encoder/vec/sse2.cpp,
56087 source/encoder/vec/sse3.cpp, source/encoder/vec/sse41.cpp,
56088 source/encoder/vec/sse42.cpp, source/encoder/vec/ssse3.cpp,
56089 source/encoder/vec/vecprimitives.inc, source/test/TestBench.cpp,
56090 source/test/UnitTest.cpp, source/test/UnitTest.h,
56091 source/test/testpool.cpp, source/x265cfg.cpp, source/x265cfg.h,
56092 source/x265main.cpp, source/x265top.cpp, source/x265top.h:
56093 apply coding style to all new code (leaving HM unmodified for the
56097 * doc/astyle/apply-to-all-source.py:
56098 add a Python script to apply coding style globally
56101 * doc/astyle/drag-astyle.bat:
56102 fix comment in drag-astyle.bat
56105 * doc/astyle/AStyle.exe, doc/astyle/astyle-config.txt, doc/astyle
56107 Add astyle.exe for Windows, a config file, and a handy drag-drop
56111 * source/x265top.cpp:
56112 also take updates to x265top.cpp
56115 * source/Lib/TLibCommon/CommonDef.h, source/Lib/TLibCommon/NAL.h,
56116 source/Lib/TLibCommon/TComRom.cpp,
56117 source/Lib/TLibCommon/TComSlice.cpp,
56118 source/Lib/TLibCommon/TComSlice.h,
56119 source/Lib/TLibEncoder/SEIwrite.cpp,
56120 source/Lib/TLibEncoder/TEncCavlc.cpp,
56121 source/Lib/TLibEncoder/TEncCavlc.h,
56122 source/Lib/TLibEncoder/TEncGOP.cpp,
56123 source/Lib/TLibEncoder/TEncSbac.h:
56124 Take HM tip code (mostly cleanups)
56127 2013-03-29 Deepthi <Deepthi>
56129 * source/encoder/vec/vecprimitives.inc:
56130 xCaldHads4x4 added as an example vector primitive.
56133 * source/encoder/primitives.cpp:
56134 Remove unused parameter warning
56137 2013-03-29 Steve Borho <steve@borho.org>
56139 * source/CMakeLists.txt, source/Lib/TLibCommon/TypeDef.h,
56140 source/encoder/primitives.h, source/encoder/vec/vecprimitives.inc:
56141 cmake: add HIGH_BIT_DEPTH build flag, defaults to ON (previous
56145 2013-03-28 Steve Borho <steve@borho.org>
56147 * source/encoder/threadpool.cpp:
56148 threadpool: fix MinGW build again
56151 * source/test/testpool.cpp:
56152 testpool: show MD5 hash as 4 hex ints
56155 * source/encoder/threadpool.cpp, source/encoder/threadpool.h:
56156 threadpool: make worker threads spin so long as job providers are
56159 The idle list mechanism was buggy; threads would go idle when no
56160 work was available but none would be in the idle list when a work
56161 request arrived. Not sure how to fix this without locking, so
56162 removing the idle list for now. All threads are awakened when job
56163 providers are enqueued, and they stay active until there are no job
56164 providers registered with the thread pool.
56166 Awakening a thread multiple times should be safe; might just cause a
56167 few extra loops for it to go idle later.
56170 * source/encoder/threadpool.cpp:
56171 threadpool: remove idle thread poke when job provider is enqueued
56173 The provider may not have work yet; and if it did it can poke the
56177 * source/CMakeLists.txt:
56178 add -march=i686 globally to gcc compile flags
56180 This was required to fix MinGW link errors on Windows
56181 (__sync_and_fetch*)
56184 * source/test/testpool.cpp:
56185 add a proper hex print for the MD5 hash
56188 * source/test/UnitTest.cpp:
56189 white-space cleanups in UnitTest.cpp
56192 * source/test/CMakeLists.txt, source/test/UnitTest.cpp:
56196 * source/test/CMakeLists.txt, source/test/TestBench.cpp:
56197 better workaround for strdup
56200 * source/test/CMakeLists.txt, source/test/TestBench.cpp:
56201 msys compilation fixes for TestBench
56204 * source/test/CMakeLists.txt, source/test/TestBench.cpp,
56205 source/test/UnitTest.cpp:
56206 fix test bench compiler warnings
56209 * source/test/CMakeLists.txt:
56210 cmake: fix case sensitivity of filenames
56213 * source/test/CMakeLists.txt:
56214 cleanup source/test/CMakeLists.txt
56217 2013-03-25 ShinYee Chung <shinyee@multicorewareinc.com>
56219 * build/linux/make-Makefiles.bash:
56220 Build: Fix missing executable permission on the BASH script.
56223 2013-03-28 nandaku2 <deepthi@multicorewareinc.com>
56225 * Merged in ggopu/gopu_x265 (pull request #19)
56227 Created the Test bench For Vector Premitive Functions
56230 2013-03-28 ggopu <ggopu>
56232 * source/test/CMakeLists.txt, source/test/TestBench.cpp,
56233 source/test/UnitTest.cpp, source/test/UnitTest.h:
56234 Created the Test bench For Vector Premitive Functions
56237 2013-03-29 ShinYee Chung <shinyee@multicorewareinc.com>
56239 * source/encoder/threadpool.cpp:
56240 threadpool: Fix missing #include for memset().
56243 2013-03-28 Steve Borho <steve@borho.org>
56245 * source/encoder/CMakeLists.txt, source/encoder/TComRdCost_SSE.cpp,
56246 source/encoder/primitives.cpp, source/encoder/primitives.h:
56247 add ALIGN_VAR macros for compiler portability
56250 * source/encoder/primitives.h:
56251 primitives: use extern "C" instead of _cdecl; is more compiler
56255 * source/encoder/primitives.cpp, source/encoder/primitives.h,
56256 source/x265main.cpp:
56257 primitives: call SetupPrimitives() before starting encoder
56260 * source/CMakeLists.txt, source/encoder/primitives.cpp:
56261 primitives: add ENABLE_PRIMITIVES build option, default to ON
56264 * source/encoder/primitives.cpp, source/encoder/primitives.h,
56265 source/encoder/vec/CMakeLists.txt:
56266 primitives: move vectorized function table externs into CPP file
56269 * source/encoder/primitives.cpp, source/encoder/primitives.h:
56270 move stdint.h include to primitives.h since it uses std int types
56273 * source/encoder/primitives.h, source/encoder/vec/vecprimitives.inc:
56274 primitives: match x264's pixel compare funcdef so we can later use
56278 * source/encoder/CMakeLists.txt:
56279 fix compile of TComRdCost_SSE.cpp on VC (not sure why this worked
56283 * source/encoder/vec/CMakeLists.txt:
56284 cmake: VC10 appears to support /arch:AVX
56286 We can back this out later if there are problems with it
56289 2013-03-27 Steve Borho <steve@borho.org>
56291 * source/encoder/CMakeLists.txt, source/encoder/primitives.cpp:
56292 add a stub primitives.cpp, showing what CPU runtime detection should
56296 * source/encoder/vec/vecprimitives.inc:
56297 vec: automatically generate a primitive table for each vector
56301 * source/encoder/CMakeLists.txt:
56302 cmake: add primitives.h x265 project
56305 * source/encoder/primitives.h:
56306 introduce EncoderPrimitives structure of function pointers
56309 * source/VectorClass/vectori256.h:
56310 workaround two compiler warnings for AVX2 and VC11
56313 * source/encoder/CMakeLists.txt, source/encoder/vec/CMakeLists.txt,
56314 source/encoder/vec/avx.cpp, source/encoder/vec/avx2.cpp,
56315 source/encoder/vec/sse2.cpp, source/encoder/vec/sse3.cpp,
56316 source/encoder/vec/sse41.cpp, source/encoder/vec/sse42.cpp,
56317 source/encoder/vec/ssse3.cpp, source/encoder/vec/vecprimitives.inc:
56318 introduce a vec/ folder for instancing vectorized encoder primitives
56320 This is incomplete. Next step is to declare a function table and set
56324 * source/encoder/TComRdCost_SSE.cpp:
56325 use one contributor per line in copyright header
56328 * source/CMakeLists.txt:
56329 cmake: add option to use multiple processors for compiling
56332 * source/CMakeLists.txt, source/encoder/CMakeLists.txt:
56333 cmake: move /Ob2 flag to be global
56336 * source/test/testpool.cpp:
56337 testpool: add semicolons after PPA macros
56340 * source/encoder/threadpool.cpp:
56341 cmake: use 64bit interlocked commands and C style typecasts
56343 For some reason Microsoft uses signed types for atomic intrinsics
56344 and LONG64 is not the same as uint64_t
56347 * source/test/CMakeLists.txt:
56348 cmake: add PPA and pthread libraries for appropriate build
56352 * source/CMakeLists.txt:
56353 cmake: fix eoln damage from copy-pasting from a web-page
56356 2013-03-27 deepthidevaki <deepthidevaki>
56358 * source/encoder/TComRdCost_SSE.cpp:
56359 Modified vector- xCalcHADs4x4
56362 * source/encoder/TComRdCost_SSE.cpp:
56363 Modifed vector- xCalcHADS4x4
56366 2013-03-27 Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
56368 * source/encoder/TComRdCost_SSE.cpp:
56369 Merged multicoreware/xhevc into default
56372 2013-03-26 deepthidevaki <deepthidevaki>
56374 * source/encoder/TComRdCost_SSE.cpp:
56375 Modified xCalcHADs4x4 for better optimization
56378 2013-03-26 Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
56380 * Merged multicoreware/xhevc into default
56383 2013-03-25 deepthidevaki <deepthidevaki>
56385 * source/encoder/TComRdCost_SSE.cpp:
56386 Modifed vectorized xCalcHADs* for aligned data access
56389 2013-03-26 Steve Borho <steve@borho.org>
56391 * source/encoder/threadpool.cpp:
56392 threadpool: reorder initializers to match member declarations to
56396 * source/test/testpool.cpp:
56397 testpool: memset requires string.h on Linux
56400 * source/test/testpool.cpp:
56401 testpool: initialize CUData on allocation, makes hashes persistent
56404 * source/encoder/TComRdCost_SSE.cpp:
56405 disable formal parameter warnings in TComRdCost_SSE, for Release
56408 This pragma should go away when we clean up the vectorized code
56411 * source/test/testpool.cpp:
56412 testpool: add more resolution to elapsed time
56415 * source/encoder/threadpool.cpp:
56416 threadpool: safely allow the threadpool to be freed and reallocated
56419 * source/test/testpool.cpp:
56420 testpool: do not check top-right data dependency for last block in
56423 The fact that the penumltimate block was finished implies all of the
56424 dependencies for the last block are also available.
56427 * source/encoder/threadpool.cpp, source/encoder/threadpool.h:
56428 threadpool: fix a couple of bugs, introduce m_numWords variable for
56432 * source/test/testpool.cpp:
56433 testpool: enqueue row 0 to trigger processing
56436 * source/encoder/threadpool.cpp:
56437 threadpool: initialize m_numThreads correctly
56440 * source/encoder/threadpool.cpp:
56441 threadpool: clear m_queuedBitmap after allocation
56444 2013-03-25 Steve Borho <steve@borho.org>
56446 * source/test/CMakeLists.txt, source/test/testpool.cpp:
56447 testpool: add MD5 fake CTU encode logic
56450 * source/test/testpool.cpp:
56451 testpool: make progress on thread pool unit test
56454 * build/README.txt:
56455 simplify build/README.txt
56458 2013-03-25 Deepthi <Deepthi>
56463 * source/encoder/CMakeLists.txt:
56464 Force inlining for x265 project.
56467 * source/encoder/CMakeLists.txt:
56468 Adding /Ob1 for inline functions in vectorclass
56471 2013-03-25 Steve Borho <steve@borho.org>
56473 * source/Lib/TLibCommon/TComRdCost.cpp,
56474 source/encoder/TComRdCost_SSE.cpp:
56475 Added vectorized xCalcHADs4x4.
56478 * source/Lib/TLibCommon/TComRdCost.cpp,
56479 source/encoder/TComRdCost_SSE.cpp:
56480 Added vectorized xCalcHADs8x8 to TComRdCost_sse.cpp.
56483 2013-03-23 Steve Borho <steve@borho.org>
56485 * build/ConfigureBuild.bat, build/README.txt, build/vc10-x86/build-
56486 all.bat, build/vc10-x86_64/build-all.bat, build/vc11-x86/build-
56487 all.bat, build/vc11-x86_64/build-all.bat, build/vc9-x86/build-
56488 all.bat, build/vc9-x86_64/build-all.bat, source/CMakeLists.txt,
56489 source/encoder/TComRdCost_SSE.cpp:
56490 cmake: change solution name to x265.sln
56492 The repository will eventually be renamed to x265 as well
56495 2013-03-23 ShinYee Chung <shinyee@multicorewareinc.com>
56497 * source/encoder/TComRdCost_SSE.cpp:
56498 Encoder: Fix the backslash used in an #include.
56500 The lookup fails in Linux platform, while VC works with both
56501 backslash and forwardslash
56504 * build/linux/make-Makefiles.bash:
56505 Build: cmake bash script for Linux 64bit platform.
56508 2013-03-22 Steve Borho <steve@borho.org>
56510 * source/CMakeLists.txt:
56511 cmake: fix a copy-pasted comment
56514 * source/CMakeLists.txt, source/VectorClass/CMakeLists.txt,
56515 source/encoder/CMakeLists.txt:
56516 cmake: merge VectorClass and all vectorization knowledge into
56520 * source/x265cfg.cpp:
56521 fixup a harmless mistake made when renaming files
56524 2013-03-23 ShinYee Chung <shinyee@multicorewareinc.com>
56526 * source/Lib/CMakeLists.txt:
56527 Build: Fix compile errors in HM codes due to compiler warning on
56531 2013-03-22 Steve Borho <steve@borho.org>
56533 * source/CMakeLists.txt:
56534 cmake: for gcc builds, select Release build type by default
56537 * source/App/README.txt, source/App/TAppEncoder/CMakeLists.txt,
56538 source/App/TAppEncoder/TAppEncCfg.cpp,
56539 source/App/TAppEncoder/TAppEncCfg.h,
56540 source/App/TAppEncoder/TAppEncTop.cpp,
56541 source/App/TAppEncoder/TAppEncTop.h,
56542 source/App/TAppEncoder/encmain.cpp, source/CMakeLists.txt,
56543 source/x265cfg.cpp, source/x265cfg.h, source/x265main.cpp,
56544 source/x265top.cpp, source/x265top.h:
56545 cmake: remove the APP folder, move encoder main files to source/
56548 The CLI portion of the project is now a build option, defaulting to
56549 ON. The build target is now named x265-cli, and it will be generated
56550 in the build root Debug/ or Release/ folder
56553 * source/App/TAppEncoder/CMakeLists.txt, source/CMakeLists.txt,
56554 source/Lib/CMakeLists.txt, source/Lib/TLibCommon/CMakeLists.txt,
56555 source/Lib/TLibEncoder/CMakeLists.txt:
56556 cmake: group all HM code into one library
56559 * build/vc10-x86/build-all.bat, build/vc10-x86_64/build-all.bat,
56560 build/vc11-x86/build-all.bat, build/vc11-x86_64/build-all.bat,
56561 build/vc9-x86/build-all.bat, build/vc9-x86_64/build-all.bat:
56562 cmake: add build-all batch files for each compiler target
56564 This auto-detects the VS install location and skips impossible
56568 * build/msys/make-Makefiles.sh, build/vc10-x86/make-solutions.bat,
56569 build/vc10-x86_64/make-solutions.bat, build/vc11-x86/make-
56570 solutions.bat, build/vc11-x86_64/make-solutions.bat, build/vc9-x86
56571 /make-solutions.bat, build/vc9-x86_64/make-solutions.bat:
56572 cmake: add build folders for each compiler target and batch files to
56575 This makes it easy to configure the build options for each target.
56576 The number of build options is about to grow.
56579 * source/Lib/TLibCommon/TComSlice.cpp:
56580 remove an include of a decoder header from the common lib
56583 * source/App/TAppDecoder/CMakeLists.txt,
56584 source/App/TAppDecoder/TAppDecCfg.cpp,
56585 source/App/TAppDecoder/TAppDecCfg.h,
56586 source/App/TAppDecoder/TAppDecTop.cpp,
56587 source/App/TAppDecoder/TAppDecTop.h,
56588 source/App/TAppDecoder/decmain.cpp, source/CMakeLists.txt,
56589 source/Lib/CMakeLists.txt, source/Lib/TLibDecoder/AnnexBread.cpp,
56590 source/Lib/TLibDecoder/AnnexBread.h,
56591 source/Lib/TLibDecoder/CMakeLists.txt,
56592 source/Lib/TLibDecoder/NALread.cpp,
56593 source/Lib/TLibDecoder/NALread.h,
56594 source/Lib/TLibDecoder/SEIread.cpp,
56595 source/Lib/TLibDecoder/SEIread.h,
56596 source/Lib/TLibDecoder/SyntaxElementParser.cpp,
56597 source/Lib/TLibDecoder/SyntaxElementParser.h,
56598 source/Lib/TLibDecoder/TDecBinCoder.h,
56599 source/Lib/TLibDecoder/TDecBinCoderCABAC.cpp,
56600 source/Lib/TLibDecoder/TDecBinCoderCABAC.h,
56601 source/Lib/TLibDecoder/TDecCAVLC.cpp,
56602 source/Lib/TLibDecoder/TDecCAVLC.h,
56603 source/Lib/TLibDecoder/TDecCu.cpp, source/Lib/TLibDecoder/TDecCu.h,
56604 source/Lib/TLibDecoder/TDecEntropy.cpp,
56605 source/Lib/TLibDecoder/TDecEntropy.h,
56606 source/Lib/TLibDecoder/TDecGop.cpp,
56607 source/Lib/TLibDecoder/TDecGop.h,
56608 source/Lib/TLibDecoder/TDecSbac.cpp,
56609 source/Lib/TLibDecoder/TDecSbac.h,
56610 source/Lib/TLibDecoder/TDecSlice.cpp,
56611 source/Lib/TLibDecoder/TDecSlice.h,
56612 source/Lib/TLibDecoder/TDecTop.cpp,
56613 source/Lib/TLibDecoder/TDecTop.h:
56614 Drop the HM decoder project; we should use HM project directly for
56617 We should be finding other decoders to test with as well
56620 * source/encoder/threadpool.h, source/test/testpool.cpp:
56621 threadpool: make pool destructor protected to force the use of
56625 * source/CMakeLists.txt, source/test/CMakeLists.txt,
56626 source/test/testpool.cpp:
56627 add unit test for thread pool, incomplete
56630 * source/App/TAppEncoder/TAppEncCfg.cpp:
56631 ignore warnings in Y4M header reader imported from VPL
56634 2013-03-21 Steve Borho <steve@borho.org>
56636 * source/App/TAppEncoder/TAppEncCfg.cpp:
56637 fix white-space damage in TAppEncCfg.cpp
56640 * source/App/TAppEncoder/TAppEncCfg.cpp:
56641 Fix eoln damage in TAppEncCfg.cpp
56644 * source/Lib/TLibCommon/TComMv.h:
56645 fix another compiler warning in the HM
56648 * source/Lib/TLibCommon/TComSlice.h:
56649 fix a warning in the HM header
56652 * source/App/TAppEncoder/CMakeLists.txt:
56653 cmake: encoder app now links against x265 library (source/encoder)
56656 * source/App/TAppEncoder/TAppEncCfg.cpp:
56657 encoder: gcc requires math.h for ceil()
56660 * source/App/TAppDecoder/CMakeLists.txt,
56661 source/App/TAppEncoder/CMakeLists.txt, source/Lib/CMakeLists.txt:
56662 cmake: rename md5 lib so it is not compiled as liblibmd5
56665 * source/CMakeLists.txt, source/Lib/TLibCommon/CMakeLists.txt,
56666 source/encoder/CMakeLists.txt:
56667 cmake: move TComRdCost_SSE build to encoder/CMakeLists.txt
56670 2013-03-21 ggopu <ggopu>
56672 * build/ConfigureSolution.bash:
56673 Noo Need for this Script
56676 * build/ConfigureSolution.bat:
56677 No Need for this Script
56680 * build/ConfigureBuild.bat:
56681 Modified the Script for Build Mode
56684 2013-03-21 Deepthi <Deepthi>
56689 * build/ConfigureBuild.bat:
56690 Updates to build script
56693 * source/encoder/TComRdCost_SSE.cpp:
56694 Removing redundant path
56697 * source/Lib/TLibCommon/CMakeLists.txt:
56698 Adding include directories and vector build options.
56701 * source/VectorClass/CMakeLists.txt:
56702 Changing all vector builds to SSE2 for now.
56705 * source/Lib/TLibCommon/CMakeLists.txt:
56706 Forward slash error in Cmake script
56709 * build/buildSolution.bash:
56710 Removing initial build script
56713 2013-03-21 sumalatha <sumalatha>
56715 * source/App/TAppEncoder/TAppEncCfg.cpp:
56716 Changed the code for supporting 1. YUV files with per sequence cfg
56717 files 2. y4m files with no per seqence cfg files for y4m files,
56718 width, height and frame rate are obtained by parsing the y4m file
56721 2013-03-21 nandaku2 <deepthi@multicorewareinc.com>
56723 * Merged in ggopu/xhevc_ggopu (pull request #6)
56728 2013-03-20 ggopu <ggopu>
56730 * build/ConfigureSolution.bat:
56731 Script is for To Build only Visual Stdio Solutions for All Visual
56732 Studio Compilers or any Specific Visual Studio Compiler
56735 * build/ConfigureSolution.bash:
56736 Script is for To Build Only Solutions for All MinGW Compilers or Any
56737 Specific MinGW Compilers
56740 * build/ConfigureBuild.bat:
56741 Script is for To Build Bin and Solutions for All the Visual Studio
56742 Compilers or any Specific Visual Studio Compiler
56745 * build/ConfigureBuild.bash:
56746 Script is used to Configure the Solution and Build the Bin for all
56747 MinGW Compilers - MingW, UNIX and MSYS
56750 2013-03-21 Steve Borho <steve@borho.org>
56752 * source/encoder/threadpool.cpp:
56753 add MACOS cpu number detection
56755 This doesn't imply we care about MacOS, only that I found code for
56759 2013-03-21 nandaku2 <deepthi@multicorewareinc.com>
56761 * Merged in mandarmcw/xhevc_mandar (pull request #5)
56763 Functions vectorized stage 1
56766 2013-03-20 mandarmcw <mandarmcw>
56768 * source/Lib/TLibCommon/CMakeLists.txt,
56769 source/Lib/TLibCommon/TComRdCost.cpp,
56770 source/Lib/TLibCommon/TypeDef.h, source/encoder/TComRdCost_SSE.cpp:
56771 Functions vectorized stage 1 : TcomRdCost::xGetSAD* (Replace * with
56772 the numbers - 8, 16, 32, 64, 12, 24) Changes:-
56773 * Defined a macro ENABLE_VECTOR for enabling the vectorized function
56775 * Addedd file source/encoder/TComRdCost_SSE.cpp to Cmakelists file
56778 2013-03-19 Mandar Gurav <mandar@multicorewareinc.com>
56780 * cfg/encoder_intra_main.cfg, cfg/encoder_intra_main10.cfg,
56781 cfg/encoder_lowdelay_P_main.cfg, cfg/encoder_lowdelay_P_main10.cfg,
56782 cfg/encoder_lowdelay_main.cfg, cfg/encoder_lowdelay_main10.cfg,
56783 cfg/encoder_randomaccess_main.cfg,
56784 cfg/encoder_randomaccess_main10.cfg:
56785 Merged multicoreware/xhevc into default
56788 * Merged multicoreware/xhevc into default
56791 2013-03-19 mandarmcw <mandarmcw>
56793 * source/encoder/TComRdCost_SSE.cpp:
56794 Updated all file names with *_SSE
56797 * source/encoder/TComRdCost_SSE.cpp:
56798 New TComRdCost.cpp file with Vectorization.
56801 * source/Lib/TLibCommon/TComRdCost.cpp:
56805 * source/Lib/TLibCommon/TComRdCost.cpp:
56809 * source/Lib/TLibCommon/TComRdCost.cpp:
56810 Discard changes. Revert back to original source
56813 2013-03-19 Mandar Gurav <mandar@multicorewareinc.com>
56815 * Merged multicoreware/xhevc/default (954436fbb3df) into default
56818 2013-03-19 mandarmcw <mandarmcw>
56820 * source/Lib/TLibCommon/TComRdCost.cpp:
56821 Functions vectorized stage 1 : TcomRdCost::xGetSAD* (Replace * with
56822 the numbers - 8, 16, 32, 64, 12, 24)
56825 2013-03-20 Steve Borho <steve@borho.org>
56827 * source/encoder/threadpool.cpp:
56828 threadpool: add CPU core count detection, remove need for friend
56832 * build/buildSolution.bash:
56833 switch build/buildSolution.bash to unix EOLN, no behavior change
56836 * source/encoder/threadpool.cpp, source/encoder/threadpool.h:
56837 threadpool: add worker thread implementation, non-blocking idle list
56840 * source/App/README.txt, source/Lib/README.txt,
56841 source/VectorClass/README.txt:
56842 add README files describing where various code originated
56845 * source/VectorClass/CMakeLists.txt:
56846 cmake: update name of VectorClass lib
56850 ignore Mercurial merge/patch remnants
56853 * source/CMakeLists.txt, source/Lib/CMakeLists.txt,
56854 source/Lib/TVectorClass/CMakeLists.txt,
56855 source/Lib/TVectorClass/dispatch_example.cpp,
56856 source/Lib/TVectorClass/instrset.h,
56857 source/Lib/TVectorClass/instrset_detect.cpp,
56858 source/Lib/TVectorClass/special/complexvec.h,
56859 source/Lib/TVectorClass/special/decimal.h,
56860 source/Lib/TVectorClass/special/quaternion.h,
56861 source/Lib/TVectorClass/special/vector3d.h,
56862 source/Lib/TVectorClass/special/vectormath.h,
56863 source/Lib/TVectorClass/vectorclass.h,
56864 source/Lib/TVectorClass/vectorf128.h,
56865 source/Lib/TVectorClass/vectorf256.h,
56866 source/Lib/TVectorClass/vectorf256e.h,
56867 source/Lib/TVectorClass/vectori128.h,
56868 source/Lib/TVectorClass/vectori256.h,
56869 source/Lib/TVectorClass/vectori256e.h,
56870 source/VectorClass/CMakeLists.txt,
56871 source/VectorClass/dispatch_example.cpp,
56872 source/VectorClass/instrset.h,
56873 source/VectorClass/instrset_detect.cpp,
56874 source/VectorClass/special/complexvec.h,
56875 source/VectorClass/special/decimal.h,
56876 source/VectorClass/special/quaternion.h,
56877 source/VectorClass/special/vector3d.h,
56878 source/VectorClass/special/vectormath.h,
56879 source/VectorClass/vectorclass.h, source/VectorClass/vectorf128.h,
56880 source/VectorClass/vectorf256.h, source/VectorClass/vectorf256e.h,
56881 source/VectorClass/vectori128.h, source/VectorClass/vectori256.h,
56882 source/VectorClass/vectori256e.h:
56883 move TVectorClass folder from Lib/ folder to source/VectorClass
56886 * source/CMakeLists.txt, source/Lib/CMakeLists.txt,
56887 source/Lib/PPA/CMakeLists.txt, source/Lib/PPA/ppa.cpp,
56888 source/Lib/PPA/ppa.h, source/Lib/PPA/ppaApi.h,
56889 source/Lib/PPA/ppaCPUEvents.h, source/PPA/CMakeLists.txt,
56890 source/PPA/ppa.cpp, source/PPA/ppa.h, source/PPA/ppaApi.h,
56891 source/PPA/ppaCPUEvents.h:
56892 move PPA from Lib/ folder
56895 2013-03-20 sumalatha <sumalatha>
56900 * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg:
56901 included few configurations like deblock filter, quantisation,
56902 motion search etc with default value in both cfg file
56905 2013-03-20 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
56907 * Merged multicoreware/xhevc into default
56910 * Merged multicoreware/xhevc into default
56913 2013-03-19 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
56915 * Merged multicoreware/xhevc into default
56918 2013-03-19 MCW <MCW@MCW-PC.Belkin>
56920 * cfg/encoder_intra_main.cfg, cfg/encoder_intra_main10.cfg,
56921 cfg/encoder_lowdelay_P_main10.cfg, cfg/encoder_lowdelay_main.cfg,
56922 cfg/encoder_lowdelay_main10.cfg, cfg/encoder_randomaccess_main.cfg,
56923 cfg/encoder_randomaccess_main10.cfg:
56924 Deleting redundant cfg files
56930 * cfg/encoder_lowdelay_P_main.cfg:
56931 Removing encoder cfg file
56934 * cfg/encoder_I_15P.cfg, cfg/encoder_all_I.cfg:
56935 included the two config files for testing. "encoder_all_I.cfg"
56936 encodes all frames as I frames. "encoder_I_15P.cfg" encodes "I"
56937 frame followed by 15 "P" frames. This pattern is followed for entire
56941 2013-03-19 Sumalatha Polureddy <sumalatha@multicorewareinc.com>
56943 * Merged multicoreware/xhevc/default (954436fbb3df) into default
56946 2013-03-20 nandaku2 <deepthi@multicorewareinc.com>
56948 * Merged in ggopu/xhevc_ggopu (pull request #2)
56950 New Script for To build the Windows Solution / Make files for all
56951 the VS and MSYS Compilers
56954 2013-03-19 ggopu <ggopu>
56956 * build/buildSolution.bash:
56957 New Script for To build the Windows Solution / Make files for all
56958 the VS and MSYS Compilers
56961 2013-03-19 Steve Borho <steve@borho.org>
56963 * source/encoder/CMakeLists.txt, source/encoder/threadpool.cpp,
56964 source/encoder/threadpool.h:
56965 partially completed thread pool
56967 needs PoolThread::ThreadMain(), ThreadPoolImpl::PokeIdleThread(),
56968 and a shutdown/flush mechanism for the pool
56971 2013-03-19 Deepthi <Deepthi>
56976 2013-03-18 Deepthi <Deepthi>
56978 * source/Lib/TLibCommon/TComRdCost.h:
56979 Backed out changeset: db7ddb189d7d
56982 * source/Lib/TLibCommon/TComRdCost.h:
56986 2013-03-19 Steve Borho <steve@borho.org>
56988 * source/encoder/threadpool.h:
56989 threadpool: stub in interfaces for the thread pool and job providers
56992 2013-03-18 Steve Borho <steve@borho.org>
56994 * source/encoder/threading.h:
56995 threading: remove copy assignment operator body
56997 I want a compile error generated if it is attempted
57000 * source/encoder/CMakeLists.txt:
57001 cmake: remove redundant lib prefix
57003 This was building liblibx265
57006 * source/encoder/threading.cpp, source/encoder/threading.h:
57007 threading: fix compile problems with gcc on Linux
57010 * source/App/TAppEncoder/TAppEncCfg.cpp,
57011 source/App/TAppEncoder/TAppEncCfg.h,
57012 source/App/TAppEncoder/TAppEncTop.cpp,
57013 source/Lib/TLibCommon/SEI.cpp, source/Lib/TLibCommon/SEI.h,
57014 source/Lib/TLibCommon/TComBitStream.cpp,
57015 source/Lib/TLibCommon/TComBitStream.h,
57016 source/Lib/TLibCommon/TypeDef.h, source/Lib/TLibDecoder/SEIread.cpp,
57017 source/Lib/TLibDecoder/SEIread.h,
57018 source/Lib/TLibEncoder/SEIwrite.cpp,
57019 source/Lib/TLibEncoder/SEIwrite.h, source/Lib/TLibEncoder/TEncCfg.h,
57020 source/Lib/TLibEncoder/TEncGOP.cpp,
57021 source/Lib/TLibEncoder/TEncGOP.h,
57022 source/Lib/TLibEncoder/TEncSlice.cpp,
57023 source/Lib/TLibEncoder/TEncSlice.h:
57024 take tip HM 10.0-dev changes (subversion HM-10.0-dev@3381)
57027 * source/CMakeLists.txt, source/encoder/CMakeLists.txt,
57028 source/encoder/threading.cpp, source/encoder/threading.h:
57029 introduce encoder folder and libx265 library project with threading
57033 * source/Lib/TVectorClass/CMakeLists.txt:
57034 cmake: fix comment about /arch:AVX flag, it is only necessary for
57038 * source/Lib/TVectorClass/CMakeLists.txt:
57039 cmake: white-space nits
57042 * source/Lib/CMakeLists.txt, source/Lib/TVectorClass/CMakeLists.txt:
57043 cmake: isolate /arch:AVX compile flag to code which includes vector
57046 When the HM is compiled with /arch:AVX globally, it causes a runtime
57047 exception when run in release mode but not in debug mode. Gah!
57050 * source/Lib/TVectorClass/CMakeLists.txt:
57051 cmake: no need to build dispatch_example.cpp
57054 2013-03-16 Steve Borho <steve@borho.org>
57056 * source/App/TAppDecoder/CMakeLists.txt,
57057 source/App/TAppEncoder/CMakeLists.txt, source/CMakeLists.txt,
57058 source/Lib/CMakeLists.txt:
57059 cmake: enable full GCC warnings globally, disable for HM source
57063 * build/README.txt:
57064 document MSYS build instructions
57067 * source/Lib/CMakeLists.txt:
57068 cmake: MSYS gcc requires -msse4 and does not support AVX2 intrinsics
57072 * source/Lib/CMakeLists.txt:
57073 cmake: VC9 can handle only SSE4.2 intrinsics (closes #1)
57075 gcc was tested under CentOS 6.3 and it compiled fine as-is
57078 2013-03-15 Steve Borho <steve@borho.org>
57080 * source/Lib/CMakeLists.txt:
57081 cmake: VC11 does support AVX2 intrinsics, but lib does not compile
57084 The library does not compile cleanly when AVX2 is enabled, one
57085 warning about an implicit int to bool conversion (easily ignored)
57086 and then an error that a formal parameter cannot be aligned as
57087 requested, which is much more serious. So I'm leaving AVX2 disabled
57090 /arch:AVX2 was not valid, but /arch:AVX seemed to enable AVX2
57094 * source/Lib/CMakeLists.txt, source/Lib/TVectorClass/vectori128.h:
57095 cmake: add INSTRSET definitions for various VC versions (refs #1)
57097 I'm guessing that VC9 supports AVX and VC11 supports AVX2. I'll have
57098 to verify both of them. A similar section must be added for gcc.
57101 2013-03-15 Deepthi <Deepthi>
57103 * source/Lib/CMakeLists.txt:
57107 * source/Lib/CMakeLists.txt, source/Lib/TVectorClass/CMakeLists.txt:
57108 Adding Cmake build scripts for VectorClass
57111 * source/Lib/TVectorClass/dispatch_example.cpp,
57112 source/Lib/TVectorClass/instrset.h,
57113 source/Lib/TVectorClass/instrset_detect.cpp,
57114 source/Lib/TVectorClass/special/complexvec.h,
57115 source/Lib/TVectorClass/special/decimal.h,
57116 source/Lib/TVectorClass/special/quaternion.h,
57117 source/Lib/TVectorClass/special/vector3d.h,
57118 source/Lib/TVectorClass/special/vectormath.h,
57119 source/Lib/TVectorClass/vectorclass.h,
57120 source/Lib/TVectorClass/vectorf128.h,
57121 source/Lib/TVectorClass/vectorf256.h,
57122 source/Lib/TVectorClass/vectorf256e.h,
57123 source/Lib/TVectorClass/vectori128.h,
57124 source/Lib/TVectorClass/vectori256.h,
57125 source/Lib/TVectorClass/vectori256e.h:
57126 Adding GPL vectorclass source files
57129 2013-03-15 ShinYee Chung <shinyee@multicorewareinc.com>
57131 * source/CMakeLists.txt:
57132 Build: Update GCC compilations with more warning options.
57135 2013-03-14 Steve Borho <steve@borho.org>
57137 * source/App/TAppDecoder/CMakeLists.txt,
57138 source/App/TAppEncoder/CMakeLists.txt, source/CMakeLists.txt,
57139 source/Lib/CMakeLists.txt, source/Lib/TLibCommon/CMakeLists.txt,
57140 source/Lib/TLibDecoder/CMakeLists.txt,
57141 source/Lib/TLibEncoder/CMakeLists.txt:
57142 move warning disablings as close as possible to the source that
57145 I want newly added files and folders to have full warnings by
57149 * source/App/TAppDecoder/TAppDecTop.cpp, source/CMakeLists.txt,
57150 source/Lib/TLibCommon/TComDataCU.cpp,
57151 source/Lib/TLibDecoder/TDecCAVLC.cpp,
57152 source/Lib/TLibEncoder/TEncSearch.cpp:
57153 enable maximal warnings (and warnings as errors) on Windows
57155 Manually exclude each warning emitted by the HM code that we chose
57156 to ignore, fix one warning to avoid ignoring all warnings of that
57157 type in the App folder. Explicitly disable some dangerous warnings
57158 directly in the files which emit them, so they can remain enabled
57159 globally to catch bugs as they are created.
57162 2013-03-11 Steve Borho <steve@borho.org>
57164 * source/Lib/PPA/ppa.cpp:
57165 ppa: use API bindings from public Linux PPA package
57167 On Linux the PPA shared library is quiet on success (yeah!) but this
57168 makes it a challenge to debug shared library path problems. So I
57169 added some logging.
57172 2013-03-07 Steve Borho <steve@borho.org>
57174 * source/App/TAppDecoder/CMakeLists.txt,
57175 source/App/TAppEncoder/CMakeLists.txt:
57176 ppa: -ldl is necessary for UNIX systems; not necessarily gcc
57178 For instance, if building on MinGW gcc on Windows one does not need
57179 -ldl since PPA will still not use the dlsym library loader
57182 * source/App/TAppEncoder/TAppEncTop.cpp,
57183 source/Lib/PPA/ppaCPUEvents.h:
57184 ppa: add some very high level CPU events in the encoder
57187 * source/App/TAppDecoder/CMakeLists.txt,
57188 source/App/TAppDecoder/decmain.cpp,
57189 source/App/TAppEncoder/CMakeLists.txt,
57190 source/App/TAppEncoder/encmain.cpp, source/CMakeLists.txt,
57191 source/Lib/CMakeLists.txt, source/Lib/PPA/CMakeLists.txt,
57192 source/Lib/PPA/ppa.cpp, source/Lib/PPA/ppa.h,
57193 source/Lib/PPA/ppaApi.h, source/Lib/PPA/ppaCPUEvents.h:
57194 introduce PPA as cmake build option
57197 * source/App/TAppDecoder/CMakeLists.txt,
57198 source/App/TAppEncoder/CMakeLists.txt, source/CMakeLists.txt,
57199 source/Lib/CMakeLists.txt, source/Lib/TLibCommon/CMakeLists.txt,
57200 source/Lib/TLibDecoder/CMakeLists.txt,
57201 source/Lib/TLibEncoder/CMakeLists.txt:
57202 convert CMakeLists.txt to unix EOLN
57205 * source/Lib/TLibEncoder/CMakeLists.txt:
57206 fix case sensitivity of file paths in TLibEncoder/CMakeLists.txt
57209 2013-03-06 Steve Borho <steve@borho.org>
57211 * source/App/TAppDecoder/CMakeLists.txt,
57212 source/App/TAppEncoder/CMakeLists.txt:
57213 reorder library linking to help gcc ld to resolve dependencies
57216 * source/CMakeLists.txt:
57217 copy gcc warning flags from HM Makefiles
57219 Can now compile without warnings on MSYS on Windows, but cannot link
57222 * .hgignore, COPYING, build/README.txt, cfg/encoder_intra_main.cfg,
57223 cfg/encoder_intra_main10.cfg, cfg/encoder_lowdelay_P_main.cfg,
57224 cfg/encoder_lowdelay_P_main10.cfg, cfg/encoder_lowdelay_main.cfg,
57225 cfg/encoder_lowdelay_main10.cfg, cfg/encoder_randomaccess_main.cfg,
57226 cfg/encoder_randomaccess_main10.cfg, cfg/per-sequence/BQMall.cfg,
57227 cfg/per-sequence/BQSquare.cfg, cfg/per-sequence/BQTerrace.cfg, cfg
57228 /per-sequence/BasketballDrill.cfg, cfg/per-
57229 sequence/BasketballDrillText.cfg, cfg/per-
57230 sequence/BasketballDrive.cfg, cfg/per-sequence/BasketballPass.cfg,
57231 cfg/per-sequence/BlowingBubbles.cfg, cfg/per-sequence/Cactus.cfg,
57232 cfg/per-sequence/ChinaSpeed.cfg, cfg/per-sequence/FourPeople.cfg,
57233 cfg/per-sequence/Johnny.cfg, cfg/per-sequence/Kimono.cfg, cfg/per-
57234 sequence/KristenAndSara.cfg, cfg/per-
57235 sequence/NebutaFestival_10bit.cfg, cfg/per-sequence/ParkScene.cfg,
57236 cfg/per-sequence/PartyScene.cfg, cfg/per-
57237 sequence/PeopleOnStreet.cfg, cfg/per-sequence/RaceHorses.cfg, cfg
57238 /per-sequence/RaceHorsesC.cfg, cfg/per-sequence/SlideEditing.cfg,
57239 cfg/per-sequence/SlideShow.cfg, cfg/per-
57240 sequence/SteamLocomotiveTrain_10bit.cfg, cfg/per-
57241 sequence/Traffic.cfg, cfg/per-sequence/Vidyo1.cfg, cfg/per-
57242 sequence/Vidyo3.cfg, cfg/per-sequence/Vidyo4.cfg, doc/Doxyfile, doc
57243 /README_data-structure.ppt, doc/gop-structure-example.pdf,
57244 doc/mainpage.h, doc/software-manual.pdf,
57245 source/App/TAppDecoder/CMakeLists.txt,
57246 source/App/TAppDecoder/TAppDecCfg.cpp,
57247 source/App/TAppDecoder/TAppDecCfg.h,
57248 source/App/TAppDecoder/TAppDecTop.cpp,
57249 source/App/TAppDecoder/TAppDecTop.h,
57250 source/App/TAppDecoder/decmain.cpp,
57251 source/App/TAppEncoder/CMakeLists.txt,
57252 source/App/TAppEncoder/TAppEncCfg.cpp,
57253 source/App/TAppEncoder/TAppEncCfg.h,
57254 source/App/TAppEncoder/TAppEncTop.cpp,
57255 source/App/TAppEncoder/TAppEncTop.h,
57256 source/App/TAppEncoder/encmain.cpp, source/CMakeLists.txt,
57257 source/Lib/CMakeLists.txt,
57258 source/Lib/TAppCommon/program_options_lite.cpp,
57259 source/Lib/TAppCommon/program_options_lite.h,
57260 source/Lib/TLibCommon/AccessUnit.h,
57261 source/Lib/TLibCommon/CMakeLists.txt,
57262 source/Lib/TLibCommon/CommonDef.h,
57263 source/Lib/TLibCommon/ContextModel.cpp,
57264 source/Lib/TLibCommon/ContextModel.h,
57265 source/Lib/TLibCommon/ContextModel3DBuffer.cpp,
57266 source/Lib/TLibCommon/ContextModel3DBuffer.h,
57267 source/Lib/TLibCommon/ContextTables.h, source/Lib/TLibCommon/NAL.h,
57268 source/Lib/TLibCommon/SEI.cpp, source/Lib/TLibCommon/SEI.h,
57269 source/Lib/TLibCommon/TComBitCounter.h,
57270 source/Lib/TLibCommon/TComBitStream.cpp,
57271 source/Lib/TLibCommon/TComBitStream.h,
57272 source/Lib/TLibCommon/TComCABACTables.cpp,
57273 source/Lib/TLibCommon/TComCABACTables.h,
57274 source/Lib/TLibCommon/TComDataCU.cpp,
57275 source/Lib/TLibCommon/TComDataCU.h,
57276 source/Lib/TLibCommon/TComInterpolationFilter.cpp,
57277 source/Lib/TLibCommon/TComInterpolationFilter.h,
57278 source/Lib/TLibCommon/TComList.h,
57279 source/Lib/TLibCommon/TComLoopFilter.cpp,
57280 source/Lib/TLibCommon/TComLoopFilter.h,
57281 source/Lib/TLibCommon/TComMotionInfo.cpp,
57282 source/Lib/TLibCommon/TComMotionInfo.h,
57283 source/Lib/TLibCommon/TComMv.h,
57284 source/Lib/TLibCommon/TComPattern.cpp,
57285 source/Lib/TLibCommon/TComPattern.h,
57286 source/Lib/TLibCommon/TComPic.cpp, source/Lib/TLibCommon/TComPic.h,
57287 source/Lib/TLibCommon/TComPicSym.cpp,
57288 source/Lib/TLibCommon/TComPicSym.h,
57289 source/Lib/TLibCommon/TComPicYuv.cpp,
57290 source/Lib/TLibCommon/TComPicYuv.h,
57291 source/Lib/TLibCommon/TComPicYuvMD5.cpp,
57292 source/Lib/TLibCommon/TComPrediction.cpp,
57293 source/Lib/TLibCommon/TComPrediction.h,
57294 source/Lib/TLibCommon/TComRdCost.cpp,
57295 source/Lib/TLibCommon/TComRdCost.h,
57296 source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp,
57297 source/Lib/TLibCommon/TComRdCostWeightPrediction.h,
57298 source/Lib/TLibCommon/TComRom.cpp, source/Lib/TLibCommon/TComRom.h,
57299 source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp,
57300 source/Lib/TLibCommon/TComSampleAdaptiveOffset.h,
57301 source/Lib/TLibCommon/TComSlice.cpp,
57302 source/Lib/TLibCommon/TComSlice.h,
57303 source/Lib/TLibCommon/TComTrQuant.cpp,
57304 source/Lib/TLibCommon/TComTrQuant.h,
57305 source/Lib/TLibCommon/TComWeightPrediction.cpp,
57306 source/Lib/TLibCommon/TComWeightPrediction.h,
57307 source/Lib/TLibCommon/TComYuv.cpp, source/Lib/TLibCommon/TComYuv.h,
57308 source/Lib/TLibCommon/TypeDef.h,
57309 source/Lib/TLibDecoder/AnnexBread.cpp,
57310 source/Lib/TLibDecoder/AnnexBread.h,
57311 source/Lib/TLibDecoder/CMakeLists.txt,
57312 source/Lib/TLibDecoder/NALread.cpp,
57313 source/Lib/TLibDecoder/NALread.h,
57314 source/Lib/TLibDecoder/SEIread.cpp,
57315 source/Lib/TLibDecoder/SEIread.h,
57316 source/Lib/TLibDecoder/SyntaxElementParser.cpp,
57317 source/Lib/TLibDecoder/SyntaxElementParser.h,
57318 source/Lib/TLibDecoder/TDecBinCoder.h,
57319 source/Lib/TLibDecoder/TDecBinCoderCABAC.cpp,
57320 source/Lib/TLibDecoder/TDecBinCoderCABAC.h,
57321 source/Lib/TLibDecoder/TDecCAVLC.cpp,
57322 source/Lib/TLibDecoder/TDecCAVLC.h,
57323 source/Lib/TLibDecoder/TDecCu.cpp, source/Lib/TLibDecoder/TDecCu.h,
57324 source/Lib/TLibDecoder/TDecEntropy.cpp,
57325 source/Lib/TLibDecoder/TDecEntropy.h,
57326 source/Lib/TLibDecoder/TDecGop.cpp,
57327 source/Lib/TLibDecoder/TDecGop.h,
57328 source/Lib/TLibDecoder/TDecSbac.cpp,
57329 source/Lib/TLibDecoder/TDecSbac.h,
57330 source/Lib/TLibDecoder/TDecSlice.cpp,
57331 source/Lib/TLibDecoder/TDecSlice.h,
57332 source/Lib/TLibDecoder/TDecTop.cpp,
57333 source/Lib/TLibDecoder/TDecTop.h,
57334 source/Lib/TLibEncoder/AnnexBwrite.h,
57335 source/Lib/TLibEncoder/CMakeLists.txt,
57336 source/Lib/TLibEncoder/NALwrite.cpp,
57337 source/Lib/TLibEncoder/NALwrite.h,
57338 source/Lib/TLibEncoder/SEIwrite.cpp,
57339 source/Lib/TLibEncoder/SEIwrite.h,
57340 source/Lib/TLibEncoder/SyntaxElementWriter.cpp,
57341 source/Lib/TLibEncoder/SyntaxElementWriter.h,
57342 source/Lib/TLibEncoder/TEncAnalyze.cpp,
57343 source/Lib/TLibEncoder/TEncAnalyze.h,
57344 source/Lib/TLibEncoder/TEncBinCoder.h,
57345 source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp,
57346 source/Lib/TLibEncoder/TEncBinCoderCABAC.h,
57347 source/Lib/TLibEncoder/TEncBinCoderCABACCounter.cpp,
57348 source/Lib/TLibEncoder/TEncBinCoderCABACCounter.h,
57349 source/Lib/TLibEncoder/TEncCavlc.cpp,
57350 source/Lib/TLibEncoder/TEncCavlc.h,
57351 source/Lib/TLibEncoder/TEncCfg.h, source/Lib/TLibEncoder/TEncCu.cpp,
57352 source/Lib/TLibEncoder/TEncCu.h,
57353 source/Lib/TLibEncoder/TEncEntropy.cpp,
57354 source/Lib/TLibEncoder/TEncEntropy.h,
57355 source/Lib/TLibEncoder/TEncGOP.cpp,
57356 source/Lib/TLibEncoder/TEncGOP.h,
57357 source/Lib/TLibEncoder/TEncPic.cpp,
57358 source/Lib/TLibEncoder/TEncPic.h,
57359 source/Lib/TLibEncoder/TEncPreanalyzer.cpp,
57360 source/Lib/TLibEncoder/TEncPreanalyzer.h,
57361 source/Lib/TLibEncoder/TEncRateCtrl.cpp,
57362 source/Lib/TLibEncoder/TEncRateCtrl.h,
57363 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp,
57364 source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h,
57365 source/Lib/TLibEncoder/TEncSbac.cpp,
57366 source/Lib/TLibEncoder/TEncSbac.h,
57367 source/Lib/TLibEncoder/TEncSearch.cpp,
57368 source/Lib/TLibEncoder/TEncSearch.h,
57369 source/Lib/TLibEncoder/TEncSlice.cpp,
57370 source/Lib/TLibEncoder/TEncSlice.h,
57371 source/Lib/TLibEncoder/TEncTop.cpp,
57372 source/Lib/TLibEncoder/TEncTop.h,
57373 source/Lib/TLibEncoder/WeightPredAnalysis.cpp,
57374 source/Lib/TLibEncoder/WeightPredAnalysis.h,
57375 source/Lib/TLibVideoIO/TVideoIOYuv.cpp,
57376 source/Lib/TLibVideoIO/TVideoIOYuv.h, source/Lib/libmd5/MD5.h,
57377 source/Lib/libmd5/libmd5.c, source/Lib/libmd5/libmd5.h,
57378 source/compat/msvc/stdint.h:
57379 commit JCT-VC HM source with cmake based build scripts
57381 HM-10.0-dev@3375 with some parts trimmed and some trivial folder
57384 https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/