图像处理之Sensor Demosaic教程

免责声明:

本文所提供的信息和内容仅供参考。作者对本文内容的准确性、完整性、及时性或适用性不作任何明示或暗示的保证。在任何情况下,作者不对因使用本文内容而导致的任何直接或间接损失承担责任,包括但不限于数据丢失、业务中断或其他经济损失。

读者在使用本文信息时,应自行验证其准确性和适用性,并对其使用结果负责。本文内容不构成专业技术咨询或建议,具体的技术实现和应用应根据实际情况和需要进行详细分析和验证。

本文所涉及的任何商标、版权或其他知识产权均属于其各自的所有者。若本文中引用了第三方的资料或信息,引用仅为学术交流目的,不构成对第三方内容的认可或保证。

若有任何疑问或需进一步信息,请联系本文作者或相关专业人士。


前言

本期,小编将介绍 Xilinx ISP 架构中的第一个 IP 核——Sensor Demosaic。


一、Overview

CMOS/CCD 图像传感器捕捉的图像本质上是单色的。为了生成彩色图像,传统方法是通过叠加不同颜色滤光片生成的多张图像。后来,柯达公司的 Bryce Bayer 博士发明了带有滤色阵列(CFA)图案的图像传感器,可以通过一次拍摄重建全彩色图像。这种 Bayer 图案的 CFA 被广泛应用于数字成像系统中。

在彩色图像传感器中,每个像素仅包含关于某一颜色的信息(由该像素上的滤色片决定)。然而,为了重建彩色图像,每个像素都需要三个主要颜色的信息。通过邻近像素的信息,可以重建丢失的颜色信息,这一过程称为颜色插值或去马赛克处理。由于颜色通道在插值前已被物理下采样,完全恢复原始信号是不可能的,但可以通过利用自然图像和视频序列的时间和空间冗余性来显著抑制混叠。

二、Performance

Sensor Demosaic核心在不同设备中的典型最高时钟频率为300 MHz,适用于UltraScale+、Virtex 7、Virtex UltraScale、Kintex 7Kintex UltraScale系列(速度等级为-2或更高)。Artix 7设备的典型最高频率为150 MHz。需要注意的是,实际可达的最高时钟频率和资源消耗可能会因工具选项、设备中的额外逻辑、不同版本的AMD工具以及其他因素而有所不同。

Resource Utilization
For full details about performance and resource utilization, visit the https://download.amd.com/docnav/documents/ip_attachments/v-demosaic.html

三、Port Descriptions

AP_CLK

AXI4-Stream和AXI4-Lite接口必须与核心时钟信号AP_CLK同步。所有AXI4-Stream和AXI4-Lite控制接口的输入信号在AP_CLK的上升沿进行采样,而AXI4-Stream输出信号的变化则发生在AP_CLK的上升沿之后。

AP_RST_N

AP_RST_N引脚是针对AXI4-Lite和AXI4-Stream接口的低电平有效同步复位输入。当AP_RST_N被设为0时,核心会在下一次AP_CLK的上升沿复位。

注:TotalDataWidth=data_width*number_of_components*samples_per_clock. 

这三个值分别对应IDE中的最大数据宽度、视频组件数和每时钟采样数。

AXI4-Stream Data Interface

注:为了最小化延迟,建议自定义核心的从接口应独立驱动READY信号,或预先置高READY信号。

SOF

Start-Of-Frame (SOF) 信号通过 AXI4-Stream 的 TUSER0 信号传输,用于标记视频帧的第一个像素。SOF 脉冲的持续时间为一个有效事务周期,并且必须与帧的第一个像素同步。SOF 信号作为帧同步信号,允许下游核心重新初始化并检测帧的第一个像素。SOF 信号可以在第一个像素数据呈现在 DATA 之前的任意数量的 AP_CLK 周期内置高,只要 VALID 信号未被置高即可。

EOL

End-Of-Line (EOL)信号通过AXI4-Stream的TLAST信号传输,用于标记一行的最后一个像素。EOL脉冲的持续时间为一个有效事务周期,并且必须与扫描行的最后一个像素同步。

四、Register Space

The core has seven core-specific registers that allow dynamic control of the core's operation. All
registers have an initial value of 0. 

