MM Logo

Supplemental Release Notes
for
Previous Multimedia Services Releases




Preface

This document contains supplemental release notes for Multimedia Services V3.3 for DIGITAL UNIX (MMS).

This document contains critical release notes from previous releases. If you are upgrading from a version of MMS prior to V2.0, you may not have access to these important notes for intermediate versions of MMS. Please read these supplemental notes thoroughly before attempting to install or use MMS V3.3.

Table of Contents

Packing Changes
JPEG Changes

MMS V2.0 Packing Changes

In MMS V2.0, several structures changed in size. We now pack the structures as Microsoft does so they can be read and written directly from and to files without re-packing data. WAVEFORMAT, PCMWAVEFORMAT, WAVEFORMATEX, IMAADPCMWAVEFORMAT have changed. In addition, WAVEFORMATEX no longer contains a padding field. This may create a source code incompatibility if structures are statically initialized. Binary compatibility with binaries built against the older structures exists.

MMS V2.0 JPEG Changes

In MMS V2.0, changes were made to JPEG compression and decompression in two different areas: 1) quantization tables stored in JPEG files and 2) quality settings for compression. Each of these changes is described in more detail below.

1. Stored Quantization Tables

Versions of MMS prior to V2.0 performed the conversion of quantization tables between its internal format and ISO ! interchange format incorrectly. This has been corrected in V2.0. Because offsetting errors were made in both directions of the conversion, this problem didn't effect users who used MMS for both recording and playing back JPEG files, but it was non-standard and would cause images to look different when interchanged with systems from other vendors.

Specifically, files recorded with earlier versions of MMS would appear much darker when played back on other systems and files recorded on other systems would appear lighter or washed out when played back on pre-V2.0 MMS systems.

Because this problem has been corrected in V2.0, JPEG files can now be exchanged correctly with other systems, but corrective measures may need to be taken for files recorded with earlier versions of MMS.

There are several alternatives for playing back old data.

  1. You can adjust the brightness of dithered decompressed images to make the colors darker and closer to their original color. You can do this by using the brightness controls provided in applications such as AlphaVCR.
  2. You can re-encode the data. We have provided an AVI file converter applet jpegconvert(1) with the run-time kit that can convert old JPEG data files to the new JPEG encoding. We have also provided source code for this converter on the development kit so that you may modify the converter for non-AVI format files.
  3. Before running an application, you can set the environment variable MME_JPEG_OLDQ to 1. This will force all video and ICM operations to use the old JPEG data formats.

    You may set the environment variable in a script which you use to start an application. This would turn on the old JPEG data format support for the older application while still allowing new applications to make use of the new JPEG data formats. For instance, you might start an application called communique with the following script:

        setenv MME_JPEG_OLDQ 1
        setenv COMM_HOME /usr/local/isvapplets/Communique
        setenv LM_LICENSE_FILE $COMM_HOME/license.dat
        $COMM_HOME/communique
    

Because old files are incorrectly encoded and won't have the intended visual appearance on systems which conform to the JPEG standard, DIGITAL recommends reencoding data by either using jpegconvert(1) or recapturing/recompressing from the original source.

Technical Details - Quantization Tables
Files compressed with versions of MMS prior to V2.0 have the quantization tables which are off by a factor of 2 from those actually used to compress the images. The actual JPEG data is more heavily quantized by a factor of 2 resulting images which appear too dark when decoded on a JPEG decoder that follows the standard. Because an offsetting factor of 2 was being applied to the quantization tables during decompression, files which were correctly encoded would have an extra factor of 2 applied during dequantization resulting in images which were too bright. This factor of 2 error was applied to the quantization tables for both luminance and chrominance data.

2. Compression Quality Settings

Prior to V2.0 the compression quality ranges were different for the hardware and software compressors and didn't correctly match the compressors' ranges. With V2.0, the ranges are the same for both hardware and software compressors and they provide access to the full range of available quality settings.

The table below shows the mapping between the old settings and new settings for both the hardware (AV300 & AV321) and software (SJPG) compressors. The quality settings exposed by the API range from 0 to 10,000, but user applications typically convert this to a percentage. Percentages are used in the table below.

Supplied
Setting
Effective pre-2.0
H/W Quality
Effective pre-2.0
S/W Quality
Effective V2.0
Quality
0% 0% 61% 0%
10% 0% 65% 10%
20% 0% 69% 20%
30% 0% 73% 30%
40% 0% 76% 40%
50% 0% 80% 50%
60% 0% 84% 60%
70% 0% 88% 70%
75% 4% 90% 74%
80% 22% 92% 80%
90% 59% 96% 90%
100% 96% 100% 100%

As you can see from the table, the hardware compressors previously reached their maximum compression setting (and lowest quality) at a quality setting of approximately 74% rendering the remaining 3/4 of the scale useless. On the other hand, it was only possible to access the top 40% of the quality range when using the software compressor. In V2.0, this has all been normalized to allow access to the full range of compression values for all compressors, with matching quality scales.

Technical Details: Compression Quality Settings
Files previously recorded will not be affected by this change. This only effects compression operations.

The video and ICM services use a quality setting of 0-10000. Internally to MMS this quality setting is mapped to something called the 'Q factor' which is a value used to scale the suggested visually weighted quantization tables K.1 and K.2 in Appendix K of ISO 10918-1. Higher values of Q provide higher levels of quantization (larger quantization steps) and more compression, so the range of Q is inversely related to the range of quality settings. The acceptable range for Q is from 255 to 0, corresponding to quality settings of 0 to 10,000.

Previously, in the Sound & Motion J300 (AV300) and FullVideo Supreme JPEG (AV321) drivers, the quality factor was incorrectly mapped to a Q factor in the range of 950-10. Because the Q factor has a maximum value of 255, the quality settings were severely compressed and clipped as can be seen from the table above.

The SJPG software JPEG CODEC by contrast was mapping the quality setting to a Q factor range of 100-0. This resulted in less than half the full quantization scale being available.

Starting with V2.0, the quality settings of 0-10,000 are correctly mapped to Q factors of 255-0 for all JPEG compressors.