James Zern
8e42ba4c80
simplify WEBP_EXTERN macro
...
including the type in the macro doesn't bring much benefit to ordering,
current platforms work with a prefix, this would be insufficient if the
attribute needed to follow the function prototype. this form makes it
easier to override on the command line.
BUG=webp:355
Change-Id: Iba41ec0bb319403054be0e899c4cc472dd932fd9
2017-07-31 18:27:52 -07:00
James Zern
92982609bc
dsp.h: fix -Wundef w/__mips_dsp_rev
...
Change-Id: I552a543c7b039774041b43ace75b0cbea566b119
2017-07-11 16:12:32 -07: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
James Zern
4ea49f6b82
rescaler_sse2.c: fix WEBP_RESCALER_FIX -> _RFIX typo
...
quiets -Wundef
Change-Id: I8f1facf401b6f1ab393005c93086ac3e2ae354d5
2017-07-11 15:35:27 -07:00
James Zern
b34a9db1a1
cosmetics,dec_sse2: remove some redundant comments
...
Change-Id: I5a59d6dde9b6638b318f36d51d0d53870a3de273
2017-07-06 23:19:18 -07:00
James Zern
66ad84f0f9
Merge "muxread: remove unreachable code"
2017-07-05 23:48:45 +00:00
Pascal Massimino
50ec3ab790
muxread: remove unreachable code
...
IDX_UNKNOWN chunks are handled separately in WebPMuxGetChunk()
Change-Id: Iaa0d3a1cd1080264c27671637551f52f71d73b07
2017-07-05 15:47:50 -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
Vincent Rabaud
7ca0df1363
Have the SSE2 version of PackARGB use common code.
...
The common code actually got sped-up by 25% by using the code
from PackARGB.
Change-Id: I94be6ccff2bfe02fff13c8e2698669e6a0d8fc74
2017-06-20 17:41:14 +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
a88c6522f6
Merge "Integrate a new LZ77 looking for matches in the neighborhood of a pixel only."
2017-06-13 13:15:48 +00:00
Vincent Rabaud
8f6df1d0b9
Unroll Predictors 10, 11 and 12.
...
We see the following speed-ups:
10 -> 13%
11 -> 13%
12 -> 13%
Change-Id: I4734fd388d0f4e508884d0b123976bf2cbe69d2f
2017-06-08 20:37:47 +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
e4eb458741
lossless, VP8LTransformColor_C: make sure no overflow happens with colors.
...
Change-Id: Iec0d07cf1188ba96391cdb1b62131fc1469dfac6
2017-05-24 11:34:40 +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
hui su
972104b34b
webpmux: tolerate false positive Alpha flag
...
Change-Id: I390aebdda31f5320e83b7d7012735947a234650b
2017-05-19 11:26:37 -07:00
Vincent Rabaud
defc98d72c
Doc: clarify the role of quality in WebPConfig.
...
Change-Id: I13706847f6263b9bb91eaf3c9284dd2d42ea7a85
2017-05-15 18:01:35 +02:00
Pascal Massimino
faf42213f4
NEON: implement ConvertRGB24ToY/BGR24/ARGB/RGBA32ToUV/ARGBToUV
...
Change-Id: Ie68aaed36d17f56d998c1b284514860cf5d28b8a
2017-05-09 15:57:20 +02: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
Pascal Massimino
f768218966
yuv: rationalize the C/SSE2 function naming
...
+ implement some easy missing targets in SSE2 (565/4444)
Change-Id: Ib575f7ada2a0ed7309cddd238f8bfc0e8999f145
2017-04-21 13:52:25 +02:00
Pascal Massimino
52245424b0
NEON implementation of some Sharp-YUV420 functions
...
Change-Id: I449ef9c76b06f971f6e2ad7f9db96bf906d8fe1f
new-file: dsp/yuv_neon.c
2017-04-18 19:22:37 +02:00
Vincent Rabaud
690efd82f8
Avoid several backward reference copies.
...
An extra VP8LBackwardRefs struct is used but it was used internally anyway.
Change-Id: Ifcb36ce42b8c21ef3c7a1daf38cb7f714687fcb2
2017-04-14 15:34:50 +02:00
hui su
4bb1f607d7
src/dec/vp8_dec.h, cosmetics: fix comments
...
Change-Id: If076cdf63965bad9b00cbe19c922320638b65f46
2017-04-07 15:29:57 -07:00
James Zern
78fd199c3b
backward_references_enc.c: clear -Wshadow warnings
...
index -> position
similar to: 2f5e8934
remove -Wshadow warnings
Change-Id: Ieaf8363d726a8fdf4e799845a81364e1dfae438a
2017-03-22 23:52:19 -07:00
James Zern
ae836410bb
WebPLog2FloorC: clear -Wshadow warning
...
log -> log_value
Change-Id: Iae7cea7e0875e59b0806de41eb0b58815307495e
2017-03-22 23:50:31 -07:00
Pascal Massimino
c08adb6fbc
Merge "VP8LEnc: remove use of BitsLog2Ceiling()"
2017-03-20 13:12:19 +00:00
Pascal Massimino
28c37ebd5a
VP8LEnc: remove use of BitsLog2Ceiling()
...
was only used once. Better fall back for Log2Floor.
Change-Id: Ibcc26505440971bffe62ba6aca3d179ca85791d4
2017-03-20 02:58:16 -07:00
Pascal Massimino
bb175a935e
Merge "rename some symbols clashing with MSVC headers"
2017-03-16 17:53:37 +00:00
Vincent Rabaud
39eda6584f
Remove a duplicated pixel hash implementation.
...
Change-Id: If0df61add2fdf404f9baf0820ca83faa50f2791c
2017-03-16 16:15:40 +01:00
Pascal Massimino
36b8274deb
rename some symbols clashing with MSVC headers
...
This is to prepare the inclusion of <windows.h>
FrameRect => FrameRectangle
CLIP_MASK => CLIP_8b_MASK
Change-Id: Ia4b1fa4ac06137b4102c91e232206a1fb7159ce0
2017-03-16 10:42:00 +01:00
James Zern
976adac1ce
Merge "lossless incremental decoding: fix missing eos_ test"
2017-03-01 02:54:13 +00:00