Date |
|
Comment |
2001.08.13 |
|
Time for an update. I am still actively working on both LMLJPEG and a new library called "Skate" which will handle all the image surface management and colorspace conversions. Also, I have written utilities which allow using the buz drivers instead of the LML supplied drivers; however, they are not in the project yet. Let me know if you need them beforehand.
|
2001.02.25 |
|
Completed the LMLClip object which allows decompressing an entire stream. The example program cliptest will render the image to an SDL surface. Initial performance was surprisingly good considering that the utilities that I was working with beforehand were actually slower. The code is not geared for PAL or SECAM yet, but the necessary code changes aren't particularly complex; I just have no way to test it.
|
2001.02.24 |
|
Completed the decompression half of the JPEGFrame object. Example program compresses and decompresses a sample image. It then alternates display of the original and processed image for 5 seconds, which helps to highlight the JPEG artifacts. A gradient was chosen specifically to enhance this effect.
|
2001.02.24 |
|
Completed the compression half of the JPEGFrame object. Object takes an image, splits it into even and odd fields (if applicable) and generates an LMJPEG compatible image. Example program will output to a file and optionally to the LML directly via the /dev/mvideo/frame device. As written, it only supports NTSC at the moment, but that's due to my having insufficient information rather than laziness. I will contact LML about the correct parameters.
Enjoy! The library is almost functional!
|
2001.02.24 |
|
The pipeline will now decompress images that it generates. It should be capable of decompressing anything that comes out of the LML. NOTE: the LML-specific JPEG extensions are not being parsed at this time. That's coming next.
The Matrix class and its superclasses have been prefaced with 'JPEG' (eg. JPEGWorkMatrix) to avoid namespace conflicts with other libraries.
|
2001.02.20 |
|
I have commit the JPEGCodec and JPEGImage objects which allow compression of JPEG images. The example program creates a 720x480 image and writes it out to a file. Using a program like ee, you can view the image. LML-specific code to follow.
|
2001.02.16 |
|
I commit the Huffman tables for stream encoding. There are separate objects for all four cases of AC/DC and Luminance/Chrominance. The tables were gleaned from the JPEG output of the LML33 card and expanded directly into tables, thereby bypassing most of the Huffman algorithm dealing with trees and optimal allocation. I'm not even certain that the Zoran chipset can accept tables other than these. At present, this code does not handle decompression.
|
2001.02.15 |
|
Commit the stream, matrix, and quantization table objects. Huffman compression is next on the list. Sample code demonstrates DCT/IDCT errors, particularly with regard to quantization. Transforms do not use MMX yet.
|
2001.02.14 |
|
I just got the SourceForge account working.
The initial work for this project is in C++, and I will be committing individual objects as I audit them. Future work will include an underlying C layer which will make most people happy. Presently, my primary focus is on functionality and code legibility. As such, I have built the library from a top-down perspective. C++ is my language of choice for this type of work.
The first three objects commit are the RGBImage, YUVImage, and Surface objects. The RGBImage is a predictable wrapper for a framebuffer. The YUVImage converts RGB to luminance and chrominance, while simultaneously decimating the chrominance values 2:1 per the JPEG format used by the LML. The Surface object is an SDL-based window which can display an RGBImage. This is handy for debugging the video stream pipeline.
Since I'm not especially proficient with autoconf, I have not added an SDL test. If SDL is not installed, the configure will probably choke. Any assistance with that would be appreciated.
|