summary refs log tree commit diff
path: root/ppmtoyuv.html
blob: f6689133deb907b61be9d3b020948532e18e261c (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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML><HEAD><TITLE>Ppmtoyuv User Manual</TITLE></HEAD>
<BODY>

<H1>ppmtoyuv</H1>
Updated: 06 June 2005
<BR>
<A HREF="#index">Table Of Contents</A>

<H2>NAME</H2>
ppmtoyuv - convert a PPM image to an Abekas YUV file

<H2 id="synopsis">SYNOPSIS</H2>

<B>ppmtoyuv</B>
[<I>ppmfile</I>]

<H2 id="description">DESCRIPTION</H2>

<p>This program is part of <a href="index.html">Netpbm</a>.

<p><b>ppmtoyuv</b> reads a PPM image as input and produces an Abekas
YUV file as output.

<p>The output file contains a raster of four byte YUV codes, each
uniquely associated with two side-by-side pixels in the image.  The raster
contains rows in order from top to bottom, and within each row columns
from left to right.  So the output file size in bytes is twice the number of
pixels in the image.

<p>Each YUV code is associated with two pixels from the input image that we
will call the left pixel and the right pixel.  The 2nd byte of the code is
the Y value of the left pixel.  The 4th byte of the code is the Y value of
the right pixel.  The 1st byte of the code is an average of the U value of
the pixel <em>to the left of the left pixel</em>, the left pixel, and the
right pixel.  The 3rd byte of the code is analogous for V values.  These
averages are weighted arithmetic means where the left pixel is weighted
double what the other two pixels are weighted.

<p>This format is reminiscent of but rather different from the common
YUV 4:2:0 format (aka YUV 420) and the similar YUV 4:4:4, YUV 4:2:2,
YUV 4:1:1, YUV 4:1:1s, and YUV 4:1:0.  In YUV 4:2:0, the raster is
different for even numbered lines and odd numbered lines.  On even
numbered lines, there are twice as many bits for Y of each pixel as
for U or V.  On odd numbered lines, there are the same number of bits
for Y as on even numbered lines, but no bits at all for U and V.

<p>Another YUV-based format is YUV4MPEG2, which is a movie format
normally used with <a
href="http://mjpeg.sourceforge.net"><b>MJPEGTools</b></a>.  Netpbm
does not have converters for this format, but <b>MJPEGTools</b> does.

<H2 id="seealso">SEE ALSO</H2>

<A HREF="yuvtoppm.html">yuvtoppm</A>,
<A HREF="ppmtoeyuv.html">ppmtoeyuv</A>,
<A HREF="ppmtoyuvsplit.html">ppmtoyuvsplit</A>,
<A HREF="ppm.html">ppm</A>,
<a href="http://mjpeg.sourceforge.net">pnmtoy4m</a>,
<a href="http://mjpeg.sourceforge.net">y4mtopnm</a>


<H2 id="author">AUTHOR</H2>

<p>Marc Boucher <A
HREF="mailto:marc@PostImage.COM">marc@PostImage.COM</A>, based on
Example Conversion Program, A60/A64 Digital Video Interface Manual,
page 69.

<p>Copyright (C) 1991 by DHD PostImage Inc.

<P>Copyright (C) 1987 by Abekas Video Systems Inc.

<HR>
<H2 id="index">Table Of Contents</H2>
<UL>
<LI><A HREF="#synopsis">SYNOPSIS</A>
<LI><A HREF="#description">DESCRIPTION</A>
<LI><A HREF="#seealso">SEE ALSO</A>
<LI><A HREF="#author">AUTHOR</A>
</UL>
</BODY>
</HTML>