Commit Graph

48 Commits

Author SHA1 Message Date
James Almer
ba625dd8a1 avcodec: use av_mod_uintp2() where useful
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-04-21 22:41:20 -03:00
Michael Niedermayer
d1c705087f avcodec/hevc_mvs: Use av_clip_intp2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-21 20:40:17 +01:00
Michael Niedermayer
4dd85093f1 Merge commit '9e9be5a20c0b36dce1cae11f5f5957886231a764'
* commit '9e9be5a20c0b36dce1cae11f5f5957886231a764':
  hevc_mvs: prevent unitialized use

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 21:57:41 +01:00
Vittorio Giovara
9e9be5a20c hevc_mvs: prevent unitialized use
CC: libav-stable@libav.org
Bug-Id: CID 1244202
2014-11-11 11:49:47 +01:00
Michael Niedermayer
33c8500db4 Merge commit 'd208d1eba3799c58fd6d3602d31de3e686f14aec'
* 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>
2014-10-07 12:29:07 +02:00
Michael Niedermayer
018ca8b7f6 Merge commit '79a60c8e779242b5ba4c531b2c706c871e8e6420'
* commit '79a60c8e779242b5ba4c531b2c706c871e8e6420':
  hevc_mvs: initialize the temporal MV in case of missing ref

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-07 12:21:43 +02:00
Anton Khirnov
d208d1eba3 hevc_mvs: make sure to always initialize the temporal MV fully
The spec requires this.

Fixes uninitialized reads on some samples.

Remove now unnecessary initialization of the whole merge candidate list.
2014-10-07 07:13:01 +00:00
Anton Khirnov
79a60c8e77 hevc_mvs: initialize the temporal MV in case of missing ref
The caller expects the MV to always be initialized.
2014-10-07 07:12:55 +00:00
Michael Niedermayer
46807921f7 Merge commit 'e3a00acde05c925617dc19b5373969d864bf8414'
* commit 'e3a00acde05c925617dc19b5373969d864bf8414':
  hevc: Initialize mergecand_list to 0

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-29 21:02:15 +02:00
Luca Barbato
e3a00acde0 hevc: Initialize mergecand_list to 0
Unbreak cf6090dc62.

CC: libav-stable@libav.org
Sample-Id: hevc-conformance-LTRPSPS_A_Qualcomm_1
2014-09-29 12:33:46 +01:00
Michael Niedermayer
97bb456b6b avcodec/hevc_mvs: dont redundantly initialize ref_idx_curr
Reviewed-by: James Darnley <james.darnley@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-16 15:58:40 +02:00
Michael Niedermayer
17cbc6457b Merge commit 'cf6090dc6252f2b276aa4133e3d73a89f4c6046c'
* commit 'cf6090dc6252f2b276aa4133e3d73a89f4c6046c':
  hevc: use intreadwrite

Conflicts:
	libavcodec/hevc_mvs.c

See: 7a4a5515b0
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 16:39:58 +02:00
Michael Niedermayer
5195512add Merge commit 'ed53cc217f6a6e4ddb35e3f01a79496091dc82dc'
* commit 'ed53cc217f6a6e4ddb35e3f01a79496091dc82dc':
  hevc: derive partial merge list

Conflicts:
	libavcodec/hevc_mvs.c

See: 4576eff05d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 16:27:39 +02:00
Michael Niedermayer
e6ffe7bcfc Merge commit '09182b3224370e1d636631e77f201a8388766bd6'
* commit '09182b3224370e1d636631e77f201a8388766bd6':
  hevc: simplify rounding

Conflicts:
	libavcodec/hevc_mvs.c

