Microsoft Video 1 Compressor Download



This page is based on the document 'Description of the Microsoft Video-1 Decoding Algorithm' by Mike Melanson found at http://multimedia.cx/video1.txt.'

  • FOURCCs: CRAM, MSVC, WHAM
  • Company: Microsoft, Media Vision
  • Samples: http://samples.mplayerhq.hu/V-codecs/CRAM/

Microsoft Video 1 is a vector quantizer video codec with frame differencing that operates in either a palettized 8-bit color space or a 16-bit RGB color space. Video 1 was originall developed by Media Vision and was processed in hardware by a PC expansion card.

Video 1 is a rather simple algorithm. The algorithm operates on 4x4 blocks of pixels, which implies that the source data to be compressed must be divisible by 4 in both its width and height. Just like decoding a Microsoft BMP image, decoding a frame of Video 1 data is a bottom-to-top operation.

The Video 1 codec has two variants: One variant encodes 8-bit palettized data, where the palette is stored in the AVI file header. The second variant encodes 16-bit colors. Actually, the colors are BGR555 data, and the top bit is sometimes used for extra encoding information. To determine which variant a particular AVI file uses, examine the AVI file header, specifically the biBitCount field of the bitmap header within the AVI fileheader.

8-bit Video-1 Data

In the 8-bit variant of Video 1, the decoded 8-bit pixel values are indices into the palette table stored in the AVI file that transported the Video 1 data.

Compressing video streams in order to achieve the best quality also requires some specialized components, just like Microsoft Windows Media Video 9 VCM. This compressor makes it possible for. When I exported a walkthrough with that size, I found that there is only one option, Microsoft video 1 that can be chosen. However, after exporting the walkthrough, I cannot open the avi file with any player and encoding programme. So I'd like to know if there is any way to add a video compressor which can export a large size walkthrough. Download this app from Microsoft Store for Windows 10 Mobile, Windows Phone 8.1. See screenshots, read the latest customer reviews, and compare ratings for Video Compressor.

In order to decode the Video 1 data, traverse through the encoded byte stream, reading the first two bytes into byte_a and byte_b, respectively. The value of byte_b will usually indicate what to do next.

  • byte_a 0 && byte_b 0 && all of the 4x4 image blocks have been traversed, then decode is finished
  • 0x84 <= byte_b < 0x88:

This code specifies that a certain number of blocks should be skipped in the output stream. This is useful for frame differencing (encoding changes from frame to frame) and thus achieving greater compression. The formula for skipping is:

  • byte_b < 0x80, 2-color encoding:

In this encoding, the next 2 bytes in the encoded byte stream are color_a and color_b, respectively. Byte_a and byte_b turn into sets of flags that represent which color, a or b, to place into a particular pixel in the decoded block. The flags are laid out as follows:

Video Size Compressor Free Download

For example, if bit 0 of byte_a is 1, the lower left pixel of the block is color_a. Otherwise, it's color_b. In all, a 2-color block is encoded as 4 bytes:

  • 0x90 <= byte_b, 8-color encoding:

In this encoding, a single 4x4 block can have as many as 8 colors. More accurately, the 4x4 block is subdivided into 4 2x2 quads, each of which can have 2 colors. The quads are laid out as follows:

As in 2 color encoding, byte_a and byte_b become sets of flags indicating which color pixel to place in the decoded block. The flag matrix is laid out the same as in the 2 color encoding:

The 2 possible colors for each of the four quads directly follow the two block bytes. In all, an 8-color block is encoded as 10 bytes:

For example, if bit 7 of byte_b is 1 then the color represented by quad4_a is placed in the top right corner of the 4x4 block. Otherwise, it's quad4_b.

  • (0x80 <= byte_b < 0x84) or (0x88 <= byte_b < 0x90) or 'byte_b didn't qualify this block for any other encoding scheme', 1-color encoding:

Microsoft Video 1 Compressor

In this encoding, byte_a represents the color for the entire 4x4 block.

16-bit Video-1 Data

Colors are stored in BGR555 format. In the data stream, the colors are encoded in little endian format:

When the color is properly decoded, the color components are represented by the following bits:

  • B: 14-10
  • G: 9-5
  • R: 4-0

Chordpulse free download. In order to decode the Video 1 data, traverse through the encoded byte stream, reading the first two bytes into byte_a and byte_b, respectively. The value of byte_b will usually indicate what to do next.

Microsoft Video 1 Compressor Download Mac

  • byte_a 0 && byte_b 0 && all of the 4x4 image blocks have been traversed, then decode is finished
  • 0x84 <= byte_b < 0x88:

This code specifies that a certain number of blocks should be skipped in the output stream. This is useful for frame differencing (encoding changes from frame to frame) and thus achieving greater compression. The formula for skipping is:

  • 0 <= byte_b < 0x80, 2- or 8-color encoding:

The 2- and 8-color encoding schemes are quite similar. To determine which of the two schemes a block is using, it's necessary to read the next two little endian 16-bit numbers in the stream. If the highest bit of the first number is 1, then the block is encoded with the 8-color scheme. Otherwise, it uses the 2-color scheme.

In the 2-color encoding, the two LE16 numbers are labeled color_a and color_b, respectively. Byte_a and byte_b turn into sets of flags that represent which color, a or b, to place into a particular pixel in the decoded block. The flags are laid out as follows:

For example, if bit 0 of byte_a is 1, the lower left pixel of the block is color_a. Otherwise, it's color_b. Download game files from steam. In all, a 2-color block is encoded as 6 bytes:

Unity uv mapping cube. In the 8-color encoding, a single 4x4 block can have as many as 8 colors. More accurately, the 4x4 block is subdivided into 4 2x2 quads, each of which can have 2 colors. The quads are laid out as follows:

As in 2 color encoding, byte_a and byte_b become sets of flags indicating which color pixel to place in the decoded block. The flag matrix is laid out the same as in the 2 color encoding:

The 2 possible colors for each of the four quads directly follow the two block bytes. The colors for the first quad were likely read from the data stream in order to determine if the block is 2- or 8- color encoded. The 2 colors for each of the other 3 quads will follow the first. In all, a full 8 color block is encoded as 18 bytes:

Microsoft Video 1 Compressor Downloads

For example, if bit 7 of byte_b is 1 then the color represented by quad4_a is placed in the top right corner of the 4x4 block. Otherwise, it's quad4_b.

Compressor
  • (0x80 <= byte_b < 0x84) or (0x88 <= byte_b), 1-color encoding:

In this encoding, byte_a and byte_b represent a little endian 16-bit number which is the color for the entire 4x4 block.

References

Retrieved from 'https://wiki.multimedia.cx/index.php?title=Microsoft_Video_1&oldid=7877'