TW8836字体OSD~第一节LUT

特征:

  • 可以显示Windows数量:8
  • 屏幕上最大字符数:512
  • 最大FontRAM大小:10*1024Byte
  • 总查找表(调色板)数量:64
  • 支持每像素多位BPP:1,2,3,4
  • Alpha混合功能
  • 支持包括3D,间距,缩放,边框,阴影的窗口效果

框图:

  •   字体OSD(FOSD)由调色板(LUT)、FontRAM和OSDRAM组成。
  •   调色板(或查找表LUT)是具有RGB颜色值的颜色值表。
  •    FontRAM是ASCII码或者特殊图标的字体集图像,每个字体图像都有一个指示调色板编号的索引值。
  •    OSDRAM是将图像绘制到显示器的内存,OSDRAM图像具有指示FontRAM的索引值。
  •    当系统在OSDRAM中有一个值时,系统会获取已建立索引的FontRam图像,然后用调色板值对其进行扩展以填充颜色,然后将其发送到带有图像效果的显示器。
TW8836字体OSD~第一节LUT_第1张图片
1、LUT(查找表,调色板)

TW8836 FONT LUT有16位64表格,16位颜色有5位MSB红色值、6位MSB绿色值和5位MSB蓝色值组成。1BPP字使用第一个16位LUT区域,它是固定的,用户不能更改1BPP的起始位置。但是,2/3/4BPP FONT可以将起始LUT位置分配给4个边界(使用R308[3:0]),它也可以使用前16个LUT区域。

前16个LUT具有默认的RGB值,并且这些默认的16个LUT值在16,32,48位置被复制。

从0到31的LUT具有9个等级(0-8)的alpha混合效果,8个Fosd 窗口可以分配不同的alpha混合值。

TW8836字体OSD~第一节LUT_第2张图片

1.1、默认颜色值

TW8836有一个默认颜色值。

TW8836字体OSD~第一节LUT_第3张图片

表1.1默认调色板颜色值

注1:不准确的值,需要更新

注2:TW8836使用新的颜色顺序,它与TW8832不同

注3:如果用户覆盖它,TW8835将无法恢复默认调色板颜色值

用户可以替换默认的颜色值,使用一下功能更改调色板的颜色值

#define PAGE3_FOSD  3

void FontOsdSetPaletteColor(int8u index ,int16u color)

{

    WriteTW88Page(PAGE3_FOSD);

    WriteTW88(0x0C,index | ((ReadTW88(0x0C)&0xC0)));    //写index索引值

    WriteTW88(0x0D,(int8u)(color>>8));

    WriteTW88(0x0E,(int8u)color);

}

1.2、选择调色板索引

1BPP字体的前景/背景可以使用位于调色板0-15上的16中颜色之一进行索引,因此,1BPP字体使用16中颜色组。

2/3/4BPP字体使用4/8/16色,可以在调色板表上重新映射。

1.2.1/1BPP映射

1BPP字体只有两个值,一个用于前景色,另一个用于背景色。在调色板中黑色的真实含义是值0,白色是值1,为了清除器件,本文档使用黑色作为背景,白色作为前景。

用户可以分配前16个LUT颜色的背景和前景的索引值。R308用于字体属性,高半字节用于背景索引值(值0b),d低半字节用于前景色(值1b)。

TW8836字体OSD~第一节LUT_第4张图片

1.2.2、多BPP

TW8836不仅支持1BPP(BitPerPixel),还支持2/3/4BPP字体。2BPP使用4中颜色,3BPP使用8中颜色,4BPP使用16中颜色。2/3/4BPP调色板分组为4/8/16中颜色,TW8836可以在具有63个索引的调色板中分配该颜色组的开始。

TW8836字体OSD~第一节LUT_第5张图片

如果Firmware(FW)具有2BPP字体并且将组颜色索引的开始分配为56并且调色板56具有白色值,则调色板57具有红色值,调板58具有绿色并且调色板59具有蓝色,字体图像在以下实例中,LED面板上显示的内容将更改为右边的内容。

TW8836字体OSD~第一节LUT_第6张图片

要使用多BPP字体,TW8836必须分配Multi_BPP索引的开始。

例如,如果FW的字体设置为96个1BPP字体,10个3BPP字体,2个4BPP字体,则寄存器值为R305[3:1]=000b,R305[7:0]=0x60,R393[7:0]=0x60,R394[7:0]=0x7E。

此外,必须为每个窗口启用Multi_bpp启用标志才能使用Multi_bpp.


当用户分配OSDRAM数据(OSDRAM地址和属性)时,根据Multi_BPP寄存器的开始,TW8836将属性数据解析为两种不同的含义。

如果OSDRAM地址用于Multi_BPP,则它将使用低半字节作为Multi_BPP字体的调色板组索引的开始。

TW8836字体OSD~第一节LUT_第7张图片

多BPP的R308上的LUT偏移值将乘以4用于只是调色板表上的位置,如果用户想要索引16-23作为3BPP字体,则R308中的偏移值将为4。

嘿嘿……此处仅提供相关函数名:

//---------------------------------

// OSDFont.C header
//---------------------------------
void WaitVBlank(int8u cnt);
void FOsdOnOff(int8u fOnOff, int8u Vdelay);
void FOsdSetFontWidthHeight(int8u width, int8u height );
void FOsdSetDeValue(void);

void FOsdSetAccessMode(int8u mode);

//---------------------------------
// FontOsd Palette
//---------------------------------
void FOsdSetPaletteColor(int8u index, int16u color, int8u vdelay);
void FOsdSetPaletteColorArray(int8u index, int16u *array, int8u size, int8u vdelay);
void FOsdSetDefPaletteColor(int8u mode);
void FOsdInitBpp3AlphaTable(int8u fCalculate);
void FOsdDefaultLUT( void );
void FOsdDumpPalette(int8u winno);


你可能感兴趣的:(OSD)