USER GUIDE / IMAGE INPUT & ENCODING / JPEG ENC / REGISTER CONFIGURATION STEPS
寄存器配置步骤
寄存器配置步骤
【第0 帧】寄存器全部配置
按以下步骤使JPEG 编码器开始工作:(haddr: JPEG_BASE | ofst)
- 配置quant tables
- 配置JPEG 编码相关控制信息(JPEG_CTRL)
- 配置帧高、帧宽及line stride
- 配置Y 分量和UV 及BS 基地址(JPEG_RAWY_ADDR、JPEG_RAWC_ADDR、JPEG_BS_ADDR)
- 配置MCU 数量(JPEG_NMCU)
- 配置分配的内存空间WRAP(JPEG_WRAP)(SCALER 开启时)
- 配置marker 功能,默认关闭。
- 配置对齐后的一帧编码YUV 像素总数。
- 配置jpeg trigger 寄存器,
[5]置1
[4]置1,// [5][4]两bits 保证保证配置的寄存器在frm0 立即生效
[0]置0
// frm0 和自动模式下均无需配置此比特。 - jpeg 开始编码
【第N 帧】选择性寄存器配置
若auto_mode=1, 即自动模式(auto_mode 在<JPEG_CTRL>)
- 如果无新的配置更改,则不需要配置任何寄存器,包括start 启动信号(<JPEG_TRIG> 第0 比特)。
- 如果想更改量化表,不能在JPEG 工作期间配置:
- <JPEG_TRIG>下的SHADOW*
- 量化表相关*: <JPEG_CTRL> <JPEG_QT_TAB>
最新配置下一帧开始时生效。
若auto_mode=0,即非自动模式;
- 每帧均需要进行<JPEG_TRIG>的start 启动信号配置。
- 如果想更改配置,则与auto_mode=1 时类似。
若isp_en=0,即关闭SCALER;
- 每帧均需要进行<JPEG_TRIG>的start 启动信号配置。
- 如果想更改配置,则与auto_mode=1 时类似。
reset 配置
若auto_mode=1, 即自动模式(auto_mode 在<JPEG_CTRL> )则在序列级开始时将<JPEG_CTRL>第30bit auto_reset 配置成1。配置shadow 时此bit 也恒为1.
若auto_mode=0, 即非自动模式
- 若auto_reset 为0,则需在每帧结束后,配置<JPEG_TRIG>第1bit<sw_frm_rst>为1。
- 若auto_reset 为1,则每帧结束无需处理。
Isp_en=1,即开启SCALER:
- 需要在每帧结束后,配置<JPEG_TRIG>第2bit<SW_SEQ_RESET>为1。
【配置中断使能】
- 根据需要将JPEG_INTR_ENABLE(0x68)各bit 位进行配置。即,当触发相应中断时,会将JPEG_INTR_STAT(0x6c)相应位拉高。使能配置为0,则不会触发相应中断。
【清除中断】
- 读取JPEG_INTR_STAT(0x6c)的值,根据JPEG_INTR_STAT(0x6c)各比特位为1 的情况,来配置JPEG_INTR_CLR(0x70)相应比特位为1 进行清除中断。
以下寄存器需要断流,重新初始化进行配置:
- 工作模式:自动/手动trigger
- 帧宽高
- 编码像素格式:yuy2/nv12/单y