summaryrefslogtreecommitdiffstats
path: root/libavcodec/hevcdsp.c
Commit message (Collapse)AuthorAgeFilesLines
* Merge commit '0b9a237b2386ff84a6f99716bd58fa27a1b767e7'James Almer2017-10-241-2/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '0b9a237b2386ff84a6f99716bd58fa27a1b767e7': hevc: Add NEON 4x4 and 8x8 IDCT [15:12:59] <@ubitux> hevc_idct_4x4_8_c: 389.1 [15:13:00] <@ubitux> hevc_idct_4x4_8_neon: 126.6 [15:13:02] <@ubitux> our ^ [15:13:06] <@ubitux> hevc_idct_4x4_8_c: 389.3 [15:13:08] <@ubitux> hevc_idct_4x4_8_neon: 107.8 [15:13:10] <@ubitux> hevc_idct_4x4_10_c: 418.6 [15:13:12] <@ubitux> hevc_idct_4x4_10_neon: 108.1 [15:13:14] <@ubitux> libav ^ [15:13:30] <@ubitux> so yeah, we can probably trash our versions here Merged-by: James Almer <jamrial@gmail.com>
| * hevc: Add NEON 4x4 and 8x8 IDCTAlexandra Hájková2017-03-271-0/+2
| | | | | | | | | | | | | | | | Optimized by Martin Storsjö <martin@martin.st>. The speedup vs C code is around 3.2-4.4x. Signed-off-by: Martin Storsjö <martin@martin.st>
* | hevc: Fix aligned array declarationsMark Thompson2017-10-211-2/+2
| | | | | | | | (cherry picked from commit d41e10c1485ec34aa342f7bc2e5bf4f9b6e66414)
* | Merge commit 'b0e6b3f4777910d61083976aa9fc78a1e0731aae'Clément Bœsch2017-04-171-0/+2
|\ \ | |/ | | | | | | | | | | * commit 'b0e6b3f4777910d61083976aa9fc78a1e0731aae': hevc: ppc: Add HEVC 4x4 IDCT for PowerPC Merged-by: Clément Bœsch <u@pkh.me>
| * hevc: ppc: Add HEVC 4x4 IDCT for PowerPCAlexandra Hajkova2016-12-121-0/+2
| | | | | | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
| * hevc: Add DC IDCTMickaël Raulet2016-07-181-0/+4
| | | | | | | | | | | | Integrated to Libav by Josh de Kock <josh@itanimul.li>. Signed-off-by: Alexandra Hájková <alexandra@khirnov.net>
* | Merge commit '1bd890ad173d79e7906c5e1d06bf0a06cca4519d'Clément Bœsch2017-01-311-6/+6
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | * commit '1bd890ad173d79e7906c5e1d06bf0a06cca4519d': hevc: Separate adding residual to prediction from IDCT This commit should be a noop but isn't because of the following renames: - transform_add → add_residual - transform_skip → dequant - idct_4x4_luma → transform_4x4_luma Merged-by: Clément Bœsch <cboesch@gopro.com>
| * hevc: Separate adding residual to prediction from IDCTAlexandra Hájková2016-07-181-10/+10
| | | | | | | | | | | | | | | | Based on patch 250430bf28118cf843df887e8c8b345f1c60c82d by Mickaël Raulet <mraulet@insa-rennes.fr>, integrated to Libav by Josh de Kock <josh@itanimul.li>. Signed-off-by: Alexandra Hájková <alexandra@khirnov.net>
| * hevcdsp: add x86 SIMD for MCAnton Khirnov2015-12-051-1/+23
| |
| * hevcdsp: split the pred functions by widthAnton Khirnov2015-12-051-5/+28
| | | | | | | | This should allow for more efficient SIMD.
| * hevcdsp: split the epel functions by widthAnton Khirnov2015-12-051-4/+14
| | | | | | | | This should allow for more efficient SIMD.
| * hevcdsp: split the qpel functions by width instead of by the subpixel fractionAnton Khirnov2015-12-051-16/+14
| | | | | | | | | | | | | | This should allow for more efficient SIMD. Keep the C versions as they are now, to allow the compiler to inline the interpolation coefficients.
| * hevcdsp: fix a function nameAnton Khirnov2015-08-211-1/+1
| | | | | | | | | | put_weighted_pred_avg should be put_unweighted_pred_avg, there is no weighting there.
* | avcodec/hevcdsp: rename sao_band_filter c functionsJames Almer2015-08-211-1/+1
| | | | | | | | Signed-off-by: James Almer <jamrial@gmail.com>
* | avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for HEVC horizontal and ↵Shivraj Patil2015-04-171-0/+2
| | | | | | | | | | | | | | | | vertical mc functions Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com> Reviewed-by: Nedeljko Babic <Nedeljko.Babic@imgtec.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | hevcdsp: fix compilation for arm and aarch64James Almer2015-03-121-1/+1
| | | | | | | | | | | | | | Also add av_cold to ff_hevcdsp_init_arm. Signed-off-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | lavc/hevcdsp: Fix compilation for arm with --disable-neon.Carl Eugen Hoyos2015-03-101-1/+1
| |
* | hevcdsp: ARM NEON optimized deblocking filterSeppo Tomperi2015-02-051-0/+2
| | | | | | | | | | | | cherry picked from commit 1b9ee47d2f43b0a029a9468233626102eb1473b8 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | x86/hevcdsp: add ff_hevc_sao_edge_filter_8_{ssse3,avx2}James Almer2015-02-051-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Original x86 intrinsics code and initial yasm port by Pierre-Edouard Lepere. Refactoring and optimizations by James Almer. Benchmarks of BQTerrace_1920x1080_60_qp22.bin with an Intel Core i5-4200U Width 32 158583 decicycles in edge, sao_edge_filter_8 runs, 0 skips 5205 decicycles in ff_hevc_sao_edge_filter_32_8_ssse3, 32767 runs, 1 skips 2942 decicycles in ff_hevc_sao_edge_filter_32_8_avx2, 32767 runs, 1 skips Width 64 705639 decicycles in sao_edge_filter_8, 262144 runs, 0 skips 19224 decicycles in ff_hevc_sao_edge_filter_64_8_ssse3, 262111 runs, 33 skips 10433 decicycles in ff_hevc_sao_edge_filter_64_8_avx2, 262115 runs, 29 skips Signed-off-by: James Almer <jamrial@gmail.com>
* | hevcdsp: separated sao edge filter and pixel restore funcsSeppo Tomperi2015-02-041-2/+3
| | | | | | | | | | | | Reviewed-by: Michael Niedermayer <michaelni@gmx.at> Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com> Reviewed-by: Mickaël Raulet <mraulet@insa-rennes.fr>
* | x86/hevc: add ff_hevc_sao_band_filter_{8,10,12}_{sse2,avx,avx2}James Almer2015-02-011-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Original x86 intrinsics code and initial 8bit yasm port by Pierre-Edouard Lepere. 10/12bit yasm ports, refactoring and optimizations by James Almer Benchmarks of BQTerrace_1920x1080_60_qp22.bin with an Intel Core i5-4200U width 32 40338 decicycles in sao_band_filter_0_8, 2048 runs, 0 skips 8056 decicycles in ff_hevc_sao_band_filter_8_32_sse2, 2048 runs, 0 skips 7458 decicycles in ff_hevc_sao_band_filter_8_32_avx, 2048 runs, 0 skips 4504 decicycles in ff_hevc_sao_band_filter_8_32_avx2, 2048 runs, 0 skips width 64 136046 decicycles in sao_band_filter_0_8, 16384 runs, 0 skips 28576 decicycles in ff_hevc_sao_band_filter_8_32_sse2, 16384 runs, 0 skips 26707 decicycles in ff_hevc_sao_band_filter_8_32_avx, 16384 runs, 0 skips 14387 decicycles in ff_hevc_sao_band_filter_8_32_avx2, 16384 runs, 0 skips Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* | Merge commit '1a880b2fb8456ce68eefe5902bac95fea1e6a72d'Michael Niedermayer2014-07-271-1/+3
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '1a880b2fb8456ce68eefe5902bac95fea1e6a72d': hevc: SSE2 and SSSE3 loop filters Conflicts: libavcodec/hevcdsp.c libavcodec/hevcdsp.h libavcodec/x86/Makefile libavcodec/x86/hevc_deblock.asm libavcodec/x86/hevcdsp_init.c See: de7b89fd43f850d77cf24ad6ae50185dfe391e91 and several others Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * hevc: SSE2 and SSSE3 loop filtersPierre Edouard Lepere2014-07-261-0/+3
| | | | | | | | | | | | | | | | Additional contributions by James Almer <jamrial@gmail.com>, Carl Eugen Hoyos <cehoyos@ag.or.at>, Fiona Glaser <fiona@x264.com> and Anton Khirnov <anton@khirnov.net> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | hevc/rext: add support for Range extension toolsMickaël Raulet2014-07-151-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SPS features/flags: - transform_skip_rotation_enabled_flag - transform_skip_context_enabled_flag - implicit_rdpcm_enabled_flag - explicit_rdpcm_enabled_flag - intra_smoothing_disabled_flag - persistent_rice_adaptation_enabled_flag PPS features/flags: - log2_max_transform_skip_block_size - cross_component_prediction_enabled_flag - chroma_qp_offset_list_enabled_flag - diff_cu_chroma_qp_offset_depth - chroma_qp_offset_list_len_minus1 - cb_qp_offset_list - cr_qp_offset_list - log2_sao_offset_scale_luma - log2_sao_offset_scale_chroma (cherry picked from commit 005294c5b939a23099871c6130c8a7cc331f73ee) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | hevc/rext: basic infrastructure for supporting range extensionMickaël Raulet2014-07-151-0/+7
| | | | | | | | | | | | | | | | - support for 4:2:2 and 4:4:4 up to 12 bits - add a new profile for range extension (cherry picked from commit d3c067fa65bbc871758d28aa07f54123430ca346) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | hevc: separate residu and prediction (needed for Range Extension)Mickaël Raulet2014-07-151-13/+13
| | | | | | | | | | | | (cherry picked from commit 6b3856ef57d66f2e59ee61fd2eb5f83b6d0d7d4a) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | hevc: simplify SAO computation, delay from one row its computationMickaël Raulet2014-07-151-9/+3
| | | | | | | | | | | | (cherry picked from commit f2c5f647cec786df26f442a85e6d685a131a50c9) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec/hevc: new idct + asmplepere2014-06-171-0/+5
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | HEVC : added assembly MC functionsplepere2014-05-061-1/+4
| | | | | | | | | | | | | | pretty print x86 Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | hevc: C code update for new motion compensationMickaël Raulet2014-05-061-37/+88
| | | | | | | | | | | | | | pretty print C Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2013-12-221-1/+0
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | * qatar/master: hevc: move DSP declarations from hevc.h into hevcdsp.h Conflicts: libavcodec/hevc.h libavcodec/hevcdsp.c libavcodec/hevcdsp.h See: c8dd048ab8cff815c9f4b16a62db0b74df011f0a Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * hevc: move DSP declarations from hevc.h into hevcdsp.hGuillaume Martres2013-12-221-1/+1
| | | | | | | | Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
| * Add HEVC decoderGuillaume Martres2013-10-311-0/+190
| | | | | | | | | | | | | | | | | | | | | | Initially written by Guillaume Martres <smarter@ubuntu.com> as a GSoC project. Further contributions by the OpenHEVC project and other developers, namely: Mickaël Raulet <mraulet@insa-rennes.fr> Seppo Tomperi <seppo.tomperi@vtt.fi> Gildas Cocherel <gildas.cocherel@laposte.net> Khaled Jerbi <khaled_jerbi@yahoo.fr> Wassim Hamidouche <wassim.hamidouche@insa-rennes.fr> Vittorio Giovara <vittorio.giovara@gmail.com> Jan Ekström <jeebjp@gmail.com> Anton Khirnov <anton@khirnov.net> Martin Storsjö <martin@martin.st> Luca Barbato <lu_zero@gentoo.org> Yusuke Nakamura <muken.the.vfrmaniac@gmail.com> Reimar Döffinger <Reimar.Doeffinger@gmx.de> Diego Biurrun <diego@biurrun.de> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* libavcodec/hevc: random cosmetics to reduce diff to ↵Michael Niedermayer2013-11-021-1/+1
| | | | | | 064698d381e1e7790f21b0199a8930ea04e2e942 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* libavcodec/hevc: indention related cosmetics to reduce diff to ↵Michael Niedermayer2013-11-021-1/+1
| | | | | | 064698d381e1e7790f21b0199a8930ea04e2e942 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* avcodec/hevc: more whitespaces to reduce difference to ↵Michael Niedermayer2013-11-021-2/+2
| | | | | | 064698d381e1e7790f21b0199a8930ea04e2e942 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* avcodec/hevc: Adjust white-spaces to reduce difference to ↵Michael Niedermayer2013-11-021-127/+126
| | | | | | 064698d381e1e7790f21b0199a8930ea04e2e942 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* lavc: add a HEVC decoder.Guillaume Martres2013-10-151-0/+192
Initially written by Guillaume Martres <smarter@ubuntu.com> as a GSoC project. Further contributions by the OpenHEVC project and other developers, namely: Mickaël Raulet <mraulet@insa-rennes.fr> Seppo Tomperi <seppo.tomperi@vtt.fi> Gildas Cocherel <gildas.cocherel@laposte.net> Khaled Jerbi <khaled_jerbi@yahoo.fr> Wassim Hamidouche <wassim.hamidouche@insa-rennes.fr> Vittorio Giovara <vittorio.giovara@gmail.com> Jan Ekström <jeebjp@gmail.com> Anton Khirnov <anton@khirnov.net> Martin Storsjö <martin@martin.st> Luca Barbato <lu_zero@gentoo.org> Yusuke Nakamura <muken.the.vfrmaniac@gmail.com> Signed-off-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
OpenPOWER on IntegriCloud