Fixed #2984304. Fix compilation errors reported by gcc 4.5.0.
[dirac-research.git] / NEWS
blob59a18a0be57784f89e5fe23c5913ad127f4e029c
1 dirac-1.0.2
2 ===========
3 This a a minor release complying with the latest Dirac Bytestream 
4 Specification 2.2.3.
6 - Improved compression performance for small picture sizes.
7 - Improved compression performance at low bit-rates.
8 - Included macros to check the API version.
9 - Improved motion estimation.
10 - New 422 <-> 420 conversion utilities for interlaced video.
11 - New functionality added to encoder API. The programmer's guide has
12   been modified accordingly.
13 - Fixed bugs in handling DC subband.
15 dirac-1.0.0
16 ===========
17 This a a major release complying with the latest Dirac Bytestream Specification
18 Dirac 2.2.2.
20 - Adaptive GOP structure.
21 - Improved constant bit-rate coding.
22 - Improved motion estimation.
23 - Improved pre-filtering.
24 - Major code refactor of encoder classes.
25 - Added conversion utility for horizontal 3/4 filtering.
26 - DirectShow Filter released to be able to play back Dirac v2.2.2 files
27   in Windows Media Player.
28 - For more info on Dirac go to http://diracvideo.org
30 dirac_0.10.0
31 ============
32 This is a Beta release complying with the latest Dirac Bytestream Specification
33 Dirac 2.2.0.
35 - Code refactor to distinguish between fields and frames. Generic term
36   picture is used instead of frames to indicate either fields or frame.
37   Public API has changed as a result.
38 - Added support for various forms of pre-filtering.
39 - Added support for Ultra High Definition video formats.
40 - New conversion utilities to convert from packed YUV format to planar
41   UIV formats and vice versa.
42 - Improved compression performance in constant bit-rate mode.
43 - Improved GOP structure.
44 - Fixed bug in intialising entropy factors while encoding which caused the
45   encoder to crash when coding losslessly.
46 - Fixed bug where the decoder would go into a permanent loop when 
47   processing a truncated packet.
48 - Fixed bug handling end of sequence packets in decoder. These packets
49   are now handled correctly and the decoder library returns an EOS status to 
50   the user application.
51 - Fixed encoder bug where not all frames loaded into the encoder were being
52   coded. The API has been modified to ensure that all encoded frames can
53   now be retrieved.
54 - Fixed bug that caused the decoder to go into a loop when processing
55   non-standard GOP structures.
56 - Fixed bug with DC value prediction in motion data coding.
57 - Fixed bug handling edge blocks in motion compensation.
58 - Fixed bug with perceptual weighting when coding losslessly.
59 - Fixed bug with rate control when coding in constant bit-rate mode.
60 - Replaced VS 2005 build environment with Visual Studio 2008 under MS
61   Windows.
62 - Bugs fixed: 1944681, 1906788, 1893223, 1874587
63 - Released new patches for MPlayer. There is no FFmpeg patch in this 
64   release because Dirac encoding and decoding using Dirac and Schroedinger
65   libraries is available directly in FFmpeg.
66 - DirectShow Filter released to be able to play back Dirac v2.2.0 files
67   in Windows Media Player.
69 dirac_0.9.1
70 ===========
71 Minor release complying with the latest Dirac Bytestream Specification
72 Dirac 2.1.0.
74 - Corrected the motion compensation block weighting matrix.
75 - Fixed bug in constant bit rate module which caused the encoder to
76   crash when using the cbr mode for an i-frame only sequence
77 - Fixed MPlayer and FFmpeg patches to be able to handle display/coding
78   of all streams supported by Dirac.
79 - Fixed Dirac DirectShow filter to be able to display all streams supported 
80   by Dirac.
81 - Released new patches for MPlayer and FFmpeg 
82 - DirectShow Filter released to be able to play back Dirac v2.1.0 files
83   in Windows Media Player.
84 - Bugs fixed - 1877990 (in ffmpeg patch), 1878017 (in MPlayer patch)
86 dirac_0.9.0
87 ===========
88 Major release complying with the latest Dirac Bytestream Specification
89 Dirac 2.0.0.
91 - Dirac Bytestream Specification Ver 2.0.0 and 1.0.0 released.
92   (http://dirac.sourceforge.net/specification.html)
93 - Support for entropy coding of wavelet coefficients data using Variable
94   Length Codes.
95 - Improved quantiser selection
96 - Modified motion cpmpensation to fit 16 bits.
97 - Further changes to constant bit-rate coding mode to improve performance.
98 - Fixed bug with calculating bit-rates for individual GOPs in constant
99   bit-rate mode.
100 - Fixed bug with dc value prediction in motion decoding.
101 - Fixed bug in handling concatenated Dirac streams.
102 - API changes to conform with spec revision 2.0.0. Applications using 
103   Dirac libraries will need to be recompiled.
104 - Released patches to MPlayer, FFmpeg to comply with this release. Earlier
105   patch to transcode can be used with release.
106 - DirectShow Filter released to be able to play back Dirac v2.0.0 files in 
107   Windows Media Player.
109 dirac_0.8.0
110 ===========
111 Major release complying with the latest Dirac Bytestream Specification.
113 - Support for interlaced coding
114 - Fixed bug with DC weight being set incorrectly
115 - Improved constant bit-rate coding mode so that quality crashes and
116   rate explosions are reduced.
117 - Improved motion estimation
118 - Added support for full-seach block matching.
119 - Fixed bugs reported by valgrind.
120 - API changes to conform with spec revision 1.0.0.pre9_02. Application using 
121   Dirac libraries will need to be recompiled.
122 - Added support for larger wavelet-depths in non-MMX mode.
123 - Released patches to MPlayer, FFmpeg to comply with this release. Earlier
124   patch to transcode can be used with release.
125 - DirectShow Filter released to be able to play back Dirac v0.8.x files in 
126   Windows Media Player.
128 dirac_0.7.0
129 ===========
130 Major release complying with Dirac ByteStream Specification 1.0.0_pre4. The
131 specification is available on the Dirac Homepage on Sourceforge.
133 - Added support for Constant Bit Rate Coding.
134 - Improved quality of encoded pictures at low bit-rates and for difficult
135   sequences.
136 - Improved motion vector data partitioning to allow for parallel encoding
137   and decoding of this data especially in hardware.
138 - Added support for integral motion vector precision.
139 - Improved Arithmetic coding. Arithmetic coding is lots faster now.
140 - Minor bug-fixes to ensure compliance with spec.
141 - Solution and Project files for Visual C++ 2005 Express edition.
142 - Encoder and Decoder API header files have changed so applications
143   using the old API will have to be recompiled.
144 - Released patches to MPlayer, FFmpeg to comply with this release. Earlier
145   patch to transcode can be used with release.
146 - DirecShow Filter released to be able to play back Dirac v0.7.0 files in 
147   Windows Media Player.
148 - The Dirac programming guide has been updated to reflect changes to the
149   Encoder API headers.
150 - The Algorithm API is OUT OF DATE. Please refer to the Specification 
151   document (link http://dirac.sourceforge.net/specification.html) for
152   latest algorithmic changes related to the decoder side. The Algorithm 
153   document will be updated shortly.
154 - Bugs fixed: 1362673, 1508532, 1588191
155 - Patches applied: 1537623
157 dirac_0.6.0
158 ===========
159 - Major release complying with Dirac ByteStream Specification. The
160   specification is available on the Dirac Homepage on Sourceforge.
161 - Encoder and Decoder API have changed in this release so applications
162   using the older API will have to be recompiled.
163 - Released patches to MPlayer, FFmpeg to comply with this release. Earlier
164   patch to transcode can be used with release.
165 - DirecShow Filter released to be able to play back Dirac v0.6.0 files in 
166   Windows Media Player.
167 - Bugs fixed: 1501636, 1383890
169 dirac_0.5.4
170 ===========
171 - Added support for lossless encoding. 
172 - Improved Decoder performance by upto 20%.
173 - Improved encoder performance by modifications to motion estimation
174 - Modified encoder CLI so that diagnostics data and locally decoded output
175   is not generated by default. This improved the encoding efficiency.
176 - Patches : 1303281, 1309571
177 - Bugs: 1291478, 1291481, 1291789, 1328565
179 dirac_0.5.3
180 ===========
181 - Fixed encoder CLI. Added rigorous command line input checks . 
182   The encoder exits with error message when command line argument is not 
183   valid.
184 - Fixed HD block size to improve motion compensation and prediction
185 - Fixed bug with computing MV costs.
186 - MMX opts to wavelet transform, motion compensation and upconversion which
187   improved decoder speed by 25-30%.
188 - Improved chroma fidelity by increasing bits allocated to chroma
189 - Wavelet filter type is part of bitstream.
190 - Fixed bug with the way median is calculated in motion prediction.
191 - Replaced constant quality encoding control mechanism with a mechanism
192   that used constant constant Lagrangian paramemters. 
193 - MMX optimisations are automatically used if underlying architecture
194   supports it.
195 - Improved motion estimation.
196 - Modified arithmetic coding to use a look-up table for division.
198 - Patches: 1211899, 1216297
199 - Bugs: 1209017, 1209053, 1212581, 1245129, 1240709
201 dirac_0.5.2
202 ===========
203   - Changed encoder command line interface to accept all encoding parameters.
204     E.g. frame dimensions, chroma format, frame rate, etc. Header files
205     are no longer required. Refer to section 4.3 of README for details.
206   - Applied patch supplied by Mike Ferenduros to make the TwoDArray class
207     more efficient
208   - An overall increase in decoding speed by 20% by speeding up Motion 
209     compensation, frame clip, and wavelet transform.
210   - Arithmetic coding speedup
211   - Added support for multiple wavelet filter types
212   - Added support for variable motion vector precision.
213   - Updated bitstream version. Encoder/Decoder apps in this release will not
214     be able to decode bitstreams generated by earlier versions.
215   - Released a source code patch for MPlayer-1.0pre7 to enable Dirac play
216     back support.
217   - Released a source code patch for ffmpeg-0.4.9-pre1 to enable Dirac encode
218     and decode.
219   - Released a source code patch for transcode-0.6.14 to enable Dirac encode
220     and decode using the patched ffmpeg-0.4.9-pre1.
221   - Patches Applied: 1151976 (partial), 1156674
222   - Bugs fixed : 1159031
224 dirac_0.5.1
225 ===========
226   - Significant speedup in the Arithmetic coding and decoding engines
227   - Modified wavelet coefficient coding to code blocks of coeffients with
228     skip flags if all coefficients are zero. This improves compression
229     performance and decoding speed.
230   - Modified block prediction mode coding to improve compression performance.
231   - Fixed bug in assigning costs to lists of vectors in block matching.
232   - MMX optimisation for calculating block differences in Motion Estimation.
233     This resulted in 20-30% improvement in encoding speed. The configure
234     flag --enable-mmx enables compile time MMX optimisation detection.
235     Currently works only on GNU/Linux.
236   - New script create_dirac_testfile.pl to generate input formats 
237     compatible with Dirac from rgb files. Step 3, Section 4.2 in README 
238     describes how to use the script.
239   - Released a source code patch for MPlayer-1.0pre6a to enable Dirac play
240     back support.
241   - Released DirectShow filter for Dirac to enable playback of Dirac bitstreams
242     using Windows Media Player
243   - Reinstituted bi-directional prediction
244   - Added support for multiple quantisers.
245   - Code restructure and tidying.
246   - Updated bitstream version. Encoder/Decoder apps in this release will not
247     be able to decode bitstreams generated by earlier versions.
248   - Patches applied: 1081736,1081743
250 dirac_0.5.0
251 ===========
252   - Added C interface for the encoder application. Refer to the api 
253     documentation in dirac_encoder.h or in the Programmer's Guide at
254     http://dirac.sourceforge.net/documentation/code/programmers_guide/index.htm
255   - Updated bitstream version. Encoder/Decoder apps in this release will not
256     be able to decode bitstreams generated by earlier versions.
257   - Improvements to Constant Quality encoding engine to improve stability.
258   - Speed-ups to motion compensation and wavelet transform for faster decoding
259   - Removed rounding errors from motion compensation.
260   - Fixed bugs with clipping and encoding black or white areas.
261   - Fixed bug with overflow in context modelling for arithmetic coding of 
262     HD pictures.
263   - Added unit tests for motion compensation classes and wavelet classes.
264   - The number of frames parameter is no longer required. All existing picture
265     header files must be recreated using make_header for this parameter to be
266     omitted. Otherwise, incorrect bit rates will be reported by the encoder
267     application.
268   - Updated algortihm documentation.
269   - Restructured libraries so that only two libraries are generated - an encoder
270     library and a decoder library. 'make install' will now install only the 
271     public API libraries and header files, the encoder and decoder apps and the
272     conversion and instrumentation utilities.
273   - Added support for building shared and/or static libraries using libtool
274     under UNIX, GNU/Linux.  Shared and static libraries are built by default.
275   - Added support for building shared or static libraries under MS Windows
276     using MSYS and the no cost MSVC++ 2003 toolkit. Shared libraries are built
277     by default.
278   - Added support for building the codec using MS Visual C++ .NET 2003 under
279     MS Windows. Options are available to build Dlls and static libraries. 
280     The _declspec mechanism is used to export the Encoder and Decoder public 
281     "C" API.
282   - New target 'valgrind-check' added to make under Linux.
283   - Build under MS Windows using nmake no longer supported.
284   - Bug fixes: 1050816, 1055692, 1050757, 1044503, 1044501, 1044499
285   - Patches Applied: 1055714, 1055707, 1061923, 1071429, 1059342
287 dirac-0.4.3
288 ===========
289   - Quality metric has changed from PSNR to one based on 4th powers of errors.
290     This results in pictures with more stable quality and fewer artefacts.
291   - Fixed bug with scaling motion vectors for non 4:4:4 formats.
292   - Fixed bug in encoder in downconverting a picture with odd valued dimensions
293   - Fixed bug in encoder in handling input with 4:1:1 chroma format.
294   - Fixed bug in diagnostics tool in handling input with 4:1:1 chroma format.
295   - Updated algorithm documentation
297 dirac-0.4.2
298 ===========
299   - Fixed bugs in writing instrumentation data while encoding which
300     caused the diagnostics tool to go into an infinite loop
301   - Fixed bug in diagnostic tool when handling reference 2 and only
302     one reference frame is available
303   - Number of frames in encoded output header is now set correctly to
304     the number of frames encoded.
305   - Fixed bug with bit-rate being miscalculated when only a section of the 
306     sequence is encoded.
307   - Fixed bug with setting DC band perceptual weight.
309 dirac-0.4.1
310 ===========
311   - Added support for build under Microsoft Windows using gnu autotools,
312     MSYS and no-cost MS VC++ 2003 compiler
314   - Fixed bug in building unit tests when older versions of cppunit are 
315     installed
317   - Fixed bugs in measurement of PSNR and motion estimation process
319 dirac-0.4.0
320 ===========
321   - Added constant quality encoding interface using PSNR
322      as the quality measure, and using multi-pass frame
323      coding
324   - Added Intra-frame insertion and cut detection
325   - Added C interface for the decoder application to allow
326      interfacing to player software. Refer to the api documentation
327      in dirac_parser.h.
328   - Implemented unique frame headers to facilitate bit-stream
329      parsing
330   - Added instrumentation output from encoder and an 
331      instrumentation display tool for visualising encoder
332      decisions to help with algorithmic development
333   - Cleansed and refactored numerous code files to add comments,
334      improve readability and modularity
335   - Added a unit testing framework based on cppunit for testing
336      classes 
337   - Fixed bug with vertical block separation always being set
338      to 8 pixels
339   - Added feature to encode only a section of input video rather
340      than the whole sequence
341   - Tweaked motion estimation parameters to improve performance,
342      mostly for higher-res pictures
343   - Included document describing the syntax of Dirac bitstream v0.1
344     in the doc directory.
345   - Fixed bug 1008694 (Out-of-tree building fails)
346   - Fixed header and pkconfig installation
347   - Updated algorithm documentation
349 Dirac-0.3.1
350 ===========
351   - Fixed compiling under Windows
352   - Video conversion utilites now build under Windows
353   - Colour conversion matrix coefficients corrected in conversion utilites
355 Dirac-0.3.0
356 ===========
357   - Added conversion utilities for going to and from RGB and 
358      various YUV formats, plus bitmaps
359   - Fixed serious artifacts when frame dimensions are not multiples of 32
360   - Performance speed up writing output to disk
361   - Changed .hdr format from binary to text for cross-platform interoperability
362   - Added autotest framework with simple colour-bars test
363   - Added format conversion, MPlayer and ImageMagick examples to README
364   - Added decoder support for arbitrary temporal prediction structures
365   - Added support for I-frame only coding
366   - Added support for coding with a single initial I-frame
367   - Extended code documentation to all major classes
369 Dirac-0.2.0
370 ===========
371   - Fixed crash when frame dimensions are not multiples of 32
372   - Removed dependency on XParam library
373   - Removed libtool for faster compiles and ease of debugging
374   - Included doxygen documentation of major classes
375   - Initial "programmer's guide" documentation - doc/dirac_algor.tex
377 Dirac-0.1.0
378 ===========
379   - Initial Sourceforge release.