summaryrefslogtreecommitdiffstats
path: root/DOCS/hu/encoding.html
blob: 1d575d4415beee77526b0ae64a5f5332fc0ba6a5 (plain)
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
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>

<HEAD>
  <LINK REL="stylesheet" TYPE="text/css" HREF="../default.css">
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">
</HEAD>

<BODY>


<H2><A NAME="encoding">7 Enkódolás a MEncoderrel</A></H2>

<P>A rendelkezésre álló opciók és példák teljes listáját lásd a man
  page-ben. Számos példa áll rendelkezésre a különböző opciókról a
  <A HREF="../tech/encoding-tips.txt">tech/encoding-tips.txt</A> file-ban.
  Ezek a példák az
  <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-users">mplayer-users</A>
  levelezési listáról lettek kigyűjtve, így érdemes lehet ezen lista
  <A HREF="http://mplayerhq.hu/pipermail/mplayer-users/">archívumát</A>
  böngészgetni infóért.</P>

<H2><A NAME=2pass>7.1 2, 3 menetes MPEG4 ("DivX") enkódolása</A></H2>

<P><U><B>2 menetes enkódolás:</B></U> az elnevezés onnan jön, hogy ezzel a
  módszerrel a file <I>kétszer</I> lesz enkódolva. Az első menet néhány pár
  Mb-os ideiglenes (*.log) file-t hoz létre, amiket egyelőre nem szabad törölni
  (az AVI törölhető, ugyanolyan mintha vpass opciók nélkül keletkezett volna).
  A második menetben keletkezik a tényleges 2 menetes DivX, az ideiglenes
  file-ok adataiből. A keletkező file az egy menetesekhez képest sokkal jobb
  minőséggel és kisebb mérettel bír. Ha most hallassz erről először, jobb ha
  keresel a neten egy útmutatót.</P>

<P>A következő példa egy DVD 2 menetes MPEG4 ("DivX") AVI-ba történő enkódolását
  mutatja be. Csak két parancs szükséges:<BR>
  <CODE>&nbsp;&nbsp;&nbsp;&nbsp;rm frameno.avi</CODE> - töröld ezt a file-t,
    ami egy esetleges előző 3 menetes enkódolásból származhat<BR>
  <CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder dvd://2 -ovc lavc -lavcopts
    vcodec=mpeg4:opciók:vpass=1 -oac copy -o film.avi<BR>
  <CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder dvd://2 -ovc lavc -lavcopts
    vcodec=mpeg4:opciók:vpass=2 -oac copy -o film.avi<BR>

<P><U><B>3 menetes enkódolás:</B></U> ez egyfajta bővített kétmenetes
  enkódolás. A különbség abban áll hogy itt az audio enkódolása külön
  menetben történik, ezáltal lehetővé válik annak megbecslése hogy az adott
  filmet milyen bitrátával kell tömöríteni hogy ráférjen egy 650, 700 vagy
  800Mb-os CD-re, és ezt a <B>MEncoder</B> ki is számolja. Továbbá, ilyenkor
  az audio csak egyszer kerül enkódolásra, ellentétben a 2 menetes móddal.
  A használata a következő:</P>

<OL>
  <LI>egy esetleges előző 3 menetes enkódolásból származó file törlése,
      mely konfliktolhat a most következővel
     <P><CODE>rm frameno.avi</CODE></P></LI>
  <LI>Első menet:
    <P><CODE>mencoder &lt;file/DVD&gt; -ovc frameno -oac mp3lame -lameopts vbr=3:opciók -o frameno.avi</CODE></P>
    <P>Egy csak audiot tartalmazó AVI file jön létre, ami a kért formátumban
      tartalmazza az audio streamet. Ha akarod használhatod a
      <CODE>-lameopts</CODE> opciót. Ha ez egy hosszabb film, e menet végén a
      MEncoder kiírja hogy mekkora bitrate-tel tömöríts a következő menetekben
      hogy a film ráférjen egy 650, 700 vagy 800Mb-os CD-re.</P></LI>
  <LI>Második menet:
    <P><CODE>mencoder &lt;file/DVD&gt; -oac copy -ovc lavc -lavcopts
      vcodec=mpeg4:vpass=1:vbitrate=&lt;bitráta&gt;</CODE></P>
    <P>Alias az MPEG4 video enkódolás első menete.  Opcionálisan megadhatod azt
      a bitrate-et amit a MEncoder az előző menet végén kiírt, lásd
      feljebb.</P></LI>
  <LI>Harmadik menet:
    <P><CODE>mencoder &lt;file/DVD&gt; -oac copy -ovc lavc -lavcopts
      vcodec=mpeg4:vpass=2:vbitrate=&lt;bitráta&gt;</CODE></P>
    <P>Alias az MPEG4 video enkódolás második menete. Add meg
      azt a bitrate-et amit a MEncoder az előző menet végén kiírt, lásd
      feljebb. Ebben a menetben a <CODE>frameno.avi</CODE>-ban levő audio
      belekerül a célfileba..  és kész is az egész!</P></LI>
