summaryrefslogtreecommitdiff
path: root/vp8/encoder/onyx_if.c
AgeCommit message (Collapse)Author
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
2012-12-04Moving mbs_tested_so_far, mode_test_hit_counts to macroblock structScott LaVarnway
Change-Id: Ifa78c0a953fab3e5dd7af0446924846c7022cd09
2012-12-03Merge "Moving rd_thresh_mult, rd_threshes to macroblock struct"Scott LaVarnway
2012-11-15support building vp8 and vp9 into a single libJohn Koleszar
Change-Id: Ib8f8a66c9fd31e508cdc9caa662192f38433aa3d
2012-11-06Moving count_mb_ref_frame_usage to macroblock structScott LaVarnway
Change-Id: I44e4e3869f231ae270cca98c9565f23c512e3ddf
2012-11-06Merge "Removed mb_norm_activity_map"Scott LaVarnway
2012-11-06Moving rd_thresh_mult, rd_threshes to macroblock structScott LaVarnway
Change-Id: I650a593162280ab40e71e527ec6518303e2d5723
2012-11-06Removed mb_norm_activity_mapScott LaVarnway
Not used. Change-Id: I07ba929e3ff82b4b0c86f731769cdf5434c7a816
2012-11-06Moving _error counts to macroblock structScott LaVarnway
Change-Id: I28ac1519d1594801fef9a623cb64598d3d751eb0
2012-10-10post-proc: fix 0 or negative threshold handlingYunqing Wang
If the threshold(limits) <= 0, skipped filtering and copied the frame directly. Also, fixed memory allocation checking. Change-Id: If3d79d5b2bcb71b9777e6eb5cba1384585131e22
2012-10-09Merge "post-proc: deblock filter optimization"Yunqing Wang
2012-10-08post-proc: deblock filter optimizationYunqing Wang
1. Algorithm modification: Instead of having same filter threshold for a whole frame, now we allow the thresholds to be adjusted for each macroblock. In current implementation, to avoid excessive blur on background as reported in issue480(http://code.google.com/p/webm/issues/detail?id=480), we reduce the thresholds for skipped macroblocks. 2. SSE2 optimization: As started in issue479(http://code.google.com/p/webm/issues/detail?id=479), the filter calculation was adjusted for better performance. The c code was also modified accordingly. This made the deblock filter 2x faster, and the decoder was 1.2x faster overall. Next, the demacroblock filter will be modified similarly. Change-Id: I05e54c3f580ccd427487d085096b3174f2ab7e86
2012-10-01Disable keyframe in real time that's placed one frame after a cut.Jim Bankoski
The codec as it stood placed a keyframe one frame after a real cut scene - and ignored datarate and other considerations. TODO: Its possible that we should detect a keyframe and recode the frame ( in certain circumstances) to improve quality. Change-Id: Ia1fd6d90103f4da4d21ca5ab62897d22e0b888a8