Pascal Massimino
8415ddf3be
further simplification for the meta-Huffman coding
...
* don't transmit the number of Huffman tree group explicitly
* move color-cache information before the meta-Huffman block
* also add a check that color_cache_bits is in [1..11] range, as per spec.
Change-Id: I81d7711068653b509cdbc1151d93e229c4254580
2012-05-07 14:25:07 -07:00
Urvang Joshi
e491729905
A quick pass of cleanup in backward reference code
...
const correctness, renaming, cosmetics etc.
Change-Id: I432befbb22f0eafd9a613f5f632398b6ef03c0f6
2012-05-07 14:25:05 -07:00
Vikas Arora
83332b3c16
Make transform bits a function of encode method (-m).
...
Change-Id: Idc392f7cba6e160ea068eacd7f82be4ebc971eaa
2012-05-07 14:25:03 -07:00
Pascal Massimino
72920caa61
introduce -lossless option, protected by USE_LOSSLESS_ENCODER
...
Change-Id: Ic5707082fefd964b9bcab0c9f9aa276992c22b06
2012-05-07 14:25:02 -07:00
Vikas Arora
c6ac4dfbb4
Run TraceBackwards for higher qualities.
...
Also reduce the iteration count in function VP8LHashChain_FindCopy.
Change-Id: I73e3811e142e81314515587fd655ab3bfa74d099
2012-05-07 14:25:00 -07:00
Vikas Arora
412222c88c
Make histo_bits and transform_bits function of quality.
...
Change-Id: Ic34e40853604811abc63a38e09d6a01961649efc
2012-05-07 14:24:58 -07:00
Urvang Joshi
149b5098a9
Update lossless encoder strategy:
...
Don't use any other transform when using palette.
Change-Id: I488ac546869677f1b6e4eed80e973569c757e997
2012-05-07 14:24:56 -07:00
Urvang Joshi
0e6fa06595
cache_bits passed to EncodeImageInternal()
...
should be 0 when not using color cache.
Change-Id: Id15c9b6bfbeb7c69a0189fa4c411df2763f9dead
2012-05-07 14:24:54 -07:00
Vikas Arora
e38b40a996
Factorize code for clearing HtreeGroup.
...
Change-Id: I29de6dab7383b8cf071eec155e01340d5fdadee5
2012-05-07 14:24:53 -07:00
Vikas Arora
6f4a16ea00
Removing the indirection of meta-huffman tables.
...
Now, the indexing refers directly to 5 huffman codes that must be encoded
separately.
Change-Id: I92e10ccf8ca464aa7259867d5fae2869343e3b3c
2012-05-07 14:24:51 -07:00
Urvang Joshi
3d33ecd12b
Some renaming/comments related to palette in lossless encoder.
...
Change-Id: Iaab32912f4c31e809d7a49fd748099d8c0c3e7d9
2012-05-07 14:24:49 -07:00
Urvang Joshi
4d02d5863f
Lossless encoder: correction in Palette storage
...
(Essentially, there was no need of a separate 'argb_palette' array. And
argb_palette[0] was never being set).
Change-Id: Id0a8c7e063d3af41e39fc9b8661611b51ccc55cd
2012-05-07 14:24:47 -07:00
Urvang Joshi
4a6362357a
fix a memleak in EncodeImageInternal()
...
Change-Id: I55cd013211f192188b54c694ef0837af0c01b53c
2012-05-07 14:24:45 -07:00
Urvang Joshi
0993a611cd
Full and final fix for prediction transform
...
use (tile_size + 1) rows of scratch area.
Change-Id: I06d612fff1794fc045ba76275e94e7210802c332
2012-05-07 14:24:43 -07:00
Urvang Joshi
afd2102f43
Fix cross-color transform in lossless encoder
...
make elements of "Multiplier" struct unsigned, so that any negative values are
automatically converted to "mod 256" values.
Change-Id: Iab4f9bacc50dcd94a557944727d9338dbb0982f7
2012-05-07 14:24:41 -07:00
Urvang Joshi
b96d8740c9
Need to write a '0' bit at the end of transforms.
...
Also convert an 'if' to 'assert'.
Change-Id: Ia1129ad9ddb027c27b4f4fc1da4bbaf53a0a8f76
2012-05-07 14:24:39 -07:00
Urvang Joshi
54dad7e553
Color cache size should be counted as 0 when cache bits = 0
...
Change-Id: I1d05e0561a92aebaf62162fe11ffc4b12496d698
2012-05-07 14:24:37 -07:00
Urvang Joshi
4f0c5caf67
Fix prediction transform in lossless encoder.
...
(Keep one tile as a scratch buffer).
Change-Id: If112ada29bfd0bdc81b82e849a566b30dd331d2f
2012-05-07 14:24:35 -07:00
Vikas Arora
36dabdadf8
Fix memory leak in method EncodeImageInternal for histogram_image.
...
Change-Id: Ia1cfb96d9e6c120630732e2b5f39688376d1d208
2012-05-07 14:24:33 -07:00
Urvang Joshi
352a4f49ab
Get rid of PackLiteralBitLengths()
...
[and in turn a malloc]. Also, a few related const fixes.
Change-Id: I229519b1c34d41c78d9ad2403f1e25feab3c9d93
2012-05-07 14:24:31 -07:00
Vikas Arora
d673b6b9a0
Change the predictor function to pass left pixel
...
instead of pointer to the source.
Change-Id: Ia2c8e17c3140709a825c2f85a88c5e31bd6e462f
2012-05-07 14:24:29 -07:00
Urvang Joshi
b2f99465a7
Fix CopyTileWithPrediction()
...
so that it uses original values of left, top etc for prediction rather than the
predicted values of the same. Also, do some renaming in the same to make it
more readable.
Change-Id: I2fe94e35a6700bd437f5c601e2af12323bf32445
2012-05-07 14:24:27 -07:00
Vikas Arora
84547f540c
Add EncodeImageInternal() method.
...
Most of changes in enc/vp8l.c is cherry-picked from src/lossless/encode.c
Change-Id: I27938cb2590eccbfe1db0a454343e856bd483e75
2012-05-07 14:24:25 -07:00
Urvang Joshi
6b38378acb
Guard the lossless encoder (in flux) under a flag
...
Change-Id: I6dd8fd17089c199001c06b1afde14233dc3e3234
2012-05-07 14:24:23 -07:00
Vikas Arora
09f7532cce
Fix few nits (const qualifiers)
...
Change-Id: I527e82af49956b695ab18625d34e143854067421
2012-05-07 14:24:21 -07:00
Vikas Arora
648be3939f
Added implementation for various lossless functions
...
- VP8LEncAnalyze, EvalAndApplySubtractGreen, ApplyPredictFilter,
ApplyCrossColorFilter
- Added palette handling and transform buffer management in VP8LEncodeImage()
- Add Transforms (subtract Green, Predict, cross_color) to dsp/lossless.c.
These are more-or-less copied from src/lossless code.
After this Change, will implement the EncodeImageInternal() method.
Change-Id: Idf71f803c24b3b5ae3b5079b15e019721784611d
2012-05-07 14:24:19 -07:00
Vikas Arora
32714ce3be
Add VP8L prefix to backward ref & histogram methods.
...
Change-Id: I8c14fb219a1d7830d3244aa780c91c9964867330
2012-05-07 14:24:17 -07:00
Vikas Arora
fcba7be2d3
Fixed header file tag (WEBP_UTILS_HUFFMAN_ENCODE_H_)
...
Change-Id: I7ccd00361b1b0347639b05ee494e8e701c95cfe3
2012-05-07 14:24:16 -07:00
Vikas Arora
bc7037465d
Add backward_ref, histogram & huffman encode modules from lossless.
...
Change-Id: Iac056d27972956782defa182caa3ea400cdb77f8
2012-05-07 14:24:14 -07:00
Vikas Arora
fdccaaddcf
Fixing nits
...
- Const Handling of picture object, removed bitwriter from encoder.
Change-Id: Id943854de09324de81cca615ada960390c4b8152
2012-05-07 14:24:12 -07:00
Vikas Arora
227110c4c3
libwebp interface changes for lossless encoding.
...
Change-Id: I703a1a18347acf78378cb23fddc6e5ca6dc6a0bb
2012-05-07 14:24:09 -07:00
James Zern
c04eb7be9d
tcoder.c: define NOT_HAVE_LOG2 for MSVC builds
...
no version of msvc currently implements log2(). unconditionally define
NOT_HAVE_LOG2 in this case to simplify building libwebp sources in other
projects.
Change-Id: Ia9d985b1125553c5a8271d7e539bc1b4f898d749
2012-05-03 16:59:13 -07:00
pascal massimino
9a214fa112
Merge "VP8[L]GetInfo: check input pointers"
2012-05-02 16:07:47 -07:00
James Zern
5c5be8ba69
VP8[L]GetInfo: check input pointers
...
validate data before using & width/height before assigning.
Change-Id: I0872e80fcbfea295d7c633b0d4cb7809e1d1883b
2012-05-02 16:05:02 -07:00
pascal massimino
0c188feca1
Merge changes I431acdfe,I713659b7
...
* changes:
mux: drop 'chunk' from ChunkInfo member names
muxi.h: remove some unused defines
2012-05-02 16:03:06 -07:00
James Zern
b3515c6215
mux: drop 'chunk' from ChunkInfo member names
...
fixes naming style (members should be lowercase, not camelcase).
Change-Id: I431acdfe3cc3740d9effe9df80a94ca284a072b6
2012-05-01 17:47:18 -07:00
James Zern
aea7923ca2
muxi.h: remove some unused defines
...
Change-Id: I713659b7ed83bafedd94a0b16379decea293a2f0
2012-05-01 17:47:11 -07:00
James Zern
0142249285
update NEWS file for next release
...
Change-Id: I93ba2432fb99334dd17bd1a9da3a39c19e495484
2012-05-01 17:34:14 -07:00
James Zern
29e3f7ec75
Merge "dec: remove deprecated WebPINew()"
2012-05-01 11:26:31 -07:00
pascal massimino
4718e44988
Merge "muxedit: a few more size_t changes"
2012-04-28 03:04:08 -07:00
pascal massimino
82654f961d
Merge "muxedit: remove a few redundant NULL checks"
2012-04-28 02:50:27 -07:00
James Zern
02f27fbd3b
dec: remove deprecated WebPINew()
...
Change-Id: I22ad1d297333f5ebc84456d142426a4e0e9a044b
2012-04-27 19:47:35 -07:00
James Zern
ccddb3fc6f
muxedit: remove a few redundant NULL checks
...
Change-Id: I8285a7694d40b0f5c986dbfe40703251682eaafc
2012-04-27 19:06:03 -07:00
James Zern
a6cdf7107a
muxedit: a few more size_t changes
...
Change-Id: I18266dc572426cb3daace6e0ad8f2ae21687a151
2012-04-27 18:53:08 -07:00
pascal massimino
a384689292
Merge "mux: remove unused LIST_ID"
2012-04-27 03:03:34 -07:00
James Zern
11ae46ae91
alpha.c: quiet some size_t -> int conversion warnings
...
Change-Id: I52026a9271bde4028f00df2d752e100c61fd3fe3
2012-04-26 18:47:08 -07:00
James Zern
dee466926b
mux: remove unused LIST_ID
...
The 'LIST' fourcc is not a well known value in the context of webp.
Change-Id: I6a571f5f3acd6463cf3cad7c5d5ffa89d0597fb6
2012-04-25 18:18:25 -07:00
James Zern
03f1f49321
mux: add version checked entry points
...
Change-Id: I3bf5b25b17c06ec092f8ad1c14eea411aa9471c1
2012-04-25 17:27:16 -07:00
pascal massimino
6a0abdaa3a
Merge "doc: tile/alpha corrections"
2012-04-24 23:57:05 -07:00
Pascal Massimino
c8139fbe5d
Merge "few cosmetics"
2012-04-24 23:47:06 -07:00