USER GUIDE / IMAGE INPUT & ENCODING / IPU / REGISTER DESCRIPTION
寄存器描述
寄存器说明
寄存器和字段描述
IPU_FM_CONTROL 寄存器(IPU_FM_CONTROL, 0x0000)
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:1 | Reserved | 写入无影响,读取为零。 | R |
| 0 | IPU_CHIP_EN | IPU模块启用标志。复位后,该位将保持为1。因此 写入该位无影响,读取时为常值0x1。 | RW |
IPU_STATUS 寄存器(IPU_STATUS, 0x0004)
IPU_STATUS 寄存器包含一些IPU 操作的状态。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:16 | ID | IPU版本号。写入无影响。 读取为0x8001。 | R |
| 15:7 | Reserved | 写入无影响,读取为零。 | R |
| 6:4 | MSTATUS | IPU主状态。 000:IPU空闲 其他值:IPU正在运行 | R |
| 3 | Reserved | 写入无影响,读取为零。 | R |
| 2 | SIZE_ERR | 大小错误标志。 0:大小正常 1:大小错误 | R |
| 1 | Reserved | 写入无影响,读取为零。 | R |
| 0 | OUT_END | 输出终止标志。 0:输出终止未完成 1:输出终止已完成 | RW |
- 如果GLB_CTRL.IRQ_EN 设置为1,一旦OUT_END 设置为1(表示帧的后处理完成),就会发出低电平有效的中断请求,直到相应的软件处理程序读取IPU_STATUS 并清除结束标志。
D_FMT 寄存器(D_FMT, 0x0008)
D_FMT 寄存器用于设置输出数据的格式。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:7 | Reserved | 写入无影响,读取为零。 | R |
| 6:3 | OUT_ARGB_OFT | argb type. 4'b0000: ARGB4'b0001: ARBG4'b0010: AGRB 4'b0011: AGBR4'b0100: ABRG4'b0101: ABGR | RW |
| 2:0 | OUT_FMT | Pic type. 3'b000: ARGB 3'b001: RGB(每个像素占用4个字节的内存存储空间) 3'b010: NV12 3'b011: NV21 3'b101: HSV | RW |
Y_ADDR 寄存器(Y_ADDR, 0x000C)
Y_ADDR 寄存器用于指示PSRAM 中的大图Y 起始数据地址。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | Y_ADDR | 1. 8字节对齐。 2. NV格式时表示Y数据的起始地址 3.YUV422、ARGB8888格式时表示像素数据的起始地址 | RW |
UV_ADDR 寄存器(UV_ADDR, 0x0010)
UV_ADDR 寄存器用于指示PSRAM 中的大图UV 起始数据地址。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | UV_ADDR | 1. 8字节对齐。 2. NV格式时表示UV数据缓冲区的起始地址。 | RW |
Y_ADDR_PP 寄存器(Y_ADDR_PP, 0x01C0)
Y_ADDR_PP 寄存器用于指示PSRAM 中的乒乓BUFF 大图Y 起始数据地址。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | Y_ADDR_PP | 1. 8字节对齐 2. NV格式时表示乒乓BUFF Y数据的起始地址 3.YUV422、ARGB8888格式时表示像素数据的起始地址 | RW |
UV_ADDR_PP 寄存器(UV_ADDR_PP, 0x01C4)
UV_ADDR_PP 寄存器用于指示PSRAM 中的乒乓BUFF 大图UV 起始数据地址。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | UV_ADDR_PP | 1. 8字节对齐。 2.乒乓BUFF UV数据的起始地址 | RW |
IN_FM_GS 寄存器(IN_FM_GS, 0x0018)
IN_FM_GS 寄存器用于指示大图输入图像的几何尺寸。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:16 | IN_FM_W | 输入帧的宽度(单位:像素)。 该值等于像素数。 | RW |
| 15:0 | IN_FM_H | 输入帧的高度 | RW |
Y_STRIDE 寄存器(Y_STRIDE, 0x001C)
Y_STRIDE 寄存器用于指示大图Y 源数据的行跨距。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:24 | Reserved | 写入无影响,读数为零。 | R |
| 23:0 | Y_STRIDE | 1. 8字节对齐 2. NV数据格式下,用于设置Y行距 3. YUV422、ARRGB8888,用于设置一行像素的行距 | RW |
UV_STRIDE 寄存器(UV_STRIDE, 0x0020)
UV_STRIDE 寄存器用于指示大图UV 源数据的行跨距。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:16 | U_STRIDE | 1. 8字节对齐。 2. NV格式时表示UV数据源的行距。 | RW |
| 15:0 | Reserved | 写入无影响,读取为零。 | RW |
OUT_ADDR 寄存器(OUT_ADDR, 0x0024)
OUT_ADDR 寄存器用于表示外部存储器中输出缓存器中的起始地址。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | OUT_ADDR | 1. 8字节对齐 2. NV数据格式下,用于设置Y起始地址。 3.YUV422、ARGB8888、RGB888数据格式下,用于设置像素数 据的起始地址。 4.HSV数据格式下,用于设置S起始地址 | RW |
OUT_STRIDE 寄存器(OUT_STRIDE, 0x002C)
OUT_STRIDE 寄存器用于指示输出图像的行跨距。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:16 | Reserved | 写入无影响,读数为零。 | R |
| 15:0 | OUT_STRIDE | 1. 8字节对齐 2. NV数据格式下,用于设置Y行跨距。 3.YUV422、ARGB8888、RGB888数据格式下,用于设置像素数据 行跨距。 4.HSV数据格式下,用于设置S行跨距 | RW |
UV_OUT_ADDR 寄存器(UV_OUT_ADDR, 0x00B4)
UV_OUT_ADDR 寄存器用于设置UV 起始地址。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | UV_OUT_ADDR | 1. 8字节对齐 2. NV12/NV21数据格式下,用于设置UV起始地址 3.HSV数据格式下,用于设置H起始地址 | RW |
UV_OUT_STRIDE 寄存器(UV_OUT_STRIDE, 0x00B8)
UV_OUT_STRIDE 寄存器用于设置UV 输出格式的行跨距。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:16 | Reserved | 写入无影响,读数为零。 | R |
| 15:0 | UV_OUT_S | 1. 8字节对齐 2. NV12/NV21数据格式下,用于设置UV行跨距 3.HSV数据格式下,用于设置H行跨距 | RW |
OUT_V_ADDR 寄存器(OUT_V_ADDR, 0x0030)
OUT_V_ADDR 寄存器用于指示外部存储器中输出缓冲器的V 数据起始地址。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | OUT_V_ADDR | 1. 8字节对齐 | RW |
OUT_V_STRIDE 寄存器(OUT_V_STRIDE, 0x0034)
OUT_V_STRIDE 寄存器用于指示输出图像的V 数据行跨距。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:16 | Reserved | 写入无影响,读数为零。 | R |
| 15:0 | OUT_V_STRIDE | 1. 8字节对齐 2.HSV数据格式下,用于设置V行跨距 | RW |
IPU_REG_CTRL 寄存器(IPU_REG_CTRL, 0x0064)
IPU_REG_CTRL 寄存器用于使您配置的寄存器工作。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:27 | Reserved | 写入无影响,读数为零。 | R |
| 26 | RD_ARB_RY | 读取仲裁器模式和优先级就绪 | RW |
| 25 | OSD_BK_RY | OSD大图通道地址、跨距、宽度、高度、pic_type、启用globe A 准备就绪 | RW |
| 24:22 | Reserved | 写入无影响,读取为不确定的值 | RW |
| 21 | OSD_CH0_RY | OSD小图通道地址、跨距、宽度、高度、pic_type、启用、xpos、 ypos、globe A准备就绪 | RW |
| 20 | UV_STR_RY | 新目标UV帧跨距就绪。 | RW |
| 19 | UV_D_RY | 新目标UV帧起始地址就绪 | RW |
| 18 | V_STR_RY | 新目标V帧跨距就绪。 | RW |
| 17 | V_D_RY | 新目标V帧起始地址就绪 | RW |
| 16:13 | Reserved | 写入无影响,读取为零。 | R |
| 12 | DSTR_RY | 新的目标位置跨距(OUT_STRIDE)已就绪。 | RW |
| 11 | Reserved | 写入无影响,读取为零。 | RW |
| 10 | CSTR_RY | 新的UV跨距(UV_STRIDE)已就绪 | RW |
| 9 | YSTR_RY | 新的Y跨距(Y_STRIDE)已就绪 | RW |
| 8 | IGS_RY | 新的输入几何尺寸(IN_FM_GS)已就绪。 | RW |
| 7 | DF_RY | 新的输出数据格式(OUT_D_FMT )已就绪。 | RW |
| 6 | CTRL_RY | 新的帧控制(IPU_FM_CONTROL )已就绪 | RW |
| 5:4 | Reserved | 写入无影响,读取为零。 | RW |
| 3 | D_RY | 新目标地址就绪。 | RW |
| 2 | V_RY | 新的源V地址就绪。 | RW |
| 1 | U_RY | 新U源地址就绪。 | RW |
| 0 | Y_RY | 新的Y源地址就绪。 | RW |
- 当xx_RY 位被置1 时,IPU 将在下一帧中使用新的相应寄存器,并使用IPU_REG_CTRL 中相应位为0 的旧地址值。
IPU_TRIGGER 寄存器(IPU_TRIGGER, 0x0074)
IPU_TRIGGER 寄存器用于控制IPU 的运行/停止状态。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:9 | Reserved | 写入无影响,读取为零。 | R |
| 8:6 | DEBUG_SEL | 从IPU选择调试信号,调试信号应从寄存器0x1b4读取 | RW |
| 5 | Reserved | 写入无影响,读取为零。 | R |
| 4 | REFRESH_MODE | 0:单帧模式(在帧结束后需软件配置RUN启动IPU) 1:连续帧模式(在帧结束后硬件自动启动IPU) 注意: 1、在连续帧模式下,软件必须为输入的大图和小图各分配两块 BUFF,用于IPU做乒乓操作。相对应的,要配置寄存器 0x1C0~0x1D0。 2、在连续帧模式下,原BUFF和乒乓BUFF除了源地址以外, 其他的配置共用同一个寄存器 | |
| 3 | RESET | 重置 | W |
| 2 | DPU_EN | 与DPU直通接口使能 0:数据通过写DMA输出至PSRAM 1:数据通过DPU半直通接口输出至DPU | R |
| 1 | STOP | 停止IPU,IPU将立即停止在安全状态。 | W |
| 0 | RUN | 新的帧配置需要运行。 | RW |
GLB_CTRL 寄存器(GLB_CTRL, 0x007C)
GLB_CTRL 寄存器用于配置IPU 的全局信号,如IRQ 启用等。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:1 | Reserved | 写入无影响,读取为零。 | R |
| 0 | IRQ_EN | 启用中断 0:禁用 1:启用 | R/W |
OSD_IN_CH0_Y_ADDR 寄存器(OSD_IN_CH0_Y_ADDR, 0x00BC)
OSD_IN_CH0_Y_ADDR 寄存器用于设置OSD 小图通道的Y 起始地址。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | OSD_IN_CH0_Y_ADDR | 1.8字节对 2.NV格式下,设置Y起始地址 3.ARGB32、ARGB1555、RGB32、2bit模式下设置像素数 据起始地址。 | RW |
OSD_IN_CH0_Y_STRIDE 寄存器(OSD_IN_CH0_Y_STRIDE, 0x00C0)
OSD_IN_CH0_Y_STRIDE 寄存器用于设置OSD 小图通道的Y 行跨距。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:16 | Reserved | 写入无影响,读数为零。 | R |
| 15:0 | OSD_IN_CH0_Y_STRIDE | 1.8字节对齐 2.NV格式下,设置Y行跨距 3.ARGB32、ARGB1555、RGB32、2bit模式下设置像素 行跨距。 | RW |
OSD_IN_CH0_UV_ADDR 寄存器(OSD_IN_CH0_UV_ADDR, 0x00C4)
OSD_IN_CH0_UV_ADDR 寄存器用于设置OSD 小图通道的UV 起始地址。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | OSD_IN_CH0_UV_ADDR | 1.8字节对齐 2.NV格式下,设置UV起始地址 | RW |
OSD_IN_CH0_UV_STRIDE 寄存器(OSD_IN_CH0_UV_STRIDE, 0x00C8)
OSD_IN_CH0_UV_STRIDE 寄存器用于设置OSD 小图通道的UV 行跨距。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:16 | Reserved | 写入无影响,读数为零。 | R |
| 15:0 | OSD_IN_CH0_UV_STRIDE | 1.8字节对齐 2.NV格式下,设置UV行跨距 | RW |
OSD_IN_CH0_Y_ADDR_PP 寄存器(OSD_IN_CH0_Y_ADDR_PP, 0x01C8)
OSD_IN_CH0_Y_ADDR_PP 寄存器用于指示PSRAM 中的乒乓BUFF 小图Y 起始数据地址。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | OSD_IN_CH0_Y_ADDR_PP | 1.8字节对齐 2.NV格式下,设置乒乓BUFF Y起始地址 3、ARGB32、ARGB1555、RGB32、2bit模式下设置乒乓BUFF 像素数据起始地址。 | RW |
OSD_IN_CH0_UV_ADDR_PP 寄存器(OSD_IN_CH0_UV_ADDR_PP, 0x01CC)
OSD_IN_CH0_UV_ADDR_PP 寄存器用于指示 PSRAM 中的乒乓BUFF 小图UV 起始数据地址。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | OSD_IN_CH0_UV_ADDR_PP | 1. 8字节对齐 2.BUFF UV 乒乓数据的起始地址 | RW |
BUFF_STATE 寄存器(BUFF_STATE, 0x01D0)
BUFF_STATE 寄存器用于指示乒乓BUFF 的状态。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:13 | Reserved | 写入无影响,读取为零。 | R |
| 12 | CH0_BUFF1_STATE | 小图BUFF1状态 1:BUFF1已就绪,IPU可从BUFF1读取数据 0:BUFF1未就绪,IPU不可从BUFF1读取数据 | RW |
| 11:9 | Reserved | 写入无影响,读取为零。 | R |
| 8 | CH0_BUFF0_STATE | 小图BUFF0状态 1:BUFF0已就绪,IPU可从BUFF0读取数据 0:BUFF0未就绪,IPU不可从BUFF0读取数据 | RW |
| 7:5 | Reserved | 写入无影响,读取为零。 | R |
| 4 | BK_BUFF1_STATE | 大图BUFF1状态 1:BUFF1已就绪,IPU可从BUFF1读取数据 0:BUFF1未就绪,IPU不可从BUFF1读取数据 | RW |
| 3:1 | Reserved | 写入无影响,读取为零。 | R |
| 0 | BK_BUFF0_STATE | 大图BUFF0状态 1:BUFF0已就绪,IPU可从BUFF0读取数据 0:BUFF0未就绪,IPU不可从BUFF0读取数据 | RW |
- 在叠图时使用连续帧模式时,软件必须保证大图的BK_BUFF0_STATE 和BK_BUFF1_STATE 中有一个为1;以及小图的CH0_BUFF0_STATE 和CH0_BUFF1_STATE 中有一个为1。
- 在CSC 时使用连续帧模式时,软件必须保证BK_BUFF0_STATE 和BK_BUFF1_STATE 中有一个为1。
- 以BK_BUFF0_STATE 和BK_BUFF1_STATE 举例,2’b11 时IPU 轮询搬运两个BUFF 的帧数据(以帧为单位),2’b01 时IPU 循环搬运BUFF1 的帧数据,2’b10 时IPU 循环搬运BUFF0 的帧数据。
- BK_BUFF0_STATE 对应Y_ADDR(0x000C)和U_ADDR(0x0010),BK_BUFF1_STATE 对应Y_ADDR_PP(0x01C0)和UV_ADDR_PP(0x01C4);
- CH0_BUFF0_STATE 对应OSD_IN_CH0_Y_ADDR(0x00BC)和OSD_IN_CH0_UV_ADDR(0x00C4),BK_BUFF1_STATE 对应OSD_IN_CH0_Y_ADDR_PP(0x01C8)和OSD_IN_CH0_UV_ADDR_PP(0x01CC)。
- 配置IPU_TRIGGER.RUN 之前,BK_BUFF0_STATE 和CH0_BUFF0_STATE 必须为1。
OSD_CH0_GS 寄存器(OSD_CH0_GS, 0x00FC)
OSD_CH0_GS 寄存器用于指示小图通道图像的几何尺寸。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:16 | OSD_CH0_FM_W | 通道0帧OSD的宽度(单位:字节)。 | RW |
| 15:13 | Reserved | 写入无影响,读取为零。 | R |
| 12:0 | OSD_CH0_FM_H | 通道0帧OSD的高度(单位:字节)。 | RW |
- 如果是NV12/NV21 模式,OSD_CH0_FM_W 为一行中的像素数。
- 如果是ARGB/RGB 模式,OSD_CH0_FM_W 为像素数* 4。
- 小图通道图像的尺寸必须小于大图图像的尺寸。
- 在2 位模式下,OSD_CH0_FM_W 为一行中的像素数。
OSD_CH0_POS 寄存器(OSD_CH0_POS, 0x010C)
OSD_CH0_POS 寄存器用于指示小图通道图像在大图中的OSD 位置。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:16 | OSD_CH0_XPOS | 小图通道图像在大图上的x起始位置(单位:像素)。 | RW |
| 15:13 | Reserved | 写入无影响,读取时为零。 | R |
| 12:0 | OSD_CH0_YPOS | 小图通道图像在大图上的y起始位置(单位:像素)。 | RW |
OSD_CH0_PARA 寄存器(OSD_CH0_PARA, 0x011C)
OSD_CH0_PARA 寄存器用于设置小图通道OSD 功能的控制信号。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:30 | Reserved | 写入无影响,读取为零。 | R |
| 29 | CH0_PAD_SEL | 非叠图区域前/背景图选择 0:OSD_LAY_PADDING_ARGB为前景图,大图为背景图 1:OSD_LAY_PADDING_ARGB为背景图,大图为前景图 | RW |
| 28 | CH0_OSD_SEL | 叠图区域前/背景图选择 0:CH0(小图)为前景图,BK(大图)为背景图 1:CH0(小图)为背景图,BK(大图)为前景图 | RW |
| 27:26 | Reserved | 写入无影响,读取为零。 | R |
| 25:24 | CH0_CSC_CTL | 小图色彩空间转换控制,只有在使用OSD功能时需要配置。 2'b00:无色彩转换 2'b01:YUV至RGB转换 2'b10:RGB至YUV转换 | RW |
| 23 | CH0_MASK_EN | 小图通道屏蔽启用。 如果该位设置为1,则该通道的像素值将始终是 OSD_CH0_BAK_ARGB中的值。 0:禁用掩码。 1:启用掩码 | RW |
| 22:19 | CH0_OSDM | 小图通道OSD模式。 4'd0: source over4'd1: src 4'd2: dst4'd3: clear 4'd4: dst over4'd5: src in 4'd6: dst in4'd7: src out 4'd8: dst out4'd9: src at top 4'd10: dst at top4'd11: XOR | RW |
| 18 | CH0_PREM | 小图通道OSD预乘法器。 如果该位设置为0,则计算OSD的像素值为 OSD_R = Alpha x R OSD_G = Alpha x G OSD_B = Alpha x B 如果该位设置为1,则用于OSD计算的像素值不会改变。 0:预乘 1:不预乘 | RW |
| 17:14 | CH0_ARGB_TYPE | 小图通道ARGB类型。 4'b0000: ARGB4'b0001: ARBG4'b0010: AGRB | RW |
| 13:11 | CH0_PIC_TYPE | 图像类型 3'b000: ARGB 3'b001: RGB(每个像素占用4个字节的内存存储空间) 3'b010: NV12 3'b011: NV21 3'b100: RGBA1555(RGB序列由CH0_ARGB_TYPE决 定) 3’b101:2bit模式 | RW |
| 10:3 | CH0_GLO_A | 小图通道全局值 | RW |
| 2:1 | CH0_ALPHA_SEL | 小图通道0αsel. 2'b00:像素透明度 2'b01:全局透明度 2'b10:像素Alpha x(全局Alpha/256) | RW |
| 0 | CH0_EN | 启用小图通道dma 0:禁用 1:启用 | RW |
OSD_CH_BK_PARA 寄存器(OSD_CH_BK_PARA, 0x012C)
OSD_CH_BK_PARA 寄存器用于设置大图通道的控制信号。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:21 | Reserved | 写入无影响,读取为零。 | R |
| 20 | Reserved | 写入无影响,读取为不确定的值。 | RW |
| 19 | CH_BK_MASK_EN | 启用大图通道屏蔽 如果该位设置为1,则该通道的像素值将始终是 OSD_BK_BAK_ARGB中的值 0:禁用 1:启用 | RW |
| 18 | CH_BK_PREM | 大图通道OSD预乘法器。 如果该位设置为0,则计算OSD的像素值为 BK_R = Alpha x R BK_G = Alpha x G BK_B = Alpha x B 如果该位设置为1,则用于OSD计算的像素值不会改变。 0:预乘 1:不预乘 | RW |
| 17:14 | CH_BK_ARGB_TYPE | argb type. 4'b0000: ARGB4'b0001: ARBG4'b0010: AGRB 4'b0011: AGBR4'b0100: ABRG4'b0101: ABGR 4'b1000: RGBA4'b1001: RBGA4'b1010: GRBA 4'b1011: GBRA4'b1100: BRGA4'b1101: BGRA | RW |
| 13:11 | CH_BK_PIC_TYPE | Pic类型。 3’b000:ARGB8888 3'b010: NV12 3’b100:YUV422 | RW |
| 10:3 | CH_BK_GLO_A | 大图通道全局Alpha值 | RW |
| 2:1 | CH_BK_ALPHA_SEL | 大图通道alpha sel。 2'b00:像素Alpha 2'b01:全局Alpha 2'b10:像素Alpha x(全局Alpha/256) | RW |
| 0 | Reserved | 写入无影响,读取为零。 | R |
OSD_CH0_BAK_ARGB 寄存器(OSD_CH0_BAK_ARGB, 0x0130)
OSD_CH0_BAK_ARGB 寄存器用于设置小图通道的背景ARGB 值。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | OSD_CH0_BAK_ARGB | 当CH0_MASK_EN =1时,小图通道将为OSD功能输出 ARGB值。 如果大图图像格式为ARGB/RGB,则该寄存器的数据序列 也为ARGB。如果大图图像格式为NV12/NV21,则该寄存 器的数据序列为AYUV | RW |
OSD_CH_B_BAK_ARGB 寄存器(OSD_CH_B_BAK_ARGB, 0x0140)
OSD_CH_B_BAK_ARGB 寄存器用于设置大图通道的背景ARGB 值。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | OSD_CH_B_BAK_ARGB | 当CH_BK_MASK_EN =1时,大图通道将为OSD功能 输出该ARGB值。 该寄存器的数据序列为AYUV | RW |
CH0_CSC_C0_COEF 寄存器(CH0_CSC_C0_COEF, 0x0148)
CH0_CSC_C0_COEF 寄存器用于设置OSD 功能中YUV 至RGB 或RGB 至YUV 转换的小图 通道公式系数。如果在CSC 功能中,小图通道CSC 参数用于大图CSC 功能,设置如下: 1. ARGB/RGB 至NV:RGB 至YUV 转换参数 2. NV 至ARGB/RGB:YUV 至RGB 转换参数 3. NV 至HSV:YUV 至RGB 转换参数
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:20 | CH0_C01_COEF | 用于将YUV/YCbCr转换为RGB或将RGB转换为 YUV/YCbCr的C01系数。 | RW |
| 19:12 | Reserved | 写入无影响,读数为零。 | R |
| 11:0 | CH0_C00_COEF | YUV/YCbCr至RGB或RGB至YUV/YCbCr转换的C00 系数。 | RW |
- YUV 至RGB 转换公式:
R = C00*(Y –LUMA_OF) + C01*(Cr-CHROM_OF) + C02*(Cr-CHROM_OF)
G = C10*(Y – LUMA_OF) – C11*(Cb-CHROM_OF) – C12*(Cr-CHROM_OF)
B = C20*(Y – LUMA_OF) + C21*(Cb-CHROM_OF) + C22*(Cr-CHROM_OF)
推荐参数:
C00: 0x4adC01: 0C02: 0x669
C10: 0x4adC11: 0x193C12: 0x344
C20: 0x4adC21: 0x81AC22: 0x0 - RGB 至YUV 转换公式:
Y = C00*R + C01*G + C02*B + LUMA_OF
U = -C10*R – C11*G + C12*B + CHROM_OF
V = C20*R - C21*G - C22*B + CHROM_OF
推荐参数:
C00: 0x106C01: 0x202C02: 0x64
C10: 0x97C11: 0x129C12: 0x1C0
C20: 0x1C0C21: 0x177C22: 0x49
CH0_CSC_C1_COEF 寄存器(CH0_CSC_C1_COEF, 0x014C)
CH0_CSC_C1_COEF 寄存器用于设置YUV 至RGB 或RGB 至YUV 转换的公式系数。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:20 | CH0_C10_COEF | 用于将YUV/YCbCr转换为RGB或将RGB转换为 YUV/YCbCr的C10系数。 | RW |
| 19:12 | Reserved | 写入无影响,读取为零。 | R |
| 11:0 | CH0_C02_COEF | YUV/YCbCr至RGB或RGB至YUV/YCbCr转换的 C02系数。 | RW |
CH0_CSC_C2_COEF 寄存器(CH0_CSC_C2_COEF, 0x0150)
CH0_CSC_C2_COEF 寄存器用于设置YUV 至RGB 或RGB 至YUV 转换的公式系数。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:20 | CH0_C12_COEF | 用于将YUV/YCbCr转换为RGB或将RGB转换为 YUV/YCbCr的C12系数。 | RW |
| 19:12 | Reserved | 写入无影响,读数为零。 | R |
| 11:0 | CH0_C11_COEF | YUV/YCbCr至RGB或RGB至YUV/YCbCr转换的C11 系数。 | RW |
CH0_CSC_C3_COEF 寄存器(CH0_CSC_C3_COEF, 0x0154)
CH0_CSC_C3_COEF 寄存器用于设置YUV 至RGB 或RGB 至YUV 转换的公式系数。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:20 | CH0_C21_COEF | 用于将YUV/YCbCr转换为RGB或将RGB转换为 YUV/YCbCr的C21系数。 | RW |
| 19:12 | Reserved | 写入无影响,读数为零。 | R |
| 11:0 | CH0_C20_COEF | YUV/YCbCr至RGB或RGB至YUV/YCbCr转换的C20 系数。 | RW |
CH0_CSC_C4_COEF 寄存器(CH0_CSC_C4_COEF, 0x0158)
CH0_CSC_C4_COEF 寄存器用于设置YUV 至RGB 或RGB 至YUV 转换的公式系数。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:12 | Reserved | 写入无影响,读取为零。 | R |
| 11:0 | CH0_C22_COEF | 用于将YUV/YCbCr转换为RGB或将RGB转换为 YUV/YCbCr的C22系数。 | RW |
CH0_CSC_OFSET_PARA 寄存器(CH0_CSC_OFSET_PARA, 0x015C)
CH0_CSC_OFSET_PARA 寄存器用于设置YUV 至RGB 或RGB 至YUV 转换的公式系数。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:24 | Reserved | 写入无影响,读取为零。 | R |
| 23:16 | CH0_CHROM_OF | 色度偏移值。 | RW |
| 15:8 | Reserved | 写入无影响,读取为零。 | R |
| 7:0 | Ch0_LUMA_OF | Luma偏移值。 | RW |
RD_ARB_CTL 寄存器(RD_ARB_CTL, 0x01A8)
RD_ARB_CTL 寄存器用于控制读取仲裁器功能。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:7 | Reserved | 写入无影响,读数为零。 | R |
| 6:4 | CH1_PRIO | 通道1优先级 | RW |
| 3:1 | CH0_PRIO | 通道0优先级 该仲裁器中有2个通道,优先级值可从以下值中选择:0、1(从 高到低),如果ARB_MODE =0,则必须为2个通道分配一个 优先级值,且每个通道的优先级都应是唯一的。 | RW |
| 0 | ARB_MODE | 仲裁模式 0:固定优先级模式 1:循环模式 | RW |
CYC_NUM_ONE_FRA 寄存器(CYC_NUM_ONE_FRA, 0x01AC)
CYC_NUM_ONE_FRA 寄存器用于计算处理一帧数据的周期数。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | CLK_NUM_ONE_FRA | 处理一个成帧器的总周期数 | R |
OSD_LAY_PADDING_ARGB 寄存器(OSD_LAY_PADDING_ARGB, 0x01B0)
OSD_LAY_PADDING_ARGB 寄存器用于设置OSD 小图通道的填充ARGB/AYUV 值。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | OSD_LAY_PADDING_ARGB | OSD小图通道的填充ARGB/AYUV值。 注意:大图为YUV数据格式时,该寄存器对应AYUV 值;大图为RGB数据格式时,该寄存器对应ARGB值。 | RW |
DEBUG_INFO_SIGNALS 寄存器(DEBUG_INFO_SIGNALS, 0x01B4)
DEBUG_INFO_SIGNALS 寄存器用于为IPU 调试提供信号信息。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | DEBUG_INFO_SIGNALS | 调试信息信号,该寄存器的值取决于寄存器0x74中的 DEBUG_SEL: DEBUG_SEL: 3'b000:通道0模块调试信号 3'b001:通道1模块调试信号 3'b010:通道2模块调试信号 3'b011:通道3模块调试信号 3'b100:通道后台模块调试信号 3'B101:数据控制模块调试信号 3'B110:yuv2nv模块调试信号 | R |
2BIT_BIT_1 寄存器(2BIT_BIT_1, 0x1F4)
在2 位模式下,当相应位设置为1 时,该寄存器用于ALPHA 和RGB 控制。在配置IPU_TRIGGER 寄存器运行ipu 之前,软件需要初始化数据到OSD 小图通道的Y 起始地址,初始化数据作为开关决定 了2BIT_BIT_1 和2BIT_BIT_0 之间的选择。硬件通过移位从OSD 小图通道Y 起始地址读取的数据来 分析2 位数据,高位决定字母在2BIT_BIT_1_ALPHA 和2BIT_BIT_0_ALPHA 之间的选择,低位决定颜 色在2BIT_BIT_1_COLOR 和2BIT_BIT_0_COLOR 之间的选择。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:24 | 2BIT_BIT_1_ALPHA | 在2位模式下,第1位的ALPHA值设为1。 从OSD小图通道Y起始地址移位读取2位数据后,只有 当高位值为1时,才会选择该寄存器值。 复位值:8'hFF | RW |
| 23:0 | 2BIT_BIT_1_COLOR | 在2位模式下,位0设置为1的RGB值。 从OSD小图通道Y起始地址移位读取2位数据后,只有 当低位值为1时,才会选择该寄存器值。 复位值:24'hFFFFFF | RW |
2BIT_BIT_0 寄存器(2BIT_BIT_0, 0x1F8)
在2 位模式下,当相应位设置为0 时,该寄存器用于ALPHA 和RGB 控制。在配置IPU_TRIGGER 寄存器运行ipu 之前,软件需要初始化数据到OSD 小图通道的Y 起始地址,初始化数据作为开关决定 了2BIT_BIT_1 和2BIT_BIT_0 之间的选择。硬件通过移位从OSD 小图通道Y 起始地址读取的数据来 分析2 位数据,高位决定字母在2BIT_BIT_1_ALPHA 和2BIT_BIT_0_ALPHA 之间的选择,低位决定颜 色在2BIT_BIT_1_COLOR 和2BIT_BIT_0_COLOR 之间的选择。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:24 | 2BIT_BIT_0_ALPHA | 在2位模式下,第1位的ALPHA值设置为0。 从OSD小图通道的Y起始地址移位读取2位数据后,只 有当高位值为0时,才会选择该寄存器值。 复位值:8'h0 | RW |
| 23:0 | 2BIT_BIT_0_COLOR | 在2位模式下,第0位的RGB值设置为0。 从OSD小图通道Y起始地址移位读取2位数据后,只有 当低位值为0时,才会选择该寄存器值。 复位值:24'h0 | RW |
2BIT_MASK 寄存器(2BIT_MASK, 0x1FC)
该寄存器用于屏蔽2 位模式。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:1 | Reserved | 写入无影响,读取为零。 | R |
| 0 | 2BIT_MASK | 是否屏蔽2位模式。 1'b1:屏蔽; 1'b0:取消屏蔽。 复位值:1'b0。 | RW |