webm/libwebp.git
3 days agoMerge "enc_sse41: add Disto4x4 / Disto16x16" master
pascal massimino [Fri, 27 Mar 2015 08:12:45 +0000 (01:12 -0700)]
Merge "enc_sse41: add Disto4x4 / Disto16x16"

3 days 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

3 days 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

4 days 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

4 days 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

4 days 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

5 days 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

5 days 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

5 days 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

5 days 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

6 days 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

9 days 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"

9 days 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

9 days 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

9 days 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

9 days 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

9 days 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

9 days 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

9 days 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

9 days 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

9 days 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

9 days 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

9 days 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

10 days 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

11 days 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"

11 days 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

11 days 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 weeks 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 weeks agoMerge "add shell for libwebpextras"
James Zern [Thu, 12 Mar 2015 01:53:50 +0000 (18:53 -0700)]
Merge "add shell for libwebpextras"

2 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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

3 weeks 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

3 weeks 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

3 weeks 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

4 weeks 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"

4 weeks 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

4 weeks 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

4 weeks 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

4 weeks 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

4 weeks 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

4 weeks 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

4 weeks 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

4 weeks 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

4 weeks 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

5 weeks 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

5 weeks 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

5 weeks 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

5 weeks 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

5 weeks 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

5 weeks 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

5 weeks 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"

5 weeks 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

5 weeks 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

5 weeks 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"

6 weeks 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"

6 weeks 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

6 weeks 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

6 weeks 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"

6 weeks 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

6 weeks 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"

6 weeks 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

6 weeks 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

6 weeks agoMerge "dsp/mips: add some missing TSan annotations"
James Zern [Thu, 12 Feb 2015 22:55:32 +0000 (14:55 -0800)]
Merge "dsp/mips: add some missing TSan annotations"

6 weeks agoMerge "MIPS: dspr2: Added optimization for function VP8LAddGreenToBlueAndRed_C"
pascal massimino [Thu, 12 Feb 2015 22:48:17 +0000 (14:48 -0800)]
Merge "MIPS: dspr2: Added optimization for function VP8LAddGreenToBlueAndRed_C"

6 weeks agodsp/mips: add some missing TSan annotations 73/73773/1
James Zern [Thu, 12 Feb 2015 22:36:33 +0000 (14:36 -0800)]
dsp/mips: add some missing TSan annotations

Change-Id: I3c832aefdeac26c6c75c35b19b45c1a2f67493c5

6 weeks agoMIPS: dspr2: Added optimization for function VP8LAddGreenToBlueAndRed_C 49/73749/2
Djordje Pesut [Wed, 11 Feb 2015 10:24:12 +0000 (11:24 +0100)]
MIPS: dspr2: Added optimization for function VP8LAddGreenToBlueAndRed_C

Change-Id: If897c6c2f1c4b8405789298e135d6a1e4bf13012

6 weeks agomove some cost tables from enc/ to dsp/ 66/73766/1
James Zern [Thu, 12 Feb 2015 00:09:07 +0000 (16:09 -0800)]
move some cost tables from enc/ to dsp/

removes circular dependency between dsp and enc.

since:
a987fae MIPS: dspr2: added optimization for function GetResidualCost

Change-Id: Ifeb8fc02de89e2ba982ed7ffacd925d649bfec3c

6 weeks agoMerge "picture_csp: fix build w/USE_GAMMA_COMPRESSION undefined"
pascal massimino [Tue, 10 Feb 2015 08:09:03 +0000 (00:09 -0800)]
Merge "picture_csp: fix build w/USE_GAMMA_COMPRESSION undefined"

6 weeks agoMerge "VP8LDspInitMIPSdspR2: add missing TSan annotation"
pascal massimino [Tue, 10 Feb 2015 08:02:41 +0000 (00:02 -0800)]
Merge "VP8LDspInitMIPSdspR2: add missing TSan annotation"

6 weeks agopicture_csp: fix build w/USE_GAMMA_COMPRESSION undefined 38/73738/1
James Zern [Tue, 10 Feb 2015 07:57:14 +0000 (23:57 -0800)]
picture_csp: fix build w/USE_GAMMA_COMPRESSION undefined

kGammaFix is now only defined with USE_GAMMA_COMPRESSION;

fixes:
use of undeclared identifier 'kGammaFix'

Change-Id: Ib1e2f410eff9b83be065894f88181f91dd2776e1

6 weeks agoVP8LDspInitMIPSdspR2: add missing TSan annotation 36/73736/2
James Zern [Tue, 10 Feb 2015 07:06:28 +0000 (23:06 -0800)]
VP8LDspInitMIPSdspR2: add missing TSan annotation

Change-Id: Ic0d84e95daf063976b40fb5ba1e94d3547e2afba

