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
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.