> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 启用高动态范围

> 在 QCS6490 上启用交错高动态范围 (SHDR) 和数字重叠 (DOL) 模式，以捕获并融合多个曝光帧。

<div style={{display:'flex',gap:'8px',flexWrap:'wrap',marginBottom:'16px'}}>
  <span style={{background:'#ede9fe',color:'#5b21b6',padding:'2px 10px',borderRadius:'999px',fontSize:'12px',fontWeight:600}}>QCS6490</span>
  <span style={{background:'#f0fdf4',color:'#166534',padding:'2px 10px',borderRadius:'999px',fontSize:'12px',fontWeight:600}}>稳定</span>
</div>

<CardGroup cols={4}>
  <Card title="LEF/SEF" icon="layer-group">双重曝光</Card>
  <Card title="DOL" icon="barcode">行交错</Card>
  <Card title="v3" icon="network">双虚拟通道</Card>
  <Card title="v2" icon="link">单虚拟通道</Card>
</CardGroup>

<Note>
  **平台适用范围：**<br />
  本节仅适用于 **QCS6490**。
</Note>

***

## 01 · 这是什么？

交错高动态范围 (SHDR) 模式是一种传感器功能，可输出具有不同曝光时间的帧——长曝光帧 (LEF) 和短曝光帧 (SEF)。

* 传感器将两行成对作为一个单元输出。LEF 帧和 SEF 帧在这两行的组合中交替输出。
* 卷帘快门读出是交错的（行交错），使得短积分在长积分采样后立即（在同一帧内）开始。这也称为数字重叠 (DOL) 模式。
* SHDR 传感器能够以单个虚拟通道（单帧以交错方式同时包含 LEF 和 SEF）或不同虚拟通道（LEF 和 SEF 帧在不同虚拟通道上分别输出）输出 LEF 和 SEF 帧。
* 在 Qualcomm 芯片组上，有两种解决方案（SHDR v3 和 SHDR v2）。SHDR v3 适用于双虚拟通道。SHDR v2 适用于单虚拟通道。

