<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.multimedia.cx/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ek1Mpj</id>
	<title>MultimediaWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.multimedia.cx/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ek1Mpj"/>
	<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php/Special:Contributions/Ek1Mpj"/>
	<updated>2026-09-28T17:07:34Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Xan_DPCM&amp;diff=7652</id>
		<title>Xan DPCM</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Xan_DPCM&amp;diff=7652"/>
		<updated>2007-04-11T06:49:02Z</updated>

		<summary type="html">&lt;p&gt;Ek1Mpj: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Company: [[Origin Systems]]&lt;br /&gt;
&lt;br /&gt;
Origin's [http://www.mobygames.com/game/dos/wing-commander-iv-the-price-of-freedom Wing Commander IV: The Price of Freedom] computer game transports multimedia cutscenes in standard Microsoft [[Microsoft Audio/Video Interleaved|AVI]] files. The audio in these files is encoded using a custom format that this page takes the liberty of naming Xan DPCM.&lt;br /&gt;
&lt;br /&gt;
Note that an AVI file demuxer will probably need to be modified to support the algorithm. The [[WAVEFORMATEX]] headers in the Xan AVI files report the audio coding as format 0x0001: [[PCM]]. However, the file's 'auds' chunk begins with the fourcc 'Axan'. A program can either check for this or assume that the file uses Xan DPCM if it uses [[Origin Xan Codec|Xan]] video.&lt;br /&gt;
&lt;br /&gt;
Classifying the Xan audio coding method as a DPCM algorithm is a little shaky. It actually resembles a cross between a DPCM algorithm and a APDCM algorithm. Perhaps the designers could not decide between the two algorithm families and decided to split the difference. The algorithm encodes 16-bit PCM samples as 8-bit bytes by packing a 6-bit delta value along with a 2-bit delta modifier into a byte.&lt;br /&gt;
&lt;br /&gt;
For each chunk of Xan DPCM data, the first 2 or 4 bytes are the initial predictors for that chunk, depending on mono or stereo data, and are encoded as signed, 16-bit, little-endian numbers. A shifter value for each channel is initialized to 4. For each byte in the stream (assuming mono data):&lt;br /&gt;
&lt;br /&gt;
    byte = next byte in stream&lt;br /&gt;
    diff = (byte&lt;/div&gt;</summary>
		<author><name>Ek1Mpj</name></author>
	</entry>
</feed>