Pascal Massimino
894232be56
smartYUV: fix and simplify the over-zealous stop criterion
...
We usually need at least 2 iterations to converge
(and usually not much more after that). Only 1 was not enough.
Change-Id: Iaf802ea81afa2596f4ba045c92f5eaff61623b7b
2016-09-09 10:10:13 +02:00
Hui Su
8de08483b6
Remove unused code in webpi.h
...
Change-Id: If927530034cefa0da62ddfde588833aafec51d4d
2016-09-08 22:46:32 -07:00
Pascal Massimino
545c147fd8
remove mention of fragment, frgm, FRGM, etc.
...
demux.h still has a 'fragment' field, for historical reasons.
bumped the ABI number in mux.h
Change-Id: I73299aa2e96b1f2e44f5cebfd84c597d1db12bff
2016-09-02 14:43:12 +02:00
hui su
9e478f808e
dec/vp8l.c: add assertions in EmitRescaledRowsRGBA/YUVA
...
Add assertions to make sure the number of lines that are imported
into rescaler is as expected.
Change-Id: I3e9e4202e696bb09f7aa54519285b6b0deb84c1a
2016-09-01 20:58:37 -07:00
James Zern
0a57ad0dc5
cosmetics: WebPSafeAlloc -> WebPSafeMalloc
...
Change-Id: I0c47b827cadc18cf739f1648c605311c9bc41375
2016-08-30 18:34:37 -07:00
James Zern
0a4699bcc9
Merge "WebPPictureDistortion(): free() -> WebPSafeFree()"
2016-08-31 01:27:06 +00:00
hui su
29fedbf58b
Anim_encoder: correctly handle enc->prev_candidate_undecided_
...
Set enc->prev_candidate_undecided_ as 0 when a frame is not chosen
as a possible keyframe, so that the dispose method can be
dispose-to-background.
Change-Id: If2899f5dbc06fb53705fb8240072ab6440a6de12
2016-08-30 15:25:09 -07:00
Pascal Massimino
32dead4ee3
WebPPictureDistortion(): free() -> WebPSafeFree()
...
missed one!
Change-Id: I643170451b3ac07c748b70a9abfe8af17a716b24
2016-08-30 15:43:23 +02:00
Vincent Rabaud
85cd5d061c
Smarter LZ77 for uniform regions.
...
No need to find backward references for pixels in uniform regions
by looking at all pixels.
Only pixels at the same distance from the end need to be compared to.
Change-Id: I4f187e965f0667d3a929775726a412f7e69f6473
2016-08-26 09:53:49 +02:00
Pascal Massimino
6585075f8a
Change PixelsAreSimilar() to handle black pixels correctly.
...
if src_{r,g,b} = 0, any value of src_a or dst_a such that
abs(src_a - dst_a) <= max_allowed_diff
was making the test pass, despite being very different-looking pixels.
The fix is to require same values for src_a and dst_a before attempting
an r/g/b comparison.
Change-Id: If3a55a229eab3904ed454f20065e49e35c39f25c
2016-08-25 07:33:18 +02:00
Vincent Rabaud
7f1b897bee
Faster stochastic histogram merging.
...
Constants are such that brute force is sometimes faster for some
data (mostly big images it seems).
Change-Id: I90aef536408683535e3b09ddfa2e77a9834038f6
2016-08-19 14:52:57 +02:00
Pascal Massimino
3884972e3f
remove WEBP_FORCE_ALIGNED and use memcpy() instead.
...
BUG=webp:297
Change-Id: I89a08debec7bb1b3f411c897260ab1bb63f77df2
2016-08-17 20:16:03 -07:00
James Zern
005e15b10a
Merge "{extras,mux}/Makefile.am: add missing -lm"
2016-08-17 18:18:39 +00:00
skal
6ab496ed22
fix some 'unsigned integer overflow' warnings in ubsan
...
I couldn't find a safe way of fixing VP8GetSigned() so i just
used the big-hammer.
Change-Id: I1039bc00307d1c90c85909a458a4bc70670e48b7
2016-08-16 23:18:27 -07:00
James Zern
8a4ebc6ab0
Revert "fix 'unsigned integer overflow' warnings in ubsan"
...
This reverts commit e44f5248ff
.
contains unintentional changes in quant.c
Change-Id: I1928f072566788b0c9ea80f6fbc9e571061f9b3e
2016-08-16 16:55:56 -07:00
Pascal Massimino
9d4f209f80
Merge changes I25711dd5,I43188fab
...
* changes:
Fix assertions in WebPRescalerExportRow()
Add descriptions of default configuration in help info.
2016-08-16 22:13:23 +00:00
skal
e44f5248ff
fix 'unsigned integer overflow' warnings in ubsan
...
I couldn't find a safe way of fixing VP8GetSigned() so i just
used the big-hammer.
Change-Id: I1039bc00307d1c90c85909a458a4bc70670e48b7
2016-08-16 15:04:41 -07:00
Hui Su
27b5d991e2
Fix assertions in WebPRescalerExportRow()
...
Change-Id: I25711dd54e71c90a25f7b18e0ef9155e8151a15e
2016-08-16 14:32:48 -07:00
James Zern
aaf2530cc3
{extras,mux}/Makefile.am: add missing -lm
...
+ libwebpmux.pc
quality_estimate.c, anim_encode.c rely on functions from math.h
BUG=webp:306
Change-Id: I3a8eb48febfd52bfbeb04f4dc615ccbed72926f7
2016-08-15 22:32:46 -07:00
hui su
1269dc7cfb
Refactor VP8LColorCacheContains()
...
Return key/index if the query is found, and -1 otherwise.
The benefit of this is to save a hashing computation.
Change-Id: Iff056be330f5fb8204011259ac814f7677dd40fe
2016-08-12 15:16:06 -07:00
James Zern
40872fb2e6
dec_neon,NeedsHev: micro optimization
...
trade 2 compares + 1 logical or for max + compare
Change-Id: I785ad8efdc64db2d0609456d6e7af795ab2117d8
2016-08-08 20:12:30 -07:00
James Zern
b551e587b3
cosmetics: add {}s on continued control statements
...
for consistency within the codebase. in some cases simply join the
lines.
Change-Id: I071f061052e274c8a69f651ed4305befb4414a40
2016-08-03 19:08:59 -07:00
James Zern
d2e4484ef3
dsp/Makefile.am: put msa source in correct lib
...
upsampling_msa.c was incorrectly included in the neon convenience lib
+ sort msa sources
Change-Id: I7c4883f16a5c2fed12bfa0e8d8d6a7acd5d4fb84
2016-08-03 17:50:45 -07:00
Pascal Massimino
c7f66c82b3
Merge "utils/thread.c,cosmetics: join a few lines"
2016-07-28 04:08:48 +00:00
James Zern
39f4ffbcdc
utils/thread.c,cosmetics: join a few lines
...
Change-Id: I94c142fc6f9e6823ce16ca723145354eae4db9af
2016-07-27 18:10:18 -07:00
hui su
0b2c58a91c
Fix an unsigned integer overflow error in enc/cost.h
...
Change-Id: I9774b59c417c185f09a61a115364b9642976a100
2016-07-26 13:55:09 -07:00
hui su
386e4ba2f0
Reset segment id if we decide not to update segment map
...
This avoids potential encoder and decoder mismatch.
Change-Id: I5282d3e168afc6193033ad3fce8fbc35618ab2f5
2016-07-25 17:08:10 -07:00
Parag Salasakar
d3ddacb625
Add MSA optimized YUV to RGB upsampling functions
...
We add the following MSA optimized YUV to RGB upsampling functions:
- UpsampleRgbLinePair
- UpsampleBgrLinePair
- UpsampleRgbaLinePair
- UpsampleBgraLinePair
- UpsampleArgbLinePair
- UpsampleRgba4444LinePair
- UpsampleRgb565LinePair
Change-Id: I7264a615edc7eb376e443e9d38bd8e3c9a2cab1f
2016-07-22 14:28:30 +00:00
Pascal Massimino
45fbeba5cd
Merge "Do token recording and counting in a single loop"
2016-07-20 13:07:41 +00:00
James Zern
ad497fbce3
move src/extras to the top-level
...
reserve src/ for the code of the main libraries: libwebp, libwebpdemux
and libwebpmux
+ demote this library to internal only; i.e., don't install the header +
lib with make install
Change-Id: I8c9844db8f494be0fa0a2549a5b75b5cebcf666d
2016-07-19 17:23:17 -07:00
hui su
0c0fb83211
Do token recording and counting in a single loop
...
Change-Id: I8afd3c486b210bd67888de03e91dde7f78276f89
2016-07-19 16:28:26 -07:00
Parag Salasakar
9ac74f922e
Add MSA optimized rescaling functions
...
We add the following MSA optimized rescaling functions:
- RescalerExportRowExpand
- RescalerExportRowShrink
Change-Id: Ic1c76065423b02617db94cf0c22bb564219b36e6
2016-07-19 15:52:42 +00:00
Parag Salasakar
cb19dbc1a4
Add MSA optimized color transform functions
...
We add the following MSA optimized color transform functions:
- TransformColor
- SubtractGreenFromBlueAndRed
Change-Id: Ib182d2b5faa7191f503ce70f0dfde0ac89402fd3
2016-07-18 13:49:24 +00:00
Urvang Joshi
3f4042b52a
WebPAnimEncoder: If 'minimize_size' and 'allow_mixed' on, try lossy + lossless.
...
This improves compression by ~5% at default quality.
If only 'allow_mixed' is on (but 'minimize_size' isn't), we continue to
use a heuristic to try one of the two or both.
Change-Id: Ia573a73ea26ad25f9debff759eed69d2b0449e82
2016-07-15 16:56:20 -07:00
James Zern
5e2eb89e1f
cosmetics,dsp/*msa.c: associate '*' with the type
...
not the variable
Change-Id: If5823e9731c406655eaf1dc1aaa2e6554ca7daad
2016-07-15 15:40:41 -07:00
skal
5b60db5c9d
FastMBAnalyze() for quick i16/i4 decision
...
The decision is based on the variance between DC values of each
sub-4x4 block. This heuristic is rather ok for predicting whether
the 2nd transform (intra-16) is going to help or not.
The decision threshold varies with quality (=quantization).
It's only used for -m 0 and -m 1, where no full RD-opt is performed.
It actually makes these modes quite faster, with RD curve much
closer to the -m 2 mode.
Change-Id: I15f972db97ba4082cbd1dfd16bee3eb2eca701a8
2016-07-15 11:21:08 -07:00
Parag Salasakar
567e697776
Add MSA optimized CollectHistogram function
...
We add the following MSA optimized encoder Histogram function:
- CollectHistogram
Change-Id: I28415704ec62c3ad375de06eeef468d9f514bb2d
2016-07-15 22:51:33 +05:30
Parag Salasakar
c54ab8dd1a
Add MSA optimized quantization functions
...
We add the following MSA optimized encoder quantization functions:
- QuantizeBlock
- Quantize2Blocks
Change-Id: Ie32b442afa99eee62d2ef48942b41116a4e157d3
2016-07-15 15:33:47 +00:00
Pascal Massimino
ec6f68c51e
Merge "Remove QuantizeBlockWHT() in enc.c"
2016-07-14 18:59:08 +00:00
Vincent Rabaud
2a5c417c68
Apply the RLE heuristic to LZ77.
...
Change-Id: I7317eed7e017ee8981f40fcf1737f97e0e3a238c
2016-07-14 20:12:48 +02:00
hui su
91b59e886b
Remove QuantizeBlockWHT() in enc.c
...
QuantizeBlockWHT() is basically identical to QuantizeBlock(),
no need to keep two copies.
Change-Id: I970cb6948da1c750c1339971a55e3b40765cdd01
2016-07-14 10:44:18 -07:00
Parag Salasakar
fe57273736
Add MSA optimized SSE functions
...
We add the following MSA optimized encoder SSE functions:
- SSE16x16
- SSE16x8
- SSE8x8
- SSE4x4
Change-Id: I9ef9e903019337d9975c83264a652a7282bf5d5b
2016-07-14 15:43:23 +05:30
James Zern
6b53ca876e
cosmetics,(dec|enc)_sse2.c: fix indent
...
Change-Id: Ic3326136ddd325e911e96c2e5a7f06b3e1d60f66
2016-07-13 16:11:29 -07:00
Pascal Massimino
b15d00d996
Merge "Add MSA optimized encoder IntraChromaPreds function"
2016-07-13 14:54:28 +00:00
Parag Salasakar
afe3cec813
Add MSA optimized encoder IntraChromaPreds function
...
We add the following MSA optimized intrapred chroma function:
- IntraChromaPreds
Change-Id: I051cd174f5ce675aeb94e648d52c5a340a133ed4
2016-07-13 18:13:51 +05:30
skal
fc8cad9f29
reduce the number of malloc/free cycles in huffman.c
...
pre-allocating a sorted[] array for most common cases of small
alphabet size cuts a lot of traffic.
Change-Id: I73ff2f6e507f81b0b0bb7d9801a344aa4bcb038a
2016-07-12 12:06:31 -07:00
Parag Salasakar
7b4b05e0dc
Add MSA optimized encoder Intra16Preds function
...
We add the following MSA optimized intrapred 16x16 function:
- Intra16Preds
Change-Id: I89a249e041fbed377cb6a328c0b973add335b980
2016-07-12 14:30:03 +05:30
Parag Salasakar
c18787a0e9
Add MSA optimized encoder Intra4Preds function
...
We add the following MSA optimized intrapred 4x4 function:
- Intra4Preds
Change-Id: Icf325f3dcbf98bb6210811b666ce632cae575b22
2016-07-12 04:36:56 +00:00
Pascal Massimino
bbb6ecd9b0
Merge "Add MSA optimized distortion functions"
2016-07-07 08:59:40 +00:00
Parag Salasakar
7915396f40
Add MSA optimized distortion functions
...
We add the following MSA optimized distortion functions:
- Disto4x4
- Disto16x16
Change-Id: I0a545ed0182ea56a0d5f358639f6671c2c21b95c
2016-07-07 07:30:22 +00:00