skal
c13fecf908
remove the PACK() bit-packing tricks
...
was too smart for its own good :)
This is more ARM-friendly, since it removes a mult.
Change-Id: If146034c8efa2e71e3eaaf1230cb553884a42ebb
2013-09-05 08:53:36 +02:00
Pascal Massimino
2fd091c9ae
Merge "use NULL for lf_stats_ testing, not bool"
2013-09-04 07:18:42 -07:00
Pascal Massimino
b11c9d6284
dwebp: use default dct_method
...
No significant speed diff was observed.
Avoids idct mismatch artifacts.
Change-Id: I9ca64d165d313f23b4aa231e7a97a20213ff86c7
2013-09-03 15:48:41 -07:00
James Zern
4bb8465f8c
Merge "(de)mux.h: wrap pseudo-code in /* */"
2013-09-03 15:47:42 -07:00
skal
cfb56b1707
make -pass option work with token buffers
...
-pass 2 can be useful sometimes. More passes usually don't help more.
This change is a step toward being able to re-code the whole picture
with varying parameter (when token buffer is used).
Change-Id: Ia2538e2069a53c080e2ad248c18a1e04623a9304
2013-09-03 23:37:42 +02:00
James Zern
5416aab479
(de)mux.h: wrap pseudo-code in /* */
...
easier to copy / read as a block
Change-Id: Ia22689a13afd8ea2325dcdf432e35fc802d8177a
2013-09-03 14:31:02 -07:00
Pascal Massimino
35dba337a3
use NULL for lf_stats_ testing, not bool
...
Change-Id: I14c6341bce1c745b7f2d1b790f2d4f8441d01be6
2013-09-03 08:45:59 -07:00
skal
733a7faae4
enc->Iterator memory cleanup
...
* move yuv_in_/out_* scratch buffers to iterator
* add y_top_/uv_top_ shortcuts in iterator
That's ~3k of stack size instead of heap.
But it allows having several iterators work in parallel.
Change-Id: I6a437c0f2ef1e5d398c1d6a2fd4974fa0869f0c1
2013-08-31 23:38:11 +02:00
Urvang Joshi
e81fac86dd
Add support for "no blend" in webpmux binary
...
Change-Id: I6d07b120626317df73f1a6f026931c5b9485a340
2013-08-26 18:04:52 -07:00
Urvang Joshi
3b80bc4859
gif2webp: Separate out each step into a method
...
We now have ReadFrame(), OptimizeFrame(), EncodeFrame() and
DisposeFrame()
methods.
Change-Id: I522834bad18dd6a7a3ddac7c00dfd829c48248f8
2013-08-22 11:14:51 -07:00
skal
bef7e9ccd1
Add doc precision about demux object keeping pointers to data.
...
Change-Id: I3d2139f975eedcce36606e586e0cbd6fa7d207e6
2013-08-21 11:09:37 -07:00
James Zern
61405a143d
dwebp: enable stdout output with WIC
...
Change-Id: Ieb73a414784480945bba6cb2687468517e24e755
2013-08-20 19:59:30 -07:00
pascal massimino
6eabb88637
Merge "Animated WebP: add "do no blend" option to spec"
2013-08-20 19:14:17 -07:00
skal
be20decb5c
fix compilation for BITS 24
...
in_bits is const. Trying to apply bswap on it, one gets the error message:
error: read-only variable 'in_bits' used as 'asm' output
Change-Id: I0bef494b822c83d8ea87b1938b0e486d94de4742
2013-08-20 18:55:00 -07:00
pascal massimino
e58cc13706
Merge "dwebp: s/unsigned char/uint8_t/"
2013-08-20 15:03:46 -07:00
James Zern
72501d4309
dwebp: s/unsigned char/uint8_t/
...
Change-Id: I579e9b0a4d03998ca1dd8683d83d30d852551e45
2013-08-20 14:57:35 -07:00
pascal massimino
2c9633e8e0
Merge "gif2webp: Insert independent frames at regular intervals."
2013-08-20 13:59:50 -07:00
Urvang Joshi
f0d6a14b64
gif2webp: Insert independent frames at regular intervals.
...
We use the 'do not blend' option for creating independent frames.
We also mark the already independent frames as 'do not blend'.
This bounds the maximum number of frames that need to be decoded to
decode a given frame, thus leading to a much better decoding performance.
Change-Id: I7cef98af2b53751ec36993fd2bd54f7f4c4aad2b
2013-08-20 11:47:48 -07:00
James Zern
b25a6fbfdc
yuv.h: fix indent
...
Change-Id: I0c0bd5f7f71bc44e10134bd4f788769ec25cec1f
2013-08-19 18:06:15 -07:00
pascal massimino
ede3602e5d
Merge "cosmetics: fix indent"
2013-08-19 17:56:21 -07:00
James Zern
3a65122a53
dwebp: fix stdout related output
...
logic was incorrect for the error output
Change-Id: I89e665f8065490e12e1bf3d3008087d42daee16b
2013-08-19 17:52:33 -07:00
James Zern
388a7249c9
cosmetics: fix indent
...
Change-Id: Iad0fce79886bed0d61ddf2510ce133a5355ebc1f
2013-08-19 17:51:04 -07:00
James Zern
4c7322c86f
Merge "dsp: msvc compatibility"
2013-08-19 17:42:16 -07:00
skal
d50c7e3275
Merge "5-7% faster SSE2 versions of YUV->RGB conversion functions"
2013-08-19 17:27:44 -07:00
skal
b8ab784745
Merge "simplify upsampler calls: only allow 'bottom' to be NULL"
2013-08-19 17:27:36 -07:00
skal
df6cebfa9e
5-7% faster SSE2 versions of YUV->RGB conversion functions
...
The C-version gets ~7-8% slower in order to match the SSE2
output exactly. The old (now off-by-1) code is kept under
the WEBP_YUV_USE_TABLE flag for reference.
(note that calc rounding precision is slightly better ~= +0.02dB)
on ARM-neon, we somehow recover the ~4% speed that was lost by mimicking
the initial C-version (see https://gerrit.chromium.org/gerrit/#/c/41610 )
Change-Id: Ia4363c5ed9b4c9edff5d932b002e57bb7814bf6f
2013-08-19 17:05:58 -07:00
skal
ad6ac32d7c
simplify upsampler calls: only allow 'bottom' to be NULL
...
If 'top' was meant to be NULL, then bottom and top can be
swapped. Logic is simpler.
+ fix compilation in non-FANCY_UPSAMPLING mode
Change-Id: I7c62bbb59454017f072c0945d1ff2d24d89286ff
2013-08-19 16:47:51 -07:00
skal
a5e8afafcb
output to stdout if file name is "-"
...
Doesn't work with WIC
+ redirect some info messages from stdout to stderr
+ fix the error reporting upon output-writing error
Change-Id: I92b8bd7a15e656a3f3cdfbf56299f024e39453f8
2013-08-19 13:30:27 -07:00
James Zern
f358450feb
dsp: msvc compatibility
...
intrin.h is available after VS2003
patch from the FreeImage project
Change-Id: I58a18a0db00e247f871d05e3ba99772704f0e079
2013-08-16 20:46:16 -07:00
Pascal Massimino
43a7c8ebee
Merge "cosmetics"
2013-08-15 11:24:30 -07:00
James Zern
4c5f19c148
Merge "bit_reader.h: cosmetics"
2013-08-15 11:11:03 -07:00
Pascal Massimino
f72fab7045
cosmetics
...
Change-Id: Ib6fa2a7e1db8c5c48607c7097520ffca34a6cb66
2013-08-15 04:16:37 -07:00
Pascal Massimino
14dd5e781a
fix const-ness
...
Change-Id: I09c85fdb90b4380c8fc03c8b5652bb9cf29b2021
2013-08-15 00:21:15 -07:00
pascal massimino
b20aec4949
Merge "Support for 'do not blend' option in vwebp"
2013-08-14 20:01:38 -07:00
Urvang Joshi
dcf652223a
Support for 'do not blend' option in vwebp
...
Change-Id: I563e192fa727816d11d8647c559ec407205ef40b
2013-08-14 19:51:46 -07:00
Urvang Joshi
d5bad03328
Animated WebP: add "do no blend" option to spec
...
Marking certain frames as "do not blend" helps avoiding alpha-blending
at decode/render time.
It also helps inserting I-frames (frames which can be independently
decoded) into the animation.
Change-Id: Iaa222805db88d2f1c81104ce9d882e7c7ff8cfdb
2013-08-14 11:50:15 -07:00
pascal massimino
a2f5f73de3
Merge "Support for "Do not blend" in mux and demux libraries"
2013-08-14 09:27:58 -07:00
Vikas Arora
e081f2f359
Pack code & extra_bits to Struct (VP8LPrefixCode).
...
Also created variant VP8LPrefixEncodeBits that returns the
code & extra_bits only.
There's no impact on compression density and compression speed.
Change-Id: I2cafdd3438ac9270cd72ad9d57b383cdddfdfa4c
2013-08-12 11:56:42 -07:00
Urvang Joshi
6284854bd5
Support for "Do not blend" in mux and demux libraries
...
Change-Id: I9566a8e2d059fe1ebd9ca99c7e13311bf3f8f281
2013-08-12 11:49:00 -07:00
Pascal Massimino
f486aaa9f8
Merge "slightly faster ParseIntraMode"
2013-08-09 02:17:16 -07:00
Pascal Massimino
d17186328c
slightly faster ParseIntraMode
...
+ cosmetics
Change-Id: Icb906d5f84f025ef9e04b71a73801a22cc990ee5
2013-08-09 02:15:21 -07:00
James Zern
3ceca8ad31
bit_reader.h: cosmetics
...
- use const where applicable
- drop unnecessary string.h include
Change-Id: I560eef84fe17d3925768f6817c02ea79604c4379
2013-08-06 14:25:26 -07:00
Vikas Arora
69257f70df
Create LUT for PrefixEncode.
...
This speeds up lossless compression by 5%.
Change-Id: Ifd114b1d9850dc3aac74593809e7d48529d35e3d
2013-08-05 10:20:18 -07:00
Pascal Massimino
988b70844e
add WebPWorkerExecute() for convenient bypass
...
This is mainly for re-using the worker structs without using the
thread.
Change-Id: I8e1be29e53874ef425b15c192fb68036b4c0a359
2013-08-02 12:20:15 -07:00
skal
06e24987e7
Merge "VP8EncIterator clean-up"
2013-08-02 00:40:02 -07:00
skal
de4d4ad598
VP8EncIterator clean-up
...
- remove unused fields from iterator
- introduce VP8IteratorSetRow() too
- rename 'done_' to 'countdown_'
- bring y_left_/u_left_/v_left_ from VP8Encoder
Change-Id: Idc1c15743157936e4cbb7002ebb5cc3c90e7f92a
2013-08-01 23:05:54 -07:00
pascal massimino
7bbe95293f
Merge "cosmetics: thread.c: drop a redundant comment"
2013-07-31 23:56:06 -07:00
James Zern
da41148560
cosmetics: thread.c: drop a redundant comment
...
+ fix #if/#else/#endif comment
Change-Id: I76bfd3b123ed181897ed0feba721d5c1a3a2b0d7
2013-07-31 22:55:51 -07:00
James Zern
feb4b6e6b3
thread.h: #ifdef when checking WEBP_USE_THREAD
...
prevents a warning with -Wundef and is consistent with thread.c
Change-Id: I60fa337c3b9daeea7302e86802402cb943cdb262
2013-07-31 22:50:57 -07:00
James Zern
8924a3a704
thread.c: drop WebPWorker prefix from static funcs
...
Change-Id: I7cd39c9e41bbf11157c488aff18631ef17fde464
2013-07-31 19:22:44 -07:00