about summary refs log tree commit diff
path: root/converter/ppm/ppmtompeg/CHANGES
blob: fffa7a651de3e2a0309c8c8f2628bf12a4d2ed9e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
Changes chronology
------------------
1.5b Release	August 1995
	- added date to default USER_DATA string
	- made prototypes happier
	- renamed SPECIFICS_FILE to CDL_FILE
	- fixed bit_rate param in constrained param setting (was too restrictive)
	- fixed obscure P-block motion vector bug
	- added a file name replication:
	    foo.ppm  [1-10] will make 10 copies of foo.ppm
	- generalized fopen calls to specify binary mode (MSDOG)
	- generalized times calls into elapsed_time to handle different library routines
	- fixed motion vector bug in bframes; skip block bug
	- fixed minor bugs in parallel, mpeg, main, iframe, param, ....
	- accepts extra whitespace at the end of lines in parameter files
	- "PIXEL FULL" bug in B-frames fixed (caused ghosting)
        - B-blocks "can I skip" rutine now looks at color too (more ghosting problems)
        - switched from JPEG4 to JPEG5 (if they crash for you,
                  do a -DJPEG4 for the encoder, and get jpeg4.tar.gz off our site)
        - combine server (parallel) waits longer for files to exist (
                         thanks to apian@ise.fhg.de)
	- killing the parallel server kills the clients!!!! (apian@ise.fhg.de)

1.5 Release	8 May 1995  Changes since version 1.3 release (to 1.5)
= BUG FIXES
	- removed SetBlocksPerSlice() from GOPStoMPEG
	- don't access bb after freeing
	- non-integer frame rates now work for all machines
	- fixed parsing of -mv_histogram
	- fixed numPadding bug (file name problem)
	- fixed full pixel assertation bug
        - corrected ASPECT_RATIO bug (was forced to 1)
	- buffer size is now set correctly
        - complains when file is too small
	- fixed bug with non-ranged INPUT_FILE names
	- forced MB at start/end of slice in P-frame bug fixed
	- Actually evaluates the constrained parameter settings
	- fixed a Cr/Cb mixup in bframe.c

= NEW FEATURES
	- rate control
	- optional B search range different from P range
	- can read images from stdin, allowing encoding on-the-fly
        - Does Y files (no U or V)
	- New way of specifying files `cmd`, like `ls jan-*-94`
	- Can encode Abekas and Phillips style YUV formats
	- gamma correction
	- added -realquiet mode
	- JMOVIE and JPEGv4 input format fully supported
        - -float_dct uses the (slower) double precision floating point DCT 
	- automatically identifies itself in (sequence header) userdata
	- enforced [0][0] entry of Intra Q-table to be 8
	- added Jim Boucher's resize code
        - added -mse flag to print mean squared error on a per-block basis
	- can specify Sequence header user data
        - prints version number
        - finds more skip blocks in GenBFrame
	- can generate multiple sequence headers (every N GOPs)

= SPEED IMPROVEMENTS


= MAINTENANCE
	- removed mpeg_jrevdct_sparse(), since it wasn't used
	- added CompileTests();
	- uses libpnmrw rather than entire pbmplus directory
        - redid RCS
        - reorganized [ipb]frame.c to make playing with rate controls easier

= PORTABILITY
	- added #ifdef's, #ifndef's LINUX'es to ease porting


Changes from 1.2 to 1.3
-----------------------
= BUG FIXES
	+ deletes frame files when done with them in parallel version
	+ fixed bug in ComputeFrameTable
	+ completion time estimation now is closer to actual time
	+ modified ComputeSNR to avoid overflow of varOrig
	+ fixed bug that caused I/P/B times on HP's to be wrong
	+ fixed bug that made TwoLevel search out of the search window
	+ fixed bug in -quiet 0
	+ fixed memory leak when using PNM files
	+ fixed bug:  crashed when CPU time was 0 (very rare)
	+ fixed bug in -gop option
	+ fixed bug in AppendFiles()

= NEW FEATURES
	+ added FORCE_ENCODE_LAST_FRAME option (allows encoding of all frames)
	+ added PARALLEL_CHUNK_TAPER option
	+ added -bit_rate_info option to show bit rate per frame
	+ added -mv_histogram option to show motion vector histogram
	+ custom quantization tables allowed
	+ can specify frame rate, aspect ratio

= SPEED IMPROVEMENTS
	+ replaced most remaining binary multiplies/divides with shifts
		(except those concerning negative numbers)

= MAINTENANCE
	+ got rid of & before array warning in block.c
	+ got rid of references to srandom, random in pbmplus.h
	+ undefine 'index' if defined as 'strchr' (since we use index as
	  variable name)
	+ modified frame type code to be more flexible

= PORTABILITY
	+ replaced all bzero() calls with memset() calls


1.2 Release	20 October 1993

Changes from 1.1 to 1.2
-----------------------
= BUG FIXES
	+ allow comments in PPM files
	+ first and last macroblocks in a slice may not be skipped macroblocks
	+ fixed YUV bug:  should be able to handle dimensions which
		aren't multiples of 16
	+ fixed the separate I/O conversion for parallel NFS version
	+ no_frame_summary can now be last option

= NEW FEATURES
	+ using DECODED frames as reference frames in parallel
	  version now works
	+ implemented multiple I/O Servers
	+ FORCE_I_ALIGN added
	+ reorganized Server structure slightly (only I/O Servers
	  handle individual frame files on disk)
	+ add option to allow exact division of frames per processor
	  (PARALLEL_PERFECT)

= SPEED IMPROVEMENTS
	+ don't start Input server if not needed

= MAINTENANCE
	+ got rid of niceProcesses line in main.c
	+ changed write() to SafeWrite() in parallel.c
	+ commented stuff out after #endif's
	+ fixed prototype warnings (eliminated non-4-byte args)


1.1 Release	August 1993

Changes from 1.0 to 1.1
-----------------------
= BUG FIXES
	+ fixed bug in parallel Server code which didn't htonl() frame
	  numbers correctly (so it didn't work on little-endian machines)
	+ fixed bug -- B-frames were always getting just 1 slice
	+ fixed listen() to use max connections allowed
	+ fixed noparallel.c so it doesn't complain during non-parallel
	  execution

= NEW FEATURES
	+ added level-2 p-search (exhaustive full, then half)
	+ now prints signal-to-noise ratio
	+ parallel code complains if absolute path not used for parameter
	  file
	+ changed single I/O server into separate Input and Output Servers
	  (and have Output Server combine frames in parallel)

= SPEED IMPROVEMENTS
	+ slight improvement in Mpost_QuantZigBlock (.10 ms/call down to .08 ms
	  on Sparc-10)
	+ improvement in speed of BlockifyFrame (45.8 ms/call down to 21.2 ms)
	+ improvement in ComputeMotionBlock (0.02 ms/call down to 0.01 ms)
	+ improvement in ComputeMotionLumBlock (0.04 ms/call down to 0.02 ms)
	+ improvement in LumAddMotionError (0.06 ms/call down to 0.05 ms)
		(changed /2 to >>1)
	
= MAINTENANCE
	+ removed most memory.h references (except jrevdct)
	+ added CFLAGS lines in Makefile for SVR4.0 and SGI machines
	+ removed mproto.h
	+ got rid of printing connection times


1.0 Release	July 1993