</OL>

<H4>Példa a 3 menetes enkódolásra:</H4>

<P><CODE>&nbsp;&nbsp;&nbsp;&nbsp;rm frameno.avi</CODE> - esetlegesen egy előző
  enkódolásbol származó file törlése (bezavar a most következőnek)<BR>
  <CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder dvd://2 -ovc frameno
    -o frameno.avi -oac mp3lame -lameopts vbr=3:opciók<BR>
  &nbsp;&nbsp;&nbsp;&nbsp;mencoder dvd://2 -ovc lavc
    -lavcopts vcodec=mpeg4:vpass=1:vbitrate=1100 -oac copy -o movie.avi<BR>
  &nbsp;&nbsp;&nbsp;&nbsp;mencoder dvd://2 -ovc lavc
    -lavcopts vcodec=mpeg4:vpass=2:vbitrate=1100 -oac copy -o movie.avi</CODE>
</P>


<H2><A NAME="mpeg">7.2 Enkódolás MPEG formátumba</A></H2>

<P>A MEncoder képes MPEG (MPEG-PS) formátumú kimeneti file-t generálni.  Ez
  persze valószínűleg csak a <a href="codecs.html#libavcodec">libavcodec</a>
  <I>mpeg1video</I> codec-ével hasznos, mert (az MPlayer-t kivéve) minden
  lejátszó MPEG1 video, és MPEG1 layer2 (MP2) audio stream-re számít az MPEG
  file-okban.</P>

<P>A MEncoder ezen képessége jelenleg nem túl hasznos, mert - attól eltekintve
  hogy még eléggé bugos is -, még nem lehet MPEG 1 layer 2 (MP2) audio-ba
  enkódolni MEncoderen belül, márpedig az MPEG file-okba az esetek 99%-ában
  ez kell.</P>

<P>A MEncoder kimeneti formátumának megváltoztatására az <CODE>-of mpeg</CODE>
  opció szolgál.</P>

<P>Példa:<BR>
  &nbsp;&nbsp;<CODE>mencoder -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video
  -oac copy &lt;other options&gt; media.avi -o output.mpg</CODE></P>


<H2><A NAME=rescaling>7.3 Filmek átméretezése</A></H2>

<P>Gyakran előjön a filmek átméretezésének igénye. Ennek sok oka lehet,
  például a fileméret csökkentése, illetve a szükséges hálózati
  sávszélesség csökkentése. A legtöbb ember átméretezést hajt végre
  DVD-k vagy SVCD-k DivX AVI-ba történő konvertálása során.
  <B>Ez helytelen.</B> Mielőtt te is ilyen megoldásra vetemednél, olvasd
  el az <A HREF="#aspect">Aspect ratio megőrzése</A> fejezetet.</P>

<P>Az átméretezést a <I>'scale'</I> nevű video filter végzi:
  <CODE>-vf scale=X:Y</CODE>. A minőségét pedig az <CODE>-sws</CODE> opcióval
  lehet megadni (lásd a manpage-t). Alapértelmezett a 0: gyors bilinear.</P>

<P>Használata:<BR>
<CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder sample-svcd.mpg -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1300 -vf
  scale=640:480 -oac copy -o output.avi</CODE></P>

<H2><A NAME=copying>7.4 Stream másolása</A></H2>

<P>A <B>MEncoder</B> kétféleképpen tudja a bemeneti stream-eket kezelni:
  <B>enkódolja</B> vagy csak <B>átmásolja</B> őket. Ez a rész a <B>másolásról</B>
  szól.</P>

<UL>
  <LI><B>Video stream-ek</B> (<CODE>-ovc copy</CODE> opció): érdekes dolgokat
    lehet vele csinálni :)<BR>
    Mint például FLI vagy VIVO vagy MPEG1 video másolása AVI file-ba!
    Persze az ilyen videokat csak az <B>MPlayer</B> tudja lejátszani :) És
    ezeknek a haszna gyakorlatilag nulla. A racionális felhasználása ennek
    például amikor csak az audio stream-et kell enkódolni (pl tömörítetlen
    PCM-et MP3-ba).</LI>

  <LI><B>Audio stream-ek</B> (<CODE>-oac copy</CODE> opció): egyértelmű.
    Lehetséges az audio streamet egy külső fileból (MP3, WAV) venni,
    ehhez az <CODE>-audiofile &lt;filenév&gt;</CODE> opciót kell
    használni.</LI>
