PNG 寄存器描述
0x0C00 INFLATE_INT
默认值:0x00000000 | Inflate 中断使能 (Inflate Interrupt Enable) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:3 | - | - | - |
2 | R/W | 0x0 | BIT_REQ_INT_EN 请求bitsteam中断控制
DEC_REQ_INT_EN 用于控制解码所需要的原始码流不够需要请求下笔数据时是否向CPU发出中断请求。当DEC_REQ_INT_EN为1时,产生中断请求,否则不产生中断请求。是否产生中断请求,不影响相应状态标志位的产生。 |
1 | R/W | 0x0 | DEC_ERR_INT_EN 解码error中断控制
DEC_ERR_INT_EN用于控制解码发生错误结束后是否向CPU发出中断请求。当DEC_ERR_INT_EN为1时,产生中断请求,否则不产生中断请求。是否产生中断请求,不影响相应状态标志位的产生。 |
0 | R/W | 0x0 | DEC_FINISH_INIT 解码结束中断控制
DEC_FINISH_INT_EN用于控制正常解码结束后是否向CPU发出中断请求。当DEC_FINISH_INT_EN为1时,产生中断请求,否则不产生中断请求。是否产生中断请求,不影响相应状态标志位的产生。 |
0x0C04 INFLATE_STATUS
默认值:0x00000000 | Inflate 解码状态 (Inflate Status) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:24 | - | - | - |
23:22 | R | 0x0 | DEFILTER_ERR
|
21:19 | R | 0x0 | WDMA_ERR 写 DMA 出错 |
18:15 | R | 0x0 | RDMA_ERR 读 DMA 出错 |
14:11 | R | 0x0 | LZ77_ERR LZ77解码error
|
10:8 | R | 0x0 | HUFF_ERR huffman解码 error
|
7:5 | R | 0x0 | PC_ERR png文件头解码错误
|
4 | R | 0x0 | OUT_BUF_OVERFLOW
|
3 | - | - | - |
2 | R/W1C | 0x0 | BIT_REQ_INT_FLAG 请求bitstream标记状态当执行当前任务过程中发现码流不够,则暂停当前任务并向CPU发送中断信号后,该位置1。软件向该位写1则清除相应中断 |
1 | R/W1C | 0x0 | ERR_INIT_FLAG 解码error标记状态当执行当前任务过程中发现码流错误,则停止当前任务并向CPU发送中断信号后,该位置1。软件向该位写1则清除相应中断 |
0 | R/W1C | 0x0 | FINISH_INIT_FLAG 解码结束标记状态当完成当前任务并向CPU发送中断信号后,该位置1。主控向该位写1则清除相应中断。 |
0x0C08 INFLATE_START
默认值:0x00000000 | Inflate 解码开始 (Inflate START) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:1 | - | - | - |
0 | R/W | 0x0 | START
写“1”会自动清零 |
0x0C10 INFLATE_CTRL
默认值:0x00000000 | Inflate 解码控制 (Inflate Control) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:13 | - | - | - |
12:11 | R/W | 0x0 | BIT_DEPTH 位宽 0: 8 bits 只支持 8bit |
10:8 | R/W | 0x6 | COLOR_TYPE 格式类型
|
7:2 | - | - | - |
1:0 | R/W | 0x0 | DEC_TYPE_FLAG 解码类型
此标记用来指示解码类型,当解码类型为Inflate and pngdefilter,需要设置PNG相关参数 |
0x0C14 PNG_SIZE
默认值:0x00000000 | PNG 图像大小 (PNG Picture Size) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:29 | - | - | - |
28:16 | R/W | 0x0 | HEIGHT PNG图片高度 |
15:13 | - | - | - |
12:0 | R/W | 0x0 | WIDTH PNG图片宽度 |
0x0C18 PNG_OUTPUT_STRIDE
默认值:0x00000000 | PNG 输出线宽 (PNG Line Stride) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:15 | - | - | - |
14:0 | R /W | 0x0 | STRIDE PNG输出对齐 |
0x0C1C PNG_OUTPUT_FORMAT
默认值:0x00000000 | PNG 解码输出颜色格式 (PNG Output Format) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:3 | - | - | - |
2:0 | R/W | 0x0 | OUTPUT_FORMAT
PNG8, PNG24, PNG32都可以设置以上任意像素格式,当PNG原图中不包含alpha通道的时候,选择有alpha通道的格式,alpha值固定为0xFF。当PNG原图中包含alpha通道,输出格式中不含alpha,则alpha信息丢失。当PNG8_PALETTE_BYPASS为1时,输出格式OUTPUT_FORMAT设置无效 |
0x0C20 INPUT_BS_START_ADDR
默认值:0x00000000 | 输入码流起始地址 (Input Bitstream Start Address) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:4 | R/W | 0x000_0000 | INPUT_BS_START_ADDR[31:4] 原始码流缓冲区起始位置,低4位固定为0。 |
3:0 | RO | 0x00 | 固定为0 |
0x0C24 INPUT_BS_END_ADDR
默认值:0x00000000 | 输入码流结束地址 (Input Bitstream End Address) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:4 | R/W | 0x000_0000 | INPUT_BS_END_ADDR[31:4] 原始码流缓冲区结束位置 |
3:0 | RO | 0xF | 固定为全1 |
0x0C28 INPUT_BS_OFFSET
默认值:0x00000000 | 输入码流偏移 (Input Bitstream Offset) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:30 | - | - | - |
29:0 | R/W | 0x0000_0000 | BIT_OFFSET 当前有效配置数据开始的位置,该位置是相对于INPUT_BS_START_ADDR计算的,以bit为单位。最大128MB,也就是说码流缓冲区最大128MB。 |
0x0C2C INPUT_BS_LENGTH
默认值:0x00000000 | 输入码流长度 (Input Bitstream Length) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:30 | - | - | - |
29:0 | R/W | 0x0000_0000 | BIT_LENGTH 当前配置的有效数据长度,以bit为单位 |
0x0C30 OUTPUT_BUF_ADDR
默认值:0x00000000 | 解码输出地址 (Output Buffer Address) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:0 | R/W | 0x000_0000 | 解码输出buffer地址 |
0x0C34 OUTPUT_MAX_LENGTH
默认值:0x00000000 | 解码输出缓存最大长度 (Output Buffer Max Length) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:0 | R/W | 0x000_0000 | 解码输出buffer最大长度,以byte为单位。当解码输出的长度大于OUTPUT_BUF_ADDR的时候,将会停止解码,防止越界访问内存 |
0x0C38 OUTPUT_COUNT
默认值:0x00000000 | 解码输出数据长度 (Output Data Count) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:0 | RO | 0x000_0000 | 解码输出到OUTPUT_BUF_ADDR的数据,以byte为单位的计数,启动解码后将从零开始计数 |
0x0C40 INFLATE_WINDOW_BUF_ADDR
默认值:0x00000000 | LZ77 窗口缓存地址 (Inflate Window Buffer Address) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:10 | R/W | 0x000_0000 |
LZ77窗口buffer地址的高22bits LZ77的DICT Buffer大小为32K Bytes |
9:0 | RO | 0x00 | LZ77窗口buffer地址 低10bits固定为0 |
0x0C44 PNG_PAL_BUF_ADDR
默认值:0x00000000 | PNG索引色缓存地址 (PNG Pallete Buffer Address) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:10 | R/W | 0x000_0000 | PNG索引色缓存buffer 地址的高22bits大小为图像宽 |
9:0 | RO | 0x00 | LZ77窗口buffer地址 低10bits固定为0 |
0x0C48 DATA_VALID
默认值:0x00000000 | 输入码流数据有效标志 (Data Valid Flag) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31 | R/W | 0x0 | DATA_VALID 如果该位置1,则表示当前配置的码流数据已经有效写入原始码流缓冲区,VE可以预取码流数据到内部的缓冲区,等待启动解码;如果该位置0,则表示码流数据还没有正确写入原始码流缓冲区。 |
30:2 | - | - | - |
1 | R/W | 0x0 | DATA_LAST 该位为1表示当前配置的数据是一个完整解码的最后一笔数据;该位为0则表示当前配置的数据不是一个完整解码的最后一笔数据,当前解码任务完成后需要硬件保持状态,待下笔数据配置后继续完成一个完整解码。 |
0 | R/W | 0x0 | DATA_FIRST 该位为1表示当前配置的数据是一个完整解码的第一笔数据;该位为0则表示当前配置的数据不是一个完整解码的第一笔数据,当前解码任务需要承接前一次的解码继续完成一个完整解码。 |
0x0C4C PNG_PALETTE_ADDR
默认值:0x00000000 | PNG 索引表地址 (PNG Palette Buffet Address) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:10 | R/W | 0x000_0000 | PNG 调色板地址的高22bits PNG调色板空间的大小为1K 调色板空间的大小为1K Bytes,按照索引顺序排列,包含A,R, G, B四个通道,总共可以索引256色 |
9:0 | RO | 0x00 | PNG 调色板地址低10bits固定为0 |