webm/libwebp.git
5 weeks agoMerge "fix typo: constitutes -> constitute" master
James Zern [Sat, 18 Apr 2015 19:46:16 +0000 (12:46 -0700)]
Merge "fix typo: constitutes -> constitute"

5 weeks agofix typo: constitutes -> constitute 99/74399/1
Pascal Massimino [Sat, 18 Apr 2015 15:46:53 +0000 (08:46 -0700)]
fix typo: constitutes -> constitute

Change-Id: I5b20ef41f4a810e11a4499b46b5e7dc93247beed

5 weeks agoMerge "populate 'libwebpextras' with: import gray, rgb565 and rgb4444 functions"
Pascal Massimino [Fri, 17 Apr 2015 22:30:52 +0000 (15:30 -0700)]
Merge "populate 'libwebpextras' with: import gray, rgb565 and rgb4444 functions"

5 weeks agoMerge "histogram.h: cosmetics: remove unnecessary includes"
pascal massimino [Fri, 17 Apr 2015 22:30:23 +0000 (15:30 -0700)]
Merge "histogram.h: cosmetics: remove unnecessary includes"

5 weeks agogifdec: Move inclusion of webp/config.h to header. 95/74395/1
Urvang Joshi [Fri, 17 Apr 2015 19:40:57 +0000 (12:40 -0700)]
gifdec: Move inclusion of webp/config.h to header.

Given that we are checking GIFLIB_MAJOR etc in the header, we need the
config in header.

Change-Id: I5d502bd67555752a57589a8ce789efcf0945d72e

5 weeks agohistogram.h: cosmetics: remove unnecessary includes 94/74394/1
James Zern [Fri, 17 Apr 2015 19:23:06 +0000 (12:23 -0700)]
histogram.h: cosmetics: remove unnecessary includes

Change-Id: Ia8277d3587534c2a1af05d3df57a6973a68be16d

5 weeks agoMerge "VP8LBitReader: fix remaining ubsan error with large shifts"
James Zern [Fri, 17 Apr 2015 07:30:05 +0000 (00:30 -0700)]
Merge "VP8LBitReader: fix remaining ubsan error with large shifts"

5 weeks agoMerge "ReconstructRow: move some one-time inits out of the main loop"
James Zern [Thu, 16 Apr 2015 21:51:36 +0000 (14:51 -0700)]
Merge "ReconstructRow: move some one-time inits out of the main loop"

5 weeks agoReconstructRow: move some one-time inits out of the main loop 80/74380/2
Pascal Massimino [Thu, 16 Apr 2015 09:01:34 +0000 (02:01 -0700)]
ReconstructRow: move some one-time inits out of the main loop

+ some cosmetics clean-up

Change-Id: Ifb34b914844bb7734137bacd61fcfc4a13971665

5 weeks agoVP8LBitReader: fix remaining ubsan error with large shifts 66/74366/2
Pascal Massimino [Fri, 13 Mar 2015 19:37:44 +0000 (19:37 +0000)]
VP8LBitReader: fix remaining ubsan error with large shifts

* make VP8LPrefetchBits() safe wrt past-EOS reads
* set 'BitReader::bits_" to a safe shifting value upon EOS

no visible performance difference on x86

Change-Id: I0a4177928cfa81d5dfc9054b36a686eaa1bf8c65

5 weeks agochange GetPixPairHash64() return type to uint32_t 79/74379/1
Pascal Massimino [Thu, 16 Apr 2015 07:55:25 +0000 (00:55 -0700)]
change GetPixPairHash64() return type to uint32_t

Change-Id: Ibb61c1631d7a4bcda5417b5a85864d5e2c3f3858

5 weeks agoMerge "dsp/enc.c: cosmetics: move DST() def closer to use"
pascal massimino [Thu, 16 Apr 2015 07:17:37 +0000 (00:17 -0700)]
Merge "dsp/enc.c: cosmetics: move DST() def closer to use"

5 weeks agoMerge "split 64-mult hashing into two 32-bit multiplies"
Pascal Massimino [Thu, 16 Apr 2015 06:04:47 +0000 (23:04 -0700)]
Merge "split 64-mult hashing into two 32-bit multiplies"

5 weeks agodsp/enc.c: cosmetics: move DST() def closer to use 72/74372/1
James Zern [Fri, 10 Apr 2015 02:43:45 +0000 (19:43 -0700)]
dsp/enc.c: cosmetics: move DST() def closer to use

Change-Id: Iccbcf046412426c2893b71eced517f611d2ffc3f

5 weeks agoMerge "fix MSVC size_t->int conversion warning"
James Zern [Thu, 16 Apr 2015 02:54:18 +0000 (19:54 -0700)]
Merge "fix MSVC size_t->int conversion warning"

