USER GUIDE / IMAGE INPUT & ENCODING / JPEG ENC / REGISTER CONFIGURATION STEPS

寄存器配置步骤

寄存器配置步骤

【第0 帧】寄存器全部配置

按以下步骤使JPEG 编码器开始工作:(haddr: JPEG_BASE | ofst)

  1. 配置quant tables
  2. 配置JPEG 编码相关控制信息(JPEG_CTRL)
  3. 配置帧高、帧宽及line stride
  4. 配置Y 分量和UV 及BS 基地址(JPEG_RAWY_ADDR、JPEG_RAWC_ADDR、JPEG_BS_ADDR)
  5. 配置MCU 数量(JPEG_NMCU)
  6. 配置分配的内存空间WRAP(JPEG_WRAP)(SCALER 开启时)
  7. 配置marker 功能,默认关闭。
  8. 配置对齐后的一帧编码YUV 像素总数。
  9. 配置jpeg trigger 寄存器,
    [5]置1
    [4]置1,// [5][4]两bits 保证保证配置的寄存器在frm0 立即生效
    [0]置0
    // frm0 和自动模式下均无需配置此比特。
  10. 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