9.3.10. JPEG寄存器描述
9.3.10.1. 0x2000 JPEG_START
默认值:0x00000000 |
JPEG启动解码 (JPEG Start) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:1 |
- |
- |
-
|
0 |
R/W |
0x0 |
1:启动jpeg解码
|
9.3.10.2. 0x2004 JPEG_STATUS
默认值:0x00000000 |
JPEG 解码状态 (JPEG Status) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:4 |
- |
- |
-
|
3 |
R |
0x0 |
OVERFLOW
解码输出数据超出输出buffer的结束地址,VE停止解码并向主控
| 发送中断信号,该位置1
|
2 |
R |
0x0 |
BIT_REQ
读完最后一笔数据后解码还未结束,则认为数据不够,VE停止解
码并向主控发送中断信号,该位置1
|
1 |
R |
0x0 |
JPEG_ERROR
当执行当前任务过程中发现码流错误,则停止当前任务并向主控
发送中断信号后,该位置1
|
0 |
R |
0x0 |
JPEG_FINISH
解码结束时向主控发送中断信号后,该位置1
|
9.3.10.3. 0x200C JPEG_START_POS
默认值:0x00000000 |
JPEG解码起始位置 (JPEG Start Position) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:28 |
- |
- |
-
|
27:16 |
R/W |
0x0 |
STRAT_POS_Y
解码开始Y坐标
|
15:12 |
- |
- |
-
|
11:0 |
R/W |
0x0 |
STRAT_POS_X
解码开始X坐标
|
9.3.10.4. 0x2010 JPEG_CTRL
默认值:0x00000000 |
JPEG 模式控制 (JPEG Control) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:15 |
- |
- |
-
|
14:12 |
R/W |
0x0 |
AC_HUFFMAN_IDX
ac系数huffman表索引值
|
11 |
- |
- |
-
|
10:8 |
R/W |
0x0 |
DC_HUFFMAN_IDX
dc系数huffman表索引值
|
7 |
- |
- |
-
|
6 |
R/W |
0x0 |
USR_HUFF_EN
1:使用DHT中定义的huffman表
0:使用默认huffman表(VE内部生成,不需要写huffman表数据)
|
5 |
- |
- |
-
|
4 |
R/W |
0x0 |
DIR
1:编码模式使用
0:解码模式使用
|
3 |
R/W |
0x0 |
ENCODE
1:编码模式
0:解码模式
|
2:0 |
- |
- |
-
|
9.3.10.5. 0x2014 JPEG_SIZE
默认值:0x00000000 |
JPEG 图像大小 (JPEG Size) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:16 |
R/W |
0x0 |
JPEG_HSIZE
图像宽度,需要按MCU对齐
|
15:0 |
R/W |
0x0 |
JPEG_VSIZE
图像高度,需要按MCU对齐
|
9.3.10.6. 0x2018 JPEG_MCU_INFO
默认值:0x00000000 |
JPEG MCU信息 (JPEG MCU Info) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:20 |
- |
- |
-
|
19:16 |
R/W |
0x0 |
BLK_NUM
一个MCU中8x8blk的数量
|
15 |
- |
- |
-
|
14:12 |
R/W |
0x0 |
COMP_NUM
通道数量
|
11:10 |
R/W |
0x0 |
Y_H_COUNT
一个MCU中Y分量水平方向上8x8块个数,对应SOF中解析的
h_count信息
|
9:8 |
R/W |
0x0 |
Y_V_COUNT
一个MCU中Y分量垂直方向上8x8块个数,对应SOF中解析的
v_count信息
|
7:6 |
R/W |
0x0 |
CB_H_COUNT
一个MCU中Cb分量水平方向上8x8块个数,对应SOF中解析的
h_count信息
|
5:4 |
R/W |
0x0 |
CB_V_COUNT
一个MCU中Cb分量垂直方向上8x8块个数,对应SOF中解析的
v_count信息
|
3:2 |
R/W |
0x0 |
CR_H_COUNT
一个MCU中Cr分量水平方向上8x8块个数,对应SOF中解析的
h_count信息
|
1:0 |
R/W |
0x0 |
CR_V_COUNT
一个MCU中Cr分量垂直方向上8x8块个数,对应SOF中解析的
v_count信息
|
9.3.10.7. 0x201C JPEG_ROTMIR
默认值:0x00000000 |
JPEG 旋转镜像配置 (JPEG Rotate/Mirror Config) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:5 |
- |
- |
-
|
4 |
R/W |
0x0 |
ROTMIR_EN
0:不使能旋转镜像
1:使能旋转镜像
|
3 |
R/W |
0x0 |
Horizontal MIRROR
0-不使能水平镜像
1-使能水平镜像
|
2 |
R/W |
0x0 |
Vertical MIRROR
0-不使能垂直镜像
1-使能垂直镜像
|
1:0 |
R/W |
0x0 |
ROTATE
0-不旋转
1-逆时针旋转90度
2-逆时针旋转180度
3-逆时针旋转270度
|
9.3.10.8. 0x2020 JPEG_SCALE
默认值:0x00000000 |
JPEG 缩放配置 (JPEG Scaledown Config) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:6 |
- |
- |
-
|
5 |
R/W |
0x0 |
SCALE_EN
0:不使能缩放功能
1:使能缩放功能
|
3:2 |
R/W |
0x0 |
H_SCALE
水平方向scale系数
0:不缩放
1:1/2缩放
2:1/4缩放
3:1/8缩放
|
1:0 |
R/W |
0x0 |
V_SCALE
垂直方向scale系数
0:不缩放
1:1/2缩放
2:1/4缩放
3:1/8缩放
|
9.3.10.9. 0x2028 JPEG_CLIP
默认值:0x00000000 |
JPEG 输出截断使能配置 (JPEG Clip Enable) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:2 |
- |
- |
-
|
1 |
R/W |
0x0 |
DEC_CLIP_EN
解码输出数据clip使能
|
0 |
R/W |
0x0 |
ENC_CLIP_EN
编码输入数据clip使能
|
9.3.10.10. 0x202C JPEG_HANDLE_NUM
默认值:0x00000000 |
JPEG 解码同时处理MCU个数 (JPEG Handle Number) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:3 |
- |
- |
-
|
2:0 |
R/W |
0x0 |
HANDLE_NUM
同时处理的MCU个数, 12/ total_du_num_in_mcu,最大值为4
|
9.3.10.11. 0x202C JPEG_UV_INT
默认值:0x00000000 |
JPEG 解码输出UV分量交错配置 (JPEG UV Interleave) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:1 |
- |
- |
-
|
0 |
R/W |
0x0 |
UV_INTERLEAVE
0: UV 分量不交错存放
1: UV 分量交错存放
|
9.3.10.12. 0x2040 JPEG_FRM_IDX
默认值:0x00000000 |
JPEG 解码输出帧索引 (JPEG Frame Index) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
-
|
7:0 |
R/W |
0x0 |
FRAME_IDX
JPEG解码输出对应的PICTURE INFO索引值
|
9.3.10.13. 0x2080 JPEG_HUFF_INFO
默认值:0x00000000 |
JPEG Huffman表信息配置 (JPEG Huffman Table Info) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:12 |
- |
- |
-
|
11:10 |
R/W |
0x0 |
HUFF_IDX
Huffman表索引值
0:huffman表每个分量每种码字长度的最小码字
1:huffman表每个分量每种码字长度的最大码字
2:huffman表每个分量每种码字长度对应数值在buffer的起始地址
3:huffman值
|
9:2 |
- |
- |
-
|
1 |
R/W |
0x0 |
HUFF_AUTO
1:使能地址自动加1模式
0:不使能地址自动加1模式,每次通过0x2088寄存器写huffman表
数据前都需要通过0x2084寄存器配置地址
|
0 |
R/W |
0x0 |
HUFF_EN
1:使能该huffman表
|
9.3.10.14. 0x2084 JPEG_HUFF_ADDR
默认值:0x00000000 |
JPEG Huffman表地址 (JPEG Huffman Table Address) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:12 |
- |
- |
-
|
11:10 |
R/W |
0x0 |
HUFF_IDX
Huffman表索引值
0:huffman表每个分量每种码字长度的最小码字
1:huffman表每个分量每种码字长度的最大码字
2:huffman表每个分量每种码字长度对应数值在buffer的起始地址
3:huffman值
|
9:0 |
R/W |
0x0 |
HUFF_ADDR
如果huff_idx为0/1/2,起始地址分别为
DC_LUMA: 0
DC_CHROMA:16;
AC_LUMA:32;
AC_CHROMA:48
huff_idx为3时
DC_LUMA:0;
DC_CHROMA:12
AC_LUMA: 24
AC_CHROMA:186;
|
9.3.10.15. 0x2088 JPEG_HUFF_DATA
默认值:0x00000000 |
JPEG Huffman表数据 (JPEG Huffman Table Data) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:0 |
R/W |
0x0 |
HUFF_DATA
huffman表数据
|
9.3.10.16. 0x2090 JPEG_QMAT_INFO
默认值:0x00000000 |
JPEG 量化表信息 (JPEG Quant Table Info) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
-
|
7:6 |
R/W |
0x0 |
QMAT_IDX
0:Y分量量化表
1:Cb分量量化表
2:Cr分量量化表
|
5:2 |
- |
- |
-
|
1 |
R/W |
0x0 |
QMAT_AUTO
1:使能地址自动加1模式
|
0 |
R/W |
0x0 |
QMAT_EN
1:使能该huffman表
|
9.3.10.17. 0x2094 JPEG_QMAT_ADDR
默认值:0x00000000 |
JPEG 量化表地址 (JPEG Quant Table Address) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
-
|
7:6 |
R/W |
0x0 |
QMAT_IDX
0:Y分量量化表
1:Cb分量量化表
2:Cr分量量化表
|
5:0 |
R/W |
0x0 |
QMAT_ADDR
量化表地址,取值范围0-63
量化表地址按照zigzag扫描后的顺序,也就是DQT解析的顺序.
|
9.3.10.18. 0x2098 JPEG_QMAT_DATA
默认值:0x00000000 |
JPEG 量化表数据 (JPEG Quant Table Data) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:0 |
R/W |
0x0 |
QMAT_DATA
量化参数
注意:如果是编码,该值为 (1<<19)/q_data
|
9.3.10.19. 0x20B0 JPEG_RST_INTVAL
默认值:0x00000000 |
JPEG DC系数重置间隔 (JPEG Restart Intval) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:0 |
R/W |
0x0 |
RST_INTVAL
间隔RST_INTVAL个MCU重置DC预测值
|
9.3.10.20. 0x20C0 JPEG_IRQ_EN
默认值:0x00000000 |
JPEG 中断使能 (JPEG Interrupt Enable) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:3 |
- |
- |
-
|
2 |
R/W |
0x0 |
BIT_REQ
0:解码数据不够中断使能
|
1 |
R/W |
0x0 |
JPEG_ERROR
0: 解码出错中断使能
|
0 |
R/W |
0x0 |
JPEG_FINISH
0:finish中断使能
|
9.3.10.21. 0x20C8 JPEG_CYCLES
默认值:0x00000000 |
JPEG 解码时钟数 (JPEG Cycles) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:0 |
R/W |
0x0 |
CYCLES
Jpeg解码用的时钟数
|
9.3.10.22. 0x2100 JPEG_SUB_CTRL
默认值:0x00000000 |
JPEG 内部子模块控制 (JPEG SubModual Control) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:3 |
- |
- |
-
|
2 |
R/W |
0x0 |
INIT1
1:初始化内部子模块1
|
1 |
R/W |
0x0 |
INIT2
1:初始化内部子模块2
|
0 |
- |
- |
-
|
注意:在启动JPEG解码前(配置JPEG Start寄存器之前),需要先初始化内部子模块1、2,但两个模块不能同时初始化,必须分两个时刻配置,先配置 INIT1 再配置 INIT2 。
9.3.10.23. 0x2140 JPEG_MEM_SA
默认值:0x00000000 |
JPEG 内部子模块缓存起始地址 (JPEG MEM Start Address) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
-
|
7:0 |
R/W |
0x0 |
Start_ADDR
配置为0
|
9.3.10.24. 0x2144 JPEG_MEM_EA
默认值:0x00000000 |
JPEG 内部子模块缓存结束地址 (JPEG MEM End Address) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
-
|
7:0 |
R/W |
0x0 |
END_ADDR
配置为0x7f
|
9.3.10.25. 0x2148 JPEG_MEM_IA
默认值:0x00000000 |
JPEG 内部子模块缓存中断地址 (JPEG MEM Intr Address) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
-
|
7:0 |
R/W |
0x0 |
INTR_ADDR
解码配置为0;编码配置为0x40
|
9.3.10.26. 0x214C JPEG_MEM_HA
默认值:0x00000000 |
JPEG 内部子模块缓存暂停地址 (JPEG MEM Halt Address) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
-
|
7:0 |
R/W |
0x0 |
HALT_ADDR
解码配置为0;编码配置为0x40
|
9.3.10.27. 0x2160 JPEG_READ_BIT_OFFSET
默认值:0x00000000 |
JPEG 读数据比特偏移 (JPEG Read Data bit Offset) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:0 |
R/W |
0x0 |
BIT_OFFSET
起始数据与码流起始地址的比特偏移值。
JPEG 硬件只会处理SOS中的压缩数据,JPEG 头信息由软件解析,所以
硬件读数据的起始地址与码流的起始地址不一样。
|
9.3.10.28. 0x2200 JPEG_REQ
默认值:0x00000000 |
JPEG 请求数据 (JPEG Request Data) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:1 |
- |
- |
-
|
0 |
R/W |
0x0 |
REQ_DATA
1:请求一次数据
|
9.3.10.29. 0x2208 JPEG_END_ADDR
默认值:0x00000000 |
JPEG 码流结束地址 (JPEG Stream End Address) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:0 |
R/W |
0x0 |
END_ADDR
码流结束地址,256字节对齐
|
小技巧
配置该寄存器后,当硬件内部处理数据到该地址时,会产生数据不足中断。如果 JPEG 图片数据按照完整一帧解码,不要配置该寄存器。
9.3.10.30. 0x220C JPEG_WR_ADDR
默认值:0x00000000 |
JPEG 码流写地址 (JPEG Stream Write Address) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:0 |
R/W |
0x0 |
WRITE_ADDR
码流写地址,用于编码,编码结束后,通过该地址得到最终编码
数据的长度len=(JPEG_WR_ADDR-JPEG_STREAM_START_ADDR)
|
9.3.10.31. 0x2214 JPEG_STREAM_START_ADDR
默认值:0x00000000 |
JPEG 码流起始地址 (JPEG Stream Start Address) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:0 |
R/W |
0x0 |
Start_ADDR
码流起始地址,8字节对齐
|
9.3.10.32. 0x221C JPEG_DATA_COUNT
默认值:0x00000000 |
JPEG 一次读写数据大小 (JPEG Stream Data Count) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:0 |
R/W |
0x0 |
DATA_CNT
固定配置为64,64个32bit数据,表示一次读写256字节数据
|
9.3.10.33. 0x2224 JPEG_BUSY_STATUS
默认值:0x00000000 |
JPEG 模块工作状态 (JPEG Busy Status) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:0 |
RO |
0x0 |
BUSY
1:Jpeg 模块当前处于工作状态
0:Jpeg 模块当前处于空闲状态
|
9.3.10.34. 0x222C JPEG_CUR_POS
默认值:0x00000000 |
JPEG 当前读数据位置 (JPEG Current Postion) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:0 |
R/W |
0x0 |
CUR_POS
当前读码流数据位置
注意:JPEG读数据以256 byte为单位,这里的位置也是以 256 byte 为单位。
比如,要读的数据从100 byte开始,则CUR_POS为0.
|
9.3.10.35. 0x2234 JPEG_STREAM_NUM
默认值:0x00000000 |
JPEG 数据流个数 (JPEG Stream Number) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:0 |
R/W |
0x0 |
STREAM_NUM
数据流个数
注意:以 256 byte 为单位。
|