~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Open Mash Cross Reference
mash/codec/tmndec/CHANGES

Component: ~ [ mash ] ~ [ apps ] ~ [ gsm ] ~ [ lib ] ~ [ otcl ] ~ [ srm ] ~ [ tcl8.3 ] ~ [ tclcl ] ~ [ tk8.3 ] ~ [ tutorials ] ~

  1                   Changes from version 3.0 to 3.1
  2                   ===============================
  3 
  4 Encoder & Decoder:
  5 
  6         Changes from H.263+ Draft 20 are incorporated.
  7 
  8         H.263+ Annex D (unrestricted motion vector) with RVLC is
  9         implemented. H.263 Annex D can still be used (with option -D
 10         1) to avoid PLUSPTYPE 
 11 
 12         Annex O Spatial (1- and 2-dimensional) and SNR scalability are
 13         now supported. 
 14 
 15         Custom picture format (factor of 16, pixel aspect ratio 12:11
 16         only) is supported.  
 17 
 18         Bug fixes:  Bugs (including mode combination problems)
 19         reported in version 3.0 were fixed. 
 20  
 21 Encoder:
 22 
 23         TMN-8 rate control is implemented (TMN-5 rate control also available)
 24 
 25         Full search motion estimation is available through
 26         pre-processor definition (sim.h). Fast search is the default
 27         method. 
 28 
 29 Decoder:
 30 
 31         TMN-8 Post Filter implemented
 32 
 33 See Help (tmn -h) to enable modes.
 34 
 35 
 36                   Changes from version 2.0 to 3.0
 37                   ===============================
 38 
 39 
 40 Department of Electrical Engineering, University of British Columbia, 
 41 CANADA (http:/www.ee.ubc.ca/image/)  is now the official maintainer of
 42 the Public Domain H.263+ encoder/decoder.
 43 
 44 Our H.263+ Coder supports the following H.263+ Annexes (All H.263
 45 Annexes are still supported), based on H.263+ draft 13 document
 46 :
 47 
 48 Annex I:    Advanced Intra Coding mode
 49 Annex J:    Deblocking Filter mode
 50 Annex M:    Improved PB-frames mode
 51 Annex O:    Temporal (only) Scalability mode
 52 Annex S:    Alternative Inter VLC mode
 53 Annex T:    Modified Quantization mode
 54 
 55 This is the first release of this code and might not run without error
 56 when combining options.  Please report bugs to guyc@ee.ubc.ca.
 57 
 58 Encoder:
 59 *       New fast search motion estimation technique of TMN-8 is used.  New technique reduces
 60         encoding time from 3:1 compared to  
 61         Full Search with an average loss of less than 0.01 Db in PSNR.
 62 
 63 
 64 
 65                    Changes from version 1.7 to 2.0
 66                    ===============================
 67 
 68 Encoder & Decoder:
 69 *       Because of the possible patent infringements in all
 70         implementations of H.263, I decided to remove the
 71         GNU License introduced in version 1.7.
 72         The software is now distributed under the same
 73         "disclaimer of warranty" as the freely available 
 74         MPEG-2 software. See the file DISCLAIM for details.
 75 
 76 Encoder:
 77 *       Usage is printed to stdout instead of stderr to 
 78         enable piping to file on Win95 systems. 
 79 
 80 
 81                    Changes from version 1.6c to 1.7
 82                    ================================
 83 
 84 Encoder & Decoder:
 85 *       Changed the copyright to put all the software under the GNU
 86         General Public License. Permission has been granted from all
 87         parties that have contributed to this version of the software.
 88 
 89 *       It is no longer necessary to compile separate versions
 90         for encoding and decoding the different coding formats
 91         (SQCIF, QCIF, CIF, 4CIF, 16CIF)
 92 
 93 Encoder:
 94 *       Removed all code coming from the Stanford PVRG group. This was
 95         the bitstream functions and the VLC encoding. New bitstream
 96         functions and new VLC-tables were written based the idea
 97         from the MPEG-2 simulation group software.
 98 
 99 *       Added back the low-delay, variable frame rate, rate control 