<Note>
  使用 SSH 连接到设备控制台。有关说明，请参阅[如何使用 SSH？](https://dragonwingdocs.qualcomm.com/Linux/devices/iq9075-evk/set-up-the-device#connect-over-ssh)。
</Note>

<Note>
  运行以下命令收集日志：`journalctl -f > /opt/log.txt`
</Note>

***

## 02 · SHDR v3 - 双虚拟通道两帧曝光

SHDR v3 解决方案使用能够在不同 CSI 虚拟通道上发送曝光帧（LEF、SEF）的传感器。长曝光帧和短曝光帧在不同的虚拟通道上传输。

使用以下 GStreamer 命令启用 SHDR v3：

```bash title = "GStreamer (SHDRv3)" theme={null}
gst-launch-1.0 -e qtiqmmfsrc name=camsrc camera=0 vhdr=2 ! \
video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1,\
interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc \
capture-io-mode=4 output-io-mode=5 extra-controls="controls,video_bitrate=6000000,\
video_bitrate_mode=0;" ! h264parse ! mp4mux ! filesink location=/opt/cam_4k.mp4
```

视频文件保存在 `/opt/cam_4k.mp4`。

要验证已选择 SHDR v3 用例，请检查以下日志：

```text title = "Log Verification" theme={null}
cam-server: CamX: [CORE_CFG]891 23288 [CORE  ] camxpipeline.h:3024 SetPipelineStatus() RealTimeYUVSHDR_0 status is now PipelineStatus::STREAM_ON
```

***

## 03 · SHDR v2 - 单虚拟通道两帧曝光

SHDR v2 解决方案要求传感器以交错方式在单个虚拟通道上同时输出 LEF 和 SEF（也称为 DOL 模式）。卷帘快门读出是交错的（行交错），使得短积分在长积分采样后立即（在同一帧内）开始。

使用以下 GStreamer 命令启用 SHDR v2：

```bash title = "GStreamer (SHDRv2)" theme={null}
gst-launch-1.0 -e qtiqmmfsrc name=camsrc camera=0 vhdr=1 ! \
video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1,\
interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc \
capture-io-mode=4 output-io-mode=5 extra-controls="controls,video_bitrate=6000000,\
video_bitrate_mode=0;" ! h264parse ! mp4mux ! filesink location=/opt/cam_4k.mp4
```

视频文件保存在 `/opt/cam_4k.mp4`。

要验证已选择 SHDR v2 用例，请检查以下日志：

```text title = "Log Verification" theme={null}
cam-server: CamX: [CORE_CFG]852 2070 [CORE] camxpipeline.h:3015 SetPipelineStatus()
RealTimeSHDR_0 status is now PipelineStatus::STREAM_ON
```

***

## 04 · 去雾功能

去雾是一种雾检测和去除技术。此功能允许用户在恶劣天气条件下（例如雨、雾霾、薄雾或大雾）去除雾化效果。它通过提升 SHDR v2 和 SHDR v3 用例中的图像质量来提供去雾后的图像。去雾库利用从 IFE、BPS 和 IPE 收集的统计数据和插值数据执行去雾操作，并为 IQ 模块生成新的表格，以便在下一帧中应用。

### 验证

<Steps>
  <Step title="配置 override 设置">
    在 `/var/cache/camera/camxoverridesettings.txt` 中使用以下 override 设置来验证去雾功能是否正常工作：

    ```text title="Camx Override Settings" theme={null}
    logInfoMask=0x50000
    logVerboseMask=0x50000
    ```
  </Step>

  <Step title="测试去雾功能">
    运行以下命令以在 SHDR v2 用例中测试去雾：

    ```bash title = "GStreamer (Defog with SHDRv2)" theme={null}
    gst-pipeline-app -e qtiqmmfsrc name=camsrc vhdr=1  ! \
    video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1,\
    interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 \
    output-io-mode=5  extra-controls="controls,video_bitrate=6000000,video_bitrate_mode=0;" ! queue ! \
    h264parse ! mp4mux ! queue ! filesink location=/opt/cam_4k.mp4
    ```

    运行以下命令以在 SHDR v3 用例中测试去雾：

    ```bash title = "GStreamer (Defog with SHDRv3)" theme={null}
    gst-pipeline-app -e qtiqmmfsrc name=camsrc vhdr=2 ! \
    video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1,\
    interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 \
    output-io-mode=5 extra-controls="controls,video_bitrate=6000000,video_bitrate_mode=0;" ! queue ! \
    h264parse ! mp4mux ! queue ! filesink location=/opt/cam_4k.mp4
    ```
  </Step>

  <Step title="手动启用去雾">
    1. 选择 **(1) READY**。
    2. 选择 **(3) PLAYING**。
    3. 按 **Enter**。
    4. 选择 **(p) Plugin Mode**。
    5. 选择 **(8) camsrc**。
    6. 选择 **(24) defog-table**。
    7. 输入以下字符串以启用去雾：
       ```text theme={null}
       org.quic.camera.defog, enable=true, strength=3, ates_strength=1;
       ```
    8. 通过选择 **(b) BACK** 然后选择 **(q) QUIT** 关闭摄像头。视频文件保存在 `/opt/cam_4k.mp4`。
  </Step>

  <Step title="验证日志输出">
    检查以下日志以验证去雾功能已启用：

    **SHDR v2：**

    ```text title = "Log Verification" theme={null}
    CamX: [ INFO]2149 2256 [CORE   ] camxpipeline.cpp:5331 FillSHDRSensorModeInfo() isSHDREnabled=1 isSHDRRAWMode=1 isSHDRVCMode=0 isSHDRUseFusedStats=1 numVCSupported=0 isDefogEnablewithSHDR=1
    CamX: [ VERB]2149 2182 [CHI    ] camxchinodedefog.cpp:1988 SetDeFog2ConfigParams() Previous (  defog_en = 1  defog_strength = 3 ates_strength = 1
    CamX: [ VERB]2149 2182 [CHI    ] camxchinodedefog.cpp:1991 SetDeFog2ConfigParams() Current (  defog_en = 1  defog_strength = 3 ates_strength = 1
    ```

    **SHDR v3：**

    ```text title = "Log Verification" theme={null}
    CamX: [ INFO]2149 2256 [CORE   ] camxpipeline.cpp:5285 FillSHDRSensorModeInfo() isSHDREnabled:1 isSHDRRAWMode:0 isSHDRVCMode:1 isSHDRUseFusedStats:0 numVCSupported:2 isDefogEnablewithSHDR:1
    CamX: [ VERB]2149 2182 [CHI    ] camxchinodedefog.cpp:1988 SetDeFog2ConfigParams() Previous (  defog_en = 1  defog_strength = 3 ates_strength = 1
    CamX: [ VERB]2149 2182 [CHI    ] camxchinodedefog.cpp:1991 SetDeFog2ConfigParams() Current (  defog_en = 1  defog_strength = 3 ates_strength = 1
    ```
  </Step>
</Steps>
