<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.multimedia.cx/index.php?action=history&amp;feed=atom&amp;title=Beam_Video</id>
	<title>Beam Video - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.multimedia.cx/index.php?action=history&amp;feed=atom&amp;title=Beam_Video"/>
	<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Beam_Video&amp;action=history"/>
	<updated>2026-06-19T08:13:10Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Beam_Video&amp;diff=15675&amp;oldid=prev</id>
		<title>Kostya: split information about video coding into separate page</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Beam_Video&amp;diff=15675&amp;oldid=prev"/>
		<updated>2022-10-29T09:44:45Z</updated>

		<summary type="html">&lt;p&gt;split information about video coding into separate page&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This is a video compression algorithm used by [[Beam Software]] in its [[SIFF]] files. There are two video compression flavours: 8-bit (used in FCP and the majority of VBV files) and 15-bit one (used only in &amp;lt;i&amp;gt;Alien Earth&amp;lt;/i&amp;gt; game).&lt;br /&gt;
&lt;br /&gt;
The general principle is that the frame is divided into 4x4 blocks. Block type is stored in two bits, which are grouped into one byte for four consequent blocks. Depending on block type it may be either copied from the previous frame or painted.&lt;br /&gt;
&lt;br /&gt;
The main difference between 8- and 15-bit video is that for the former a colour value is always 8-bit palette index while for the latter it may be either a 8-bit palette index (when palette is present in the same frame) or raw 16-bit value (for all other frames).&lt;br /&gt;
&lt;br /&gt;
Block types:&lt;br /&gt;
* 0 - skip block&lt;br /&gt;
* 1 - motion compensated block, next byte contains motion vector (with values -8..7). If motion vector is zero then block is uncompressed and its data is contained in the next 16 bytes.&lt;br /&gt;
* 2 - block is filled with color stored in the next byte&lt;br /&gt;
* 3 - pattern fill, pattern method and value is stored in the next byte.&lt;br /&gt;
&lt;br /&gt;
Pattern type (for block type 3) is stores in high two bits, pattern index is stored in 6 low bits. Pattern type meanings:&lt;br /&gt;
* 0 - read 2 bytes and paint block with them&lt;br /&gt;
* 1 - read one bytes and paint only pixels where pattern bit is zero&lt;br /&gt;
* 2 - read one bytes and paint only pixels where pattern bit is one&lt;br /&gt;
* 3 - invalid value&lt;br /&gt;
&lt;br /&gt;
Motion compensation may wrap, i.e. pixels from the previous or next line may be read.&lt;br /&gt;
&lt;br /&gt;
There are 64 possible patterns (LSB first):&lt;br /&gt;
&lt;br /&gt;
     0x0660, 0xFF00, 0xCCCC, 0xF000, 0x8888, 0x000F, 0x1111, 0xFEC8,&lt;br /&gt;
     0x8CEF, 0x137F, 0xF731, 0xC800, 0x008C, 0x0013, 0x3100, 0xCC00,&lt;br /&gt;
     0x00CC, 0x0033, 0x3300, 0x0FF0, 0x6666, 0x00F0, 0x0F00, 0x2222,&lt;br /&gt;
     0x4444, 0xF600, 0x8CC8, 0x006F, 0x1331, 0x318C, 0xC813, 0x33CC,&lt;br /&gt;
     0x6600, 0x0CC0, 0x0066, 0x0330, 0xF900, 0xC88C, 0x009F, 0x3113,&lt;br /&gt;
     0x6000, 0x0880, 0x0006, 0x0110, 0xCC88, 0xFC00, 0x00CF, 0x88CC,&lt;br /&gt;
     0x003F, 0x1133, 0x3311, 0xF300, 0x6FF6, 0x0603, 0x08C6, 0x8C63,&lt;br /&gt;
     0xC631, 0x6310, 0xC060, 0x0136, 0x136C, 0x36C8, 0x6C80, 0x324C&lt;br /&gt;
&lt;br /&gt;
[[Category:Video Codecs]]&lt;br /&gt;
[[Category:Game Formats]]&lt;/div&gt;</summary>
		<author><name>Kostya</name></author>
	</entry>
</feed>