100         from version 1.5.
101         To use the rate control from version 1.6, compile with
102         OFFLINE_RATE_CONTROL defined. Read more about the rate 
103         control methods in ratectrl.c.
104 
105 
106 Decoder:
107 *       Display for Windows 95/NT has been added. This works much
108         the same way as the X11 display: when the decoder is
109         run in a console window, a window displaying the decoded
110         frames pops up.
111 
112 *       Variable frame rate display has been added. In this
113         mode the decoder will read the frame rate from the bitstream.
114         This is now the default display mode.
115 
116 *       When decoding PB-frames the display rate should
117         be reasonably correct, provided the computer 
118         running the decoder is fast enough.
119 
120 
121                    Changes from version 1.6b to 1.6c
122                    =================================
123 
124 Encoder & Decoder:
125 *       Fixed a bug in OBMC prediction for the P-frame in PB-mode 
126         when surrounding block is intra encoded. 
127 
128 Decoder:
129 *       Fixed a bug in packed 24-bit display mode.
130 
131 
132                    Changes from version 1.6a to 1.6b
133                    =================================
134 
135 Encoder & Decoder:
136 *       Fixed a bug in OBMC prediction when the surrounding block
137         is intra encoded.
138 
139 Encoder:
140 *       Fixed Temporal Reference in the PB-frames mode.
141         Changed some variable names related to frame skipping
142         to make them more understandable.
143 
144 *       Fixed a problem when Unrestricted MV mode was used
145         together with several GOB syncs per picture.
146 
147 Decoder:
148 *       Is now able to handle stuffing in SAC mode (I hope)
149 
150 
151 
152                    Changes from version 1.6 to 1.6a
153                    ================================
154 
155 Decoder:
156 *       Support for display at 16 and 24 (32) bits colordepths. 
157         No dithering is used in these mode. Display looks
158         great, but speed is slower than in 8 bits mode.
159 
160 
161 
162                    Changes from version 1.5 to 1.6
163                    ===============================
164 
165 Encoder & Decoder:
166 *       The increased motion vector range has been included 
167         in the Unrestricted Motion Vector mode. This increases
168         performance considerably for sequences with large
169         amounts of camera motion. Note that in the Advanced
170         Prediction mode, motion vectors are still allowed to
171         point outside the picture, but the UMV mode is not
172         automatically turned on.
173 
174 *       Other changes in the final version of H.263:
175         + back to old half pel interpolation scheme
176         + calculation of chroma vectors in PB mode
177 
178 *       Bug-fixes and code clean-up:
179         + most reported problems with version 1.5 
180         + several others, but none essential for coding
181           performance
182         
183 
184 Encoder:
185 *       When using PB-frames the adaptive switch which turns
186         off PB-frames when they are not effective, has been
187         included. This is always used in the PB-frames mode, 
188         and encodes the next frames as two P-pictures instead 
189         of a PB-frame when this is more effective.
190 
191 *       The TMN5 rate control has been replaced by a simplified 
192         rate control with fixed frame rate and a quantizer 
193         change for each picture. Read the comments in 
194         ratectrl.c for more information.
195 
196         (both algorithms above were used when generating
197         the anchors for the MPEG-4 test)
198 
199 *       It is possible to encode sequences which have been 
200         grabbed at frame rates below the reference frame
201         rate (25 or 30 Hz). Set DEF_ORIG_SKIP in config.h
202         or use option "-O <n>". Temporal Reference in
203         bitstream as well as encoding statistics are
204         adjusted to account for this.
205 
206 
207                    Changes from version 1.4 to 1.5
208                    ===============================
209 
210 Encoder & Decoder:
211 *       Support for SQCIF (128x96), 4CIF (704x576) and 
212         16CIF (1408x1152) in addition to the already included
213         QCIF and CIF formats. Recompilation is still necessary
214         when the format is changed. Please note that these new 
215         modes have not been tested properly, and I expect the 
216         buffer regulation may not work very well for the 4CIF 
217         and 16CIF modes.
218 
219 
220 The changes decided at the Boston meeting in June 95:
221 *       Picture header:
222         - start code byte aligned
223         - changes in PTYPE (also changed since White Book version)
224         - CPM bit with PLCI and GLCI if CPM bit is present
225 *       *Truncation* instead of rounding for two of the interpolated
226         pels for the half-pel prediction
227 *       PB-frames: 
228         - The reconstructed P-macroblock data is clipped 
229           *before* it is used in the reconstruction of the
230           B-macroblock. (This was already done in the decoder
231           so this is actually a bugfix in the encoder :-)
232         - When the bidirectional prediction-block is made by adding
233           the reconstructed data from the previous and future frames,
234           division with truncation instead of rounding is used.
235 
236 These changes do not affect the performance very much, max. +/- 1%
237 for the different test sequences.
238 
239 
240 Encoder:
241 *       The problem with the strange "edge-artifacts" for PB-frames
242         in sequences with severe motion reported be Motorola, has been
243         solved with the bugfix I reported to the sg15.lbc.video
244         reflector: 
245         "When intra coding was chosen because P prediction was bad, 
246         I zeroed out the vector, but still did a PB-delta search. 
247         This caused very narrow edges being forward-predicted only, 
248         leading to the visible edges. One way to remove the bug is: 
249         Still zero out the vector in case intra is chosen because of 
250         bad prediction, but NOT do a PB-delta search."
251 
252 
253                    Changes from version 1.4 to 1.4a
254                    ================================
255 
256 Encoder:
257 *       Changed the quantizer for the B-frame in PB-frame coding.
258         Fixed small SAC bug at the end of the bitstream.
259         Will no longer allow quantization parameter > 31.
260 
261 Decoder:
262 *       Fixed a bug when saving PB-frames with option o0 - 03 (wrong
263         numbering). Changed the framenumbering in the trace-file for 
264         decoding PB-frames.
265 
266 Encoder & decoder: 
267 
268 *       Can now be compiled without changing anything with
269         Visual C++ 2.0 under Win32. Some cosmetic changes.
270 
271 
272 
273                    Changes from version 1.3 to 1.4
274                    ===============================
275 
276 Encoder & Decoder:
277 
278 *       Syntax-based Arithmetic Coding mode (annex E). When 
279         option '-E' is used in the encoder, syntax-based 
280         arithmetic coding is used instead of VLC coding.
281         SAC was implemented by Patrick Mulroy and Wayne Ellis
282         at BT Labs. Thanks! 
283 
284 *       In the PB-frame mode PB delta vectors have been added. 
285         These increase the PB-frames performance significantly for
286         difficult sequences like foreman and carphone. The inter-
287         leaving of P and B coefficients has been removed. Instead
288         a combination of MODB and CBPB in the macroblock header 
289         signals whether vectors and/or coefficients are present for 
290         the current macroblock.
291 
292 *       It is now possible to compile CIF versions of both the 
293         encoder and decoder. Note that separate CIF and QCIF
294         version will have to be compiled. See the Makefiles for
295         details. 
296 
297 *       Other changes decided in Geneva included in this version:
298         - changed limits for PB frames bidir prediction
299         - removed stuffing bit in picture header in the PB data
300         - 6 bit run in escape coding / no more MRUN with SAC
301         - COD is no longer used in intra pictures
302         - GFID included in GOB header
303         - End Of Sequence code readable by decoder
304         - changed rounding of chroma vectors
305 
306 Decoder:
307 
308 *       The decoder has a new option '-x' which will interpolate
309         the decoded image to double size before display.
310         This does not affect saved images, when another output
311         option than -o4 is used. Thanks to Anurag Bist at Rockwell
312         for the idea and outline for this option.
313         
314 
315                    Changes from version 1.1 to 1.3
316                    ===============================
317 
318 
319 Encoder & Decoder:
320 
321 *       Unrestricted Motion Vector mode (annex D)
322         when option '-D' is used in the encoder, there are no
323         restrictions at all on the motion vectors around the
324         edges. This is fully decodable with the decoder.
325         The gain is very significant for sequences where the camera
326         moves (eg. foreman) or objects are moving at the edge of 
327         the picture.
328 
329 *       Advanced Prediction mode (annex F)
330         when option '-F' is used in the encoder, the advanced prediction
331         mode (overlapped block motion compensation = OBMC) with 16x16 
332         or 8x8 vectors are used. 16x16 or 8x8 vectors
333         are chosen as described in TMN5. This works fine together
334         with PB-frames, and is fully decodable with the decoder.
335         However, if option '-D' is not used, the unrestricted motion
336         vector mode is automatically turned on. This is because
337         of the complex limitations on the vectors near the edges of 
338         the pictures when OBMC is used. A significant gain for all 
339         sequences is observed with the advanced prediction mode. 
340         For low bitrates this gain is mostly subjective, but for higher
341         bitrates both subjective and objective.
342 
343 Encoder:
344 
345 *       use of PB-frames is now turned on with option '-G' (annex G :-)
346         instead of '-M'. 
347 
348 *       When buffer regulation is used, DQUANT is not transmitted until
349         a coded MB is transmitted. In version 1.1, the MB at the start
350         of each slice was always coded and transmitted when the quantizer
351         changed, which was on nearly every slice.
352 
353 
354 *       some not so very important bug-fixes and changes:
355         - a memory leak in the PB-frames mode
356         - non-initialized QP_mean
357         - other small fixes which I don't remember
358 
359 *       CodeOnePred() and CodeTwoPB() merged into CodeOneOrTwo().
360 
361 
362 
363                    Changes from version 0.5 to 1.1
364                    ===============================
365 
366 Version history:
367 Version 0.5 worked so well, I called the version with the new syntax
368 and buffer regulation v-1.0 (this was not released). This is v-1.1
369 which includes PB-frames.
370 
371 Encoder & Decoder:
372 
373  *      Changes adopted at the Leidschendam meeting:
374         - picture start code
375         - new bits in PTYPE for options
376         - new MCBPC VLC table for intra pictures
377         - changed MCBPC VLC table for predicted frames
378         - new MV prediction at the top of a GOB
379 
380  *      PB-frames
381 
382         option '-M' inserts one B-frame between consecutive P-frames
383         option '-Q' decides BQUANT 
384         option '-Z' decides BSCAN for B-frame
385         (see encoder file config.h for more info. on these new options)
386 
387 Encoder:
388 
389  *      Buffer regulation (thanks to Anurag Bist of Rockwell)
390         works both with and without PB-frames
391 
392         option '-r <bits/sec>' overrides '-q'
393         option '-m' writes repeated frames to disk, so that the 
394         sequence of reconstructed frames is 25 (or 30) Hz.
395 
396  *      option '-S <n>' is changed so that n is now the number 
397         of frames to skip for fixed framerate coding, not the distance
398         between coded frames as it used to be
399 
400 Decoder:
401 
402  *      New output format: concatenated YUV which is the same format
403         the encoder uses. (option '-o5').
404 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.