ppmtoyuvReads a PPM image as input and produces an Abekas YUV file as output.
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.
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 to the left of the left pixel, 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.
Copyright (C) 1987 by Abekas Video Systems Inc.