skal
b4e731cd93
neon-implementation for rescaler code
...
It's better to stay with a 32b fixed-point precision overall, otherwise
the C-version on ARM gets *slower*.
Actually, gcc ARM compiler optimizes some instructions pretty
well when WEBP_RESCALER_FIX is exactly 32, even in C.
Change-Id: I0eea97f7db5947470f5af355dee098eca81e178d
2015-10-07 21:18:39 -07:00
Pascal Massimino
6dfa5e3e58
rescaler: better handling of the fxy_scale=0 special case.
...
Change-Id: I635cb62c028e373a54fcafdc6b996812a9b2ace5
2015-10-07 17:53:16 -07:00
Pascal Massimino
55c05293d5
Revert "rescaler: better handling of the fxy_scale=0 special case."
...
This reverts commit 9f226bf8c3
.
I dropped a 'dst_height' from 'ratio'!! My bad...
Change-Id: Id355f0f012a754cddf97012715d69aa5e03c2e5c
2015-10-07 17:49:24 -07:00
Pascal Massimino
9f226bf8c3
rescaler: better handling of the fxy_scale=0 special case.
...
Change-Id: I1d1852d989519d40e672995be4f08706265271f5
2015-10-07 09:39:20 +02:00
James Zern
f7b8f90740
delta_palettization.*: add copyright
...
Change-Id: I5dc0ae0de88968d2c73b7025ce18319897219630
2015-10-03 10:05:09 -07:00
Mislav Bradac
c1e1b7104c
Changed delta palette to compress better
...
New palette compresses more than 20% better with minimum quality loss.
Tested on set of wikipedia images with command line:
cwebp -delta_palettization
Change-Id: I82ec7d513136599cd70386f607f634502eb9095d
2015-10-03 08:48:42 +00:00
Pascal Massimino
0dd282672e
Merge "Add delta_palettization feature to WebP"
2015-10-03 05:42:36 +00:00
Mislav Bradac
48f66b6687
Add delta_palettization feature to WebP
...
Change-Id: Ibaf4e49aa67d63d0eb11848cca4fd0c60815864a
2015-10-02 14:29:54 -07:00
Urvang Joshi
27933e2a8e
anim_encoder: drop a frame if it has same pixels as the prev frame.
...
Earlier, we stored a 1x1 frame for such frames. Now, we drop every such
frame and increase the duration of its previous frame instead.
Also, modify the anim_diff tool to handle animated images that are
equivalent, but have different number of frames.
Change-Id: I2688b1771e1f5f9f6a78e48ec81b01c3cd495403
2015-10-01 11:14:49 -07:00
Pascal Massimino
df9f6ec829
Merge "webpmux/DisplayInfo: send non-error output to stdout"
2015-09-26 05:36:40 +00:00
Pascal Massimino
8af4993b63
Merge "rescaler_mips_dsp_r2: cosmetics, fix indent"
2015-09-26 05:35:39 +00:00
Pascal Massimino
2b9d2495ef
Merge "rescaler: cosmetics, join two lines"
2015-09-26 05:35:07 +00:00
James Zern
cc020a8c96
webpmux/DisplayInfo: send non-error output to stdout
...
Change-Id: I4ed0d10e4a7cbc8f2d204b33a483990f1ace58ff
2015-09-25 18:49:08 -07:00
James Zern
a288e74658
configure: add -Wshorten-64-to-32
...
adds a visual studio like warning about implicit conversions from 64 to
32-bits
Change-Id: I8a984ec6f61bd65f0c71756f3e1ee89a68fed852
2015-09-25 18:46:22 -07:00
James Zern
c4c3cf2d0e
pngdec: fix type conversion warnings
...
Change-Id: I1719cbed4521b492d3504a8a478cdd395060d43e
2015-09-25 18:43:01 -07:00
James Zern
bef8e97d5d
webpmux: fix type conversion warning
...
Change-Id: I65de23f376570346a9489c2116a0effa60345157
2015-09-25 18:42:31 -07:00
James Zern
5a84460d6d
rescaler_mips_dsp_r2: cosmetics, fix indent
...
Change-Id: I59a432a66a658a74f383bd81b6f9abb5e5bb409e
2015-09-25 18:35:16 -07:00
James Zern
acde0aae5a
rescaler: cosmetics, join two lines
...
Change-Id: Ic231dd048c82a934122ce4884180a2339f7ce2f8
2015-09-25 18:34:45 -07:00
Pascal Massimino
306ce4fde1
rescaler: move the 1x1 or 2x1 handling one level up
...
=> no need to handle it in the sub-functions.
Change-Id: I4b0211ecfafbc9c80a73bf2206809a13c94e7911
2015-09-25 14:35:35 -07:00
Pascal Massimino
cced974bb2
remove _mm_set_epi64x(), which is too specific
...
Change-Id: I4b1035f9c548b804f31c68a00b0a1aa8e13550bb
2015-09-25 14:35:33 -07:00
Pascal Massimino
56668c9fc5
fix warnings about uint64_t -> uint32_t conversion
...
Change-Id: Iee027979b404d4b7edda506b844d354aa1026dae
2015-09-25 17:36:11 +02:00
Pascal Massimino
76a7dc39e5
rescaler: add some SSE2 code
...
The rounding and arithmetic is not the same as previously, to prevent overflow cases for large upscale factors.
We still rely on 32b x 32b -> 64b multiplies. Raised the fixed-point precision to 32b
so that we have some nice shifts from epi64 to epi32.
Changed rescaler_t type to 'uint32_t' in order to squeeze in all the precision required.
The MIPS code has been disabled because it's now out-of-sync. Will be fixed in
a subsequent CL when the dust settles.
~30-35% faster
Change-Id: I32e4ddc00933f1b1aa3463403086199fd5dad07b
2015-09-25 15:07:13 +02:00
James Zern
1df1d0eedb
rescaler: harmonize function protos
...
Change-Id: I13b5f9add83c1225c82a650f3ef717582b057247
2015-09-19 22:57:25 -07:00
Pascal Massimino
9ba1894b9b
rescaler: simplify ImportRow logic
...
incorporates the loop over 'channel' and removes one parameter
Change-Id: I4e3b33c111ca825fe96461583420413b17326409
2015-09-19 10:07:26 -07:00
Pascal Massimino
5ff0079ece
fix rescaler vertical interpolation
...
* vertical expansion now uses bilinear interpolation
* heavily assumes that the alpha plane is decoded in full, not row-by-row
* split the RescalerExportRow and RescalerImportRow methods into Shrink
and Expand variants.
* MIPS implementation of ExportRowExpand is missing.
There's room for extra speed optim and code re-org, but let's keep that for later patches.
addresses https://code.google.com/p/webp/issues/detail?id=254
Change-Id: I8f12b855342bf07dd467fe85e4fde5fd814effdb
2015-09-18 17:32:11 -07:00
James Zern
cd82440ec7
VP8LAllocateHistogramSet: align histogram[] entries
...
fixes issue #262 : a SIGBUS when accessing a misaligned double in
VP8LHistogram
Change-Id: Ic78cc5366d7e43d892c375b6a69dce2379db931b
2015-09-17 22:59:01 -07:00
Pascal Massimino
a406b1dda8
Merge "fix memory over-allocation in lossless rescaler init"
2015-09-15 18:52:06 +00:00
Pascal Massimino
0fde33e322
add missing const in VP8InitFrame signature
...
Change-Id: Ibed259ac8e794bd98960f65ba6544d480e7a1806
2015-09-14 23:55:02 -07:00
Pascal Massimino
ac7d5e8d76
fix memory over-allocation in lossless rescaler init
...
num_channels was not needed in sizeof(*scaled_data)
Change-Id: Ie9ff31d7c1a262520fe1aac81dc57b53cb07bace
2015-09-14 02:11:10 -07:00
Pascal Massimino
017f8cccec
Loosen the buffer size checks for Y/U/V/A too.
...
(follow-up to 15ca5014
)
Change-Id: Ia122e96f616bd6317c24b69c9534cb7919b8a4a4
2015-09-11 15:10:07 +02:00
Pascal Massimino
15ca5014f1
loosen the padding check on buffer size
...
Strictly speaking, the last (or first) row doesn't require padding.
cf https://code.google.com/p/webp/issues/detail?id=258
Change-Id: Ie9ec8eb776fec1f5cea4cf9e21e81901fd79bf33
2015-09-09 00:01:26 -07:00
James Zern
d623a8706f
dec_neon: add whitespace around stringizing operator
...
prevents unintentional side-effects (though unlikely in this case) with
future compilers, cf:
eebaf97
dsp/mips: add whitespace around stringizing operator
Change-Id: I0537091fcc97b4f54d0a156c3c83a28c51456b17
2015-09-03 23:13:56 -07:00
James Zern
29377d55b6
dsp/mips: cosmetics: add whitespace around XSTR macro
...
normalizes formatting after:
eebaf97
dsp/mips: add whitespace around stringizing operator
Change-Id: I1e3986b6d08195d79072747eb99d7e0549aece72
2015-09-03 23:09:13 -07:00
James Zern
eebaf97f5a
dsp/mips: add whitespace around stringizing operator
...
fixes compile with gcc 5.1
BUG=259
Change-Id: Ideb39c6290ab8569b1b6cc835bea11c822d0286c
2015-09-02 23:21:13 -07:00
Urvang Joshi
d39dc8f3cc
Create a WebPAnimDecoder API.
...
This is designed for the simple use-case where one wants to decode all
frames one-by-one in order.
Also, use this API in anim_util library, which is in turn used by
anim_diff tool.
Change-Id: Ie8b653c04e867d40fd23321b3dd41b87689656c7
2015-09-02 16:23:10 -07:00
skal
03fb75221c
gif2webp: print output file size
...
Change-Id: I6ce367baa209911f1c07d23ca6283fcb3fe1d7a4
2015-08-24 17:36:57 -07:00
James Zern
14efabbf1c
Android: limit use of cpufeatures
...
cpufeatures is only used with armeabi-v7a.*
Change-Id: I80284061d71d9defa50d139c7f1bda67c00f567e
2015-08-19 18:44:33 -07:00
Pascal Massimino
7b83adbee6
preparatory cosmetics for Rescaler code fix and clean-up
...
Change-Id: I1278837c8d7813192e8099d6fceaede75f38755b
2015-08-19 18:44:29 -07:00
James Zern
77fb41c2f1
dec/vp8l/DecodeAlphaData: remove redundant cast
...
'pos' has been an int since:
c34307a
fix some VS9 warnings about type conversion
Change-Id: I56195d4f15278fa268be52a7bfe24b94554890c4
2015-08-18 18:52:43 -07:00
Jyrki Alakuijala
90fcfcd905
Insert less hash chain entries from the beginnings of long copies.
...
This makes the chains more efficient and a larger variety of data is tested.
0.02 % compression gain at q 100, 0.05 % at default quality. 0.8 % speedup by
callgrind.
0.16 % compression gain for lossy alpha ?!
Change-Id: I888120133352799eb14f5f602c7f40ab404bd665
2015-08-18 18:44:03 -07:00
skal
bd55604d1b
SSE2: add yuv444 converters, re-using yuv_sse2.c
...
Change-Id: I4d5c9df8a4c8e8cb8b5daa537af07382894503a8
2015-08-17 21:15:37 -07:00
skal
41a5d99d55
add a -quiet option to 'dwebp'
...
(useful for tests)
Change-Id: Ia07f407bc1e819a1d3cab64a02317d058733261b
2015-08-17 20:07:46 -07:00
Pascal Massimino
80ab3edb94
Merge "README: update dwebp help output after 1e595fe"
2015-08-18 03:07:03 +00:00
James Zern
32b71b2e5a
README: update dwebp help output after 1e595fe
...
-scale -> -resize
Change-Id: I896f87134288099cc774c2471b9a81e7919ae045
2015-08-17 19:31:10 -07:00
skal
3ec1182768
use the DispatchAlpha() call from dsp
...
it's used in YUVA->RGBA case (quite frequent).
Change-Id: Ie88f8c7f74cd274b3c6cbe81506f4425c164c7b3
2015-08-17 18:54:39 -07:00
skal
c5f00621c7
incorporate bzero() into WebPRescalerInit() instead of call site
...
Change-Id: I9ebb83e643e24bc685a1a1cb6836cb54e34a0ec8
2015-08-14 19:37:22 -07:00
Pascal Massimino
3ebcdd4133
remove duplicate "#include <stdlib.h>"
...
Change-Id: I01b23efb1229e7dd96c6e15c4385064ad10a575a
2015-08-14 12:33:45 -07:00
James Zern
1e595fe1e8
dwebp: add -resize as a synonym for -scale
...
-resize is used in cwebp for the same purpose
Change-Id: I2756f3d23c4799fc9a10c4fe8c4c17057beebca9
2015-08-13 22:46:02 -07:00
James Zern
24a9693223
dec: allow 0 as a scaling dimension
...
this allows scaling to a particular width/height while preserving the
source aspect ratio using WebPRescalerGetScaledDimensions().
Change-Id: I77b11528753290c1e9bb942ac761c215ccfb8701
2015-08-13 20:58:17 -07:00
James Zern
b918724280
utils/rescaler: add WebPRescalerGetScaledDimensions
...
+ use it in WebPPictureRescale()
Change-Id: I491bea8cd56f0eb1ac8bf0829b9f36c77804219a
2015-08-13 20:50:38 -07:00