Difference between revisions of "SEQ"

From MultimediaWiki
Jump to navigation Jump to search
m (Reverted edits by Ng2C6t (Talk); changed back to last version by Multimedia Mike)
(link to samples)
(One intermediate revision by one other user not shown)
Line 1: Line 1:
* Extension: seq
* Extension: seq
* Samples: http://samples.mplayerhq.hu/game-formats/tiertex_seq/

SEQ files are an [[FMV]] format used in the game [http://www.mobygames.com/game/dos/flashback-the-quest-for-identity Flashback: The Quest for Identity].
SEQ files are an [[FMV]] format used in the game [http://www.mobygames.com/game/dos/flashback-the-quest-for-identity Flashback: The Quest for Identity].
Line 35: Line 36:
[[Category:Video Codecs]]
[[Category:Video Codecs]]
[[Category:Game Formats]]
[[Category:Game Formats]]
[[Category:Formats missing in FFmpeg]]

Latest revision as of 23:11, 30 March 2008

SEQ files are an FMV format used in the game Flashback: The Quest for Identity.

These files always contain one video stream in own format with image size 256x128 and 22 kHz 16-bit mono PCM audio.

File Format

Data is stored in 6144-byte frames without any header. Each frame may contain sound data, palette data and up to 3 video frames data. Frame structure:

 bytes  0- 1 - sound data offset (0 = no sound)
 bytes  2- 3 - palette data offset (0 = no palette)
 byte      4 - what buffer to use (255 = skip)
 byte      5 - frame num 1
 byte      6 - frame num 2
 byte      7 - frame num 3
 bytes  8- 9 - video data offset 1
 bytes 10-11 - video data offset 2
 bytes 12-13 - video data offset 3
 bytes 14-15 - video data end

Video Codec

Frame data is divided into 8x8 blocks, each block may be compressed with one of four methods. Those 2-bit method indices are packed in 16-bit little-endian words and stored in frame header. Methods:

  • 0 - skip block
  • 1 - most advanced coding mode. Data may be packed with RLE scheme described below or vector quantization (lookup table and 1-4 bits on index)
  • 2 - raw block
  • 3 - partial update of block, data is stored in pairs (skip, value) where skip = (x + y*8 + last*128), if last = 1 then end decoding, else put (value) at position (x,y)

RLE Packing

RLE data is also stored operations first, pixel data later. Operation byte consists of two signed nibbles, each meaning:

 if (n < 0) then set (-n) pixels to the next value
 else read (n) pixels values