GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

No menu could be recovered. Follow the blue links in the page.

This view

  • Original page
  • New address

GeezerVison is showing dvd.sourceforge.net — Sub-Pictures

Sub-Pictures

The typical arrangement of data in the 53220 byte buffer for sub-pictures is
SPUHPXDtfPXDbfSP_DCSQT
However, the only requirement is that the header (SPUH) be first, all other areas are reached by pointers.

SPUH

Sub-Picture Unit Header
2 words (small endian - least significant byte last)
offsetnamecontents
0SPDSZthe size of the total sub-picture data (which may span packets)
2SP_DCSQTAoffset within the Sub-Picture Unit to the SP_DCSQT

PXDtf and PXDbf

PiXel Data
These are the rle compressed pixel data for the top field (lines 1, 3, 5, etc) and the bottom field (lines 2, 4, 6, etc) respectively
Individual pixels may have one of four values, commonly referred to as background (0), pattern (1), emphasis 1 (2), and emphasis 2 (3) Each coded value indicates the number of pixels having the same code value, and can be in one of four forms, depending on the number of identical pixels
rangebitsformat
1-34n n c c
4-1580 0 n n n n c c
16-63120 0 0 0 n n n n n n c c
64-255160 0 0 0 0 0 n n n n n n n n c c
One special case, encoding a count of zero using the 16-bit format indicates the same pixel value until the end of the line.
If, at the end of a line, the bit count is not a multiple of 8, four fill bits of 0 are added.

SP_DCSQT

Sub-Picture Display Control SeQuence Table
This area contains blocks (SP_DCSQ) of commands to the decoder. Each SP_DCSQ begins with a 2 word header
offsetnamecontents
0SP_DCSQ_STMdelay to wait before executing these commands.
The units are 90KHz clock (same as PTM) divided by 1024 - see conversion aids
2SP_NXT_DCSQ_SAoffset within the Sub-Picture Unit to the next SP_DCSQ. If this is the last SP_DCSQ, it points to itself.

Commands

There are eight commands available for Sub-Pictures. The first SP_DCSQ should contain, as a minimum, SET_COLOR, SET_CONTR, SET_DAREA, and SET_DSPXA.

FF - CMD_END - ends one SP_DCSQ

00 - FSTA_DSP - Forced Start Display, no arguments

01 - STA_DSP - Start Display, no arguments

02 - STP_DSP - Stop Display, no arguments

03 - SET_COLOR - provides four indices into the CLUT for the current PGC to associate with the four pixel values. One nibble per pixel value for a total of 2 bytes.
e2 e1   p b

04 - SET_CONTR - directly provides the four contrast (alpha blend) values to associate with the four pixel values. One nibble per pixel value for a total of 2 bytes. 0x0 = transparent, 0xF = opaque
e2 e1   p b

05 - SET_DAREA - defines the display area, each pair (X and Y) of values is 3 bytes wide, for a total of 6 bytes, and has the form
sx sx   sx ex   ex ex   sy sy   sy ey   ey ey
sx = starting X coordinate
ex = ending X coordinate
sy = starting Y coordinate
ey = ending Y coordinate

06 - SET_DSPXA - defines the pixel data addresses. First a 2-byte offset to the top field data, followed by a 2-byte offset to the bottom field data, for a total of 4 bytes.

07 - CHG_COLCON - allows for changing the COLor and CONtrast within one or more areas of the display. This command contains a series of parameters, arranged in a hierarchy.
Following the command byte is a 2-byte value for the total size of the parameter area, including the size word.
The parameter sequence begins with a LN_CTLI, which defines a vertically bounded area of the display. The LN_CTLI may include from one to fifteen PX_CTLI parameters, which define a starting horizontal position and new color and contrast value to apply from that column on towards the right to the next PX_CTLI or the right side of the display.

LN_CTLI, 4 bytes, special value of 0f ff ff ff signifies the end of the parameter area (this termination code MUST be present as the last parameter)
0 s   s s   n t   t t
sss = csln, the starting (top-most) line number for this area
n = number of PX_CTLI to follow
ttt = ctln, the terminating (bottom-most) line number for this area

PX_CTLI, 6 bytes, defines a starting column and new color and contrast values
bytes 0 and 1 - starting column number
bytes 2 and 3 - new color values, as per SET_COLOR
bytes 4 and 5 - new contrast values, as per SET_CONTR

Converting frames and time to SP_DCSQ_STM values

The direct method of converting time to delay values is to multiply time in seconds by 90000/1024 and truncate the value. Rounding up will cause the display to occur one frame late. Framesvalue for NTSC (30fps)value for PAL/SECAM (25fps) 123 257 3810 41114 51417 61721 72024 82328 92631 102935 113238 123542 133845 144149 154352 164656 174959 185263 195566 205870 216173 226477 236780 247084 2573(87) 2676(91) 2779(94) 2882(98) 2984(101) secondsvalue 187 2175 3263 4351 5439 6527 7615 8703 9791 10878 201757 302636 403515 504394 605273DVD-Video home
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.