summaryrefslogtreecommitdiff
path: root/vp8/encoder/onyx_if.c
AgeCommit message (Collapse)Author
2014-07-30Fix to Visual Studio build error.Marco Paniconi
signed/unsigned mismatch from commit: 918011. Change-Id: I6b9bb3618f8e72ea4cc0e6ba8fb9b13676985ed0
2014-07-29vp8: Add an aggressive denoising mode.Marco Paniconi
Change-Id: Ie4686e1b15af6bcc8d59d585bbeb996f38224522
2014-07-24vp8: reduce refresh_max_mbs_perframe with fewer layers.Marco Paniconi
Change-Id: Ib39cc0218a1f232c0cde8e99ca3319c17274bd48
2014-07-22Merge "vp8 denoiser fix: Update denoised altref on key frame."Marco Paniconi
2014-07-22vp8 denoiser fix: Update denoised altref on key frame.Marco Paniconi
On a key frame, the denoised-running_avg for all references frames should be updated with the source. The altref denoised-running_avg was not being updated on key frame, this fixes that. Change-Id: Ie02cd0ba5383e013af59240e6df7e185d11703f6
2014-07-21Add -DNDEBUG when config option debug is disabledYunqing Wang
For gcc, when libvpx config option debug is disabled, added the flag -DNDEBUG to disable the assertions in libvpx for some speedup. Change-Id: Ifcb7b9e8ef5cbe5d07a24407b53b9a2923f596ee
2014-07-10call vp[89]_clear_system_state after longjmpJames Zern
restore the environment post encode/decode failure Change-Id: I3c72e2260a616432eaf1f9545d4fb4d8e45cc7b0
2014-06-13Allow for deblocking temporal-denoised signal.Marco Paniconi
Allow for an option to selectively apply the deblocking loop filter to the denoised raw block, based on the denoised state (no-filter, filter with zero motion, or filter with non-zero motion) of the current block and its upper and left denoised block. This helps to reduce some blocking artifacts from the motion-compensated denoising. Change-Id: I0ac4e70076df69a98c5391979e739a2681e24ae6
2014-06-05Added OUTPUT_YUV_DENOISED CFLAG to VP8 encoderTim Kopp
When this compiler flag is enabled, the encoder will write a denoised, uncompressed, version of the input to denoised.yuv. Change-Id: Ie0247f76b23219d95fe97dd70f23e097d742c249
2014-05-30Fixed OUTPUT_YUV_SRC behavior for VP8Tim Kopp
By enabling the OUTPUT_YUV_SRC compiler flag, the encoder will write the raw input to bd.yuv. The functionality was mostly implemented, but in its previous state did not compile. Change-Id: Ia331ad0f4c6e6f9f51e8d42cd33ba8cc146b3dbf
2014-05-05Fix generic-gnu target buildAdrian Grange
Added macro to conditionally compile some of the post-processing functions only when CONFIG_POSTPROC is defined. This was causing the build for the generic-gnu target to fail. Change-Id: Ibfa447feceb7a0528135025f105be48f97e9965c
2014-04-29Remove VP8 save_reg_neon functionYunqing Wang
This patch did a cleanup following the commit "Save NEON registers in VP8 NEON functions". The pushing/poping of callee-saved NEON registers was moved into individual NEON functions. Therefore, we don't need to save those registers at the beginning of codec. The related code was removed. Change-Id: I5648166514fc9beffb780aa138495597731f49ea
2014-04-10Fix onyx_if.c to not to redefine M_LOG2_E if it's already defined.Sergey Ulanov
This fixes warning when compiling libvpx for PNaCl. PNaCl's version of math.h defines M_LOG2_E. Change-Id: Iba9450441538e9f82447ad2936bea94d21bafdf1
2014-03-15onyx_if: quiet -Warray-bounds warningsJames Zern
'number_of_layers' is range checked before assignment from the user config. Change-Id: Idefdaceb8736f126fa7c647da2b047dafb56ea52
2014-02-26Adding vpx_sse_to_psnr() function.Dmitry Kovalev
Removing all copies of identical vp8_mse2psnr/vp9_mse2psnr functions. Using vpx_sse_to_psnr() instead in all places. Change-Id: I15beef9834d43d8fc8a8a7a2d1fc5de3d658fed8
2014-02-14Cleanup some comments.Adrian Grange
Change-Id: I568861ba1d43620865ad9a98a97eef37a51fd856
2014-01-09Keep buffer clipped to maximum in change_config.Marco Paniconi
Under a configuration change, where the bitrate suddenly decreases, the buffer level may be larger than maximum allowed (for that first frame to be encoded after change_config). This change keeps it clipped to its maximum level. Change-Id: I4d0b5b3d1fd8148600dd39e02bd630c9464baba5
2013-12-11Fix the printf format stringAdrian Grange
There were two problems with the format string in the conditionally compiled print statement. It referred to a variable that is no longer available and it used incorrect format specifiers. Change-Id: I315e22bea2691bb535a2e33f5ca206fc55287a37
2013-11-19Undo the vp8 change in "Reduce loop filter in..."Marco Paniconi
Patch in https://gerrit.chromium.org/gerrit/#/c/41176/ was merged into repository by mistake. Change-Id: I235c71af26bb2d72698c8aac2301e5a7e9c5f960
2013-11-19Merge "Reduce loop filter in cyclic refresh."Jim Bankoski
2013-11-01Fixes to buffer update for temporal layers.Marco Paniconi
When a frame is dropped due to |buffer_level| < 0 for a given temporal layer, the buffer level for the upper temporal layers was not updated (in calc_pframe_target_size()). This change fixes that. Also, use the layer per-frame-bandwidth for updating the buffer level of the higher layers when a frame is dropped. Change-Id: I660c23f3229b47e9d124a950b480314b4307c5a8
2013-07-18VP[89]_COMMON: remove golden/altref frame countsJames Zern
these are only used in the encoder. frames_since_golden / frames_till_alt_ref_frame -> VP[89]_COMP Change-Id: Ie14a6f46987bced685ddb449b85dc261caba6dfe
2013-07-16use consistent framerate namingJames Zern
s/frame_rate/framerate/g Change-Id: I6fc3e088e419c5f46e3a9390dd8a2cad2677a2fc
2013-07-12yv12config: remove YUV_TYPEJames Zern
this was never fleshed out in the context of VP8, for which it was added. for VP9 it has no meaning. Change-Id: Iba2ecc026d9e947067b96690245d337e51e26eff
2013-06-12Fix compile warnings on windows.Frank Galligan
Change-Id: If74bc6110016bc75ea3883ab136fbbac88f6a913
2013-06-11Merge branch 'master' into experimentalJohn Koleszar
Change-Id: Ie648398b82f7311143709f55c0e30ba452f50eff
2013-06-07Specify mv neighborhood for block larger than 8x8Yaowu Xu
The new neighorbhood adapts to the shape and size of the block type cif +.16% stdhd +.13% Change-Id: I978db58278e9ae3fbd6726ef831bdfc5f5f37d02
2013-06-05Fixed crash in VP8/CQTestScott LaVarnway
If the codec was configured with --enable-internal-stats, a seg fault would occur. This patch fixes the problem. Change-Id: Id10a577973d185e93037c59e5b36bebdded327da
2013-05-21Fixes for run-time change in temporal layers.Marco Paniconi
Use a separate counter for resetting the pattern upon a change in temporal layers, and set/initialize the layer context parameters for the new temporal layer state. Also moved the setting of layer configuation in init_config() to a separate function. Change-Id: Ic7fc023a1e5490020509e107004645098f4c00f0
2013-04-26Merge branch 'master' into experimentalJohann
Conflicts: vp9/common/vp9_findnearmv.c vp9/common/vp9_rtcd_defs.sh vp9/decoder/vp9_decodframe.c vp9/decoder/x86/vp9_dequantize_sse2.c vp9/encoder/vp9_rdopt.c vp9/vp9_common.mk Resolve file name changes in favor of master. Resolve rdopt changes in favor of experimental, preserving the newer experiments. Change-Id: If51ed8f457470281c7b20a5c1a2f4ce2cf76c20f
2013-04-19Merge "Removed shadow warnings : bitstream.c encodeframe.c onyx_if.c"Scott LaVarnway
2013-04-15Initial addition of multiple ARF framesAdrian Grange
This is work-in-progress, it implements multiple ARF encoding behind an experimental flag. It adds the ability to insert multiple ARF frames into a single ARF group. This patch implements the reordering of the coded frames, and implements a fixed-length coding pattern. It applies a fixed quantizer strategy based on where the frame is in the coding sequence. Further work to modify the rate control strategy is ongoing and will be submitted via a set of future patches. In this first step, each ARF group is recursively bisected and an ARF frame added at that position in the sequence. The recursion continues until ARF frames are within MIN_GF_INTERVAL frames. The code sits behind the "multiple-arf" experimental flag ("CONFIG_MULTIPLE_ARF"). The experimental flag "oneshotq" ("CONFIG_ONESHOTQ") also needs to be enabled for this patch to work correctly. Change-Id: Ie473b05ebb43ac473c0cfb659b2b8042823085e2
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-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-14Removed shadow warnings : bitstream.c encodeframe.c onyx_if.cScott LaVarnway
ratectrl.c and quantize.c Adding -Wshadow to CFLAGS generated a bunch of warnings. This patch removes these warnings. Change-Id: I8c8faa9fde57c1c49662d332a90bc8d9a0f4a2ce
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-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-11Reduce loop filter in cyclic refresh.Marco Paniconi
Reduce the delta loop filter for blocks that are cyclicly refreshed. This helps to reduce the dot artifacts that may happen when zero_mv blocks are repeatedly loop-filtered. This change, along with the fix in: https://gerrit.chromium.org/gerrit/#/c/40409/ helps to reduce this artifact, but cannot remove the dot artifacts completely. Change-Id: I44675e7a0f59295b648a3b7d4956fb301231a97f
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
2012-12-27Merge branch 'vp9-preview' of review:webm/libvpxJohn Koleszar
Merge the vp9-preview branch into master. Change-Id: If700b9054676f24bed9deb59050af546c1ca5296
2012-12-10Moved error_bins to macroblock structScott LaVarnway
Change-Id: Ic9956ddf1c2ddffcf7be7fdfc23ad9a2426fc47a WIP: Fixing unsafe threading in VP8 encoder.
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-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-05Removed check_gf_quality()Scott LaVarnway
and various unused members in VP8_COMP along with other code cleanups. Change-Id: I56c6c0a77a51f5ac5cbd6071017bcbfd2623b7df