James Zern
9add62b581
bump version to 0.6.1
...
libwebp{,decoder} - 0.6.1
libwebp libtool - 7.1.0
libwebpdecoder libtool - 3.1.0
mux - 0.4.1
libtool - 3.1.0
demux - 0.3.3
libtool - 2.3.0
Change-Id: If4a95c6e9829d4a608028ee9258b5c2b7af60c37
2017-11-24 21:03:05 +00:00
James Zern
083507f244
right-size some tables
...
Change-Id: I5e894fd3f0f4b666512108495d8cecb34f65e119
2017-11-23 08:40:58 +00:00
James Zern
b299c47eac
add WEBP_REDUCE_SIZE
...
remove auto-filter (-af) support and make WebPPictureCopy,
WebPPictureIsView, WebPPictureView, WebPPictureCrop, and
WebPPictureRescale noops.
Change-Id: If39d512cc268a0015298a1138dbc94feb86575e5
2017-11-22 17:35:39 -08:00
James Zern
f593d71a64
enc: disable pic->stats/extra_info w/WEBP_DISABLE_STATS
...
Change-Id: I4ca3fa45710bd6bbe131b2ae047b1e268241657c
2017-11-22 17:04:01 -08:00
James Zern
541179a9a5
Merge "predictor_enc: fix build w/--disable-near-lossless"
2017-11-23 01:02:59 +00:00
James Zern
5755a7ec53
predictor_enc: fix build w/--disable-near-lossless
...
Change-Id: I0d01cdc77e72663f1cf778e3cf3066cd54aa5439
2017-11-22 15:02:21 -08:00
James Zern
eab5bab74f
add WEBP_DISABLE_STATS
...
use to to make WebPPictureDistortion & WebPPlaneDistortion noops and
clear some ssim code.
Change-Id: I9b50b2318b7a114632e5a237a4002f64e95afbbc
2017-11-22 12:41:17 -08:00
Pascal Massimino
e65b72a368
Merge "introduce WebPHasAlpha8b and WebPHasAlpha32b"
2017-11-21 06:21:44 +00:00
Pascal Massimino
44a0ee3fa7
introduce WebPHasAlpha8b and WebPHasAlpha32b
...
Rewrote WebPPictureHasTransparency() to use them (even for argb).
This is 10% faster, for some reasons.
SSE2 version should be straightforward.
Removes a TODO.
Change-Id: I7ad5848fc5e355e2df505dbcd5a0f42fb6cbab41
2017-11-20 15:20:29 +01:00
James Zern
c184665ecd
WebPPictureAllocARGB: align argb allocation
...
Change-Id: Ib390e8bbb97b38316a38af6a33e8a26bd050ee16
2017-11-16 20:19:09 -08:00
Vincent Rabaud
c462cd0065
Remove useless code.
...
The casts are to the same type and the #define not used.
Change-Id: I8d69c3b9dde7a1c53c2ba5a026a653d8c2e1d2a7
2017-11-08 10:52:49 +01:00
James Zern
5cfb3b0f6c
normalize include guards
...
some fell out of sync after:
668e1dd4 src/{dec,enc,utils}: give filenames a unique suffix
Change-Id: I280d3b3f44797f3bfb4835784add50a41cdd3793
2017-10-21 00:06:23 -07:00
Pascal Massimino
e51bdd439c
remove unused VP8TokenToStats() function
...
BUG=webp:355
Change-Id: I0ad6f13003ef7201431c54c7db395254191de67c
2017-10-20 04:29:45 -07:00
Pascal Massimino
0a17f4712c
Merge "WIP: list includes as descendants of the project dir"
2017-10-11 08:21:42 +00:00
James Zern
a439972175
WIP: list includes as descendants of the project dir
...
#include "(.|..)/..." -> #include "src/..."
Change-Id: I772880aa097a770722043c8a4393552ba38a89b6
2017-10-10 23:04:05 -07:00
Vincent Rabaud
e14ad93c0a
Make sure we reach the full range for alpha blending.
...
255*255*257>>16 == 254 while we want 255.
BUG=webp:360
Change-Id: I2b9ac18f8802145f5a3d500c149ad9eceacbd75b
2017-10-05 16:53:57 +02:00
Vincent Rabaud
a80fcc4ae1
ifdef code not used by Chrome/Android.
...
Change-Id: Id086f6fd602b1fe3dc9034764b6a920a696ff1d2
2017-08-31 14:02:05 +02:00
Vincent Rabaud
3993af127e
Fix signed integer overflows.
...
Change-Id: I62c9949f0edac58d69d991d6be5f85ae9e4d62a9
2017-08-31 11:56:42 +02:00
Vincent Rabaud
c5e34fba66
function definition cleanup
...
Change-Id: I1f6bb4405f09c0c863d0bd1c77340636abdbae69
2017-08-29 14:09:35 +02:00
Vincent Rabaud
289e62a313
Remove declaration of unimplemented VP8ApplyNearLosslessPredict
...
Change-Id: I1bebea099a06bccfdd103ba0557320d6ad68af38
2017-08-23 17:16:29 +02:00
Vincent Rabaud
24ad2e3c99
add const to two variables
...
Change-Id: I97374ccbf118baa59425346ffc439036a4482bf4
2017-08-07 23:02:15 +02:00
Pascal Massimino
46efe062b8
Merge "Allow the lossless cruncher to work for alpha."
2017-08-07 21:00:02 +00:00
Vincent Rabaud
8c3f9a4706
Speed-up LZ77.
...
No need to look for a bigger maximum reach if we reach the end
of the image.
Change-Id: I56b166f9266f15cdff5aa59a75559972db19858f
2017-08-07 21:01:27 +02:00
Vincent Rabaud
1aef4c710b
Allow the lossless cruncher to work for alpha.
...
Change-Id: I7185e75404fae8c739e0536026f4687d25decad7
2017-08-07 20:58:05 +02:00
Vincent Rabaud
b8821dbd81
Improve the box LZ77 speed.
...
For a pixel, we look for the longest match starting in a window around it.
For the following pixel, the previous result can be used and smaller
search window is used.
Change-Id: Ice16f9a7c8754099d068380848f0d77de3f756ac
2017-08-06 20:15:20 +02:00
James Zern
88c73d8a7a
backward_references_enc.h: fix WINDOW_SIZE_BITS check
...
this check was relocated in:
b903b80c Split cost-based backward references in its own file.
quiets -Wundef
Change-Id: I7f7a4773fb8cc77ca9f671b11f50d5db2275d415
2017-07-11 15:36:14 -07:00
hui su
7d67a1646d
Lossy encoding: smoothen transparent areas to improve compression
...
If "exact" is false, we can modify the luma samples in fully transparent
areas to facilitate lossy compression. Experiments on some PNG images
show compression improvement of more than 20%.
Change-Id: I1a728cfa920a6652bc1f600d87c01f7f648c4942
2017-07-05 10:03:01 -07:00
James Zern
e50650c77f
Merge "fix signature for DISABLE_TOKEN_BUFFER compilation"
2017-07-02 07:33:52 +00:00
Pascal Massimino
671d2567d4
fix signature for DISABLE_TOKEN_BUFFER compilation
...
Change-Id: Idb7aa2503c7870ef3b15a23325832428d47ae7c6
2017-07-01 14:46:28 -07:00
Vincent Rabaud
8acb4942f7
Remove the argb* files.
...
Half of the functionality was duplicated.
The rest is about the alpha channel handling so we
might as well put it in the appropriate file.
Change-Id: I8d5ef0afce82cc4842ab7132fd97995c42e6140a
2017-06-25 14:44:33 +02:00
Pascal Massimino
7b250459d6
Merge "Re-use the transformed image when trying several LZ77 in lossless."
2017-06-20 11:53:01 +00:00
Vincent Rabaud
e132072f0b
Re-use the transformed image when trying several LZ77 in lossless.
...
Change-Id: If879b960131ba26859f8e4719a4c74cec1e0aaa8
2017-06-19 17:30:01 +02:00
Vincent Rabaud
5d7a50efee
Get code to compile in C++.
...
Change-Id: I2f56e6b71e33ffecdba9e4fa9ef8f891c88f850f
2017-06-19 17:12:29 +02:00
Pascal Massimino
f1d5a397db
multithread cruncher: only copy stats when picture->stats != NULL
...
BUG=webp:336
Change-Id: I6dfbbdcf61a6cb455f6cbf3dcd7f4c46578f42aa
2017-06-14 21:49:13 +02:00
Vincent Rabaud
f8c2ac15af
Multi-thread the lossless cruncher.
...
BUG=webp:336
Change-Id: I8e861d6a61d51a5cdc4bbd00cd4f17d4ff006d2f
2017-06-14 16:50:36 +02:00
Vincent Rabaud
355c3d1bc7
Integrate a new LZ77 looking for matches in the neighborhood of a pixel only.
...
Change-Id: Ie2bbfee0a8d154b58f4a3068f3f634b7dad4c12d
2017-06-08 15:19:40 +02:00
Vincent Rabaud
a1779a017b
Refactor LZ77 handling in preparation for a new method.
...
Change-Id: If305c328c8f508bd778d1af108e4eb979fbd2eca
2017-06-07 16:43:04 +02:00
Vincent Rabaud
f209a5481e
Use the plane code and not the distance when computing statistics.
...
As backward references use the plane code when checking the cost
of a distance, statistics used to compute the cost should use it too.
This provides a small compression improvement at no speed cost.
Change-Id: Icade150929ee39ef6dc0d8b1fc85973086ecf41d
2017-06-01 17:08:43 +02:00
Vincent Rabaud
b903b80c30
Split cost-based backward references in its own file.
...
Change-Id: I4d8281e69b0e41f7c90337e5be70a6c65b044086
2017-06-01 16:22:31 +02:00
Vincent Rabaud
498cad34be
Cosmetic changes in backward reference.
...
Change-Id: Ieb3dd65a647c034f67cf029e7b03f843b4650b0f
2017-06-01 14:20:16 +02:00
Vincent Rabaud
7caef29b86
Fix typo that creeped in.
...
Change-Id: I600725721d9df80d6deddc65e00663649a47c941
2017-05-23 17:10:34 +02:00
Vincent Rabaud
39e19f927c
Merge "near lossless: fix unsigned int overflow warnings."
2017-05-23 14:47:47 +00:00
Vincent Rabaud
9bbc0891c6
near lossless: fix unsigned int overflow warnings.
...
Change-Id: Ic1111a66761b5821cbbea1c91b038b2327dd20b5
2017-05-23 13:43:08 +02:00
James Zern
b588729740
cosmetics,FindClosestDiscretized: use uint in mask creation
...
Change-Id: Ib1edd74be1c051c10cfe2defadbea48cabe15135
2017-05-22 08:21:44 -07:00
James Zern
f1784aee04
near_lossless,FindClosestDiscretized: use unsigned ops
...
quiets undefined sanitizer warnings of the form:
left shift of 128 by 24 places cannot be represented in type 'int'
Change-Id: I8a389f2ac9238513517180f302f759425eeb7262
2017-05-22 03:11:03 -07:00
Vincent Rabaud
e644c556c5
Fix bad bit writer initialization.
...
When re-initializing a bit writer, we could set invalid values because
the bit writer was not big enough.
Change-Id: Id25ab6712603245a5a12d5f4a86fe35a9a799a5d
2017-05-02 18:59:01 +02:00
Pascal Massimino
b62cdad287
Merge "Implement a cruncher for lossless at method 6."
2017-04-28 14:37:57 +00:00
skal
da3e4dfb6f
use the exact constant for the gamma transfer function
...
As found in BT2020 reference:
https://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.2020-2-201510-I!!PDF-E.pdf
The difference in output-size/PSNR are under the noise level.
Change-Id: I42c12000b61dca791226f3af772c5bd9d58201b8
2017-04-27 11:53:15 -07:00
Vincent Rabaud
adab8ce020
Implement a cruncher for lossless at method 6.
...
Go over the whole compression step for each of the
transforms and pick the best one.
Change-Id: I3a1b1458348c468558be0fcf491038a5724c9364
2017-04-27 18:16:04 +02:00
Vincent Rabaud
0dcd85b6c4
Fix VP8ApplyNearLossless to respect const and stride.
...
Change-Id: I94a90220b5a175228fc48a4b299847b60cf5081b
2017-04-25 19:04:52 +02:00