</UL>

<H2><A NAME=fixing>7.5 Hibás index-szel rendelkező AVI-k rendbehozása</A></H2>

<P>A legkönnyebb dolog a világon. Egyszerűen átmásoljuk a video és audio
  streameket, és közben a <B>MEncoder</B> létrehozza a megfelelő indexet is.
  Ez persze nem tudja kijavítani az esetleges hibákat a video és/vagy audio
  stream-ekben, viszont a hibásan interleave-elt fileokat igen.</P>

<P>A parancs: <CODE>mencoder -idx input.avi -ovc copy -oac copy -o output.avi</CODE></P>


<H3><A NAME=appending>7.5.1 Több AVI file összefűzése</A></H3>

<P>Az index javító funkció mellékhatásként megoldást jelent AVI-k összefűzésére
  is:</P>

<P>Parancs: <CODE>cat 1.avi 2.avi | mencoder -noidx -ovc copy -oac copy -o
  kimenet.avi -</CODE></P>

<P>Megjegyzés: Az <CODE>1.avi</CODE> és <CODE>2.avi</CODE> file-ok azonos
  codec-kel, felbontással, frame rate-tel kell rendelkeznie, és az
  <CODE>1.avi</CODE>-nak nem szabad hibásnak lennie. A hibás file-ok javításának
  folyamata a 7.5-ös fejezetben van leírva.</P>


<H2><A NAME=libavcodec>7.6 Enkódolás a <I>libavcodec</I> codec-ekkel</A></H2>

<P>A <A HREF="codecs.html#libavcodec">libavcodec</A>-kel egyszerűen lehet kódolni
  jónéhány érdekes video és audio formátumba (jelenleg az audio codec-ek nem
  támogatottak). A következő codec-ekkel lehet enkódolni:</P>

<UL>
  <LI>mjpeg - Motion JPEG</LI>
  <LI>ljpeg - Lossless JPEG</LI>
  <LI>h263 - H263</LI>
  <LI>h263p - H263 Plus</LI>
  <LI>mpeg4 - ISO szabványos MPEG4 (DivX5, XVID kompatibilis)</LI>
  <LI>msmpeg4 - szabványosítás előtti MPEG4 (Micro$oft), v3 (alias DivX3)</LI>
  <LI>msmpeg4v2 - szabványosítás előtti MPEG4 (Micro$oft), v2 (régi ASF
    file-okban)</LI>
  <LI>wmv1 - Windows Media Video, 1-es verzió (alias WMV7)</LI>
  <LI>wmv2 - Windows Media Video, 2-es verzió (alias WMV8)</LI>
  <LI>rv10 - egy régi RealVideo codec</LI>
  <LI>mpeg1video - MPEG1 video</LI>
  <LI>mpeg2video - MPEG2 video</LI>
  <LI>huffyuv - veszteségmentes tömörítés</LI>
  <LI>asv1 - ASUS Video v1</LI>
  <LI>asv2 - ASUS Video v2</LI>
  <LI>ffv1 - az FFmpeg saját veszteségmentes codec-e</LI>
</UL>

<P>Az első oszlopban felsorolt codec-eket kell átadni a
  <CODE>vcodec</CODE> opciónak, pl: <CODE>-lavcopts vcodec=msmpeg4</CODE></P>

<P>Egy példa, MJPEG tömörítéssel:<BR>
  <CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder dvd://2 -o title2.avi -ovc lavc
    -lavcopts vcodec=mjpeg -oac copy</CODE></P>


<H2><A NAME=image_files>7.7 Enkódolás több bemeneti file-ból (JPEG, PNG)</A></H2>

<P>A <B>MEncoder</B> képes több JPEG vagy PNG file-ból filmet létrehozni.
  Egyszerű framecopy használatával pedig MJPEG (Motion JPEG) vagy MPNG
  (Motion PNG) filmek hozhatók létre.</P>

<P><B><I>A folyamat magyarázata</I></B></P>

<P>Először a <B>MEncoder</B> <I>dekódolja</I> a bemeneti fileokat a
  <CODE>libjpeg</CODE> segítségével (PNG-k dekódolását a libpngvel végzi).