5 weeks agoMerge "anim_encode: cosmetics: fix alignment"
James Zern [Wed, 15 Apr 2015 22:32:12 +0000 (15:32 -0700)]
Merge "anim_encode: cosmetics: fix alignment"

5 weeks agoanim_encode: cosmetics: fix alignment 65/74365/1
James Zern [Wed, 15 Apr 2015 22:03:17 +0000 (15:03 -0700)]
anim_encode: cosmetics: fix alignment

Change-Id: I0a746421f5cceebbbecfb75d11d11ec5d86a1900

5 weeks agosplit 64-mult hashing into two 32-bit multiplies 56/74356/2
Pascal Massimino [Wed, 15 Apr 2015 15:44:52 +0000 (17:44 +0200)]
split 64-mult hashing into two 32-bit multiplies

Speed-wise equivalent on x86 and ARM (maybe a tad faster, hard to tell).

Note that the two 32-bit multiples are not strictly equivalent
to the 64-bit one, since we're missing one carry propagation.
In practice, no observable difference was seen because of this
slightly different hashing result.

Change-Id: I8f2381175eae1cb20dabf149e6b27e1768fba6ab

5 weeks agopopulate 'libwebpextras' with: import gray, rgb565 and rgb4444 functions 57/74357/1
Pascal Massimino [Wed, 15 Apr 2015 09:14:08 +0000 (02:14 -0700)]
populate 'libwebpextras' with: import gray, rgb565 and rgb4444 functions

update makefile.unix to provide 'make extras' building instructions.

note: input ordering depends on WEBP_SWAP_16BIT_CSP for rgb565 and rgb4444

Change-Id: I6f22d32189d9ba2619146a9714cedabfe28e2ad0

5 weeks agoremove VP8Residual::cost unused field 58/74358/1
Pascal Massimino [Wed, 15 Apr 2015 08:56:31 +0000 (01:56 -0700)]
remove VP8Residual::cost unused field

Change-Id: Id494475b05c540b40fd104594acbcaa783b88d77

5 weeks agofix MSVC size_t->int conversion warning 55/74355/1
Pascal Massimino [Wed, 15 Apr 2015 06:55:00 +0000 (23:55 -0700)]
fix MSVC size_t->int conversion warning

use size_t for 'total_frames' and compute average with float arith.

Change-Id: Ibf16edb38405b0d525bec38c246cf874668c994e

5 weeks agovwebp: don't redefine snprintf with VS2015+ 53/74353/1
James Zern [Tue, 14 Apr 2015 23:36:54 +0000 (16:36 -0700)]
vwebp: don't redefine snprintf with VS2015+

Change-Id: I30a4ad2f57e931bc11d0b73feaee4db686f79f4d

5 weeks agoAnimEncoder API: Consistent use of trailing underscores in struct. 51/74351/1
Urvang Joshi [Tue, 14 Apr 2015 22:43:43 +0000 (15:43 -0700)]
AnimEncoder API: Consistent use of trailing underscores in struct.

Change-Id: Ica361eee0059250a6800c6c43264e3bd5e5aa3e0

5 weeks agoAnimEncoder API: Use timestamp instead of duration as input to Add(). 46/74346/1
Urvang Joshi [Tue, 14 Apr 2015 18:51:47 +0000 (11:51 -0700)]
AnimEncoder API: Use timestamp instead of duration as input to Add().

When converting from video sources, the duration of current frame
is often unavailable until the next frame. So, we internally convert
timestamps to durations.

Change-Id: I20ad86361c22e014be7eb91f00d5d40108281351

6 weeks agodsp/dec_sse2: DC8uv / DC8uvNoLeft speedup 18/74318/3
James Zern [Thu, 9 Apr 2015 01:43:46 +0000 (18:43 -0700)]
dsp/dec_sse2: DC8uv / DC8uvNoLeft speedup

use psadbw to perform top row summation; left remains in C as repacking
it into a vector to apply the same operation is too costly.

DC8uv: ~19% faster
DC8uvNoLeft: ~12% faster

Change-Id: I707c4f6177a65b5d1f2d3deeca87d2bb740185e2

6 weeks agodsp/dec_sse2: DC16 / DC16NoLeft speedup 17/74317/3
James Zern [Thu, 9 Apr 2015 01:39:21 +0000 (18:39 -0700)]
dsp/dec_sse2: DC16 / DC16NoLeft speedup

use psadbw to perform top row summation; left remains in C as repacking
it into a vector to apply the same operation is too costly.

DC16: ~20% faster
DC16NoLeft: ~14% faster

Change-Id: I7ec3f8a6e5923f88a530f79fceb88d5001bef691

