summaryrefslogtreecommitdiff
path: root/vp8/encoder
AgeCommit message (Collapse)Author
2013-03-27Merge branch 'master' into experimentalJohn Koleszar
Pick up VP8 encryption, quantization changes, and some fixes to vpxenc Conflicts: test/decode_test_driver.cc test/decode_test_driver.h test/encode_test_driver.cc vp8/vp8cx.mk vpxdec.c vpxenc.c Change-Id: I9fbcc64808ead47e22f1f22501965cc7f0c4791c
2013-03-22Remove gcc-specific __label__Shimon Doodkin
Use unique names and ditch the local label declaration. Visual Studio does not support it. https://code.google.com/p/webm/issues/detail?id=561 Change-Id: Ica643cf5abb56ee6156371f5bf73fdeb58014422
2013-03-20Removed mode_chosen_countsScott LaVarnway
This eliminates a tsan warning. Change-Id: I204d109b12adb4e347762e63d12859244f28d1a9
2013-03-18ENTROPY_STATS -> VP8_ENTROPY_STATS in vp8/.Ronald S. Bultje
Change-Id: I0027483e47900de84394de47c3273cc8292e6119
2013-03-05vp8: clamp probability valuesJames Zern
fixes out of bounds reads on vp8_prob_cost table. present since: 217591f Added rate-targeted temporal scalability v0.9.7-p1-71-g217591f Change-Id: I9194b773098a381f1e3f67bd3307f05df27c24fd
2013-03-04Rename quantize_sse2.c to quantize_sse2_intrinsics.c to avoid collision.Ronald S. Bultje
Change-Id: I5637d491eb6a9b7633f72e03fd9df72131eeb121
2013-03-02prefix vp8 asm_{com,dec,enc}_offsets filesJames Zern
make them symmetrical with the generated output and their vp9 counterparts Change-Id: I72cc97c4d33d713dff620a6d7cc25955266216fc
2013-03-01Merge "Use intrinsics for sse2 regular quantize"Johann
2013-02-28Use intrinsics for sse2 regular quantizeJohann
Remove dependency of this function on asm_offsets. ssse3/sse4 next. Change quant_shift calculation so it be done using SIMD. Pre-calculate as much as possible to simplify EOB selection. Take advantage of qcoeff being zero'd by tying the if statements together. Speed parity with previous implementation with gcc x86_64 linux Change-Id: Ife97556a1eca3a74b09def1a3d04084974dff1fb
2013-02-28firstpass.c: correct casting around gf_group_bitsJames Zern
gf_group_bits is int64_t remove casts to int. Change-Id: I3b4225905041fac9af9fdfcbcb6f1c357ea4b593
2013-02-28Merge "vp8 fast quantizer with intrinsics"Johann
2013-02-27Merge "vp8/encoder/mcomp.c: remove an unused variable"James Zern
2013-02-27Fix --as=nasm compatibility for new asm code.Jan Kratochvil
s/movd/movq/ Change-Id: Id1a56de91551f8dc796f14f1056c565dfc1ba626
2013-02-26vp8 fast quantizer with intrinsicsJohann
Reduce dependency on offsets file by using intrinsics. Disassembly shows improvements over previous assembly specifically in register management, preloading, and {pro,epi}log. Speed change is within margin of error. Change-Id: I8131b4b4d62bc092407fe847bfaa8f2c0e1384ff
2013-02-22vp8/encoder/mcomp.c: remove an unused variableJames Zern
Change-Id: I980da3c70f7cee1b723ede0ed2ae527ac7cd6a51
2013-02-22Merge "vp8: make gf_group_bits 64-bit"James Zern
2013-02-22vp8: make gf_group_bits 64-bitJames Zern
avoids signed integer overflow; matches kf_group_bits Change-Id: I193145cdc4fa53e70fba0a1731a03eb1a574931d
2013-02-22vp8_first_pass(): avoid floating point div by 0James Zern
Change-Id: Id1e6a12db6b0c1d3f64ead8fd8834aadc30fbed2
2013-01-31Merge "Add support for x64 and win64 yasm flags."John Koleszar
2013-01-31Add support for x64 and win64 yasm flags.Frank Galligan
Some projects must define only win64 for Windows 64bit builds using yasm. Change-Id: I1d09590d66a7bfc8b4412e1cc8685978ac60b748
2013-01-31Fix for divide by zero in vp8_adjust_key_frame.Marco Paniconi
Change-Id: I3bf9bdd95abfd287fbcb644f4fb85fb9204be95a
2013-01-25Bug fix: error-concealment enabled changed postproc outputScott LaVarnway
When error concealment is enabled, it swaps the mi and prev_mi ptrs after each frame is decoded. The postproc uses the mi ptr for the mode info context. Now the postproc will use the correct mode info context. Change-Id: I537ae5450f319c624999b44525bb52bb30047b7b
2013-01-14Merge branch 'experimental' of review:webm/libvpxJohn Koleszar
Change-Id: Ib2c2236349c2ae8ee81bd01c5067dddcbac713ca
2013-01-11Upstream changes from Chromium Android Clang build.Frank Galligan
See https://codereview.chromium.org/11875006/ Change-Id: Ied2a17df2b3222635f84aef120eaa9feb53750d2
2013-01-08Merge vp9-preview changes into experimental branchJohn Koleszar
Incorportate vp9-preview changes by merging master branch into experimental. Conflicts: test/test.mk vp9/common/vp9_filter.c vp9/common/vp9_idctllm.c vp9/common/vp9_invtrans.h vp9/common/vp9_mbpitch.c vp9/common/vp9_rtcd_defs.sh vp9/common/vp9_systemdependent.h vp9/common/vp9_type_aliases.h vp9/common/x86/vp9_asm_stubs.c vp9/common/x86/vp9_subpixel_mmx.asm vp9/decoder/vp9_decodframe.c vp9/decoder/vp9_dequantize.c vp9/decoder/vp9_dequantize.h vp9/decoder/vp9_onyxd_int.h vp9/encoder/vp9_bitstream.c vp9/encoder/vp9_encodeframe.c vp9/encoder/vp9_rdopt.c Change-Id: I17f51c3666d1b59cf1a699f87607cbc5d30a87c5
2013-01-08Merge "Remove cpi parameter from update_mvcount()"Scott LaVarnway
2012-12-27Merge branch 'vp9-preview' of review:webm/libvpxJohn Koleszar
Merge the vp9-preview branch into master. Change-Id: If700b9054676f24bed9deb59050af546c1ca5296
2012-12-20add emmintrin_compat.h for builds with gcc < 4James Zern
Change-Id: If7822e6fcd0d3568b934032322b19ba3e401df26
2012-12-18Changed MAX_PSNR to 100Yaowu Xu
The MAX_PSNR was used to assign a "psnr" number when the mse is close to zero. The direct assignment is used to prevent divide by zero in computation. Changing it from 60 to 100 to be consistent against what is being done in VP9 Change-Id: I4854ffc4961e59d372ec8005a0d52ca46e3c4c1a
2012-12-11Merge "Bug fix: use correct count_mb_ref_frame_usage"Scott LaVarnway
2012-12-10Bug fix: use correct count_mb_ref_frame_usageScott LaVarnway
Change-Id: I9702f3e9ed664c2537e7874698c944620b07fff8
2012-12-10Moved error_bins to macroblock structScott LaVarnway
Change-Id: Ic9956ddf1c2ddffcf7be7fdfc23ad9a2426fc47a WIP: Fixing unsafe threading in VP8 encoder.
2012-12-10Merge "Moved zbin_mode_boost to macroblock struct"Scott LaVarnway
2012-12-10Update correct macroblock quantize_b function ptrsScott LaVarnway
WIP: Fixing unsafe threading in VP8 encoder. Use the passed in macroblock instead of the macroblock located in cpi. Change-Id: I1bfa07de6ea463f2baeaae1bae5d950691bc4afc
2012-12-10Moved zbin_mode_boost to macroblock structScott LaVarnway
Fixing unsafe threading in VP8 encoder. Change-Id: Ibf4c89a2043654834747811bc11eb283de0bb830
2012-12-10Moved zbin_over_quant to macroblock structScott LaVarnway
Change-Id: I76fe20ade099573997404b8733cf7f79e82fb21e WIP: Fixing unsafe threading in VP8 encoder.
2012-12-07Moved denoiser frame copy/updates out of loopfilter threadScott LaVarnway
The loopfilter thread from the previous frame can be running while starting the current frame. cpi->Source will change during this time causing the wrong data to be copied. The refresh_x_frame flags also change, which will cause incorrect updates of the denoised buffers. Change-Id: I7d982b4fcb40a0610801332aa85f3b792c64e4c3
2012-12-06Merge "added work buffer for denoiser"Scott LaVarnway
2012-12-05added work buffer for denoiserScott LaVarnway
The denoiser was writing to LAST_FRAME buffer. If LAST_FRAME isn't being updated, the reference frame buffers were out of sync between the encoder and the denoised raw buffers. This patch resolves the discrepancy by always writing to a work buffer (INTRA_FRAME) and then copying from that buffer to any buffers that needs to be updated. Change-Id: I6dd855b9749978b542bc3d515914d5f16faf25df
2012-12-05Move vp8_scale_frame to vpx namespaceJohann
Change-Id: I92d613e89c8f1174eca0789116120bfa20c25c28
2012-12-05Use 'vpx_scale' consistentlyJohann
Change-Id: I178352813d2b8702d081caf405de9dbad9af2cc3
2012-12-05Disable background update on non-base layer framesAdrian Grange
Multi-threaded code was not updated to disable background refresh for non base-layer frames at the time it was disabled in the main C-code. Change-Id: Id6cc376130b7def046942121cfd0526b4f0a71d4
2012-12-05Removed check_gf_quality()Scott LaVarnway
and various unused members in VP8_COMP along with other code cleanups. Change-Id: I56c6c0a77a51f5ac5cbd6071017bcbfd2623b7df
2012-12-04Moving mbs_tested_so_far, mode_test_hit_counts to macroblock structScott LaVarnway
Change-Id: Ifa78c0a953fab3e5dd7af0446924846c7022cd09
2012-12-04Remove cpi parameter from update_mvcount()Scott LaVarnway
cpi is no longer used . Change-Id: Ie86b994059e506cc1944212e12d4f75c041c1d15
2012-12-03Merge "Moving rd_thresh_mult, rd_threshes to macroblock struct"Scott LaVarnway
2012-12-03Merge "Moving count_mb_ref_frame_usage to macroblock struct"Scott LaVarnway
2012-11-26Updates to qp-regulate and rate correction factor.Marco Paniconi
Don't use the switch to gf_rate_correction factor when temporal layers is used (i.e., cpi->oxcf.number_of_layers > 1). In temporal layers, we prefer to avoid this as any frame (e.g., base layer frame at anchor of pattern) may update both last and golden (and possibly alt-ref), and so we would get different rate correction factors within the same layer. This change will make sure one rate correction factor exists for each layer. Also, made some other code in qp-regulate that depends on alt/golden update specific to the 1 layer case. Change-Id: I41a6d085bd477f9307ef3b3c311695214273892c
2012-11-15support building vp8 and vp9 into a single libJohn Koleszar
Change-Id: Ib8f8a66c9fd31e508cdc9caa662192f38433aa3d
2012-11-07Rough merge of master into experimentalJohn Koleszar
Creates a merge between the master and experimental branches. Fixes a number of conflicts in the build system to allow *either* VP8 or VP9 to be built. Specifically either: $ configure --disable-vp9 $ configure --disable-vp8 --disable-unit-tests VP9 still exports its symbols and files as VP8, so that will be resolved in the next commit. Unit tests are broken in VP9, but this isn't a new issue. They are fixed upstream on origin/experimental as of this writing, but rebasing this merge proved difficult, so will tackle that in a second merge commit. Change-Id: I2b7d852c18efd58d1ebc621b8041fe0260442c21