See: 2e471e4703
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 16:07:07 +02:00
Christophe Gisquet
3187fa14a3 hevc_mvs: avoid deriving tmvp in amvp
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>
2014-08-12 10:13:43 +00:00
Christophe Gisquet
14ca0aa69b hevc: wait proper position for tmvp
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>
2014-08-12 10:13:21 +00:00
Christophe Gisquet
cf6090dc62 hevc: use intreadwrite
When dealing with MVs, both components may be processed at a time.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-12 10:03:20 +00:00
Christophe Gisquet
ed53cc217f hevc: derive partial merge list
The merge list only needs to be derived up to the merge index.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-12 09:59:30 +00:00
Christophe Gisquet
3505b19652 hevc: derive partially amvp list
When the candidate has been found, no need to derive others.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-12 09:58:14 +00:00
Christophe Gisquet
09182b3224 hevc: simplify rounding
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-12 09:57:25 +00:00
Christophe Gisquet
84bc45880a hevc_mvs: set candidate availabilities
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>
2014-08-10 17:13:18 +02:00
Christophe Gisquet
373677f958 hevc_mvs: avoid deriving tmvp in amvp
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>
2014-07-23 21:21:49 +02:00
Christophe Gisquet
ed248e7f70 hevc: wait proper position for tmvp
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>
2014-07-22 18:11:50 +02:00
Mickaël Raulet
5f08b417b4 hevc/mvs: cosmetics
cherry picked from commit 9053cd92700e939cde49ab0ea3c6917be453cab7

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 15:19:19 +02:00
Mickaël Raulet
cd714afe81 hevc/mvs: more cleanups
cherry picked from commit c4e467e79f59453783c97bc6044082edb7a6468b

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 15:13:09 +02:00
Mickaël Raulet
3ad0460831 hevc/mvs: code cleaning
cherry picked from commit 74f10da013ea71a3f6b77cdff989c4574c8a5ea2

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 15:05:00 +02:00
Mickaël Raulet
c4d63cd230 hevc/mvs: simplifying derive_spatial_merge_candidates function
cherry picked from commit 99be11cf08a5628d0bb6ac7f4958bf9dd35cda62

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 14:17:19 +02:00
Mickaël Raulet
e9bb45ba79 hevc/mvs: remove same prediction block
cherry picked from commit 1206262ba1ef810328cadce99d5cdc0bf9285e4d

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 14:12:00 +02:00
Mickaël Raulet
560b0253ff hevc/mvs: simplify derive_temporal_colocated_mvs
cherry picked from commit def7db60966765f4687250d766b40dbcf0f7e503

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 14:11:43 +02:00
Christophe Gisquet
7a4a5515b0 hevc: use intreadwrite
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>
2014-07-19 15:27:08 +02:00
Christophe Gisquet
4576eff05d hevc: derive partial merge list
The merge list only needs to be derived up to the merge index.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-10 17:27:56 +02:00
Christophe Gisquet
bbeaae96eb hevc: derive partially amvp list
When the candidate has been found, no need to derive others.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-10 15:35:15 +02:00
Christophe Gisquet
2e471e4703 hevc: simplify rounding
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-10 14:32:18 +02:00
gcocherel
ba70563d55 hevc/pps: optimized size of min_tb_addr_zs
reduce computation too
(cherry picked from commit 39c4d45c7788081c45c7fae51b7c5d0bcbaece9d)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-24 13:11:40 +02:00
Mickaël Raulet
83976e40e8 hevc: C code update for new motion compensation
pretty print C

Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-06 18:22:34 +02:00
Michael Niedermayer
03911c418f Merge remote-tracking branch 'qatar/master'
* qatar/master:
  hevc: Conceal zero td

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 03:54:54 +01:00
Luca Barbato
246d3bf0ec hevc: Conceal zero td
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
2014-02-09 19:53:43 +01:00
Michael Niedermayer
2c4f573696 libavcodec/hevc: random cosmetics to reduce diff to 064698d381
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 15:32:15 +01:00
Michael Niedermayer
69b3668b83 libavcodec/hevc: indention related cosmetics to reduce diff to 064698d381
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 14:36:59 +01:00
Michael Niedermayer
1a6948fa70 libavcodec/hevc: reduce bracket differences to 064698d381
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 13:09:31 +01:00
Michael Niedermayer
f578e5d937 avcodec/hevc: Adjust white-spaces to reduce difference to 064698d381
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 00:44:54 +01:00
Guillaume Martres
064698d381 Add HEVC decoder
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>
2013-10-31 20:19:59 +01:00
Anton Khirnov
2f77894ccc hevc: better mt implementation
Signed-off-by: Mickaël Raulet <mraulet@insa-rennes.fr>
(cherry picked from commit 93afb8c519deca85b3c97804927de5b016dd32d1)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-27 23:49:50 +01:00
Mickaël Raulet
c1882e801d hevc: clean up mvs(cherry picked from commit 955317c09b877a513d3fcfcd1615909b2f4f651c)
Decreases the difference to Anton Khirnovs patch v5

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-27 23:48:43 +01:00
Mickaël Raulet
3c3ece24ea hevc : cosmetic changes(cherry picked from commit 7308c0ccf13f18cebe4851e6dcd6b5c0b09be1dd)
Decreases the difference to Anton Khirnovs patch v5

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-27 23:45:34 +01:00
Mickaël Raulet
0c8aba3842 hevc: add wavefront parallel processing
cherry picked from commit b971f2c8fdc60f8bab605a6e8060492eb548a53a
cherry picked from commit e57b0a2c915ce6b8a9d57b8292f6581f0680842e

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-22 20:20:40 +02:00
gcocherel
cf49d0156d valgrind cleanup(cherry picked from commit 0d5efa40b94c0de92a1fe5091b21e0e2d36bae3d)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-16 00:17:28 +02:00
Guillaume Martres
c8dd048ab8 lavc: add a HEVC decoder.
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>
2013-10-15 22:13:02 +02:00