6 weeks agoMerge "makefile.unix: add some missing headers"
James Zern [Tue, 7 Apr 2015 00:32:59 +0000 (17:32 -0700)]
Merge "makefile.unix: add some missing headers"

6 weeks agocosmetics: vp8enci.h: break long line 94/74294/1
James Zern [Mon, 6 Apr 2015 23:11:02 +0000 (16:11 -0700)]
cosmetics: vp8enci.h: break long line

Change-Id: Ib7c7ef6171506e826ed5f7df20c5644f240fd645

6 weeks agomakefile.unix: add some missing headers 95/74295/1
James Zern [Mon, 6 Apr 2015 23:05:21 +0000 (16:05 -0700)]
makefile.unix: add some missing headers

Change-Id: Ieb73854b1afbd9e0aaf25856474df38de4d1559c

7 weeks agodsp: add DSP_INIT_STUB 71/74271/2
James Zern [Fri, 3 Apr 2015 06:19:37 +0000 (23:19 -0700)]
dsp: add DSP_INIT_STUB

generates a stub function when the specific architecture is not enabled,
exposing a symbol in the module, avoiding a compiler warning

Change-Id: Ia9336e57466a9b5241b85c1c95838e91c9283147

7 weeks agoclarify the comment about double-setting the status in SetError() 42/74242/2
Pascal Massimino [Wed, 1 Apr 2015 07:32:52 +0000 (00:32 -0700)]
clarify the comment about double-setting the status in SetError()

Change-Id: I67107220b7a84459592c726dab95483acd4f59f2

7 weeks agoremove unused EmitRGB() 41/74241/2
Pascal Massimino [Wed, 1 Apr 2015 07:27:23 +0000 (00:27 -0700)]
remove unused EmitRGB()

Change-Id: If4d3d775b051206abdab8c603cd3887e9f25d102

7 weeks agomove ReconstructRow to top 40/74240/2
Pascal Massimino [Wed, 1 Apr 2015 07:21:24 +0000 (00:21 -0700)]
move ReconstructRow to top

(one less TODO)

Change-Id: Iaf36d28ab10633faaaa25f2c37ac799747456adc

7 weeks agoadd a dec/common.h header to collect common enc/dec #defines 17/74217/3
Pascal Massimino [Mon, 30 Mar 2015 08:07:36 +0000 (01:07 -0700)]
add a dec/common.h header to collect common enc/dec #defines

had to rename few structs.

-> we can now include both vp8i.h and vp8enci.h without naming
conflicts.

Change-Id: Ib41b498f1b57aab3d6b796361afc45210ec75174

8 weeks agoMerge "enc_sse41: add Disto4x4 / Disto16x16"
pascal massimino [Fri, 27 Mar 2015 08:12:45 +0000 (01:12 -0700)]
Merge "enc_sse41: add Disto4x4 / Disto16x16"

8 weeks agomux.h: Bump up ABI version 10/74210/2
Urvang Joshi [Tue, 24 Mar 2015 21:23:25 +0000 (21:23 +0000)]
mux.h: Bump up ABI version

This was not bumped up after some recent changes; e.g.
WebPAnimEncoderOptionsInit() method.

Change-Id: Ia473b83ddd7a3d8c227d8eeb126809a97e327475

8 weeks agoconfigure: add --disable-<avx2|sse4.1|sse2> 02/74202/3
James Zern [Thu, 26 Mar 2015 06:14:17 +0000 (23:14 -0700)]
configure: add --disable-<avx2|sse4.1|sse2>

Change-Id: I06e73d1f6b5204398b2160b4c0b2c330a6939458

8 weeks agoCPPFLAGS->CFLAGS for detecting sse4.1 in preprocessor 03/74203/1
Pascal Massimino [Thu, 26 Mar 2015 06:41:55 +0000 (23:41 -0700)]
CPPFLAGS->CFLAGS for detecting sse4.1 in preprocessor

Change-Id: I5ee839881c17c8f856aafad1ad2436179c5675d4

8 weeks agoenc_sse41: add Disto4x4 / Disto16x16 01/74201/2
James Zern [Thu, 26 Mar 2015 03:06:50 +0000 (20:06 -0700)]
enc_sse41: add Disto4x4 / Disto16x16

direct translation from sse2; minor gain, fewer instructions

Change-Id: I60288a842fac1a686b82b5cab637931789fe29f2

8 weeks agoencoding SSE4.1 stub for StoreHistogram + Quantize + SSE_16xN 96/74196/5
Pascal Massimino [Wed, 25 Mar 2015 11:12:44 +0000 (12:12 +0100)]
encoding SSE4.1 stub for StoreHistogram + Quantize + SSE_16xN

Visible speed-up, thanks to pshufb and pabsw and psignw use.

