summaryrefslogtreecommitdiff
path: root/libavcodec/hevc_mvs.c
Commit message (Collapse)AuthorAgeFilesLines
* avcodec/hevc_mvs: Cleanup ff_hevc_set_neighbour_available()Michael Niedermayer2020-10-171-2/+2
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* Merge commit '26d9b60373bf45bc4f91ff6815f5fa36764d4d7b'James Almer2017-10-241-1/+1
|\ | | | | | | | | | | | | * commit '26d9b60373bf45bc4f91ff6815f5fa36764d4d7b': hevc: Avoid using LOCAL_ALIGNED for 4 byte alignment Merged-by: James Almer <jamrial@gmail.com>
| * hevc: Avoid using LOCAL_ALIGNED for 4 byte alignmentMartin Storsjö2017-03-311-1/+1
| | | | | | | | | | | | The data types within the MvField struct themselves imply 4 byte alignment. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '0bfdcce4d42a6e654c00ea5f9237dc987626457f'James Almer2017-03-231-4/+5
|\ \ | |/ | | | | | | | | | | * commit '0bfdcce4d42a6e654c00ea5f9237dc987626457f': hevc: move the SliceType enum to hevc.h Merged-by: James Almer <jamrial@gmail.com>
| * hevc: move the SliceType enum to hevc.hAnton Khirnov2016-10-211-4/+5
| | | | | | | | | | Those values are decoder-independent and are also use by the VA-API encoder.
* | Merge commit '4abe3b049d987420eb891f74a35af2cebbf52144'Clément Bœsch2017-03-231-1/+1
|\ \ | |/ | | | | | | | | | | * commit '4abe3b049d987420eb891f74a35af2cebbf52144': hevc: rename hevc.[ch] to hevcdec.[ch] Merged-by: Clément Bœsch <u@pkh.me>
| * hevc: rename hevc.[ch] to hevcdec.[ch]Anton Khirnov2016-10-161-1/+1
| | | | | | | | | | This is more consistent with the rest of libav and frees up the hevc.h name for decoder-independent shared declarations.
* | Merge commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb'Clément Bœsch2016-06-211-1/+1
|\ \ | |/ | | | | | | | | | | * commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb': cosmetics: Fix spelling mistakes Merged-by: Clément Bœsch <u@pkh.me>
| * cosmetics: Fix spelling mistakesVittorio Giovara2016-05-041-1/+1
| | | | | | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* | Merge commit 'b11acd57326db6c2cc1475dd0bea2a06fbc85aa2'Michael Niedermayer2015-07-121-36/+36
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'b11acd57326db6c2cc1475dd0bea2a06fbc85aa2': hevc: remove HEVCContext usage from hevc_ps Conflicts: libavcodec/hevc.c libavcodec/hevc_cabac.c libavcodec/hevc_filter.c libavcodec/hevc_mvs.c libavcodec/hevc_ps.c libavcodec/hevc_refs.c libavcodec/hevcpred_template.c Merged-by: Michael Niedermayer <michael@niedermayer.cc>
| * hevc: remove HEVCContext usage from hevc_psAnton Khirnov2015-07-121-48/+48
| | | | | | | | | | | | Factor out the parameter sets into a separate struct and use it instead. This will allow us to reuse this code in the parser.
| * hevc: Use generic av_clip function, not C implementationPeter Meerwald2015-02-131-5/+5
| | | | | | | | | | | | | | | | | | hevc seems to be the only place where the C implementation of the av_clip function is explicitly selected, precluding platform-specific optimizations Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | avcodec: use av_mod_uintp2() where usefulJames Almer2015-04-211-2/+2
| | | | | | | | | | Reviewed-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: James Almer <jamrial@gmail.com>
* | avcodec/hevc_mvs: Use av_clip_intp2()Michael Niedermayer2015-02-211-1/+1
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '9e9be5a20c0b36dce1cae11f5f5957886231a764'Michael Niedermayer2014-11-111-1/+1
|\ \ | |/ | | | | | | | | | | * commit '9e9be5a20c0b36dce1cae11f5f5957886231a764': hevc_mvs: prevent unitialized use Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * hevc_mvs: prevent unitialized useVittorio Giovara2014-11-111-1/+1
| | | | | | | | | | CC: libav-stable@libav.org Bug-Id: CID 1244202
* | Merge commit 'd208d1eba3799c58fd6d3602d31de3e686f14aec'Michael Niedermayer2014-10-071-10/+4
|\ \ | |/ | | | | | | | | | | | | | | | | * commit 'd208d1eba3799c58fd6d3602d31de3e686f14aec': hevc_mvs: make sure to always initialize the temporal MV fully Conflicts: libavcodec/hevc_mvs.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * hevc_mvs: make sure to always initialize the temporal MV fullyAnton Khirnov2014-10-071-10/+4
| | | | | | | | | | | | | | | | The spec requires this. Fixes uninitialized reads on some samples. Remove now unnecessary initialization of the whole merge candidate list.
* | Merge commit '79a60c8e779242b5ba4c531b2c706c871e8e6420'Michael Niedermayer2014-10-071-1/+3
|\ \ | |/ | | | | | | | | | | * commit '79a60c8e779242b5ba4c531b2c706c871e8e6420': hevc_mvs: initialize the temporal MV in case of missing ref Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * hevc_mvs: initialize the temporal MV in case of missing refAnton Khirnov2014-10-071-1/+3
| | | | | | | | The caller expects the MV to always be initialized.
* | Merge commit 'e3a00acde05c925617dc19b5373969d864bf8414'Michael Niedermayer2014-09-291-0/+2
|\ \ | |/ | | | | | | | | | | * commit 'e3a00acde05c925617dc19b5373969d864bf8414': hevc: Initialize mergecand_list to 0 Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * hevc: Initialize mergecand_list to 0Luca Barbato2014-09-291-0/+2
| | | | | | | | | | | | | | Unbreak cf6090dc6252f2b276aa4133e3d73a89f4c6046c. CC: libav-stable@libav.org Sample-Id: hevc-conformance-LTRPSPS_A_Qualcomm_1
| * hevc_mvs: avoid deriving tmvp in amvpChristophe Gisquet2014-08-121-1/+2
| | | | | | | | | | | | | | | | Reduces the number of calls to tmvp derivation from 933685 to 586271 on a sequence. Reviewed-by: Mickaël Raulet <mraulet@insa-rennes.fr> Signed-off-by: Anton Khirnov <anton@khirnov.net>
| * hevc: wait proper position for tmvpChristophe Gisquet2014-08-121-1/+2
| | | | | | | | | | | | | | | | | | The position is either rounded or not checked, so delay the wait to check the proper value. Reviewed-by: Mickaël Raulet <mraulet@insa-rennes.fr> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | avcodec/hevc_mvs: dont redundantly initialize ref_idx_currMichael Niedermayer2014-08-161-1/+1
| | | | | | | | | | Reviewed-by: James Darnley <james.darnley@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'cf6090dc6252f2b276aa4133e3d73a89f4c6046c'Michael Niedermayer2014-08-121-2/+2
|\ \ | |/ | | | | | | | | | | | | | | | | | | * commit 'cf6090dc6252f2b276aa4133e3d73a89f4c6046c': hevc: use intreadwrite Conflicts: libavcodec/hevc_mvs.c See: 7a4a5515b0ce97f1c4e18ed012cc3f86328dd220 Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * hevc: use intreadwriteChristophe Gisquet2014-08-121-15/+11
| | | | | | | | | | | | When dealing with MVs, both components may be processed at a time. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | Merge commit 'ed53cc217f6a6e4ddb35e3f01a79496091dc82dc'Michael Niedermayer2014-08-121-8/+16
|\ \ | |/ | | | | | | | | | | | | | | | | | | * commit 'ed53cc217f6a6e4ddb35e3f01a79496091dc82dc': hevc: derive partial merge list Conflicts: libavcodec/hevc_mvs.c See: 4576eff05d94a5e0b853a7a595d31351cc539e7b Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * hevc: derive partial merge listChristophe Gisquet2014-08-121-9/+33
| | | | | | | | | | | | The merge list only needs to be derived up to the merge index. Signed-off-by: Anton Khirnov <anton@khirnov.net>
| * hevc: derive partially amvp listChristophe Gisquet2014-08-121-0/+5
| | | | | | | | | | | | When the candidate has been found, no need to derive others. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | Merge commit '09182b3224370e1d636631e77f201a8388766bd6'Michael Niedermayer2014-08-121-4/+4
|\ \ | |/ | | | | | | | | | | | | | | | | | | * commit '09182b3224370e1d636631e77f201a8388766bd6': hevc: simplify rounding Conflicts: libavcodec/hevc_mvs.c See: 2e471e4703ed5aaab6d6b6bf5a3c6895b79f02b4 Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * hevc: simplify roundingChristophe Gisquet2014-08-121-4/+4
| | | | | | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | hevc_mvs: set candidate availabilitiesChristophe Gisquet2014-08-101-9/+11
| | | | | | | | | | | | | | | | | | | | | | They might be left uninitialized otherwise since 3ad04608. Fixes ticket #3840. Found-by: Carl Eugen Hoyos <ce@hoyos.ws> Reported-by: Piotr Bandurski <ami_stuff@o2.pl> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | hevc_mvs: avoid deriving tmvp in amvpChristophe Gisquet2014-07-231-1/+2
| | | | | | | | | | | | | | Reduces on a sequence number of calls from 933685 to 586271. Reviewed-by: Mickaël Raulet <mraulet@insa-rennes.fr> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | hevc: wait proper position for tmvpChristophe Gisquet2014-07-221-2/+4
| | | | | | | | | | | | | | | | The position is either rounded or not checked, so delay the wait to check the proper value. Reviewed-by: Mickaël Raulet <mraulet@insa-rennes.fr> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | hevc/mvs: cosmeticsMickaël Raulet2014-07-221-9/+9
| | | | | | | | | | | | cherry picked from commit 9053cd92700e939cde49ab0ea3c6917be453cab7 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | hevc/mvs: more cleanupsMickaël Raulet2014-07-221-8/+1
| | | | | | | | | | | | cherry picked from commit c4e467e79f59453783c97bc6044082edb7a6468b Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | hevc/mvs: code cleaningMickaël Raulet2014-07-221-93/+81
| | | | | | | | | | | | cherry picked from commit 74f10da013ea71a3f6b77cdff989c4574c8a5ea2 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | hevc/mvs: simplifying derive_spatial_merge_candidates functionMickaël Raulet2014-07-221-52/+29
| | | | | | | | | | | | cherry picked from commit 99be11cf08a5628d0bb6ac7f4958bf9dd35cda62 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | hevc/mvs: remove same prediction blockMickaël Raulet2014-07-221-38/+10
| | | | | | | | | | | | cherry picked from commit 1206262ba1ef810328cadce99d5cdc0bf9285e4d Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | hevc/mvs: simplify derive_temporal_colocated_mvsMickaël Raulet2014-07-221-13/+14
| | | | | | | | | | | | cherry picked from commit def7db60966765f4687250d766b40dbcf0f7e503 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | hevc: use intreadwriteChristophe Gisquet2014-07-191-15/+11
| | | | | | | | | | | | | | | | When dealing with MVs, both components may be processed at a time. On Win64, 560 to 539 cycles for derive_spatial_merge_candidates. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | hevc: derive partial merge listChristophe Gisquet2014-07-101-9/+26
| | | | | | | | | | | | The merge list only needs to be derived up to the merge index. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | hevc: derive partially amvp listChristophe Gisquet2014-07-101-0/+5
| | | | | | | | | | | | When the candidate has been found, no need to derive others. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | hevc: simplify roundingChristophe Gisquet2014-07-101-4/+4
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | hevc/pps: optimized size of min_tb_addr_zsgcocherel2014-06-241-8/+15
| | | | | | | | | | | | | | reduce computation too (cherry picked from commit 39c4d45c7788081c45c7fae51b7c5d0bcbaece9d) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | hevc: C code update for new motion compensationMickaël Raulet2014-05-061-62/+47
| | | | | | | | | | | | | | 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 Niedermayer2014-02-101-2/+6
|\ \ | |/ | | | | | | | | | | * qatar/master: hevc: Conceal zero td Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * hevc: Conceal zero tdLuca Barbato2014-02-091-2/+6
| | | | | | | | | | | | | | | | | | It was done only in check_mvset(), while mv_scale() is called also by dist_scale(). Sample-Id: 00001579-google Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
| * Add HEVC decoderGuillaume Martres2013-10-311-0/+816
| | | | | | | | | | | | | | | | | | | | | | 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>