CONTROL (0x0000) Register
  • Bit[0]: ap_start用于通过软件启动核心,写1会启动核心生成视频帧。
  • Bit[1]: ap_done指示当前事务操作完成,置1表示IP已完成所有操作。
  • Bit[2]: ap_idle指示IP是否处于空闲状态,空闲状态时为1,操作开始时置0,操作完成后再次置1。
  • Bit[3]: ap_ready指示IP是否准备好接收新输入,当置1时,表示IP已完成所有输入读取并准备好接受新输入。
  • Bit[7]: auto_restart用于启用自动重启模式,设置为1后,IP将在每个事务结束后自动重启。
ACTIVE_WIDTH (0x0010) Register
  • 功能: active_width寄存器编码了每行扫描中的有效像素数量。
  • 支持的值: 该寄存器支持的值包括64以及在IDE中“最大列数”字段中提供的值。
  • 使用建议: 为避免处理错误,应将写入active_width的值限制在核心实例支持的范围内。

ACTIVE_HEIGHT (0x0018) Register
  • 功能: active_height寄存器编码了每帧中的有效扫描行数。
  • 支持的值: 该寄存器支持的值范围为64到IDE中“最大行数”字段中提供的值之间。
  • 使用建议: 为避免处理错误,应将写入active_height的值限制在核心实例支持的范围内。

BAYER_PHASE (0x0028) Register
  • 图像传感器数据表会指定Bayer采样网格的起始位置(像素(0,0))是位于红-绿行还是蓝-绿行,并说明第一个像素是否是绿色。
  • AMD Sensor Demosaic IP支持所有四种可能的Bayer相位组合。
  • Bits 1:0 用于指定Bayer采样网格的左上角开始的颜色:绿色、红色或蓝色。
  • 下面的图显示了图像采样矩阵的左上角以及Bayer Phase Register值组合。

五、Customize IP

  • Samples Per Clock: 指定每个时钟周期处理的像素数量。允许的值为1、2、4和8,每时钟周期的样本数量越多,吞吐量越大,但需要更多的硬件资源。

  • Maximum Data Width: 指定输入样本的位宽。允许的值为8、10、12和16位。此参数应与连接到从AXI4-Stream视频接口的视频IP核心的视频组件宽度匹配。

  • Maximum Number of Columns: 指定IP核心在运行时可以生成的最大视频列数/像素数。任何小于最大列数的视频宽度可以通过AXI4-Lite控制接口进行编程,而无需重新生成核心。

  • Maximum Number of Rows: 指定IP核心在运行时可以生成的最大视频行数/行数。任何小于最大行数的视频高度可以通过AXI4-Lite控制接口进行编程,而无需重新生成核心。

  • Interpolation Method

Fringe Tolerant Interpolation: 这种方法生成较柔和的图像,并抑制色彩边缘伪影。适用于可能引入色彩边缘伪影的低成本光学系统。

High Resolution Interpolation: 这种方法适用于高质量光学系统和需要高分辨率的应用。选择这种方法会使用更多的块RAM和逻辑切片,并大约增加一倍的DSP48单元。

  • Horizontal Zipper Artifact Removal: 这个选项添加了一个后处理平滑滤波器,以去除水平拉链伪影。这个滤波器使输出图像更加柔和,并需要额外的逻辑切片资源。

  • Use UltraRAM for Line Buffers: 在UltraScale+设备中,插值像素时使用的行缓冲区可以存储在UltraRAM中,而不是Block RAM。这可以提高存储效率和性能。

六、配置寄存器说明

在配置 Sensor Demosaic IP 时,可以忽略中断,只需对以下寄存器进行配置:

  1. 寄存器 0x00:

    • ap_start: 设为 1 以启动核心。
    • auto_restart: 设为 1 以启用自动重启模式。
    • 这样配置可以使核心开始处理并在每次完成后自动重启。
  2. 寄存器 0x10:

    • 配置为所需的活动宽度(active_width)。
  3. 寄存器 0x18:

    • 配置为所需的活动高度(active_height)。
  4. 寄存器 0x28:

    • 配置Bayer模式及其他相关参数,以匹配传感器输出和图像处理需求。

示例配置:

  • 通过AXI4-Lite接口写入寄存器,以配置 ap_startauto_restart,并设置活动宽度、高度和Bayer模式。

确保在写入寄存器时,选择合适的值以满足具体应用需求,并参考相关设备文档以进行准确配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值