had to tweak configure.ac to make "smmintri.h" presence correctly
detected (we need to set the CPPFLAGS instead of the CFLAGS!)

Change-Id: I2ab99e16a27a64fdf1f09b2b4e30a5e74ccca080

8 weeks agoremove duplicate variables after the lossless{_enc}.c split 95/74195/1
Pascal Massimino [Wed, 25 Mar 2015 10:10:21 +0000 (11:10 +0100)]
remove duplicate variables after the lossless{_enc}.c split

clang was giving "duplicate symbols" error messages at link time.

Change-Id: I2b77b55222fe033cc1d4636567902e80d814aab6

8 weeks agoenc_sse2: call local FTransform in CollectHistogram 92/74192/1
James Zern [Wed, 25 Mar 2015 03:20:36 +0000 (20:20 -0700)]
enc_sse2: call local FTransform in CollectHistogram

allows the former to be inlined; negligible speed-up in most cases,
however this is structure is consistent with the rest of the optimized
modules

Change-Id: Ib080240b06f7a995b47f1906627850c355b82901

8 weeks agodsp: s/VP8LSetHistogramData/VP8SetHistogramData/ 91/74191/1
James Zern [Wed, 25 Mar 2015 01:27:41 +0000 (18:27 -0700)]
dsp: s/VP8LSetHistogramData/VP8SetHistogramData/

this function is for lossy encoding; the VP8L prefix is used by lossless

Change-Id: I147590a91477a77af51ed79cc640546dfe53abdb

8 weeks agocosmetics: dsp/lossless.h: reorder prototypes 90/74190/1
James Zern [Wed, 25 Mar 2015 00:50:28 +0000 (17:50 -0700)]
cosmetics: dsp/lossless.h: reorder prototypes

group decoding / encoding functions together, followed by their
respective Init() function.

Change-Id: Ib4d22f8ec2369efec752faf733ecf53acc67b1ca

2 months agodsp/lossless: split enc/dec functions 82/74182/1
James Zern [Sat, 21 Mar 2015 02:09:49 +0000 (19:09 -0700)]
dsp/lossless: split enc/dec functions

adds lossless_enc*.c; reduces the size of the decode-only so: ~78K
w/gcc-4.8.2 on x86_64.

Change-Id: If5e4610b67d05eba5896bc64bab79e9df92b2092

2 months agoMerge "conditionally add -msse4.1 in Makefile.unix"
James Zern [Sat, 21 Mar 2015 04:37:30 +0000 (21:37 -0700)]
Merge "conditionally add -msse4.1 in Makefile.unix"

2 months agodsp/yuv*.c: rework WEBP_USE_<arch> ifdef 54/74154/3
James Zern [Fri, 20 Mar 2015 05:52:26 +0000 (22:52 -0700)]
dsp/yuv*.c: rework WEBP_USE_<arch> ifdef

add a dummy init rather than repeating the '#ifdef WEBP_USE_...'
pattern.

Change-Id: I42e621481be7305bb7c426b4d0b279619195611e

2 months agodsp/upsampling*.c: rework WEBP_USE_<arch> ifdef 53/74153/3
James Zern [Fri, 20 Mar 2015 05:49:19 +0000 (22:49 -0700)]
dsp/upsampling*.c: rework WEBP_USE_<arch> ifdef

add a dummy init rather than repeating the '#ifdef WEBP_USE_...'
pattern.

Change-Id: I3c753915eefe900987c9720733efb720ebe6bfa7

2 months agodsp/rescaler*.c: rework WEBP_USE_<arch> ifdef 52/74152/3
James Zern [Fri, 20 Mar 2015 03:49:35 +0000 (20:49 -0700)]
dsp/rescaler*.c: rework WEBP_USE_<arch> ifdef

add a dummy init rather than repeating the '#ifdef WEBP_USE_...'
pattern.

Change-Id: Ife9c7cd363b3692b64a7ade1960cfce3a76c3ba2

2 months agodsp/lossless*.c: rework WEBP_USE_<arch> ifdef 51/74151/3
James Zern [Fri, 20 Mar 2015 03:47:57 +0000 (20:47 -0700)]
dsp/lossless*.c: rework WEBP_USE_<arch> ifdef

add a dummy init rather than repeating the '#ifdef WEBP_USE_...'
pattern.

Change-Id: If8b4459556e6bfaa36ef046f66520558b9444fc2

2 months agodsp/filters*.c: rework WEBP_USE_<arch> ifdef 50/74150/3
James Zern [Fri, 20 Mar 2015 03:44:53 +0000 (20:44 -0700)]
dsp/filters*.c: rework WEBP_USE_<arch> ifdef

add a dummy init rather than repeating the '#ifdef WEBP_USE_...'
pattern.