6 weeks agoMerge "VP8LDspInit: remove memcpy"
pascal massimino [Tue, 10 Feb 2015 07:48:44 +0000 (23:48 -0800)]
Merge "VP8LDspInit: remove memcpy"

6 weeks agopicture_csp::InitGammaTables*: add missing TSan annotations 35/73735/2
James Zern [Tue, 10 Feb 2015 06:43:08 +0000 (22:43 -0800)]
picture_csp::InitGammaTables*: add missing TSan annotations

Change-Id: I66ca5b3e7b1614f861a9b68bd437f58b24cb1ebb

6 weeks agoVP8LDspInit: remove memcpy 37/73737/1
James Zern [Tue, 10 Feb 2015 07:39:47 +0000 (23:39 -0800)]
VP8LDspInit: remove memcpy

without this change the TSan annotation is useless

Change-Id: Ief511379f3aad75889815d4fe8362aed5c1abac7

6 weeks agoVP8YUVInit: add missing TSan annotation 34/73734/1
James Zern [Tue, 10 Feb 2015 06:42:12 +0000 (22:42 -0800)]
VP8YUVInit: add missing TSan annotation

Change-Id: I7f8868de425e1aac3721b3e328844725104d14db

6 weeks agodsp/enc::InitTables: add missing TSan annotation 33/73733/1
James Zern [Tue, 10 Feb 2015 06:40:45 +0000 (22:40 -0800)]
dsp/enc::InitTables: add missing TSan annotation

Change-Id: I262b9071417a0ec502c7c0380f27da6413cc74e4

6 weeks agoVP8EncDspCostInit*: add missing TSan annotations 32/73732/1
James Zern [Tue, 10 Feb 2015 06:39:14 +0000 (22:39 -0800)]
VP8EncDspCostInit*: add missing TSan annotations

Change-Id: I4cdb84bc8c9a8c6aa34b5773c8fb69e5810a9809

6 weeks agoMerge "doc/webp-container-spec: cosmetics"
James Zern [Mon, 9 Feb 2015 22:37:45 +0000 (14:37 -0800)]
Merge "doc/webp-container-spec: cosmetics"

6 weeks agoMIPS: mips32: Added optimization for function SetResidualCoeffs 12/73712/4
Djordje Pesut [Mon, 9 Feb 2015 09:56:23 +0000 (10:56 +0100)]
MIPS: mips32: Added optimization for function SetResidualCoeffs

Change-Id: If67c10285df71ba7dd1aff6c24c2145c280dd2bf

7 weeks agoMIPS: dspr2: added optimization for function GetResidualCost 99/73699/5
Pascal Massimino [Sat, 7 Feb 2015 10:13:26 +0000 (02:13 -0800)]
MIPS: dspr2: added optimization for function GetResidualCost

set/get residual C functions moved to new file in src/dsp
mips32 version of GetResidualCost moved to new file

Change-Id: I7cebb7933a89820ff28c187249a9181f281081d2

7 weeks agodoc/webp-container-spec: cosmetics 06/73706/1
James Zern [Fri, 6 Feb 2015 22:50:49 +0000 (14:50 -0800)]
doc/webp-container-spec: cosmetics

partially normalize indent, vertical whitespace and capitalization with
the copy used on developers.google.com/speed/webp

Change-Id: I8044418eeb9eaf5bd5c799675c74f6f845d503d6

7 weeks agoMerge "VP8TBufferClear: remove some misleading const's"
pascal massimino [Fri, 6 Feb 2015 10:01:15 +0000 (02:01 -0800)]
Merge "VP8TBufferClear: remove some misleading const's"

7 weeks agoMerge "VP8EmitTokens: remove unnecessary param void cast"
pascal massimino [Fri, 6 Feb 2015 10:00:16 +0000 (02:00 -0800)]
Merge "VP8EmitTokens: remove unnecessary param void cast"

7 weeks agoVP8TBufferClear: remove some misleading const's 98/73698/1
James Zern [Thu, 5 Feb 2015 03:56:34 +0000 (19:56 -0800)]
VP8TBufferClear: remove some misleading const's

the input to the function is non-const and the pointer being operated is
being free'd; removes an unnecessary cast in the process

Change-Id: Ic515ed672ddf7f8e4e36eeac696ff7aa8a3652f7

7 weeks agoVP8EmitTokens: remove unnecessary param void cast 97/73697/1
James Zern [Thu, 5 Feb 2015 03:57:56 +0000 (19:57 -0800)]
VP8EmitTokens: remove unnecessary param void cast

'final_pass' is used within the function

Change-Id: I81be1a6e18cafaa6ae685ed8ad2b107fa7ed29cf

