TI论坛
直播中

carey123

11年用户 1658经验值
擅长:可编程逻辑 嵌入式技术
私信 关注
[问答]

ths8200 CSM寄存器是不是可以调节输出色彩的,如何配置?


  • 现在有一个项目需要用到贵公司的ths8200,输入是1080P 60 Hz 30bit RGB 444,输出Ypbpr。现在调试上遇到一些问题,发现输出画面亮度有点亮,用K-8258信号发生器产生color-56  50%到100%亮度单色画面,红色和蓝色不同亮度下区分不明显,输入32灰阶发现低3灰阶和高3灰阶都饱和,颜色稍微有点偏红。使用了CSC转换,寄存器设置如下,还有请教一下CSM寄存器是不是可以调节输出色彩的,如何配置?忘回复,非常感谢。
    printf("rn ### 1080P ### rn");
    THS8200_WriteByte(0x03,0x81); // chip_ctl
    // CSC
    THS8200_WriteByte(0x04,0x00);
    THS8200_WriteByte(0x05,0xDA);
    THS8200_WriteByte(0x06,0x80);
    THS8200_WriteByte(0x07,0x78);
    THS8200_WriteByte(0x08,0x02);
    THS8200_WriteByte(0x09,0x0C);
    THS8200_WriteByte(0x0A,0x02);
    THS8200_WriteByte(0x0B,0xDC);
    THS8200_WriteByte(0x0C,0x81);
    THS8200_WriteByte(0x0D,0x84);
    THS8200_WriteByte(0x0E,0x81);
    THS8200_WriteByte(0x0F,0xDC);
    THS8200_WriteByte(0x10,0x00);
    THS8200_WriteByte(0x11,0x4A);
    THS8200_WriteByte(0x12,0x02);
    THS8200_WriteByte(0x13,0x0C);
    THS8200_WriteByte(0x14,0x80);
    THS8200_WriteByte(0x15,0x30);
    THS8200_WriteByte(0x16,0x00);
    THS8200_WriteByte(0x17,0x08);
    THS8200_WriteByte(0x18,0x01);//0x02);//cscoffset=0x79
    THS8200_WriteByte(0x19,0xE5);//0x01);
    THS8200_WriteByte(0x1C,0x20);
    // composite sync amplitude control
    THS8200_WriteByte(0x1D,0xFF);
    THS8200_WriteByte(0x1E,0x49);
    THS8200_WriteByte(0x1F,0xB6);
    THS8200_WriteByte(0x20,0xFF);
    THS8200_WriteByte(0x21,0xFF);
    THS8200_WriteByte(0x22,0xFF);
    THS8200_WriteByte(0x23,0x13);
    THS8200_WriteByte(0x24,0x15);
    // horizontal timing setup
    THS8200_WriteByte(0x25,0x2C);
    THS8200_WriteByte(0x26,0x58);
    THS8200_WriteByte(0x27,0x2C);
    THS8200_WriteByte(0x28,0x84);
    THS8200_WriteByte(0x29,0x00);
    THS8200_WriteByte(0x2A,0xC0);
    THS8200_WriteByte(0x2B,0x00);
    THS8200_WriteByte(0x2C,0x00);
    THS8200_WriteByte(0x2D,0x00);
    THS8200_WriteByte(0x2E,0x00);
    THS8200_WriteByte(0x2F,0x58);
    THS8200_WriteByte(0x30,0x00);
    THS8200_WriteByte(0x31,0x00);
    THS8200_WriteByte(0x32,0x58);
    THS8200_WriteByte(0x33,0x00);
    THS8200_WriteByte(0x34,0x08);
    THS8200_WriteByte(0x35,0x98);
    THS8200_WriteByte(0x36,0x80);
    THS8200_WriteByte(0x37,0x02);
    THS8200_WriteByte(0x38,0x80);
    THS8200_WriteByte(0x39,0x44);
    THS8200_WriteByte(0x3A,0x65);
    THS8200_WriteByte(0x3B,0x65);
    // CSM setup not required if not used
    THS8200_WriteByte(0x4F,0x00);
    //discrete output sync control
    THS8200_WriteByte(0x70,0x18);
    THS8200_WriteByte(0x71,0x48);
    THS8200_WriteByte(0x72,0x44);
    THS8200_WriteByte(0x73,0x17);
    THS8200_WriteByte(0x74,0x04);
    THS8200_WriteByte(0x75,0x65);
    THS8200_WriteByte(0x76,0x00);
    THS8200_WriteByte(0x77,0x02);
    THS8200_WriteByte(0x78,0x32);
    // discrete input sync control - use to align picture
    THS8200_WriteByte(0x79,0x08);//THS8200_WriteByte(0x79,0x00);
    THS8200_WriteByte(0x7A,0x17);//0x00);//h
    THS8200_WriteByte(0x7B,0x00);
    THS8200_WriteByte(0x7C,0x04);//0x01); //v
    THS8200_WriteByte(0x82,0x1B);

回帖(1)

HCPcry

2025-2-5 17:22:07
THS8200是一款视频转换芯片,用于将数字视频信号转换为模拟视频信号。在您的项目中,您需要将1080P 60 Hz 30bit RGB 444的输入信号转换为Ypbpr输出信号。您提到了输出画面亮度过亮,红色和蓝色在不同亮度下区分不明显,以及输入32灰阶时低3灰阶和高3灰阶都饱和,颜色稍微有点偏红的问题。这些问题可能与CSC(Color Space Conversion)设置有关。

CSM(Color Space Matrix)寄存器确实可以调节输出色彩。CSM寄存器用于设置CSC转换矩阵,以实现RGB到YCbCr的转换。以下是如何配置CSM寄存器的步骤:

1. 首先,您需要确定CSC转换矩阵的值。这些值可以通过查找THS8200的数据手册或使用专业的CSC转换工具来获得。通常,这些值是固定的,但在某些情况下,您可能需要根据输入信号的特性进行调整。

2. 接下来,您需要将这些值写入THS8200的CSM寄存器。CSM寄存器通常位于0x04到0x0B的地址范围内。每个寄存器存储一个转换矩阵的元素。例如,0x04寄存器存储Y分量的转换系数,0x05寄存器存储Cb分量的转换系数,依此类推。

3. 将CSC转换矩阵的值写入CSM寄存器后,您需要重新配置CSC寄存器(例如0x03和0x04寄存器)以启用CSC转换。

4. 最后,您需要检查其他与色彩相关的寄存器设置,例如亮度、对比度、饱和度和色调等。这些寄存器的值可能会影响输出画面的色彩表现。

以下是您的代码示例中的CSC寄存器设置:

```c
printf("rn ### 1080P ### rn");
THS8200_WriteByte(0x03,0x81); // chip_ctl
// CSC
THS8200_WriteByte(0x04,0x0 ...
```

您需要确保CSC寄存器设置正确,并根据需要调整CSM寄存器的值。如果问题仍然存在,您可能需要进一步检查输入信号的特性,以及THS8200的其他设置,例如时钟设置、同步信号处理等。希望这些信息对您有所帮助。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分