Change-Id: Idf08ffeb2aef1392a6d69596d897a59deebb64cf

2 months agodsp/enc*.c: rework WEBP_USE_<arch> ifdef 49/74149/3
James Zern [Fri, 20 Mar 2015 03:43:10 +0000 (20:43 -0700)]
dsp/enc*.c: rework WEBP_USE_<arch> ifdef

add a dummy init rather than repeating the '#ifdef WEBP_USE_...'
pattern.

Change-Id: I0cf40b500f9b3eed55a3211213db180c7c0dd43b

2 months agodsp/dec*.c: rework WEBP_USE_<arch> ifdef 48/74148/3
James Zern [Fri, 20 Mar 2015 03:39:10 +0000 (20:39 -0700)]
dsp/dec*.c: rework WEBP_USE_<arch> ifdef

add a dummy init rather than repeating the '#ifdef WEBP_USE_...'
pattern.

Change-Id: I319bc7714f36b8a3d8b35f6474e5592a439aaf24

2 months agodsp/cost*.c: rework WEBP_USE_<arch> ifdef 47/74147/3
James Zern [Fri, 20 Mar 2015 03:35:00 +0000 (20:35 -0700)]
dsp/cost*.c: rework WEBP_USE_<arch> ifdef

add a dummy init rather than repeating the '#ifdef WEBP_USE_...'
pattern.

Change-Id: Ie9bee5eaf9daebe0909ab1dda1cf1aa4ee1ef03e

2 months agodsp/argb*.c: rework WEBP_USE_<arch> ifdef 46/74146/3
James Zern [Fri, 20 Mar 2015 03:32:15 +0000 (20:32 -0700)]
dsp/argb*.c: rework WEBP_USE_<arch> ifdef

add a dummy init rather than repeating the '#ifdef WEBP_USE_...'
pattern.

Change-Id: I46b89909a0279172d37dbda70f731c7b9f052dad

2 months agodsp/alpha*.c: rework WEBP_USE_<arch> ifdef 24/74124/4
James Zern [Thu, 19 Mar 2015 05:52:39 +0000 (22:52 -0700)]
dsp/alpha*.c: rework WEBP_USE_<arch> ifdef

add a dummy init rather than repeating the '#ifdef WEBP_USE_...'
pattern.

Change-Id: I9e7f187daffe1a3b1bc92953dce980c38d1a6269

2 months agoconditionally add -msse4.1 in Makefile.unix 55/74155/1
Pascal Massimino [Fri, 20 Mar 2015 14:54:33 +0000 (07:54 -0700)]
conditionally add -msse4.1 in Makefile.unix

Change-Id: I46798d39f5354fe44224a4f9580665a967d2fa1f

2 months agostub for SSE4.1 support. 34/74134/7
Pascal Massimino [Thu, 19 Mar 2015 20:18:59 +0000 (13:18 -0700)]
stub for SSE4.1 support.

Change-Id: I0c845a98d2871cc8907ff7b914bab7747a92c7ed

2 months agoMerge "dsp: add sse4.1 detection"
pascal massimino [Thu, 19 Mar 2015 07:08:02 +0000 (00:08 -0700)]
Merge "dsp: add sse4.1 detection"

2 months agodsp: add sse4.1 detection 21/74121/1
James Zern [Thu, 19 Mar 2015 02:15:45 +0000 (19:15 -0700)]
dsp: add sse4.1 detection

bit 19 in ecx
no targets or code

https://software.intel.com/en-us/articles/using-cpuid-to-detect-the-presence-of-sse-41-and-sse-42-instruction-sets

Change-Id: Ie61b004dd5b6a3639b30bd9d2a09e6d7359b8040

2 months agothread.h: rename interface param 20/74120/1
James Zern [Thu, 19 Mar 2015 02:07:41 +0000 (19:07 -0700)]
thread.h: rename interface param

this matches the code in thread.c; interface is a reserved word in some
windows configurations.

Change-Id: I9570b14171023214a51263211693f1a858a13acf

2 months agoMerge "sync versions with 0.4.3"
pascal massimino [Thu, 12 Mar 2015 07:51:44 +0000 (00:51 -0700)]
Merge "sync versions with 0.4.3"

2 months agoMerge "add shell for libwebpextras"
James Zern [Thu, 12 Mar 2015 01:53:50 +0000 (18:53 -0700)]
Merge "add shell for libwebpextras"

2 months agosync versions with 0.4.3 52/74052/1
James Zern [Wed, 4 Mar 2015 03:05:40 +0000 (19:05 -0800)]
sync versions with 0.4.3

libwebp{,decoder} - 0.4.3
libwebp libtool - 5.3.0
libwebpdecoder libtool - 1.3.0

