pascal massimino
dc0ce039f3
Merge "AnimEncoder API: Compute change rectangle for first frame too."
2015-01-07 13:37:27 -08:00
pascal massimino
f00b639b96
Merge "AnimEncoder API: In Assemble(), always set animation parameters."
2015-01-07 13:36:53 -08:00
pascal massimino
29ed796c17
Merge "AnimEncoder lib cleanup: prev to prev canvas not needed."
2015-01-07 13:36:21 -08:00
pascal massimino
9f0dd6e539
Merge "WebPAnimEncoder API: Header and implementation"
2015-01-07 13:35:49 -08:00
Urvang Joshi
5e56bbe09a
AnimEncoder API: Remove AnimEncoderFrameOptions.
...
We only need config now, so this struct is not needed.
Change-Id: I5139956d13c36ceb4871d52122f248fe70f40c4b
2015-01-07 13:34:02 -08:00
Urvang Joshi
b902c3ea50
AnimEncoder API: GenerateCandidates bugfix.
...
As 'curr_canvas_mod' is being modified during calls to IncreaseTransparency()
and FlattenSimilarBlocks(), GetSubRect() should get the sub-frame from
'curr_canvas_mod' as well.
Earlier, GetSubRect() was computed from 'curr_canvas', so modifying
'curr_canvas_mod' had no effect on encoding.
Change-Id: Ia847503007b66364817fe57def5a9e3c37d1b3cc
2015-01-07 11:48:55 -08:00
Urvang Joshi
ef3c39bbd2
AnimEncoder API: Compute change rectangle for first frame too.
...
Earlier, we were always using full canvas for first frame.
Change-Id: Ib8d32961682c4b07010ea559a71dd59ab9ec0157
2015-01-07 11:26:27 -08:00
Urvang Joshi
eec423abe9
AnimEncoder API: In Assemble(), always set animation parameters.
...
We set the parameters even if there is just one frame. This is to make sure
assembly is correct even if single frame animation is NOT converted to a full
frame later.
Change-Id: If79e6aa5e2575cb0f3cd229f16c655b3663c35b0
2015-01-07 11:20:24 -08:00
Urvang Joshi
ae1c046e12
AnimEncoder lib cleanup: prev to prev canvas not needed.
...
Given that we decided to only handle frame disposal for output WebP
internally,
only current and previous canvas need to be maintained.
Change-Id: I625293bed5aeb5aabf4eca779f6ec3ee84c9ff2a
2015-01-07 11:17:40 -08:00
Urvang Joshi
4b997ae46d
WebPAnimEncoder API: Header and implementation
...
A separate API to generate animated WebP images.
It will eventually replace the internal gif2webp_util methods.
Also: update makefiles.
Change-Id: Idf61dfc1016c10b24fea70425d1a2323cffba515
2015-01-07 10:42:02 -08:00
Pascal Massimino
72208becb0
move argb_*.o build target to encoder list
...
Change-Id: I4ea41edb4611a4287da6017dbb7ae6dc01541dd2
2015-01-07 00:11:57 -08:00
Pascal Massimino
9592053859
Merge "multi-thread fix: lock each entry points with a static var"
2015-01-07 00:03:51 -08:00
Pascal Massimino
4c1b300ada
Merge "SSE2 implementation of VP8PackARGB"
2015-01-06 23:53:50 -08:00
Pascal Massimino
fbcc200418
Merge "add -Wformat-nonliteral and -Wformat-security"
2015-01-06 23:50:25 -08:00
Pascal Massimino
80d950d94e
add -Wformat-nonliteral and -Wformat-security
...
can be useful, not sure they are a subset of the flags we
use already...
Change-Id: Iec742a99427a791d9527368302a1136df2ff96cd
2015-01-06 17:56:47 -08:00
James Zern
04c20e75ea
Merge "MIPS: dspr2: added optimization for function Intra4Preds"
2015-01-06 16:15:10 -08:00
Pascal Massimino
a437694a17
multi-thread fix: lock each entry points with a static var
...
we compare the current VP8GetCPUInfo pointer to the last used.
This is less code overall and each implementation is still
testable separately (by just changing VP8GetCPUInfo, but not
a separate threads!)
Change-Id: Ia13fa8ffc4561a884508f6ab71ed0d1b9f1ce59b
2015-01-05 07:48:49 -08:00
Pascal Massimino
ca7f60db5f
SSE2 implementation of VP8PackARGB
...
Change-Id: I40c0e26a6a2701216e4ddebcf793aa535677f437
2015-01-05 05:17:51 -08:00
Pascal Massimino
72d573f693
simplify the PackARGB signature
...
Change-Id: I51570e362126b2681f93211a4f59a3fedb5fd4b5
2015-01-05 02:10:04 -08:00
James Zern
4e2589ff81
demux: restore strict fragment flag check
...
inadvertently removed in:
demux: remove experimental FRGM parsing
Change-Id: Ia9bb8211e2153df51e7a01cabe8552524b8ed218
2014-12-23 12:47:06 -05:00
James Zern
4ba8e07425
Merge "webp-container-spec: remove references to fragments"
2014-12-23 09:12:52 -08:00
James Zern
e752f0a673
Merge "demux: remove experimental FRGM parsing"
2014-12-23 09:12:15 -08:00
James Zern
f8abb112f2
Merge changes I109ec4d9,I73fe7743
...
* changes:
dec_neon: add DC8uvNoTop / DC8uvNoLeft
dec_neon: add DC8uv
2014-12-23 09:11:22 -08:00
Djordje Pesut
ae2188a435
MIPS: dspr2: added optimization for function Intra4Preds
...
Change-Id: Ie2a23c356a8715817b020fbee2b40e878e2946de
2014-12-23 17:32:27 +01:00
Pascal Massimino
1f4b8642e8
move VP8EncDspARGBInit() call closer to where it's needed
...
Change-Id: I0d5121b456918f0ee6646903a8d71d4384deafe3
2014-12-23 16:04:14 +01:00
James Zern
14108d7878
dec_neon: add DC8uvNoTop / DC8uvNoLeft
...
adds do_top/do_left flags to DC8uv; ~88% / ~92% faster respectively
no change in DC8uv speed.
Change-Id: I109ec4d9ad13c9db64516e98ed4693a21a3e9b54
2014-12-22 15:47:38 -05:00
James Zern
d8340da756
dec_neon: add DC8uv
...
~87% faster.
Change-Id: I73fe77437792f1361ce8ab0b411132c6ec0fa021
2014-12-22 14:36:45 -05:00
James Zern
a66e66c79d
webp-container-spec: remove references to fragments
...
this portion of the format was never finalized
Change-Id: I80aa1b27457a0e52b047c7284df2f58b181ca5d8
2014-12-22 11:51:29 -05:00
Djordje Pesut
7ce8788b06
MIPS: dspr2: added optimization for function MakeARGB32
...
inline function MakeARGB32 calls changed to call
via pointers to functions which make (a)rgb for
entire row
Change-Id: Ia4bd4be171a46c1e1821e408b073ff5791c587a9
2014-12-22 12:31:36 +01:00
James Zern
012e623ddd
demux: remove experimental FRGM parsing
...
references to fragments remain, along with some superfluous checks; these
will be removed in a future commit.
Change-Id: I39fe9314900ecbc5d60e5065b65fa1b4c668af63
2014-12-19 19:03:17 -08:00
Pascal Massimino
87c3d53180
method=0: Don't evaluate any predictor
...
and apply Paeth predictor (predictor#11) for the low effort (m=0) mode.
For 1000 image PNG corpus (m=0), this change yields speedup of 25% at lower quality
range and about 10% for higher quality range.
Change-Id: I0f036b8ffe45c241e63a067cbf01527b13d8de93
2014-12-17 18:41:08 +01:00
Djordje Pesut
6f4fcb983e
Merge "MIPS: dspr2: added optimization for function ImportRow"
2014-12-17 09:36:02 -08:00
Pascal Massimino
24284459c7
replace unneeded calls to HistogramCopy() by swaps
...
most of the time, we don't need to actually move the
data.
Compression is randomly slightly different, because HistogramCompactBins() changed.
Timing is about the same.
Change-Id: Ia6af8e9780581014d6860f2b546189ac817cfad1
2014-12-17 15:32:36 +01:00
Djordje Pesut
bdf7b40c5c
MIPS: dspr2: added optimization for function ImportRow
...
Change-Id: I8205b551755ee51f5efd0c54d64c8b09771786b1
2014-12-17 15:24:41 +01:00
pascal massimino
e66a9225f3
Merge "MIPS: dspr2: added optimization for function ExportRowC"
2014-12-17 04:36:25 -08:00
Djordje Pesut
c279fec192
MIPS: dspr2: added optimization for function ExportRowC
...
Change-Id: Ie1a303089eb64736f8bc7573819a8219aa7528a3
2014-12-17 12:01:48 +01:00
Pascal Massimino
31a9cf6417
Speedup WebP lossless compression for low effort (m=0) mode with following:
...
- Disable Cross-Color transform.
- Evaluate predictors #11 (paeth), #12 and #13 only.
Change-Id: I857264c85c61c3957d4fb45ae32d261d947c8bed
2014-12-17 11:52:11 +01:00
Djordje Pesut
9275d91c79
MIPS: dspr2: added optimization for function TrueMotion
...
Change-Id: Id006d9591c0c922e28f7f4c01e4006f0f07bdd56
2014-12-12 14:38:55 +01:00
pascal massimino
26106d662e
Merge "enc_neon: fix building with non-Xcode clang (iOS)"
2014-12-11 02:25:25 -08:00
Pascal Massimino
1c4e3efea0
unroll the kBands[] indirection to remove a dereference in GetCoeffs()
...
speed-up is small but visible.
Change-Id: Icff546adc3276f3c3d46b147c4a735b5eb8ff22e
2014-12-11 08:06:20 +01:00
James Zern
a3946b8956
enc_neon: fix building with non-Xcode clang (iOS)
...
check for __apple_build_version__ to distinguish the two; a version
check could work as Apple bumped Xcode's to 5.x/6.x, but it's unclear
how upstream will deal with their versioning as they go 3.6+, so avoid
it for now.
Change-Id: I67cda67c4f68e262a92d805a63cc1496374be063
2014-12-10 15:50:26 -08:00
Pascal Massimino
8ed9c00d5e
Merge "simplify the Histogram struct, to only store max_value and last_nz"
2014-12-10 02:02:05 -08:00
Pascal Massimino
bad775715a
simplify the Histogram struct, to only store max_value and last_nz
...
we don't need to store the whole distribution in order to compute the alpha
Later, we can incorporate the max_value / last_non_zero bookkeeping
in SSE2 directly.
Change-Id: I748ccea4ac17965d7afcab91845ef01be3aa3e15
2014-12-10 10:44:57 +01:00
Djordje Pesut
3cca0dc7f0
MIPS: dspr2: Added optimization for DCMode function
...
Change-Id: I8ea31907c1ea1259ec4db8cee1a479bd13a025a1
2014-12-09 13:58:39 +01:00
Djordje Pesut
37e395fd1c
MIPS: fix functions to use generic BPS istead of hardcoded value
...
Change-Id: I2d68abef886eff7f8df230f155b758dccd7d04fd
2014-12-05 15:55:47 +01:00
James Zern
9475bef4d7
PickBestUV: fix VP8Copy16x8 invocation
...
param order is src, dst
broken in:
66ad372
factorize BPS definition in dsp.h and add VP8Copy16x8
Change-Id: I761f618e3fe31ae7f58953256381f4f16bdb238e
2014-12-04 23:12:30 -08:00
James Zern
441f273f19
Merge changes I55f8da52,Id73a1e96
...
* changes:
cosmetics: add some missing != NULL comparisons
factorize BPS definition in dsp.h and add VP8Copy16x8
2014-12-04 20:46:29 -08:00
Pascal Massimino
4a279a680e
cosmetics: add some missing != NULL comparisons
...
Change-Id: I55f8da527e5e8ee4b49c7e7aa0d61ea4a6c80904
2014-12-04 14:54:11 +01:00
Pascal Massimino
66ad372500
factorize BPS definition in dsp.h and add VP8Copy16x8
...
Change-Id: Id73a1e968c96455808755df4d131d74e3e2e135d
2014-12-04 13:45:14 +01:00
Pascal Massimino
432e5b550e
make ALIGN_xxx naming consistent
...
(potentially for future factorization between enc/ and dec/)
Change-Id: Ibf6670e21433a6a6a7202dcbe76f7efc8493b8cf
2014-12-04 13:32:10 +01:00