</P>

<P>A <B>MEncoder</B> ezután a kiválasztott kimeneti codecnek adja a
  dekódolt képet (pl DivX4, Xvid, ffmpeg msmpeg4, stb).</P>

<P><B><I>Példák</I></B></P>

<P>Az <CODE>-mf</CODE> opció magyarázata a manpage-ben található.</P>

<P><I>DivX4 film létrehozása az aktuális könyvtárban található összes JPEG fileból:</I><BR>
  &nbsp;&nbsp;<CODE>mencoder -mf on:w=800:h=600:fps=25 -ovc divx4 -o
  kimenet.avi \*.jpg</CODE></P>

<P><I>DivX4 film létrehozása néhány JPEG fileból:</I><BR>
  &nbsp;&nbsp;<CODE>mencoder -mf on:w=800:h=600:fps=25 -ovc divx4 -o
  kimenet.avi frame001.jpg,frame002.jpg</CODE></P>

<P><I>MJPEG (Motion JPEG) film létrehozása az aktuális könyvtárban található összes JPEG fileból:</I><BR>
  &nbsp;&nbsp;<CODE>mencoder -mf on:w=800:h=600:fps=25 -ovc copy
  -o kimenet.avi \*.jpg</CODE></P>

<P><I>Tömörítetlen film létrehozása az aktuális könyvtárban található összes PNG fileból:</I><BR>
  &nbsp;&nbsp;<CODE>mencoder -mf on:w=800:h=600:fps=25:type=png -ovc rawrgb -o
  kimenet.avi \*.png</CODE></P>

<P><B>Megjegyzés:</B> a szélességnek 4-gyel oszthatónak kell lennie, ez a RAW
  RGB AVI formátum egyik megkötése.</P>

<P><I>MPNG (Motion PNG) film létrehozása az aktuális könyvtárban található összes PNG fileból:</I><BR>
  &nbsp;&nbsp;<CODE>mencoder -mf on:w=800:h=600:fps=25:type=png -ovc copy
  -o kimenet.avi \*.png</CODE></P>


<H2><A NAME=vobsub>7.8  DVD feliratok VOBsub formátumúvá alakítása</A></H2>

<P>A <B>MEncoder</B> képes DVD-ről kivonni a feliratot, és átalakítani
  Vobsub formátumú felirattá. Ezek egy <CODE>.idx</CODE> és egy
  <CODE>.sub</CODE> kiterjesztésű file-ból állnak, gyakran egyetlen
  <CODE>.rar</CODE> archívba tömörítve. Az <B>MPlayer</B> képes az ilyen
  feliratok megjelenítésére a <CODE>-vobsub</CODE> és <CODE>-vobsubid</CODE>
  opciókkal.</P>

<P>Az alap filenevet (tehát kiterjesztés nélkül) a <CODE>-vobsubout</CODE>
  opcióval adhatod meg. Az index számot amin el lesz tárolva a felirat,
  pedig a <CODE>-vobsuboutindex</CODE> opcióval.</P>

<P>Ha a bemeneti file nem DVD, használd az <CODE>-ifo</CODE> opciót, amivel
  megadhatod hogy melyik file legyen <CODE>.idx</CODE>-é alakítva.</P>

<P>Ha a bemeneti file nem DVD, de nincs meg hozzá az <CODE>.ifo</CODE> file,
  használd a <CODE>-vobsubid</CODE> opciót a használandó nyelv azonosítójának
  kiválasztásához.</P>

<P>Minden egyes futás hozzáfűzi a kimenetet az esetlegesen már létező
  kimeneti file-hoz, így ajánlott körülnézni indítás előtt.</P>

<P><B>Példák</B></P>

<P><I>Két felirat másolása DVD-ről, 3 menetes enkódolás közben</I><BR>
  &nbsp;&nbsp;<CODE>rm subtitles.idx subtitles.sub</CODE><BR>
  &nbsp;&nbsp;<CODE>mencoder dvd://1 -vobsubout subtitles -vobsuboutindex 0
    -sid 2 -o frameno.avi -ovc frameno -oac mp3lame -lameopts vbr=3</CODE><BR>
  &nbsp;&nbsp;<CODE>mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=1</CODE><BR>
  &nbsp;&nbsp;<CODE>mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=2
    -vobsubout subtitles -vobsuboutindex 1 -sid 5</CODE></P>

