skal
de2d03e12f
Merge "Add smart RGB->YUV conversion option -pre 4"
2014-08-15 11:07:49 -07:00
skal
3fc4c539aa
Add smart RGB->YUV conversion option -pre 4
...
New function: WebPPictureSmartARGBToYUVA()
This implement smart RGB->YUV conversion.
This is rather undocumented for now, and is triggered using '-pre 4'
preprocessing option.
This is slow-ish and use quite some memory, but should be improvable.
This is somehow a usable beta version.
Change-Id: Ia50a8c30134e4cab8a7d3eb70aef13ce1f6187a1
2014-08-15 10:55:09 -07:00
Djordje Pesut
b4dc4069a2
MIPS: dspr2: added optimization for (un)filters
...
HorizontalFilter
VerticalFilter
GradientFilter
HorizontalUnfilter
VerticalUnfilter
GradientUnfilter
Change-Id: I54055b4767c37719691811072e95bf79c1f627b1
2014-08-14 11:55:19 -07:00
Djordje Pesut
b61c9ceca8
MIPS: dspr2: Optimization of some simple point-sampling functions
...
Change-Id: I6a4ab29bd0cc5a2951a8882cf9997032dc38bd79
2014-08-13 17:18:49 +02:00
Djordje Pesut
98c54107df
MIPS: mips32r2: added optimization for BSwap32
...
gcc < 4.8.3 doesn't translate bswap optimally.
use optimized version always
Change-Id: I979ea26ad6dc0166d3d2f39c4148eb8adfb7ddec
2014-08-12 09:29:13 +02:00
Djordje Pesut
b7e5a5c451
MIPS: detect mips32r6 and disable mips32r1 code
...
Change-Id: Id1325c789a990c9a8704e84e99a22d580303eb8a
2014-08-08 17:29:31 +02:00
pascal massimino
bb07022b66
Merge "cosmetics"
2014-08-06 12:30:08 -07:00
James Zern
e300c9d819
cosmetics
...
fix some indent/whitespace, remove a few duplicate includes, extra
semi-colons
Change-Id: If937182b40a21e0f2028496e7b4b06c6e8a41352
2014-08-06 12:10:59 -07:00
pascal massimino
0e519eea8e
Merge "cosmetics: remove some extraneous 'extern's"
2014-08-05 23:00:04 -07:00
pascal massimino
3ef0f08af5
Merge "vp8enci.h: cosmetics: fix '*' placement"
2014-08-05 22:34:13 -07:00
James Zern
4c6dde37b9
bit_writer: cosmetics: rename kFlush() -> Flush()
...
Change-Id: I8907927974188bee85ffade1d75d2e50817aa115
2014-08-05 22:14:29 -07:00
James Zern
f7b4c48bba
cosmetics: remove some extraneous 'extern's
...
Change-Id: Ib3f0cff37120c51633387dd1c46592c53ab0ba6d
2014-08-05 22:14:24 -07:00
James Zern
b47fb00ac0
vp8enci.h: cosmetics: fix '*' placement
...
associate with the type
Change-Id: Icf94f11bf79f6ccee3150e27b228755f8f3f0f37
2014-08-05 22:14:12 -07:00
skal
b5a36cc9ad
add -near_lossless [0..100] experimental option
...
This compresses the uimage using lossless compression and controlable
decimating pre-process.
Code is under WEBP_EXPERIMENTAL_FEATURE while it's being experimented with.
Change-Id: I8b7f4cfcc3c6afc52a556102842bdbb045ed5ee8
2014-08-05 19:17:10 +02:00
James Zern
0524d9e5e8
dsp: detect mips64 & disable mips32 code
...
Change-Id: Icf68dafd5cf0614ca25b36a0252caa1784ac8059
2014-08-01 21:18:53 -07:00
James Zern
29a9fe222a
libwebp 0.4.1
...
- 7/24/14: version 0.4.1
This is a binary compatible release.
* AArch64 (arm64) & MIPS support/optimizations
* NEON assembly additions:
- ~25% faster lossy decode / encode (-m 4)
- ~10% faster lossless decode
- ~5-10% faster lossless encode (-m 3/4)
* dwebp/vwebp can read from stdin
* cwebp/gif2webp can write to stdout
* cwebp can read webp files; useful if storing sources as webp lossless
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
iQIcBAABAgAGBQJT1xp9AAoJEPnD1r24IytdjDEP/3ZOnrWG0OIThlGE6bqgO3oy
Y5O7RrvzFuPdGEZ1Kl9jDXjzsYY018/+HJmOD3kf+Qt/+F/8hpGH520VuEiJdVIW
UcvoYaYq9xrmKNqEJx910Vh8TP7wE2T62OJcqKWg2JEczfUWn8WOKjmM5c8N1kJ2
q6EbpCdWlxcD49L/MavJ5Yfw9jSZAjKzOIxxz0C294iMTK4IcSmeVvdqhkdyh96E
CABw3o8sJfqB6p+KXjweXcE2KOhvzAWqTRcIogDC0jV/PgOlindf6k0am2FJHvMM
A+sf/pmD0YKI1vEaXW+Vs6cz6LzvwbIkJSwuzBA7FYHAG5yqTSkQDxTSttw/RwiW
fUScqHjQVBUqkM5bdOsdYBSDutQKDF2+WfcK5jXFdnydkQi59HKHV2R0K5cXYqfN
Tu7aMBqFcfGunLlzfKCJcz8SElEmUjG6oAzRZYcdM9dmnR7ypQK17A/GbaysKKOE
HMmep7uNX25w+6AL7zExnmPPPtSz+kj1SXt9fgldkelDhg1faAgfwXb/N4E+00lA
1+aJD3gHcR4QnDI4gnKBKHyIktQPfNKMQ6xuL0oyvsalQ/loz08wu0aACcGDFrg4
uOVVxTqU+pEITuwGcNk228+O2EbMWzzi3+Vhi1v3Gg3jJ3TRB3QN6NohmrsIackL
4W2V5NoX5i2VizGfLy2g
=GWd5
-----END PGP SIGNATURE-----
Merge tag 'v0.4.1'
libwebp 0.4.1
- 7/24/14: version 0.4.1
This is a binary compatible release.
* AArch64 (arm64) & MIPS support/optimizations
* NEON assembly additions:
- ~25% faster lossy decode / encode (-m 4)
- ~10% faster lossless decode
- ~5-10% faster lossless encode (-m 3/4)
* dwebp/vwebp can read from stdin
* cwebp/gif2webp can write to stdout
* cwebp can read webp files; useful if storing sources as webp lossless
* tag 'v0.4.1':
update ChangeLog
iosbuild.sh: specify optimization flags
update ChangeLog
makefile.unix: add vwebp.1 to the dist target
update ChangeLog
gif2webp: dust up the help message
remove -noalphadither option from README/vwebp.1
update NEWS for the next release
update AUTHORS
bump version to 0.4.1
restore mux API compatibility
remove the !WEBP_REFERENCE_IMPLEMENTATION tweak in Put8x8uv
restore encode API compatibility
restore decode API compatibility
gif2webp: fix compile with giflib 5.1.0
gif2webp: simplify giflib version checking
Change-Id: Icf599f29bc6c0db757bc133aaddb3dbbbc316e08
2014-07-29 18:06:58 -07:00
James Zern
85213b9bbe
bump version to 0.4.1
...
libwebp{,decoder} - 0.4.1
libwebp libtool - 5.1.0
libwebpdecoder libtool - 1.1.0
mux/demux - 0.2.1
libtool - 1.1.0
Change-Id: If593a198f802fd68c7dbbdbe0fc2612dbc44e2df
2014-07-23 17:17:25 -07:00
James Zern
695f80ae25
Merge "restore mux API compatibility" into 0.4.1
2014-07-23 17:11:33 -07:00
James Zern
862d296cf9
restore mux API compatibility
...
protect WebPMuxSetCanvasSize w/a WEBP_MUX_ABI_VERSION check
Change-Id: I6b01af55ebb4cc4c860d3cbf43be722077896748
2014-07-23 16:13:56 -07:00
skal
8f6f8c5dde
remove the !WEBP_REFERENCE_IMPLEMENTATION tweak in Put8x8uv
...
There's no speed diff, so better remove it altogether
Reported in https://code.google.com/p/webp/issues/detail?id=215
Change-Id: I991330de18bec340029d6df5fed0dfb4337e4662
2014-07-23 14:15:40 -07:00
James Zern
c2fc52e4ec
restore encode API compatibility
...
protect WebPConfigLosslessPreset/WebPMemoryWriterClear w/a
WEBP_ENCODER_ABI_VERSION check
Change-Id: If4debc15fee172a3f18079bc2bd29eb8447bc14b
2014-07-22 22:19:55 -07:00
James Zern
793368e8c6
restore decode API compatibility
...
protect flip/alpha_dither w/a WEBP_DECODER_ABI_VERSION check
Change-Id: I437a5d5f78800f71b7e7e323faa321f946bf9515
2014-07-22 20:03:52 -07:00
Vikas Arora
d2cc61b7dd
Extend MakeARGB32() to accept Alpha channel.
...
Change-Id: I31b8e2d085000e2e3687a373401e4f655f11fc42
2014-07-21 14:49:38 -07:00
skal
3398d81ac3
Actuate memory stats for PRINT_MEMORY_INFO
...
Change-Id: If7eac591b5205990ca452ca02b084a908482850a
2014-07-21 13:16:18 -07:00
skal
6c347bbb0c
move WebPPictureInit to picture.c
...
Change-Id: I4b8c352cfd47256d0c3827334a6942c1caf742f6
2014-07-21 14:16:19 +02:00
Pascal Massimino
1549d62067
reorder the YUVA->ARGB and ARGB->YUVA functions correctly
...
+ rework few loops
+ consolidate few error-checks / error-reporting
+ don't modify picture->colorspace in Import() for ARGB output
Change-Id: Iae6da9b50acc738c59b85c3ee64efbaf6af8bffc
2014-07-18 07:15:54 -07:00
Pascal Massimino
736f2a175e
extract colorspace code from picture.c into picture_csp.c
...
had to refactor few functions here and there.
Change-Id: I86fde6fec7c2fc7eb48f0ecf327dbbd2bd40b9d4
2014-07-16 16:37:26 -07:00
Pascal Massimino
fbadb48026
split monolithic picture.c into picture_{tools,psnr,rescale}.c
...
Change-Id: Ia5eb5496e4337e5bac8203872c5b014cad21c4f9
2014-07-12 09:13:33 -07:00
James Zern
c76f07ecc2
dec_neon/TransformAC3: initialize vector w/vcreate
...
replaces {} initialization gnu-ism
Change-Id: I5bedcba1a9c21883207301f07456cc6a843199a0
2014-07-11 15:56:53 -07:00
Urvang Joshi
bb4fc051bf
gif2webp: Allow single-frame animations
...
Some single-frame GIF images have a canvas larger than the frame rectangle. For
such images, we retain the ANMF, ANIM and VP8X chunks in the output WebP file.
This ensures that the full canvas width/height and frame offsets are retained.
Change-Id: I3ebae4893f953984de4072fda0938411de787a29
2014-07-10 15:21:05 -07:00
James Zern
46fd44c104
thread: remove harmless race on status_ in End()
...
if a thread was still doing work when End() was called there'd be a race
on worker->status_. in these cases, however, the specific value is
meaningless as it would be >= OK and the thread would have been shut
down properly, but we'll check 'impl_' instead to avoid any potential
TSan/DRD reports.
Change-Id: Ib93cbc226a099f07761f7bad765549dffb8054b1
2014-07-08 20:32:29 -07:00
James Zern
6781423b7d
configure: check for __builtin_bswapXX()
...
defines HAVE_BUILTIN_BSWAP16/32/64
updated endian_inl.h to have a non-configure fallback for gcc and clang
BSwap16() now uses __builtin_bswap16 if available
Change-Id: Ia04ee07b39303c4b247df96d84f298fb8a81f389
2014-07-05 12:35:13 -07:00
James Zern
6422e683af
VP8LFillBitWindow: enable fast path for 32-bit builds
...
also reduce the load size from 64 to 32 bits as the top 32 bits are
being shifted away in the operation.
the change is neutral speed-wise on x86_64 as is the change in load size
on x86, but it gives a slight improvement on 32-bit arm.
x86 is improved ~13%, 32-bit arm ~3.7%
aarch64 is untested but will likely benefit as well.
Change-Id: Ibcb02a70f46f2651105d7ab571afe352673bef48
2014-07-04 14:42:47 -07:00
James Zern
4f7f52b2a1
VP8LFillBitWindow: respect WEBP_FORCE_ALIGNED
...
Change-Id: I23eddf01590de002efc21d8c7acc545a08fc3e48
2014-07-04 13:53:29 -07:00
James Zern
e458badcc3
endian_inl.h: implement htoleXX with BSwapXX
...
+ s/htole(16|32)/HToLE$1/ to avoid any name conflicts
Change-Id: Ic1c84711557e50f73d83ca5aa2b3992ac6738216
2014-07-04 12:16:36 -07:00
James Zern
f2664d1aab
endian_inl.h: add BSwap16
...
+ use it in VP8LoadNewBytes()
Change-Id: I701d3652dc0cbd553852978702ef68c2657bca1c
2014-07-04 12:16:28 -07:00
James Zern
6fbf5345e3
Merge "configure: add --enable-aligned"
2014-07-04 00:12:28 -07:00
James Zern
dc0f479d6a
configure: add --enable-aligned
...
forces aligned memory reads (via memcpy) in the VP8 bit reader, useful
for platforms that don't support unaligned loads.
Change-Id: Ifa44a9a1677fbdc6a929520f9340b7e3fcbd6692
2014-07-03 23:30:09 -07:00
Pascal Massimino
257adfb0be
remove experimental YUV444 YUV422 and YUV400 code
...
(never used)
Change-Id: I12a886703592133939607df05132e9b498f916c1
2014-07-03 22:26:25 -07:00
James Zern
380cca4f2c
configure.ac: add AC_C_BIGENDIAN
...
this defines WORDS_BIGENDIAN, replacing uses of
__BIG_ENDIAN__/__BYTE_ORDER__ with it
+ fixes lossless BGRA output with big-endian toolchains
that do not define __BIG_ENDIAN__ (codesourcery mips gcc)
Change-Id: Ieaccd623292d235343b5e34b7a720fc251c432d7
2014-07-03 18:15:50 -07:00
James Zern
ee70a90187
endian_inl.h: add BSwap64
...
Change-Id: I66672b770500294b8f4ee8fa4bf1dfff1119dbe6
2014-07-03 13:35:34 -07:00
James Zern
47779d46c8
endian_inl.h: add BSwap32
...
Change-Id: I96e3ae49659307024415d64587e6312888a0070f
2014-07-03 13:28:13 -07:00
James Zern
d5104b1ff6
utils: add endian_inl.h
...
moves the following to this header:
- htole*() definitions from bit_writer.c
- __BIG_ENDIAN__ fallback define from bit_reader_inl.h
Change-Id: I7fff59543f08a70bf8f9ddac849b72ed290471b1
2014-07-03 13:07:14 -07:00
Vikas Arora
516971b136
lossless: Remove unaligned read warning
...
(typecast uint32 pointer to uint64).
The proposed change is little (0.05%) slower but avoids uint32 to uint64
pointer conversion.
Change-Id: I6b8828077ea1324fabd04bfa7e7439e324776250
2014-07-02 20:55:27 -07:00
James Zern
e59f53600f
neon: normalize vdup_n_* usage
...
with constants, prefer this over vmov_n_* or vcreate_*
Change-Id: Ia84b2a82faea58e2626211a7e2257e0ba4af358a
2014-07-01 00:55:05 -07:00
James Zern
6ee7160dd2
Merge changes I0da7b3d3,Idad2f278,I4accc305
...
* changes:
neon: add INIT_VECTOR4
neon: add INIT_VECTOR3
neon: add INIT_VECTOR2
2014-07-01 00:48:38 -07:00
skal
abc02f2492
Merge "fix (uncompiled) typo"
2014-07-01 00:29:19 -07:00
James Zern
bc03670f01
neon: add INIT_VECTOR4
...
used to initialize NxMx4 vector types
replaces initialization via '{{ }}' gnu-ism.
Change-Id: I0da7b3d321f3d48579b7863fb2e4d3f449ae7f5e
2014-07-01 00:18:23 -07:00
James Zern
6c1c632b03
neon: add INIT_VECTOR3
...
used to initialize NxMx3 vector types
replaces initialization via '{{ }}' gnu-ism.
Change-Id: Idad2f278ab104cf2cc650517194258ce3cfb37b4
2014-06-30 23:53:23 -07:00
James Zern
dc7687e51b
neon: add INIT_VECTOR2
...
used to initialize NxMx2 vector types
replaces initialization via '{{ }}' gnu-ism.
Change-Id: I4accc305c7dd4c886b63c22e38890b629bffb139
2014-06-30 23:52:42 -07:00