summaryrefslogtreecommitdiff
path: root/vp8
AgeCommit message (Collapse)Author
2014-05-03Merge "VP8 for ARMv8 by using NEON intrinsics 12"Johann
2014-05-03Merge "VP8 for ARMv8 by using NEON intrinsics 11"Johann
2014-05-03Merge "VP8 for ARMv8 by using NEON intrinsics 10"Johann
2014-05-03Merge "VP8 for ARMv8 by using NEON intrinsics 09"Johann
2014-05-03VP8 for ARMv8 by using NEON intrinsics 12James Yu
Add sad_neon.c - vp8_sad16x16_neon - vp8_sad16x8_neon - vp8_sad8x8_neon - vp8_sad8x16_neon - vp8_sad4x4_neon Change-Id: I08eaae49ec03fb91b394354660a5df0367cea311 Signed-off-by: James Yu <james.yu@linaro.org>
2014-05-03VP8 for ARMv8 by using NEON intrinsics 11James Yu
Add mbloopfilter_neon.c - vp8_mbloop_filter_horizontal_edge_y_neon - vp8_mbloop_filter_horizontal_edge_uv_neon - vp8_mbloop_filter_vertical_edge_y_neon - vp8_mbloop_filter_vertical_edge_uv_neon Change-Id: Ia9084e0892d4d49412d9cf2b165a0f719f2382d7 Signed-off-by: James Yu <james.yu@linaro.org>
2014-05-03Merge "Remove asm_offsets dependency in quantize_b_ssse3"Johann
2014-05-03VP8 for ARMv8 by using NEON intrinsics 10James Yu
Add loopfiltersimpleverticaledge_neon.c - vp8_loop_filter_bvs_neon - vp8_loop_filter_mbvs_neon Change-Id: I7cf0a161ad4ae37c881b94cc0122f895d3baae79 Signed-off-by: James Yu <james.yu@linaro.org>
2014-05-03VP8 for ARMv8 by using NEON intrinsics 09James Yu
Add loopfiltersimplehorizontaledge_neon.c - vp8_loop_filter_bhs_neon - vp8_loop_filter_mbhs_neon Change-Id: I77f9721b20585da8bf3869a3850ff0ae4b4bfeea Signed-off-by: James Yu <james.yu@linaro.org>
2014-05-03Merge "VP8 for ARMv8 by using NEON intrinsics 08"Johann
2014-05-03Merge "VP8 for ARMv8 by using NEON intrinsics 07"Johann
2014-05-02Merge "Improved intrinsic version of vp8_denoiser_filter_neon"Scott LaVarnway
2014-05-02VP8 for ARMv8 by using NEON intrinsics 08James Yu
Add loopfilter_neon.c - vp8_loop_filter_horizontal_edge_y_neon - vp8_loop_filter_horizontal_edge_uv_neon - vp8_loop_filter_vertical_edge_y_neon - vp8_loop_filter_vertical_edge_uv_neon Change-Id: I50b57dedabd42d2a3c183c1738cc5346f0e71ed8 Signed-off-by: James Yu <james.yu@linaro.org>
2014-05-02VP8 for ARMv8 by using NEON intrinsics 07James Yu
Add iwalsh_neon.c - vp8_short_inv_walsh4x4_neon Change-Id: I8beda6ce11ad8ce9e80cc0a38d40161938359162 Signed-off-by: James Yu <james.yu@linaro.org>
2014-05-02Remove asm_offsets dependency in quantize_b_ssse3Johann
Replace it with some intrinsic code and inline assembly. Change-Id: I81b4df146db3d01039059be7dae31083e2943b97
2014-05-02VP8 for ARMv8 by using NEON intrinsics 06James Yu
Add idct_dequant_full_2x_neon.c - idct_dequant_full_2x_neon ==== Summary of apply VP8 decode patch series ==== Benchmark on Samsung Chromebook, Cortex-A15, 1.7GHz, Dual core Toolchain: linaro-1.13.1-4.8-2014.01 Compile argument: CROSS=arm-linux-gnueabihf- ../libvpx/configure --target=armv7-linux-gcc --prefix=$HOME/out --enable-shared --cpu=cortex-a7 Test argument: vpxdec --summary --noblit ./tears_of_steel_1080p.webm NEON assembly 46.68 (fps) Apply patch 06 46.65, -0.03 Apply patch 07 46.86, +0.21 Apply patch 08 46.58, -0.28 Apply patch 09 46.57, -0.01 Apply patch 10 46.51, -0.06 Apply patch 11 46.13, -0.38 Apply patch 12 45.42, -0.71 Apply patch 13 46.06, +0.64 Apply patch 14 45.19, -0.87 Apply patch 15 45.93, +0.74 Apply patch 16 45.48, -0.45 Apply patch 17 45.84, +0.36 Apply patch 18 45.91, +0.07 <= With all NEON intrinsics patches Total -0.77 fps, 1.65% performance regression Change-Id: I77bfc9eaccfb97b8d401e949ceff8795e26ca6b7 Signed-off-by: James Yu <james.yu@linaro.org>
2014-04-30Improved intrinsic version of vp8_denoiser_filter_neonScott LaVarnway
Used horizonal add instructions instead of adding byte lanes. The encoder performance improved by ~4% for the test clip used. Change-Id: Iaddd10403fcffb5b3f53b1f591ab2fe0ff002c08
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-28Save NEON registers in VP8 NEON functionsYunqing Wang
The recent compiler can generate optimized code that uses NEON registers for various operations besides floating-point operations. Therefore, only saving callee-saved registers d8 - d15 at the beginning of the encoder/decoder is not enough anymore. This patch added register saving code in VP8 NEON functions that use those registers. Change-Id: Ie9e44f5188cf410990c8aaaac68faceee9dffd31
2014-04-23Add VPXD_SET_DECRYPTOR support to the VP9 decoder.Joey Parrish
Change-Id: I88f86c8ff9af34e0b6531028b691921b54c2fc48
2014-04-21Fix dr memory VP8 encode/decode errorsYunqing Wang
This patch fixed errors reported in Issue 746: "dr memory VP8 encode errors" and Issue 745: "dr memory VP8 decode errors". The "UNINITIALIZED READ" errors were fixed in x86 assembly code. The list of files fixed is vp8_intra_pred_uv_tm_sse2 vp8_intra_pred_uv_tm_ssse3 vp8_intra_pred_uv_ho_mmx2 vp8_intra_pred_uv_ho_ssse3 vp8_intra_pred_y_tm_sse2 vp8_intra_pred_y_tm_ssse3 vp8_intra_pred_y_ho_sse2 Change-Id: Ib6df7bf1d442077fe534edfd90e50ad16fadacdd
2014-04-16Prevent reading of uninitialized valueYaowu Xu
This commit added a check of reference frame to make sure that pre buffer pointers are initialized only when necessary and make them to 0 if ref frame is intra, hence those buffer should never be used. Change-Id: Ieb474fcd9feb759f02e2f9c282b7348a8fa31117
2014-04-14Enable vpxenc to specify internal coded frame sizeAdrian Grange
Added command line flags "resize-width" & "resize-height" to allow the user to specify the frame size to encode at. These two flags are ignored if the "resize-allowed" switch is not set to 1. All frames in the clip are then encoded at this size, which must be smaller than the raw frame size. Change-Id: I3d64bd9303d5c0bd678461a866a1ea621700d744
2014-04-10Removing legacy XMA code from vp8.Dmitry Kovalev
Change-Id: Ib9f7fd3fd56e304e5f587f790c97ac34a3077265
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-04-04Remove an unused typedefJan Gerber
Change-Id: Ie0eb9ac4529db00a322511e5241a59b501c289b7
2014-03-24Fix uninitialized read in postprocessingYunqing Wang
This patch fixed WebRTC Issue 3020: "Uninit error at vp8_mbpost_proc_down_xmm". The first 8 values in d were not initialized, but was accessed. This patch fixed c code as well as mmx and sse2 code. Change-Id: Iaa5b41a4ed3bea971b15fb826ce34b7ab4e36fb1
2014-03-18Merge "tokenize: quiet -Warray-bounds warnings"James Zern
2014-03-18Merge "rdopt: quiet -Warray-bounds warnings"James Zern
2014-03-15tokenize: quiet -Warray-bounds warningsJames Zern
eob is limited by GetCoeffs Change-Id: Ie5c0d024796fe6c9b2db0374892544e421bd5d09
2014-03-15rdopt: quiet -Warray-bounds warningsJames Zern
eob is limited by GetCoeffs Change-Id: Id48a92e600375a1d4fb956757c93c91ebb5df59a
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-03-03build: convert rtcd.sh to perlJames Zern
significantly speeds up file generation. the goal of this change is to convert rtcd.sh to perl as directly as possible to allow for simple comparison. future changes can make it more perl-like. --- Linux [CREATE] vpx_scale_rtcd.h real 0m0.485s -> 0m0.022s [CREATE] vp8_rtcd.h real 0m4.619s -> 0m0.060s [CREATE] vp9_rtcd.h real 0m10.102s -> 0m0.087s Windows [CREATE] vpx_scale_rtcd.h real 0m8.360s -> 0m0.080s [CREATE] vp8_rtcd.h real 1m8.083s -> 0m0.160s [CREATE] vp9_rtcd.h real 2m6.489s -> 0m0.233s Change-Id: Idfb71188206c91237d6a3c3a81dfe00d103f11ee
2014-02-27Merge "[svc] Add target bitrate settings for each layers."Minghai Shang
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-26[svc] Add target bitrate settings for each layers.Minghai Shang
Change-Id: Ia7677fb436667bc4f76db71f65e4784f433f7826
2014-02-26VP8 for ARMv8 by using NEON intrinsics 05James Yu
Add dequantizeb_neon.c - vp8_dequantize_b_loop_neon vpxdec --summary --noblit ../videos/tears_of_steel_1080p.webm Before => After, 13.25 => 13.23 (fps) Change-Id: Iebe3b0c6ed2359c778b0570763c5681ae25fef0c Signed-off-by: James Yu <james.yu@linaro.org>
2014-02-26VP8 for ARMv8 by using NEON intrinsics 04James Yu
Add dequant_idct_neon.c - vp8_dequant_idct_add_neon vpxdec --summary --noblit ../videos/tears_of_steel_1080p.webm Before => After, 13.25 => 13.22 (fps) Change-Id: Id48f39e1da58dd3d8d37658e94989411997f4f7c Signed-off-by: James Yu <james.yu@linaro.org>
2014-02-26VP8 for ARMv8 by using NEON intrinsics 03James Yu
Add dc_only_idct_add_neon.c - vp8_dc_only_idct_add_neon vpxdec --summary --noblit ../videos/tears_of_steel_1080p.webm Before => After, 13.25 => 13.24 (fps) Change-Id: I5e9e277ec3a3ca67e13c8cc4c324a6fbe8a897fc Signed-off-by: James Yu <james.yu@linaro.org>
2014-02-23VP8 for ARMv8 by using NEON intrinsics 02James Yu
Add copymem_neon.c - vp8_copy_mem16x16_neon - vp8_copy_mem8x8_neon - vp8_copy_mem8x4_neon vpxdec --summary --noblit ../videos/tears_of_steel_1080p.webm Before => After, 13.25 => 13.25 (fps) Change-Id: Ib956b5a20522ff57dc8a580bf0aef7b252bddba6 Signed-off-by: James Yu <james.yu@linaro.org>
2014-02-14Cleanup some comments.Adrian Grange
Change-Id: I568861ba1d43620865ad9a98a97eef37a51fd856
2014-02-14Merge "minor spelling cleanup in comments"Yaowu Xu
2014-02-13Add VP9 decoder support for external frame buffersFrank Galligan
Added support for external frame buffers to libvpx's VP9 decoder. If the external frame buffer functions are set then libvpx will call the get function whenever it needs a new frame buffer to decode a frame into. And it will call the release function whenever there are no more references to that buffer. Change-Id: Id2934d005f606af6e052fb6db0d5b7c02f567522
2014-02-12minor spelling cleanup in commentsAndrew Russell
Change-Id: Ia91c6c406273345b08505097ffe1af3896980f06
2014-02-06vp8/encoder: Silence MSVC warnings in firstpass.c.Tom Finegan
Added some casts to int to silence MSVC warnings. Change-Id: I72481ec2abd12110cf87a3d0da7a1cbe9ef2f47c
2014-02-05Remove delete_first_pass_file.Adrian Grange
Change-Id: If46d93fb1c26e4629af1f492bfad7a82b4c4f778
2014-02-04Remove duplicated codeAdrian Grange
Change-Id: I1b7c8165162e835e22cf164cce989c0cebd7ca95
2014-01-24Merge "Revert external frame buffer code."Frank Galligan
2014-01-24Revert external frame buffer code.Frank Galligan
A future CL will add external frame buffers differently. Squash commit of four revert commits: Revert "Increase required number of external frame buffers" This reverts commit 9e41d569d7c84dd9ca8f0047c15377a883945685. Revert "Add external constants." This reverts commit bbf53047b03106e3c2e24b28cb836cc838db5ee8. Revert "Add frame buffer lru cache." This reverts commit fbada948fa345e67acf9aa41a8f9a78f5dfe8648. Conflicts: vpxdec.c Change-Id: I76fe42419923a6ea6c75d9997cbbf941d73d3005 Revert "Add support to pass in external frame buffers." This reverts commit 10f891696bc4c972c13cc9fde2c53470501a03e2. Conflicts: test/external_frame_buffer_test.cc vp9/common/vp9_alloccommon.c vp9/common/vp9_reconinter.c vp9/decoder/vp9_decodeframe.c vp9/encoder/vp9_onyx_if.c vp9/vp9_dx_iface.c vpx/vpx_decoder.h vpx/vpx_external_frame_buffer.h vpx_scale/generic/yv12config.c vpxdec.c Change-Id: I7434cf590f1c852b38569980e4247fad0d939c2e
2014-01-23vp8/encoder: add extern "C" to headersJames Zern
Change-Id: I252f5f8a5d5ada65da08699774a7bb1eb2bd5b2e