Pascal Massimino
b045013970
ReadImage(): restore size reporting
...
That was useful for printing rd-curves.
Change-Id: Idd641d94633f1f88bad2e29494b3d99c4c02fa30
2017-01-24 23:05:33 -08:00
James Zern
0ad3b4efa8
update ChangeLog
...
Change-Id: Iceb140648137d41a480515ce83fc4b3703449645
2017-01-24 17:41:14 -08:00
James Zern
6451709e72
img2webp,get_disto: fix image decode w/WIC builds
...
similar to cwebp, attempt ReadPictureWithWIC() first
Change-Id: Ifb83aaa457be59c95b201bf8bd6b0877a6a253ed
2017-01-24 15:12:08 -08:00
James Zern
92504d214c
get_disto: make ReadPicture() return a bool
...
the input size of one of the images in the output didn't add much value.
Change-Id: I935a8c44c98fc085f0f6f360b3851826e1480f09
2017-01-24 15:07:03 -08:00
James Zern
c3e4b3a946
update NEWS
...
drop iOS framework update, that was included in 0.5.2
Change-Id: I2bd2ce5a6eba0c76d168c2c27070555e48e1da2b
2017-01-23 19:49:55 -08:00
James Zern
3363eb6d68
man/img2webp.1: fix formatting warning
...
the default is format is roman, fixes:
`R' is a string (producing the registered sign), not a macro.
Change-Id: If2bce714eff1237cd1702ae1143323249d85b93b
2017-01-23 19:36:14 -08:00
James Zern
4d1312f2d5
update NEWS
...
Change-Id: If1735e8aa839004a7c5728f7f8fe23649a5a4d90
2017-01-23 18:34:31 -08:00
James Zern
36c42ea415
bump version to 0.6.0
...
libwebp{,decoder} - 0.6.0
libwebp libtool - 7.0.0
libwebpdecoder libtool - 3.0.0
mux - 0.4.0
libtool - 3.0.0
demux - 0.3.2
libtool - 2.2.0
Change-Id: Ie46dc70df1e283df0ccef6eb07c5694feb4d4a2b
2017-01-23 18:07:00 -08:00
James Zern
bb498a51e2
update AUTHORS
...
Change-Id: I84cb70614e70d510c22d462a73e10088421e03c5
2017-01-23 17:48:18 -08:00
James Zern
84cef16f47
Makefile.vc: fix CFG=debug-dynamic build
...
strip '_debug' from the library basename to form the resource target.
since:
919f9e2f
Merge "add .rc files for windows dll versioning"
BUG=webp:323
Change-Id: I97cfa48afa846211385720034a40aa452c68134c
2017-01-20 17:03:51 -08:00
James Zern
919f9e2fd6
Merge "add .rc files for windows dll versioning"
2017-01-20 19:29:50 +00:00
James Zern
f1ae8af42f
Merge ".gitignore: add img2webp"
2017-01-20 19:27:37 +00:00
Pascal Massimino
4689ce1635
cwebp: add a -sharp_yuv option for 'sharp' RGB->YUV conversion
...
Change-Id: I6edd5b44d693da50f702fa8218f14872874d91ba
2017-01-20 16:54:54 +01:00
Pascal Massimino
79bf46f120
rename the pretentious SmartYUV into SharpYUV
...
Change-Id: Ifeeb9cb85896c5f3ba0cc1c2c821f8d00295f69e
2017-01-20 14:36:21 +01:00
Pascal Massimino
eb1dc89a5f
silently expose use_delta_palette in the WebPConfig API
...
is just a placeholder for now, unless WEBP_USE_EXPERIMENTAL_FEATURES
is defined.
Change-Id: I087cb49781560bc1a7fbb01b136d36115c97ef72
2017-01-20 10:25:19 +01:00
James Zern
c85b0dde6e
.gitignore: add img2webp
...
Change-Id: Icf4fc8779a0a0c0d1c71cdb4fa650aaaff446f5f
2017-01-20 01:03:45 -08:00
James Zern
43d3f01a2f
add .rc files for windows dll versioning
...
BUG=webp:323
Change-Id: Id415a32b63618d39af2e599cec0d40f64c35bbce
2017-01-20 00:35:15 -08:00
James Zern
668e1dd44f
src/{dec,enc,utils}: give filenames a unique suffix
...
this avoids duplicates between these trees and dsp/, e.g., enc/tree.c,
dec/tree.c, making pulling the whole library source tree into one target
possible
BUG=webp:279
Change-Id: I060a614833c7c24ddd37bf641702ae6a5eef1775
2017-01-19 19:09:48 -08:00
James Zern
0e6b7f33ab
Merge "iosbuild.sh: only add required headers to framework"
2017-01-19 23:27:58 +00:00
James Zern
29ed6f9a0b
iosbuild.sh: only add required headers to framework
...
Change-Id: Ib749abcd8416db9b59960ca9c0d0cfad38e6c3e4
2017-01-19 12:50:37 -08:00
Pascal Massimino
71c53f1aeb
NEON: speed-up strong filtering
...
The sub-expression trick removes two constants and
two vmlal_s8 instructions.
Change-Id: I200022573b4880871b528b13a11a8f3d95def113
2017-01-19 20:46:48 +00:00
Pascal Massimino
73f567ea8b
Merge "get_disto: remove redundant reader check"
2017-01-19 06:30:04 +00:00
Pascal Massimino
9e14276f4c
Merge "makefiles: prune get_disto & webp_quality deps"
2017-01-19 06:27:52 +00:00
Pascal Massimino
99965bac02
Merge "Makefile.vc: add get_disto.exe, webp_quality.exe"
2017-01-19 06:25:47 +00:00
James Zern
d4912238f7
get_disto: remove redundant reader check
...
WebPGuessImageReader never returns NULL
Change-Id: I46d68e3e4902cbe013d8a2a6767ae81c8c9f67cc
2017-01-18 18:10:58 -08:00
James Zern
ea4824097e
makefiles: prune get_disto & webp_quality deps
...
remove libimagedec from webp_quality, only the webp headers are
inspected. libwebpextras isn't needed by get_disto.
Change-Id: Ib85f97e2c4a9edd97392fd20ef294d1ccc76dda5
2017-01-18 18:10:58 -08:00
James Zern
2ede5a198a
Makefile.vc: add get_disto.exe, webp_quality.exe
...
Change-Id: Iebf1ea793a8f2cd97181b10f077099ba15b65208
2017-01-18 17:57:17 -08:00
Pascal Massimino
a345068aba
ARM: speed up bitreader by avoiding tables
...
(and using BitsLog2Floor() from utils.h instead)
9-10% speed-up, apparently
Change-Id: I9acae4a4dceb1ddcc99306f99b722079bb06f6f8
2017-01-17 23:52:37 -08:00
Pascal Massimino
1dc82a6bba
Merge "introduce a generic GetCoeffs() function pointer"
2017-01-18 07:44:36 +00:00
Pascal Massimino
8074b89eb3
introduce a generic GetCoeffs() function pointer
...
We can switch at run-time between the standard GetCoeffs() critical
function, that uses a fast variant of VP8GetBit().
However, some platforms have slow instructions that make standard
VP8GetBit() slow. GetCoeffs() is the right level of branching to
switch to GetCoeffsAlt() that avoids these slow instructions in some
not-frequent cases.
Next patch will upgrade VP8GetBit() to use clz, after this one
is proved to be neutral speed-wise.
Change-Id: Ia6cef5de9de6131574d2202bbc0bea8559c9b693
2017-01-17 16:24:00 +01:00
Pascal Massimino
749a45a520
Merge "NEON: implement alpha-filters (horizontal/vertical/gradient)"
2017-01-17 15:13:08 +00:00
Pascal Massimino
74c053b57d
Merge "NEON: fix overflow in SSE NxN calculation"
2017-01-17 15:10:54 +00:00
Pascal Massimino
0a3aeff75b
Merge "dsp: WebPExtractGreen function for alpha decompression"
2017-01-17 15:08:20 +00:00
Pascal Massimino
1de931c669
NEON: implement alpha-filters (horizontal/vertical/gradient)
...
gradient-filter code is not much faster, but maybe improvable in the future.
Change-Id: Ia16070e409fe8703b02276166f19526917df6b35
2017-01-17 15:44:46 +01:00
Pascal Massimino
9b3aca404d
NEON: fix overflow in SSE NxN calculation
...
vmlal_u8() is prone to overflow during the accumulation.
There was a mismatch happening at low q mostly. Because in this
case the distortion is important and the accumulated sum was
later than 16bit-unsigned.
Change-Id: I1a08a2f744bcdf0b26647e61b9ee92a0c2e28fe8
2017-01-17 11:47:36 +01:00
Pascal Massimino
1c07a3c639
dsp: WebPExtractGreen function for alpha decompression
...
+ NEON implementation
Change-Id: I67204f99d6e4c5974718bdf21dad30381978f72c
2017-01-17 09:33:25 +00:00
Pascal Massimino
9ed5e3e5dd
use pointers for WebPRescaler's in WebPDecParams
...
This makes the structure more generic, without the hard-coded
internal structure.
This is a borderline incompatible ABI change, even if WebPIDecoder structure
is opaque.
Change-Id: I518765c3f76fc17a136cef045a5a8aa70ed70e85
2017-01-16 22:30:29 -08:00
James Zern
db013a8d5c
Merge "ARM: don't use USE_GENERIC_TREE"
2017-01-13 22:15:04 +00:00
Pascal Massimino
fcd4784dcd
use a 8b table for C-version for clz()
...
30% faster on x86, 5% faster on N5.
New generic function: WebPLog2FloorC()
This function is called as fallback for BitsLog2Floor() when there's
no clz() available.
Change-Id: Ica15c6092112e514c0e200fab89c434de48d4b19
2017-01-13 15:36:26 +01:00
Pascal Massimino
fbb5c473b4
ARM: don't use USE_GENERIC_TREE
...
It's 1-2% faster to use hard-coded tree on ARM
Change-Id: I54403a70f6c692e50148c33f36833588957c20ee
2017-01-13 10:05:21 +01:00
Pascal Massimino
8fda56126e
Merge "add a kSlowSSSE3 feature for CPUInfo"
2017-01-13 07:01:48 +00:00
Pascal Massimino
86bbd24552
add a kSlowSSSE3 feature for CPUInfo
...
This is meant to be used for run-time detection of slow platforms
regarding instructions like pshufb and bsr.
Adapted from libvpx patch: https://chromium-review.googlesource.com/#/c/367731
Change-Id: I2c22fbb9aae699d87a041393ba1ad5f1f21ff640
2017-01-13 06:19:27 +00:00
Vincent Rabaud
7c2779e95a
Get code to fully compile in C++.
...
Change-Id: I6d8490c8c9b955d90dcc89ee8a9cf29ca0f93b08
2017-01-12 18:03:55 +01:00
Vincent Rabaud
250c358662
Merge "When compiling as C++, avoid narrowing warnings."
2017-01-12 13:00:56 +00:00
Vincent Rabaud
c0648ac2ae
When compiling as C++, avoid narrowing warnings.
...
The gcc compilation warning was: narrowing conversion from ‘int’ to ‘int8_t’
Change-Id: I4803dd60ad04060cdb5d61a1aa98b25215b9d4eb
2017-01-12 13:39:22 +01:00
Pascal Massimino
0d55f60c91
40% faster ApplyAlphaMultiply_SSE2
...
process four pixels at a time
Change-Id: I1dee7f70772be4915654fc6638ef4729a1a239d4
2017-01-12 02:33:09 -08:00
Pascal Massimino
49d0280df1
NEON: implement several alpha-processing functions
...
- ApplyAlphaMultiply
- DispatchAlpha
- DispatchAlphaToGreen
- ExtractAlpha
Decoding to Argb / rgbA / ... is 10-15% faster (measured on N4)
new file: alpha_processing_neon.c
Change-Id: I40f1a809e9885d1031ff0bc886d8d001efa66bca
2017-01-11 17:39:29 +01:00
Pascal Massimino
48b1e85fbe
SSE2: 15% faster alpha-processing functions
...
ApplyAlphaMultiply / MultARGBRow / MultRow
we use now: x/255 = (x * 0x8081) >> (16 + 7)
and x/255 + .5 = ((x + 128) * 0x0101) >> 16
Change-Id: I8931091316ffc8bbf65aa3402f2e7d2b800e1971
2017-01-11 15:35:16 +01:00
Pascal Massimino
e3b8abbc9b
fix warning from static analysis.
...
"-1 cannot be represented in type 'unsigned int'"
Change-Id: I05abcb44af68f702ead5a7f24dc14aab31a2e4d9
2017-01-10 22:59:47 -08:00
Pascal Massimino
28fe054e73
SSE2: 30% faster ApplyAlphaMultiply()
...
and 15% faster MultARGBRow()
by switching to formulae:
X / 255 = (X + 1 + (X >> 8)) >> 8 for any 16bit value X.
(X / 255 + .5) = (XX + (XX >> 8)) >> 8, with XX = X + 128
Change-Id: Ia4a7408aee74d7f61b58f5dff304d05546c04e81
2017-01-10 23:34:22 +01:00