File: README

package info (click to toggle)
vic 2.8ucl4-2
  • links: PTS
  • area: main
  • in suites: potato
  • size: 5,864 kB
  • ctags: 9,033
  • sloc: ansic: 56,989; cpp: 44,560; tcl: 5,550; sh: 1,382; perl: 1,329; makefile: 357
file content (181 lines) | stat: -rw-r--r-- 6,964 bytes parent folder | download | duplicates (5)
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
181
			        tmn
                                ===

		      Version 3.0, May 27, 1997

	(C) Department of Electrical Engineering
    	    University of British Columbia CANADA.
	    Michael Gallant <mikeg@ee.ubc.ca>, Guy Cote <guyc@ee.ubc.ca>, 
            Berna Erol <bernae@ee.ubc.ca>, Faouzi Kossentini <faouzi@ee.ubc.ca>

	    (Based on Telenor's tmn version 2.0)          
				   

tmn is a very low bitrate video encoder producing H.263 bitstreams.

Compatibility
=============

This H.263+ encoder is believed to be compatible with the description
of the H.263+ standard, draft 20. All the H.263 negotiable coding
modes are supported: the Unrestricted Motion Vector mode, 
the Syntax-based Arithmetic Coding mode, the
Advanced Prediction mode and the PB-frames mode. 
At this moment, the following H.263+ negotiable coding modes are
supported: Advanced Intra Coding mode, Deblocking Filter mode,
Improved PB-frames mode, Scalability mode, 
Alternative Inter VLC mode, and Modified Quantization mode. 
See the CHANGES file for changes since the last version. 
See the TODO file for items not included in this version.
 
TMN was the Test Model Near-term for the ITU-LBC group working towards
a standard for video telephony on normal analogue telephone lines.
This standard is now called H.263+ and the current TMN is TMN-8. 


Installation
============

This software should work on most 32 bit systems. It has been tested
with OSF/1, SunOS-4.1.3, Linux, Win32 (Visual C++ 2.x/Windows NT/95).
To build the encoder with Visual C++ 2.x, start a new project of type
"console application", add all c-files to the project, and choose
"build".

You can change the default filenames in config.h to suit your
site. Check the Makefile for a couple of defines you can use to change
the coding behavior. These can also be defined in sim.h.


Usage
=====

tmn [options] -i <filename> [more options] 

tmn is controlled by options on the command line. The only required
parameter is '-i <filename>'. Typing just 'tmn -i <filename>' will
encode one image of the sequence 'filename' with every parameter set
at the default value. Change the defaults with the options below.
        
Options:
        -i <filename> original sequence [required parameter]
        -o <filename> reconstructed frames [./out.raw]
        -B <filename> filename for bitstream [./stream.263]
        -a <n> image to start at [0]
        -b <n> image to stop at [0]
        -x <n> (<pels> <lines>) coding format [2]
               n=1: SQCIF n=2: QCIF n=3: CIF n=4: 4CIF n=5: 16CIF  n=6:  Custom (12:11 PAR)
                   128x96   176x144  352x288   704x576  1408x1152  pels x lines
        -s <n> (0..15) integer pel search window [15]
        -q <n> (1..31) quantization parameter QP [13]
        -A <n> (1..31) QP for first frame [13]
        -r <n> target bitrate in bits/s, default is variable bitrate
        -C <n> Rate control method [3]
        -k <n> frames to skip between each encoded frame [2]
        -Z <n> reference frame rate (25 or 30 fps) [30.0]
        -l <n> frames skipped in original compared to reference frame rate [0]
        -e <n> original sequence has n bytes header [0]
        -g <n> insert sync after each n GOB (slice) [0]
               zero above means no extra syncs inserted
        -w write difference image to file "./diff.raw" [OFF]
        -m write repeated reconstructed frames to disk [OFF]
        -t write trace to tracefile trace.enc [OFF]
        -D <n> use unrestricted motion vector mode (annex D) [OFF]
               n=1: H.263 n=2: H.263+
        -E use syntax-based arithmetic coding (annex E) [OFF]
        -F use advanced prediction mode (annex F) [OFF]
        -G use PB-frames (annex G) [OFF]
           -U <n> (0..3) BQUANT parameter [2]
        -M use improved PB-frames (annex M) [OFF]
        -I use advanced intra coding mode (annex I) [OFF]
        -J use deblocking filter (annex J) [OFF]
        -c <n> frames to select number of true B pictures between P
               pictures (annex O) [0]
        -d <n> to set QP for true B pictures (annex O) [13]
        -i <filename> enhancement layer sequence
        -u <n> to select SNR or spatial scalability mode (annex O) [OFF]
               n=1: SNR n=3: SPATIAL(horiz) n=5: SPATIAL(vert)
               n=7: SPATIAL(both)
        -v <n> to set QP for enhancement layer (annex O) [13]
        -O <filename> input sequence for spatial scalability,
                      factor in 2 in both dimensions (annex O)
        -S use alternative inter vlc mode (annex S) [OFF]
        -T use modified quantization mode (annex T) [OFF]
        -h Prints help
 
        Default filenames and other options in square brackets 
        are chosen in config.h


If you have questions, please read the H.263+ and TMN-8 documents 
available from the WWW page listed below, as well as the source code itself. 
If you still have questions, please feel free to contact any of the
persons listed in the source code headers.


File format
===========

The input (original) sequence format is as follows.
QCIF = 176x144 luma resolution with 4:1:1 chroma subsampling.

           176
     +-------------+
     |             |
     |     Y       | 144
     |             |
     |             |
     +-------------+
     |  U   |
     |  88  |72
     +------+
     |  V   |
     |  88  |72
     +------+

Each component is raster-scanned from the top left corner down to the
bottom right corner. The Y, U and V components are then concatenated
together for each frame. 

In the qcif format, all frames in the sequence are 
concatenated in one big file. 

You can also read yuv format, where each frame has its own file. 
(See io.c)

The output file format is the same as the qcif input format. All the
standard test sequences are available in this format from monet.ee.ubc.ca
in /pub/tmn/qcif_source/.

Contact guyc@ee.ubc.ca if you have trouble using this software or
find any bugs. For the latest information on new versions and H.263
docs, check our WWW page at http://www.ee.ubc.ca/image/h263plus/.


CREDITS
=======

Anurag Bist at Rockwell International did most of the TMN5 rate
control in version 1.1.

Patrick Mulroy and Wayne Ellis at BT Labs did most of the SAC work
included in version 1.4.

The bitstream routines and VLC functions in version 1.7 were written
by Robert Danielsen at Telenor R&D. They are based on ideas from the
MPEG-2 Software Simulation Group work. 

Karl Olav Lillevold of Telenor's R&D was the former maintainer of the code
and wrote most of the code as well as the documentation and this README 
file.

H.263+ coder and options were implemented by Guy Cote, Berna Erol and Micheal
Gallant of the University of British Columbia (UBC):
Annex I implemented by guyc@ee.ubc.ca
Annex J implemented by guyc@ee.ubc.ca
Annex M implemented by bernae@ee.ubc.ca
Annex O implemented by mikeg@ee.ubc.ca
Annex S implemented by guyc@ee.ubc.ca
Annex T implemented by bernae@ee.ubc.ca