SPUH | PXDtf | PXDbf | SP_DCSQT |
---|
offset | name | contents |
---|---|---|
0 | SPDSZ | the size of the total sub-picture data (which may span packets) |
2 | SP_DCSQTA | offset within the Sub-Picture Unit to the SP_DCSQT |
range | bits | format |
---|---|---|
1-3 | 4 | n n c c |
4-15 | 8 | 0 0 n n n n c c |
16-63 | 12 | 0 0 0 0 n n n n n n c c |
64-255 | 16 | 0 0 0 0 0 0 n n n n n n n n c c |
offset | name | contents |
---|---|---|
0 | SP_DCSQ_STM | delay to wait before executing these commands.
The units are 90KHz clock (same as PTM) divided by 1024 - see conversion aids |
2 | SP_NXT_DCSQ_SA | offset within the Sub-Picture Unit to the next SP_DCSQ. If this is the last SP_DCSQ, it points to itself. |
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.
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
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
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.
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)
PX_CTLI, 6 bytes, defines a starting column and new color and contrast values
e2 e1   p b
e2 e1   p b
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
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 eight 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.
0 s   s s   n t   t t
sss = csln, the starting (top-most) line number for this area (must be > previous LN_CTLI ttt)
n = number_of_changes - number of PX_CTLI to follow (1 to 8)
ttt = ctln, the terminating (bottom-most) line number for this area (must be >= sss)
bytes 0 and 1 - starting column number (must be 8 or more greater than the previous PX_CTLI)
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.
|
|
DVD-Video info home | Copyright © 2001 - 2024 MPUCoder, all rights reserved. |