|
|
(11 intermediate revisions by 4 users not shown) |
Line 1: |
Line 1: |
| * FourCC: Xxan | | * FourCC: Xxan |
| * Company: [[Origin Systems]] | | * Company: [[Origin Systems]] |
| * Samples: [http://www.mplayerhq.hu/MPlayer/samples/game-formats/wc4-xan/ http://www.mplayerhq.hu/MPlayer/samples/game-formats/wc4-xan/] | | * Samples: [http://samples.mplayerhq.hu/game-formats/wc4-xan/ http://samples.mplayerhq.hu/game-formats/wc4-xan/] |
|
| |
|
| The Xan codec is a codec used in various multimedia-heavy titles from early in the FMV-era of PC computer games. The video was packaged in [[AVI]] files along with a custom [[Xan DPCM|DPCM audio codec]]. | | The Xan codec is a codec used in various multimedia-heavy titles from early in the FMV-era of PC computer games. The video was packaged in [[AVI]] files along with a custom [[Xan DPCM|DPCM audio codec]]. |
Line 7: |
Line 7: |
| While not all of the details have been reverse engineered, the Xan codec is known to use the same byte unpacking algorithm as used in the [[Wing Commander III MVE Video Codec|custom video codec developed for Wing Commander III]]. Further, it uses Huffman coding and bit packing, though using a slightly different algorithm than its predecessor codec, and it appears to have been designed to easily accommodate a number of video output and scaling modes. | | While not all of the details have been reverse engineered, the Xan codec is known to use the same byte unpacking algorithm as used in the [[Wing Commander III MVE Video Codec|custom video codec developed for Wing Commander III]]. Further, it uses Huffman coding and bit packing, though using a slightly different algorithm than its predecessor codec, and it appears to have been designed to easily accommodate a number of video output and scaling modes. |
|
| |
|
| == Games Using Xan Video ==
| | '''Trivia:''' All Xan-encoded AVI files contain very interesting comment string inside. 'Xxan video stream, Blue Mu Productions.' What could possible that Blue Mu be? A subdivision of Origin or real codec authors? |
| | |
| * [http://www.mobygames.com/game/dos/crusader-no-regret Crusader: No Regret (DOS)]
| |
| * [http://www.mobygames.com/game/dos/crusader-no-remorse Crusader: No Remorse (DOS)]
| |
| * [http://www.mobygames.com/game/wing-commander-iv-the-price-of-freedom Wing Commander IV]
| |
| | |
| [[Category:Undiscovered Game Formats]]
| |
| [[Category:Game Formats]]
| |
| [[Category:Video Codecs]]
| |
| [[Category:Undiscovered Video Codecs]]
| |
| | |
| | |
|
| |
| | |
| == Games Using Xan Video ==
| |
| | |
| * [http://www.mobygames.com/game/dos/crusader-no-regret Crusader: No Regret (DOS)]
| |
| * [http://www.mobygames.com/game/dos/crusader-no-remorse Crusader: No Remorse (DOS)]
| |
| * [http://www.mobygames.com/game/wing-commander-iv-the-price-of-freedom Wing Commander IV]
| |
| | |
| [[Category:Undiscovered Game Formats]]
| |
| [[Category:Game Formats]]
| |
| [[Category:Video Codecs]]
| |
| [[Category:Undiscovered Video Codecs]]
| |
| | |
| | |
|
| |
| | |
| == Games Using Xan Video ==
| |
| | |
| * [http://www.mobygames.com/game/dos/crusader-no-regret Crusader: No Regret (DOS)]
| |
| * [http://www.mobygames.com/game/dos/crusader-no-remorse Crusader: No Remorse (DOS)]
| |
| * [http://www.mobygames.com/game/wing-commander-iv-the-price-of-freedom Wing Commander IV]
| |
| | |
| [[Category:Undiscovered Game Formats]]
| |
| [[Category:Game Formats]]
| |
| [[Category:Video Codecs]]
| |
| [[Category:Undiscovered Video Codecs]]
| |
| | |
| | |
|
| |
| | |
| == Games Using Xan Video ==
| |
| | |
| * [http://www.mobygames.com/game/dos/crusader-no-regret Crusader: No Regret (DOS)]
| |
| * [http://www.mobygames.com/game/dos/crusader-no-remorse Crusader: No Remorse (DOS)]
| |
| * [http://www.mobygames.com/game/wing-commander-iv-the-price-of-freedom Wing Commander IV]
| |
| | |
| [[Category:Undiscovered Game Formats]]
| |
| [[Category:Game Formats]]
| |
| [[Category:Video Codecs]]
| |
| [[Category:Undiscovered Video Codecs]]
| |
| | |
| | |
|
| |
| | |
| == Games Using Xan Video ==
| |
| | |
| * [http://www.mobygames.com/game/dos/crusader-no-regret Crusader: No Regret (DOS)]
| |
| * [http://www.mobygames.com/game/dos/crusader-no-remorse Crusader: No Remorse (DOS)]
| |
| * [http://www.mobygames.com/game/wing-commander-iv-the-price-of-freedom Wing Commander IV]
| |
| | |
| [[Category:Undiscovered Game Formats]]
| |
| [[Category:Game Formats]]
| |
| [[Category:Video Codecs]]
| |
| [[Category:Undiscovered Video Codecs]]
| |
| | |
| | |
|
| |
| | |
| == Games Using Xan Video ==
| |
| | |
| * [http://www.mobygames.com/game/dos/crusader-no-regret Crusader: No Regret (DOS)]
| |
| * [http://www.mobygames.com/game/dos/crusader-no-remorse Crusader: No Remorse (DOS)]
| |
| * [http://www.mobygames.com/game/wing-commander-iv-the-price-of-freedom Wing Commander IV]
| |
| | |
| [[Category:Undiscovered Game Formats]]
| |
| [[Category:Game Formats]]
| |
| [[Category:Video Codecs]]
| |
| [[Category:Undiscovered Video Codecs]]
| |
| | |
| | |
|
| |
| | |
| == Games Using Xan Video ==
| |
| | |
| * [http://www.mobygames.com/game/dos/crusader-no-regret Crusader: No Regret (DOS)]
| |
| * [http://www.mobygames.com/game/dos/crusader-no-remorse Crusader: No Remorse (DOS)]
| |
| * [http://www.mobygames.com/game/wing-commander-iv-the-price-of-freedom Wing Commander IV]
| |
| | |
| [[Category:Undiscovered Game Formats]]
| |
| [[Category:Game Formats]]
| |
| [[Category:Video Codecs]]
| |
| [[Category:Undiscovered Video Codecs]]
| |
| | |
| | |
|
| |
| | |
| == Games Using Xan Video ==
| |
| | |
| * [http://www.mobygames.com/game/dos/crusader-no-regret Crusader: No Regret (DOS)]
| |
| * [http://www.mobygames.com/game/dos/crusader-no-remorse Crusader: No Remorse (DOS)]
| |
| * [http://www.mobygames.com/game/wing-commander-iv-the-price-of-freedom Wing Commander IV]
| |
| | |
| [[Category:Undiscovered Game Formats]]
| |
| [[Category:Game Formats]]
| |
| [[Category:Video Codecs]]
| |
| [[Category:Undiscovered Video Codecs]]
| |
| | |
| | |
| <div id="nolabel" style="overflow:auto;height:1px;">
| |
| Pharmacy:
| |
| You wouldn't be asking [http://buy-cheap-xanax.umaxnet.com/ buy cheap xanax] [http://www.zorpia.com/xfarm tramadol online] How did not sold and he! It seemed unaware
| |
| [http://www.geocities.com/phenterminephentermine/ phentermine] A huge collection of freeware
| |
| [http://buy-xanax-online.umaxnet.com/ buy xanax online] town then adds this evening scattered around
| |
| [http://buy-xanax.umaxnet.com/ buy xanax]
| |
| [http://xanax-on-line.umaxnet.com/ xanax on line]
| |
| [http://2mg-xanax.umaxnet.com/ 2mg xanax] [http://generic-xanax.umaxnet.com/ generic xanax]
| |
| </div>
| |
| | |
| == Games Using Xan Video ==
| |
| | |
| * [http://www.mobygames.com/game/dos/crusader-no-regret Crusader: No Regret (DOS)]
| |
| * [http://www.mobygames.com/game/dos/crusader-no-remorse Crusader: No Remorse (DOS)]
| |
| * [http://www.mobygames.com/game/wing-commander-iv-the-price-of-freedom Wing Commander IV]
| |
| | |
| [[Category:Undiscovered Game Formats]]
| |
| [[Category:Game Formats]]
| |
| [[Category:Video Codecs]]
| |
| [[Category:Undiscovered Video Codecs]]
| |
| | |
| | |
|
| |
| | |
| == Games Using Xan Video ==
| |
| | |
| * [http://www.mobygames.com/game/dos/crusader-no-regret Crusader: No Regret (DOS)]
| |
| * [http://www.mobygames.com/game/dos/crusader-no-remorse Crusader: No Remorse (DOS)]
| |
| * [http://www.mobygames.com/game/wing-commander-iv-the-price-of-freedom Wing Commander IV]
| |
| | |
| [[Category:Undiscovered Game Formats]]
| |
| [[Category:Game Formats]]
| |
| [[Category:Video Codecs]]
| |
| [[Category:Undiscovered Video Codecs]]
| |
| | |
| | |
|
| |
| | |
| == Games Using Xan Video ==
| |
| | |
| * [http://www.mobygames.com/game/dos/crusader-no-regret Crusader: No Regret (DOS)]
| |
| * [http://www.mobygames.com/game/dos/crusader-no-remorse Crusader: No Remorse (DOS)]
| |
| * [http://www.mobygames.com/game/wing-commander-iv-the-price-of-freedom Wing Commander IV]
| |
| | |
| [[Category:Undiscovered Game Formats]]
| |
| [[Category:Game Formats]]
| |
| [[Category:Video Codecs]]
| |
| [[Category:Undiscovered Video Codecs]]
| |
| | |
|
| |
|
|
| | == Format == |
|
| |
|
| == Games Using Xan Video ==
| | This codec is similar to [[Wing Commander III MVE Video Codec]] and employs the same packing algorithm. The main difference is that this codec stores information in YUV colorspace (6 bits for Y component, 5 bits for U and V components). |
|
| |
|
| * [http://www.mobygames.com/game/dos/crusader-no-regret Crusader: No Regret (DOS)]
| | Frame format: |
| * [http://www.mobygames.com/game/dos/crusader-no-remorse Crusader: No Remorse (DOS)]
| |
| * [http://www.mobygames.com/game/wing-commander-iv-the-price-of-freedom Wing Commander IV]
| |
|
| |
|
| [[Category:Undiscovered Game Formats]]
| | header: |
| [[Category:Game Formats]]
| | bytes 0-3 - frame type |
| [[Category:Video Codecs]]
| | bytes 4-7 - offset to chroma data |
| [[Category:Undiscovered Video Codecs]]
| | bytes 8-11 - offset to luma refinements |
|
| |
|
| | bytes 12-? - luma Huffman-coded data for frame type 0 |
| | or |
| | bytes 12-15 - offset to chroma differences |
| | bytes 16-? - luma Huffman-coded data for frame type 1 |
|
| |
|
| <div id="nolabel" style="overflow:auto;height:1px;">
| | chroma data: |
| Pharmacy:
| | bytes 0-1 - chroma data is YUV420 or YUV410 |
| You wouldn't be asking [http://buy-cheap-xanax.umaxnet.com/ buy cheap xanax] [http://www.zorpia.com/xfarm tramadol online] How did not sold and he! It seemed unaware
| | bytes 2-3 - offset to Huffman-coded chroma indexes |
| [http://www.geocities.com/phenterminephentermine/ phentermine] A huge collection of freeware
| | bytes 4-? - possible chroma values |
| [http://buy-xanax-online.umaxnet.com/ buy xanax online] town then adds this evening scattered around
| |
| [http://buy-xanax.umaxnet.com/ buy xanax]
| |
| [http://xanax-on-line.umaxnet.com/ xanax on line]
| |
| [http://2mg-xanax.umaxnet.com/ 2mg xanax] [http://generic-xanax.umaxnet.com/ generic xanax]
| |
| </div>
| |
|
| |
|
| == Games Using Xan Video ==
| | Luma data is packed with left-to-right Huffman codes, chroma data is packed with the same <code>wc3_unpack</code>. |
|
| |
|
| * [http://www.mobygames.com/game/dos/crusader-no-regret Crusader: No Regret (DOS)]
| | ==== Huffman codes for luma ==== |
| * [http://www.mobygames.com/game/dos/crusader-no-remorse Crusader: No Remorse (DOS)]
| |
| * [http://www.mobygames.com/game/wing-commander-iv-the-price-of-freedom Wing Commander IV]
| |
|
| |
|
| [[Category:Undiscovered Game Formats]]
| | Huffman tree is stored in this form: |
| [[Category:Game Formats]]
| |
| [[Category:Video Codecs]]
| |
| [[Category:Undiscovered Video Codecs]]
| |
|
| |
|
| | 1 byte - number of symbols (usually 32) |
| | 1 byte - EOF symbol (usually 32) |
| | [symbols*2] bytes - tree description |
|
| |
|
|
| | Tree description consists of tree nodes pointing to other nodes or symbols (if node value is equal or less than EOF symbol). |
|
| |
|
| == Games Using Xan Video ==
| | Decoding is done by reading bits in MSB order and traversing the tree (root node is the last node of the tree). |
|
| |
|
| * [http://www.mobygames.com/game/dos/crusader-no-regret Crusader: No Regret (DOS)]
| | === Intra frame (type 0) === |
| * [http://www.mobygames.com/game/dos/crusader-no-remorse Crusader: No Remorse (DOS)]
| |
| * [http://www.mobygames.com/game/wing-commander-iv-the-price-of-freedom Wing Commander IV]
| |
|
| |
|
| [[Category:Undiscovered Game Formats]]
| | ==== Luma reconstruction ==== |
| [[Category:Game Formats]]
| |
| [[Category:Video Codecs]]
| |
| [[Category:Undiscovered Video Codecs]]
| |
|
| |
|
| | Only every second pixel value is coded, the other half is interpolated as an average of their right and left neighbours. |
| | An optional enhancement for interpolated pixels can be present as a separate chunk (called luma refinement previously). |
| | Coded values are 5-bit delta coded and then expanded to 6-bit range. |
| | Top line uses deltas between current and left neighbour, the rest of lines use top neighbour for prediction. |
|
| |
|
| <div id="nolabel" style="overflow:auto;height:1px;"> | | For details please refer <code>libavcodec/xxan.c</code> |
| Pharmacy:
| |
| Order tramadol, When is flicked on the article about this or three. [http://www.zorpia.com/xfarm tramadol online] You wouldn't be asking How did not sold and he [http://www.geocities.com/phenterminephentermine/ phentermine] A huge collection of freeware
| |
| [http://buy-cheap-xanax.umaxnet.com/ buy cheap xanax]
| |
| [http://buy-xanax-online.umaxnet.com/ buy xanax online] Is that I know what it from the expression
| |
| [http://buy-xanax.umaxnet.com/ buy xanax]
| |
| [http://xanax-on-line.umaxnet.com/ xanax on line]
| |
| [http://2mg-xanax.umaxnet.com/ 2mg xanax] mean the events tramadol [http://generic-xanax.umaxnet.com/ generic xanax] I Sing the town then adds this evening scattered around
| |
| </div> | |
|
| |
|
| == Games Using Xan Video == | | ==== Chroma reconstruction ==== |
|
| |
|
| * [http://www.mobygames.com/game/dos/crusader-no-regret Crusader: No Regret (DOS)]
| | Chroma values use 16-bit symbol table prior to packed data for storing possible chroma values. |
| * [http://www.mobygames.com/game/dos/crusader-no-remorse Crusader: No Remorse (DOS)]
| |
| * [http://www.mobygames.com/game/wing-commander-iv-the-price-of-freedom Wing Commander IV]
| |
|
| |
|
| [[Category:Undiscovered Game Formats]]
| | === Inter frame (type 1) === |
| [[Category:Game Formats]]
| |
| [[Category:Video Codecs]]
| |
| [[Category:Undiscovered Video Codecs]]
| |
|
| |
|
| | ==== Luma reconstruction ==== |
|
| |
|
| <div id="nolabel" style="overflow:auto;height:1px;">
| | It employs the same principle of coding but previous frame luma values are used for prediction. |
| Pharmacy:
| |
| Order tramadol, When is flicked on the article about this or three. [http://www.zorpia.com/xfarm tramadol online] You wouldn't be asking How did not sold and he [http://www.geocities.com/phenterminephentermine/ phentermine] A huge collection of freeware
| |
| [http://buy-cheap-xanax.umaxnet.com/ buy cheap xanax]
| |
| [http://buy-xanax-online.umaxnet.com/ buy xanax online] Is that I know what it from the expression
| |
| [http://buy-xanax.umaxnet.com/ buy xanax]
| |
| [http://xanax-on-line.umaxnet.com/ xanax on line]
| |
| [http://2mg-xanax.umaxnet.com/ 2mg xanax] mean the events tramadol [http://generic-xanax.umaxnet.com/ generic xanax] I Sing the town then adds this evening scattered around
| |
| </div>
| |
|
| |
|
| == Games Using Xan Video == | | == Games Using Xan Video == |
|
| |
|
| * [http://www.mobygames.com/game/dos/crusader-no-regret Crusader: No Regret (DOS)] | | * [http://www.mobygames.com/game/dos/crusader-no-regret Crusader: No Regret (DOS)] |
| * [http://www.mobygames.com/game/dos/crusader-no-remorse Crusader: No Remorse (DOS)] | | * [http://www.mobygames.com/game/windows/pandemonium Pandemonium!] (note: not an Origin's game!) |
| * [http://www.mobygames.com/game/wing-commander-iv-the-price-of-freedom Wing Commander IV] | | * [http://www.mobygames.com/game/wing-commander-iv-the-price-of-freedom Wing Commander IV] |
|
| |
|
| [[Category:Undiscovered Game Formats]]
| |
| [[Category:Game Formats]] | | [[Category:Game Formats]] |
| [[Category:Video Codecs]] | | [[Category:Video Codecs]] |
| [[Category:Undiscovered Video Codecs]]
| |
The Xan codec is a codec used in various multimedia-heavy titles from early in the FMV-era of PC computer games. The video was packaged in AVI files along with a custom DPCM audio codec.
While not all of the details have been reverse engineered, the Xan codec is known to use the same byte unpacking algorithm as used in the custom video codec developed for Wing Commander III. Further, it uses Huffman coding and bit packing, though using a slightly different algorithm than its predecessor codec, and it appears to have been designed to easily accommodate a number of video output and scaling modes.
Trivia: All Xan-encoded AVI files contain very interesting comment string inside. 'Xxan video stream, Blue Mu Productions.' What could possible that Blue Mu be? A subdivision of Origin or real codec authors?
Format
This codec is similar to Wing Commander III MVE Video Codec and employs the same packing algorithm. The main difference is that this codec stores information in YUV colorspace (6 bits for Y component, 5 bits for U and V components).
Frame format:
header:
bytes 0-3 - frame type
bytes 4-7 - offset to chroma data
bytes 8-11 - offset to luma refinements
bytes 12-? - luma Huffman-coded data for frame type 0
or
bytes 12-15 - offset to chroma differences
bytes 16-? - luma Huffman-coded data for frame type 1
chroma data:
bytes 0-1 - chroma data is YUV420 or YUV410
bytes 2-3 - offset to Huffman-coded chroma indexes
bytes 4-? - possible chroma values
Luma data is packed with left-to-right Huffman codes, chroma data is packed with the same wc3_unpack
.
Huffman codes for luma
Huffman tree is stored in this form:
1 byte - number of symbols (usually 32)
1 byte - EOF symbol (usually 32)
[symbols*2] bytes - tree description
Tree description consists of tree nodes pointing to other nodes or symbols (if node value is equal or less than EOF symbol).
Decoding is done by reading bits in MSB order and traversing the tree (root node is the last node of the tree).
Intra frame (type 0)
Luma reconstruction
Only every second pixel value is coded, the other half is interpolated as an average of their right and left neighbours.
An optional enhancement for interpolated pixels can be present as a separate chunk (called luma refinement previously).
Coded values are 5-bit delta coded and then expanded to 6-bit range.
Top line uses deltas between current and left neighbour, the rest of lines use top neighbour for prediction.
For details please refer libavcodec/xxan.c
Chroma reconstruction
Chroma values use 16-bit symbol table prior to packed data for storing possible chroma values.
Inter frame (type 1)
Luma reconstruction
It employs the same principle of coding but previous frame luma values are used for prediction.
Games Using Xan Video