<P><I>Francia nyelvű felirat másolása MPEG-ből</I><BR>
  &nbsp;&nbsp;<CODE>rm subtitles.idx subtitles.sub</CODE><BR>
  &nbsp;&nbsp;<CODE>mencoder movie.mpg -ifo movie.ifo -vobsubout subtitles
    -vobsuboutindex 0 -vobsuboutid fr -sid 1</CODE></P>


<H2><A NAME=aspect>7.9 Aspect ratio megőrzése</A></H2>

<P>A DVD-k és az SVCD-k (tehát az MPEG1/2 file-ok) tartalmazzák azt az értéket
  amiből a lejátszó tudni fogja merre és mennyire kell a képet széthúzni,
  hogy ne tojásfejű emberek ugráljanak a képen (például: 480x480 + 4:3 =
  640x480). Viszont amikor az ilyen file-okat AVI-ba (DivX) konvertáljuk,
  szembe találjuk magunkat a problémával miszerint az AVI formátum
  nem képes ezt az értéket (aspect ratio) eltárolni. A filmek felbontásának
  átméretezése undorító, és időigényes feladat, kell hát legyen egy jobb
  megoldás!</P>

<P>Van is.</P>

<P>Az MPEG4 formátumnak egyik egyedülálló tulajdonsága, hogy beleírható az
  aspect ratio értéke (csakúgy mint az MPEG1/2, illetve H263 file-oknál). Ennek
  egyetlen hátulütője, hogy jelenleg az MPlayer az egyetlen lejátszó amelynek
  megvan ez a képessége.</P>

<P>A használata csakis a <a href="codecs.html#libavcodec">libavcodec</a> <CODE>mpeg4</CODE> codec-ével
  lehetséges.</P>

<P>Semmiképpen ne felejtsd el levágni a film tetejéről és aljáról a fekete
  sávokat. Olvasd el a manpage-ben, hogy hogyan kell használni a
  <CODE>cropdetect</CODE> és a <CODE>crop</CODE> filtereket.</P>

<H4>Használata:</H4>

<P><CODE>$ mencoder sample-svcd.mpg -ovc lavc -lavcopts
  vcodec=mpeg4:autoaspect -vf crop=714:548:0:14 -oac copy -o output.avi</CODE></P>


<H2><A NAME=custommatrices>7.10 Saját inter/intra mátrixok</A></H2>

<P>A <A HREF="codecs.html#libavcodec">libavcodec</A> ezen képességének
  kihasználásával be lehet állítani saját inter (I, azaz kulcs képkockák),
  és intra (P képkockák) mátrixok használatát. Sok codec támogatja, amik
  közül az <CODE>mpeg1video</CODE> és az <CODE>mpeg2video</CODE> bizonyosan
  működik.</P>

<P>A funkció tipikusan a <A HREF="http://www.kvcd.net/">KVCD</A>
  specifikációhoz illeszkedő mátrixok beállítására használható.</P>

<P>A <B>KVCD "Notch" Quantization Matrix</B>:</P>

<P><I>Intra:</I>
  <PRE>
  8 9 12 22 26 27 29 34
  9 10 14 26 27 29 34 37
  12 14 18 27 29 34 37 38
  22 26 27 31 36 37 38 40
  26 27 29 36 39 38 40 48
  27 29 34 37 38 40 48 58
  29 34 37 38 40 48 58 69
  34 37 38 40 48 58 69 79
  </PRE>
</P>

<P>
  <I>Inter:</I>
  <PRE>
  16 18 20 22 24 26 28 30
  18 20 22 24 26 28 30 32
  20 22 24 26 28 30 32 34
  22 24 26 30 32 32 34 36
  24 26 28 32 34 34 36 38
  26 28 30 32 34 36 38 40
  28 30 32 34 36 38 42 42
  30 32 34 36 38 40 42 44
  </PRE>
</P>

<H4>Használata:</H4>

<P><CODE>$ mencoder bemenet.avi -o kimenet.avi -oac copy -ovc lavc -lavcopts
  inter_matrix=...:intra_matrix=...</CODE></P>

<P><CODE>$ mencoder bemenet.avi -ovc lavc -lavcopts
  vcodec=mpeg2video:intra_matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34,37,
  12,14,18,27,29,34,37,38,22,26,27,31,36,37,38,40,26,27,29,36,39,38,40,48,27,
  29,34,37,38,40,48,58,29,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79
  :inter_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,28,30,32,20,22,24,26,
  28,30,32,34,22,24,26,30,32,32,34,36,24,26,28,32,34,34,36,38,26,28,30,32,34,
  36,38,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,44 -oac copy -o
  svcd.mpg</CODE></P>

</BODY>
</HTML>