mux/demux - 0.2.2 (unchanged)
libtool - 1.2.0 (unchanged)

(cherry picked from commit bd852f5d81edbcf201a4f6a1567689c9b95444d1)

Change-Id: Ie8c35ffc20c1bfd782bdafd99da6c6b1373022c1

2 months agoMerge "~30% faster smart-yuv (-pre 4) with early-out criterion"
Pascal Massimino [Wed, 11 Mar 2015 09:16:27 +0000 (02:16 -0700)]
Merge "~30% faster smart-yuv (-pre 4) with early-out criterion"

2 months ago~30% faster smart-yuv (-pre 4) with early-out criterion 14/74014/7
Pascal Massimino [Fri, 6 Mar 2015 22:57:07 +0000 (14:57 -0800)]
~30% faster smart-yuv (-pre 4) with early-out criterion

we look at average global improvement and stop when things are
moving slow, or when we had a quite good first iteration already
(means: the picture is "not difficult")

Change-Id: I8ab7d100353039b5b32bb5fac3fe03c8440c78d5

2 months agoMerge "Disable NEON code on Native Client"
James Zern [Wed, 11 Mar 2015 00:52:51 +0000 (17:52 -0700)]
Merge "Disable NEON code on Native Client"

2 months agoDisable NEON code on Native Client 13/74013/2
Sam Clegg [Fri, 6 Mar 2015 22:48:58 +0000 (14:48 -0800)]
Disable NEON code on Native Client

The NEON assember in libwebp has not yet been ported
to Native Client. This changes disables it.
Related issue:
https://code.google.com/p/nativeclient/issues/detail?id=3205

Change-Id: I200291db7aa79d40c1f10cff7622c9b8599e6886

2 months agoAnimEncoder API: Support input frames in YUV(A) format. 32/74032/1
Urvang Joshi [Tue, 10 Mar 2015 18:27:09 +0000 (11:27 -0700)]
AnimEncoder API: Support input frames in YUV(A) format.

We automatically convert them to ARGB format.

Change-Id: Ia21f07e08c746e16a318cb035af375c81d9af0de

2 months agoadd shell for libwebpextras 97/73997/3
James Zern [Fri, 6 Mar 2015 07:48:46 +0000 (23:48 -0800)]
add shell for libwebpextras

meant to contain additional utility functions useful in processing webp
input/output.

Change-Id: I014ae6b917d62e826aa23a3bbe99aac4462a97c2

2 months agofix signature for VP8RecordCoeffTokens() 54/73954/1
Pascal Massimino [Tue, 3 Mar 2015 07:38:20 +0000 (23:38 -0800)]
fix signature for VP8RecordCoeffTokens()

Change-Id: Ia2fe764b7280931335237ced8190604129fae565

2 months agosmall cosmetics on TokenBuffer. 03/73903/1
Pascal Massimino [Mon, 2 Mar 2015 23:48:28 +0000 (00:48 +0100)]
small cosmetics on TokenBuffer.

Change-Id: I7c33651ed8e3a151aef44247db5fb1e8bf41f8ba

2 months agoMerge "MIPS: dspr2: added optimization for TrueMotion"
James Zern [Thu, 26 Feb 2015 22:07:00 +0000 (14:07 -0800)]
Merge "MIPS: dspr2: added optimization for TrueMotion"

2 months agoWebPPictureRescale: add a note about 0 width/height 74/73874/2
James Zern [Thu, 26 Feb 2015 04:04:09 +0000 (20:04 -0800)]
WebPPictureRescale: add a note about 0 width/height

Change-Id: I3890bb3fd32a148d7dd24c714546160c6c59d4ea

2 months agoMIPS: dspr2: added optimization for TrueMotion 64/73864/2
Djordje Pesut [Wed, 25 Feb 2015 13:09:56 +0000 (14:09 +0100)]
MIPS: dspr2: added optimization for TrueMotion

affected functions:
      TM4 - TrueMotion4
      TM8uv - TrueMotion8
      TM16 - TrueMotion16

Change-Id: Iff4377c4b0ae94716789c03fe1cd5bfd91f79188

2 months agoexamples/Android.mk: add webpmux_example target 62/73862/2
James Zern [Wed, 25 Feb 2015 02:49:44 +0000 (18:49 -0800)]
examples/Android.mk: add webpmux_example target

renamed from 'webpmux' to avoid name clash with the library module name

Change-Id: I33bbdbdcb25a6f35bd85c9a0dbbb93b2428b05f3

2 months agoAndroid.mk: add webpmux target 61/73861/1
James Zern [Wed, 25 Feb 2015 02:49:31 +0000 (18:49 -0800)]
Android.mk: add webpmux target

Change-Id: I60fc898fd804e23f08d760694192c5d04adcae91

