
2004 Apr 01
69
Philips Semiconductors
Product specication
XGA analog input at panel controller
SAA6703AH
7.13.3
OSD POINTER
The OSD pointer icon is a four colour 32
× 32 pixel
structure and is intended to be used as a cursor on top of
part allowing individual positioning (OSDP_PX_HI,
OSDP_PX_LO, OSDP_PY_HI and OSDP_PY_LO),
zooming, flipping and rotating (OSDP_CTRL0) but will
always be displayed on top of any OSD text or OSD bitmap
window. It is fixed in its resolution and always uses 2 bits
per pixel allowing 4 possible colours. Those colours are
again definable via a palette in the OSD colour settings
(register page 9) where colour 0 is always treated as
background colour. The foreground and the background
colours can be displayed from solid to almost transparent
with an individual alpha-blending factor (OSDP_FGA and
OSDP_BGA) or fully transparent using fg_trans and
bg_trans flags inside the OSDP_CTRL1 register.
For animation purpose of the icon, it is double buffered and
able to generate a frame based switching interrupt. The
buffer to be displayed can either be selected manually via
the buffer_sel flag (OSDP_CTRL0[6]) or can be switched
automatically on each generated interrupt
(OSDP_CTRL0[7]). During the display of one buffer all
writes are redirected to the inactive buffer. The period of
the animation interrupt can be adjusted with the
OSDP_AD register that defines the number of frames
between two interrupts. The interrupt generation itself can
be enabled with the anim_int_en flag (OSDP_CTRL1[5]).
The definition of the OSD pointer RAM is similar to the
definitions of the OSD bitmap RAM. The data is written
MSB-aligned to the OSDP_DEF register using 2 bits per
pixel. It is written starting from the pixel-exact coordinates
given with the OSD pointer cursor (OSDP_CX and
OSDP_CY). Instead of using a masked writing the
definition width giving the number of pixels that are used
from the OSDP_DEF register and written from the given
start position can be set via the OSDP_DW register. As in
the preceding OSD units also the OSD pointer uses an
auto-increment always setting the cursor to the following
definition position on each write to OSDP_DEF where the
increment is depending on the actual used defwidth.
Together with stopped SAA6703AH register
auto-increment at OSDP_DEF, this allows a fast burst
definition mode that needs 256 I2C-bus byte transmissions
to define a complete pointer buffer (see Table
47).