Huffyuv change history

These are old changes. The latest changes are on the Huffyuv home page.

New in version 1.3.1

When I carefully tested "all" the format conversions (see below), I said to myself, "y'know, I bet I missed one, and I bet it's going to turn out not to work." Well, that's exactly what happened. This release corrects a problem with decompressing to RGB32 when the data was originally compressed from RGB24.

You can now configure Huffyuv from the Multimedia control panel (the same place where you can uninstall it), and the source code no longer requires compddk.h to compile. Thanks to Cyril Wilkinson for these changes.

New in version 1.3

I finally took the time to rewrite the inner compression loop in optimized assembly. I was expecting maybe a 20% improvement, but to my amazement compression speed almost doubled, from about 19MB/sec to about 38MB/sec. That was a few hours well spent. The decompression and colorspace conversion routines are not optimized yet.

After the version 1.2.2 green-tint fiasco, I took the time to test all the different format conversions supported by Huffyuv (and there are quite a lot of them now). I discovered a semi-obscure bug in the compressed-YUY2-to-RGB conversion, and a rather major bug in the RGBA support, both of which are now fixed. I'll do this testing before every release in the future.

New in version 1.2.3

This is a bugfix release only. Version 1.2.2's YUY2-to-RGB conversion code was seriously broken, causing converted images to appear in shades of pink and green. This is now fixed. The bug only appeared when Huffyuv was used as a YUY2 codec, and not when it was used with its native HFYU compressed format. Versions prior to 1.2.2 did not have the bug.

New in version 1.2.2

This version adds UYVY compression support. Since UYVY is just YUY2 with a different sample ordering, I simply reorder the bytes during compression, effectively converting the image to YUY2 on the fly. Decompression to UYVY is not supported, but decompression to YUY2 will work. Huffyuv will also now function as a UYVY codec if you don't have one installed on your system already.

New in version 1.2.1

I accidentally left a line of code out of version 1.2, which broke playback in some situations. Fixed.

RGBA (RGB with alpha channel) compression is now supported, in Adobe After Effects ONLY (Huffyuv checks that the application name is AfterFX.exe). Decompression will work in any application. The reason I made this restriction is that AE uses ordinary 32-bit RGB as its RGBA format, and puts the alpha information in the normally-unused high byte. If I assumed that every 32-bit RGB image had alpha information, it would drastically worsen the compression ratio for the majority of images which don't. I couldn't figure out how to tell the RGBA images from ordinary 32-bit RGB (except by scanning the whole image, which is far too slow), so I made Huffyuv assume that 32-bit images coming from AfterFX.exe have alpha information, and others don't. Any suggestions for a better solution to this problem would be greatly appreciated!

The logging window is 80x50 now instead of 80x25.

I now link with MSVCRT.DLL.

resource.h is included in the source archive now. It was accidentally omitted from all previous releases. I haven't received a single complaint about this. Does this mean that no one has tried to compile Huffyuv from source? I find that hard to believe, as the server logs indicate that the source code has been downloaded more than 350 times.

New in version 1.2

There's now a real configuration dialog, so you don't need to mess around with huffyuv.ini any more.

There's a new option (accessible from the configuration dialog) to convert RGB input to YUY2 before compressing it. The advantage is better compression; the disadvantage is that it's not quite lossless (though you're unlikely to notice any change).

Huffyuv can now act as a YUY2 codec. That is, it will accept requests to convert directly between RGB and YUY2, without any intervening compression. This might be useful if you have existing YUY2-encoded files and no codec with which to view them.

New in version 1.1.1

This version adds support for 32-bit RGB output (the previous versions supported only 24-bit RGB). This should fix an incompatibility which was causing Huffyuv-encoded files to be invisible during playback in some display modes in certain applications (including AVI_IO and the "Preview" tab in the AVI file properties dialog).

New in version 1.1

The biggest new feature in this version is support for RGB compression. Huffyuv compresses RGB input as RGB, rather than converting to YUY2 and compressing that. This means that RGB compression is lossless, but the down side is that RGB doesn't compress as well as YUY2; each frame will probably end up at least 50% larger, all other things being equal.

Huffyuv now detects the name of the application that's using it, and if it's PREMIERE.EXE or VEDITOR.EXE, it reports RGB as the default decompressed format, even for YUY2 data. This should eliminate the need to set rgboutput for these applications (see below). You can still use rgboutput if you have problems with other programs.

The debug logging is a little prettier, and it now reports the name of the running application as detected by Huffyuv. So if you find another application which needs rgboutput=1, tell me its name from the debug log and I'll add it to Huffyuv's list of problem apps.

The about box now has buttons to open the home page and to send me email (assuming your system is configured to make this possible).

New in version 1.0.1

As you could probably tell from the version number, this is a very minor update.

1. I fixed a nasty bug which caused some programs to crash on exit after using Huffyuv.

2. There's now an option to make 24-bit RGB the default decompressed format, instead of YUY2. This is contrary to the intent of the default format, but some programs don't handle it correctly and this should help you work around that problem. I will eventually add a configuration dialog for this, but for now make a file called huffyuv.ini in your windows directory and put the following two lines of text in it:

[debug]
rgboutput=1

If you have problems viewing Huffyuv-encoded files with an application, try this first. If it fixes the problem, please (1) email me and let me know, and (2) email the manufacturer and tell them to fix their software. Adobe Premier 4.2 and Ulead's Video Editor from MediaStudio 6 Pro both require this option. Does anyone know about Premier 5.0? If there are enough applications with this problem, I may bow to peer pressure and make RGB output the default.

3. There's some rudimentary logging built in now so that you can see what formats Huffyuv is being asked to handle. This is useful for diagnosing problems like the one above. Add log=1 to the [debug] section of huffyuv.ini.

4. Huffyuv now has a VERSIONINFO resource.


Ben Rudiak-Gould