2 months agoAndroid.mk: add webpdemux target 60/73860/1
James Zern [Wed, 25 Feb 2015 02:38:58 +0000 (18:38 -0800)]
Android.mk: add webpdemux target

Change-Id: I2fbbefbee59a96c52f5addcfc5bfe1216caad5cc

2 months agoAndroid.mk: add webpdecoder{,_static} targets 59/73859/1
James Zern [Wed, 25 Feb 2015 02:25:06 +0000 (18:25 -0800)]
Android.mk: add webpdecoder{,_static} targets

webpdecoder_static is reused to create libwebpdecoder.so and
libwebp.{a,so}

Change-Id: I940293cb755040c0ea45dc13f22624de8f355867

2 months agoAndroid.mk: split source lists per-directory 58/73858/1
James Zern [Wed, 25 Feb 2015 01:26:07 +0000 (17:26 -0800)]
Android.mk: split source lists per-directory

will allow reuse in future targets

Change-Id: Iededc19d954226e62f2d2383a2b80f268d613647

2 months agoMIPS: dspr2: Added optimization for some convert functions 49/73849/1
Djordje Pesut [Tue, 24 Feb 2015 09:51:34 +0000 (10:51 +0100)]
MIPS: dspr2: Added optimization for some convert functions

affected functions:
      VP8LConvertBGRAToRGBA4444_C
      VP8LConvertBGRAToRGB565_C
      VP8LConvertBGRAToBGR_C

Change-Id: I81513d242d33ebb9fef397ee6a2ca75d17f66e97

2 months agoMIPS: dspr2: Added optimization for some convert functions 21/73821/1
Djordje Pesut [Mon, 23 Feb 2015 16:44:06 +0000 (17:44 +0100)]
MIPS: dspr2: Added optimization for some convert functions

affected functions:
  VP8LConvertBGRAToRGB_C
  VP8LConvertBGRAToRGBA_C

Change-Id: I5f25795c385688f2432d0710296e589f3793cb2b

2 months agoMIPS: [mips32|dspr2]: GetResidualCost rebased 10/73810/3
Djordje Pesut [Fri, 20 Feb 2015 11:34:09 +0000 (12:34 +0100)]
MIPS: [mips32|dspr2]: GetResidualCost rebased

Change-Id: Ie15524c773f7a8c79e002097881a508187ca7cc6

3 months agoSpeedup method StoreImageToBitMask by 5%. 13/73813/1
Vikas Arora [Fri, 20 Feb 2015 17:45:32 +0000 (09:45 -0800)]
Speedup method StoreImageToBitMask by 5%.

Speedup method StoreImageToBitMask by replacing the code to find histogram
index and Huffman tree codes at every iteration to a more optimal code that
updates these only when the current pixel (to write) crosses the histogram
tile-row boundary.

This change speeds up the StoreImageToBitMask method by 5%.

Change-Id: If01a1ccd7820f9a3a3e5bc449d070defa51be14b

3 months agofix iOS arm64 build with Xcode 6.3 07/73807/1
James Zern [Thu, 19 Feb 2015 20:16:58 +0000 (12:16 -0800)]
fix iOS arm64 build with Xcode 6.3

the standard vtbl functions are available there [1][2].
based on a patch from: aaroncrespo
fixes issue #243.

[1]
http://adcdownload.apple.com//Developer_Tools/Xcode_6.3_beta/Xcode_6.3_beta_Release_Notes.pdf
[2] Apple LLVM Compiler Version 6.1
- Xcode 6.3 updates the Apple LLVM compiler to version 6.1.0.
[...]
Support for the arm64 architecture has been significantly revised to
align with ARM's implementation, where the most visible impact is that a
few of the vector intrinsics have changed to match ARM's specifications.

Change-Id: I79a0016f44b9dbe36d0373f7f00a50ab3c2ca447

3 months ago1-2% faster encoding by removing an indirection in GetResidualCost() 04/73804/1
Pascal Massimino [Thu, 19 Feb 2015 07:44:35 +0000 (08:44 +0100)]
1-2% faster encoding by removing an indirection in GetResidualCost()

The MIPS code for cost is not updated yet, that's why i keep Residual::*cost
around for now. Should be removed in favor of *costs later.

Change-Id: Id1d09a8c37ea8c5b34ad5eb8811d6a3ec6c4d89f

3 months agoMIPS: dspr2: added otpimization for DC8uv, DC8uvNoTop and DC8uvNoLeft 99/73799/2
Djordje Pesut [Wed, 18 Feb 2015 15:23:39 +0000 (16:23 +0100)]
MIPS: dspr2: added otpimization for DC8uv, DC8uvNoTop and DC8uvNoLeft

added macros for load/store