7 weeks agocosmetics: upsampling_sse2: add const to some casts 96/73696/1
James Zern [Thu, 5 Feb 2015 03:54:12 +0000 (19:54 -0800)]
cosmetics: upsampling_sse2: add const to some casts

source pointers are often cast to __m128*, retain the const in those
cases

Change-Id: Ia6df6690c85f580b20f19ce85cc6ec7b52620aee

7 weeks agocosmetics: lossless_sse2: add const to some casts 95/73695/1
James Zern [Thu, 5 Feb 2015 03:53:47 +0000 (19:53 -0800)]
cosmetics: lossless_sse2: add const to some casts

source pointers are often cast to __m128*, retain the const in those
cases

Change-Id: I2405b18c6bb829b76c3a9814057ccbe6e14220d9

7 weeks agocosmetics: enc_sse2: add const to some casts 94/73694/1
James Zern [Thu, 5 Feb 2015 03:53:25 +0000 (19:53 -0800)]
cosmetics: enc_sse2: add const to some casts

source pointers are often cast to __m128*, retain the const in those
cases

Change-Id: Ib85d63abbb9fc33096f893c2524d3ce8ae3ebd03

7 weeks agocosmetics: dec_sse2: add const to some casts 93/73693/1
James Zern [Thu, 5 Feb 2015 03:52:59 +0000 (19:52 -0800)]
cosmetics: dec_sse2: add const to some casts

source pointers are often cast to __m128*, retain the const in those
cases

Change-Id: I77decb55f1382bea4b646a11b77dfa40bf1ef94d

7 weeks agocosmetics: argb_sse2: add const to some casts 92/73692/1
James Zern [Thu, 5 Feb 2015 03:52:32 +0000 (19:52 -0800)]
cosmetics: argb_sse2: add const to some casts

source pointers are often cast to __m128*, retain the const in those
cases

Change-Id: I87fa2de11dafcc77767aab64e13b8c5585ebf5cd

7 weeks agocosmetics: alpha_processing_sse2: add const to some casts 91/73691/1
James Zern [Thu, 5 Feb 2015 03:47:47 +0000 (19:47 -0800)]
cosmetics: alpha_processing_sse2: add const to some casts

source pointers are often cast to __m128*, retain the const in those
cases

Change-Id: I00ba15af2f43d125ceb2620e82fd43d420fbb9d3

7 weeks agovwebp: clear canvas at the beginning of each loop 90/73690/1
James Zern [Fri, 6 Feb 2015 05:09:27 +0000 (21:09 -0800)]
vwebp: clear canvas at the beginning of each loop

this is in line with the recommendation in the spec, cf.,
5603947 webp-container-spec: clarify background clear on loop

Change-Id: Id3910395b05a1a1f2804be841b61f97bd4bac593

7 weeks agoMerge "webp-container-spec: clarify background clear on loop"
pascal massimino [Thu, 5 Feb 2015 22:44:27 +0000 (14:44 -0800)]
Merge "webp-container-spec: clarify background clear on loop"

7 weeks agoUpdated the near-lossless level mapping. 78/73678/1
Vikas Arora [Thu, 5 Feb 2015 19:16:37 +0000 (11:16 -0800)]
Updated the near-lossless level mapping.

Updated the near-lossless level mapping and make it correlated to lossy
quality i.e 100 => minimum loss (in-fact no-loss) and the visual-quality loss
increases with decrease in near-lossless level (quality) till value 0.

The new mapping implies following (PSNR) loss-metric:
-near_lossless 100: No-loss (bit-stream same as -lossless).
-near_lossless  80: Very very high PSNR (around 54dB).
-near_lossless  60: Very high PSNR (around 48dB).
-near_lossless  40: High PSNR (around 42dB).
-near_lossless  20: Moderate PSNR (around 36dB).
-near_lossless   0: Low PSNR (around 30dB).

Change-Id: I930de4b18950faf2868c97d42e9e49ba0b642960

7 weeks agowebp-container-spec: clarify background clear on loop 75/73675/1
James Zern [Thu, 5 Feb 2015 02:07:00 +0000 (18:07 -0800)]
webp-container-spec: clarify background clear on loop

at the beginning of the loop there's an implicit clear of the entire
canvas to the background (or application defined) color. this avoids
adding the final composited frame to the first.

Change-Id: Ia3a52cf4482c6176334a5c9c99a0ddd07d1776e7

7 weeks agoImplement true-motion prediction in SSE2 68/73668/1
Pascal Massimino [Wed, 4 Feb 2015 16:02:22 +0000 (17:02 +0100)]
Implement true-motion prediction in SSE2

(along with DC/HE/VE for chroma/luma16)

Overall effect is ~1% faster decoding.

Change-Id: I90917e050d61874cbc8da0e88f26b5dd6131c265