Change-Id: I151d4d49bf1fab87fc3a82cb8e8e0835fe10b690

3 months agoMIPS: dspr2: added optimization for functions RD4 and LD4 98/73798/4
Djordje Pesut [Wed, 18 Feb 2015 13:00:46 +0000 (14:00 +0100)]
MIPS: dspr2: added optimization for functions RD4 and LD4

Change-Id: I71216c1300f4eb254de4ae940ea9dcdba50aa080

3 months agoMerge "4-5% faster encoding using SSE2 for GetResidualCost"
Pascal Massimino [Wed, 18 Feb 2015 12:46:53 +0000 (04:46 -0800)]
Merge "4-5% faster encoding using SSE2 for GetResidualCost"

3 months agoMIPS: dspr2: added optimizaton for functions VE4 and DC4 97/73797/1
Djordje Pesut [Wed, 18 Feb 2015 10:25:08 +0000 (11:25 +0100)]
MIPS: dspr2: added optimizaton for functions VE4 and DC4

Change-Id: I118adc6d3872742d8b1f9dbac438cba6fc90b7a9

3 months ago4-5% faster encoding using SSE2 for GetResidualCost 96/73796/1
Pascal Massimino [Wed, 18 Feb 2015 08:40:30 +0000 (09:40 +0100)]
4-5% faster encoding using SSE2 for GetResidualCost

new file: cost_sse2.c

Change-Id: I4896c07f5ff2443ef743f4435fe2758d95a672ed

3 months agoMerge "MIPS: dspr2: added optimization for simple filtering functions"
James Zern [Tue, 17 Feb 2015 22:57:05 +0000 (14:57 -0800)]
Merge "MIPS: dspr2: added optimization for simple filtering functions"

3 months agoMerge "dsp: normalize WEBP_TSAN_IGNORE_FUNCTION usage"
pascal massimino [Sat, 14 Feb 2015 09:57:08 +0000 (01:57 -0800)]
Merge "dsp: normalize WEBP_TSAN_IGNORE_FUNCTION usage"

3 months agodsp: normalize WEBP_TSAN_IGNORE_FUNCTION usage 87/73787/1
James Zern [Fri, 13 Feb 2015 08:24:25 +0000 (00:24 -0800)]
dsp: normalize WEBP_TSAN_IGNORE_FUNCTION usage

the attribute is only necessary in one location; remove it from the
prototypes.

Change-Id: I3820a3c34fbb029fd7ac69a1b0a9b76091bdbde2

3 months agoMIPS: dspr2: added optimization for simple filtering functions 78/73778/1
Djordje Pesut [Fri, 13 Feb 2015 08:24:53 +0000 (09:24 +0100)]
MIPS: dspr2: added optimization for simple filtering functions

affected functions: SimpleVFilter16, SimpleHFilter16,
                    SimpleVFilter16i and SimpleHFilter16i

noticed bug in FilterLoop26 (fix included in this patch)

Change-Id: I72d9c1e45cbac6393eba52bb549b04924d463e30

3 months agoMerge "MIPS: dspr2: Added optimization for function VP8LTransformColorInverse_C"
pascal massimino [Fri, 13 Feb 2015 08:12:52 +0000 (00:12 -0800)]
Merge "MIPS: dspr2: Added optimization for function VP8LTransformColorInverse_C"

3 months agoMIPS: dspr2: Added optimization for function VP8LTransformColorInverse_C 77/73777/2
Djordje Pesut [Fri, 13 Feb 2015 06:53:29 +0000 (07:53 +0100)]
MIPS: dspr2: Added optimization for function VP8LTransformColorInverse_C

Change-Id: I8b60e22c9f6c0badab6267a33751dfc28750f457

3 months agoMerge "ApplyFiltersAndEncode: only copy lossless stats"
pascal massimino [Fri, 13 Feb 2015 07:47:55 +0000 (23:47 -0800)]
Merge "ApplyFiltersAndEncode: only copy lossless stats"

3 months agodoc/webp-container-spec: note MSB order for chunk diagrams 76/73776/1
James Zern [Fri, 13 Feb 2015 04:15:47 +0000 (20:15 -0800)]
doc/webp-container-spec: note MSB order for chunk diagrams

addresses question in issue #241

Change-Id: Iff6a172d5822f6ec8b9bc0951a1c9cd3f98c9251

3 months agoApplyFiltersAndEncode: only copy lossless stats 75/73775/1
James Zern [Fri, 13 Feb 2015 03:44:25 +0000 (19:44 -0800)]
ApplyFiltersAndEncode: only copy lossless stats

this avoids a race with multi-threaded lossy + alpha compression

Change-Id: Ie437105f5a899ed28b9c8885b6ca5431092ce8f5