马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本文所提供的信息和内容仅供参考。作者对本文内容的准确性、完备性、及时性或实用性不作任何昭示或暗示的包管。在任何环境下,作者不对因使用本文内容而导致的任何直接或间接丧失负担责任,包罗但不限于数据丢失、业务克制或其他经济丧失。
读者在使用本文信息时,应自行验证其准确性和实用性,并对其使用效果负责。本文内容不构成专业技能咨询或发起,具体的技能实现和应用应根据现实环境和须要举行具体分析和验证。
本文所涉及的任何商标、版权或其他知识产权均属于其各自的全部者。若本文中引用了第三方的资料或信息,引用仅为学术互换目的,不构成对第三方内容的承认或包管。
如有任何疑问或需进一步信息,请接洽本文作者或干系专业人士。
目次
前言
一、Overview
伽马压缩 (γ < 1):
伽马扩展 (γ > 1):
二、Maximum Frequencies
三、Common Interface Signals
四、Data Interface
Video Data
五、Register Space
CONTROL (0x0000) Register
ACTIVE_WIDTH (0x0010) Register
ACTIVE_HEIGHT (0x0018) Register
VIDEO_FORMAT (0x0020) Register
六、Customizing and Generating the Core
前言
伽马校正的焦点在于匹配图像数据的存储与传输与人眼感知的非线性特性,以及表现器的非线性输出特性。通过这种校正,我们可以在有限的信号范围内(如 8 位 RGB 分量)更有效地分配亮度值,从而优化图像的视觉质量。
一、Overview
在讨论伽马校正时,输入和输出值通常被归一化到 0 到 1 之间。伽马校正的过程通过一个幂函数来举行调解,这个幂函数的情势为:
此中,γ(伽马值)决定了校正的方式:
- 伽马压缩 (γ < 1):
- 当 γ 小于 1 时,输入的低亮度值在颠末幂函数后会变得更大,而高亮度值的变革较小。
- 这种环境通常用于编码图像数据,称为伽马压缩,由于它压缩了高亮度范围,使得暗部的细节更加显着,得当人眼的感知特性。
- 比方,γ = 0.5 时,函数表现为开平方,将低亮度部分“拉伸”,使得暗部地区的亮度进步,更容易被人眼区分。
- 伽马扩展 (γ > 1):
- 当 γ 大于 1 时,输入的低亮度值颠末幂函数后会变得更小,高亮度值的变革较大。
- 这种环境通常用于表现装备中,称为伽马扩展,由于它扩展了暗部的亮度范围,以规复到原始的线性关系。
- 比方,γ = 2.2 时,函数压缩了低亮度部分,规复表现器的非线性特性,确保图像表现的亮度与原始的视觉感受相划一。
假如你看 Figure 1-1,会看到差别的 γ 值对亮度值的映射曲线。对于 γ < 1,曲线更靠近输出的上部,表现压缩了高亮度区间;对于 γ > 1,曲线更靠近输出的下部,表现扩展了暗部区间。
伽马校正可以通过查找表(LUT)实现。LUT 是预先盘算好的映射表,输入数据直接通过查表得到伽马校正后的输出效果。
- LUT 巨细由输入数据的位宽决定,比方 8 bit数据须要 256 个。
这种方法加快了及时处理处罚速率,由于不须要每次都举行复杂的盘算,只需查表即可。
二、Maximum Frequencies
三、Common Interface Signals
The AP_CLK and AP_RST_N signals are shared between the core, the AXI4-Stream data
interfaces, and the AXI4-Lite control interface.
四、Data Interface
TotalDataWidth=3*data_width*samples_per_clock.
Video Data
- TDATA 宽度要求:AXI4-Stream 接口规定 TDATA 的宽度必须是 8 位的整数倍。因此,假如你有比方 10 位宽的数据,在毗连到 s_axis_video_tdata 之前,必须通过在最高有效位(MSB)添补零来扩展数据宽度,使其成为 8 位的倍数(如 16 位)。
- 添补零的影响:这种添补零的操纵不会影响核(core)的巨细。也就是说,固然增长了数据宽度,但这只是为了符合接口规范,不会对现实的硬件资源使用产生额外影响。
- 输出数据处理处罚:同样地,Gamma LUT 焦点的输出数据 m_axis_video_tdata 也须要打包并添补零到 8 位的倍数。尤其对于 10 位宽的数据,这种添补是须要的。
- 图示分析:图 2-2 和图 2-3 展示了在每时钟周期传输两个像素、每个颜色分量 10 位的数据设置下,AXI4-Stream 接口的像素映射环境。固然图中没有展示,但最高有效位的零添补位(即 [63:60] 位)在现实应用中是存在的
五、Register Space
The core has seven core-specific registers which allow you to dynamically control the
operation of the core. All registers have an initial value of 0. Table 2-4 describes the register
names.
CONTROL (0x0000) Register
- Bit[0] - ap_start:
- 用于启动 IP 核。写 1 到此位会启动 IP 核,开始天生视频帧。
- Bit[1] - ap_done:
- 表现当前事件完成。当此位为 1 时,表现 IP 核已经完成了全部操纵。
- Bit[2] - ap_idle:
- 指示 IP 核是否处于空闲状态。当此位为 1 时,表现 IP 核处于空闲状态,未实行任何操纵。
- Bit[3] - ap_ready:
- 表现 IP 核是否预备好吸收新的输入。当此位为 1 时,表现 IP 核已经完成了当前事件的全部输入读取,可以继续新输入。
- Bit[7] - auto_restart:
- 用于启用自动重启模式。当此位被设置为 1 时,IP 核在每次事件竣过后会自动重新启动。
ACTIVE_WIDTH (0x0010) Register
- active_width 寄存器:
- 用于指定每行的有效像素数,即图像的宽度(每行的像素数目)。
- 支持的值:
- 该寄存器的值可以是 64 大概在 Vivado IDE 中设置的最大列数值(即计划时指定的图像最大宽度)。
- 留意事项:
- 为克制处理处罚错误,写入 active_width 的值必须在 IP 核实例支持的范围内。
ACTIVE_HEIGHT (0x0018) Register
- active_height 寄存器:
- 用于指定每帧的有效扫描行数,即图像的高度(帧中的行数)。
- 支持的值:
- 该寄存器的值可以在 64 到 Vivado IDE 中设置的最大行数值(即计划时指定的图像最大高度)之间。
- 留意事项:
- 为克制处理处罚错误,写入 active_height 的值必须在 IP 核实例支持的范围内。
VIDEO_FORMAT (0x0020) Register
This register specifies the video format of the AXI4-Stream Video data.
- • 0x0 RGB video format
- • 0x1 YUV 4:4:4 video format
六、Customizing and Generating the Core
- Samples Per Clock:
- 界说:每个时钟周期处理处罚的像素数目。允许的值是 1、2、4 和 8。
- 作用:该参数决定了 IP 核的吞吐量。每个时钟周期处理处罚更多像素意味着更高的吞吐量,但同时也须要更多的硬件资源。
- Maximum Data Width:
- 界说:输入像素的位宽。允许的值是 8 位或 10 位。
- 作用:该参数应与毗连到附属 AXI4-Stream 视频接口的视频 IP 核的“视频组件宽度”相匹配。这意味着输入数据的位宽必须与其他视频处理处罚模块兼容。
- Maximum Number of Columns:
- 界说:IP 核可以或许在运行时天生的最大视频列/像素数。
- 作用:任何小于此最大列数的视频宽度都可以通过 AXI4-Lite 控制接口编程,而无需重新天生 IP 核。这提供了机动性,可以根据需求调解视频宽度。
- Maximum Number of Rows:
- 界说:IP 核可以或许在运行时天生的最大视频行数。
- 作用:任何小于此最大行数的视频高度都可以通过 AXI4-Lite 控制接口编程,而无需重新天生 IP 核。这同样提供了调解视频高度的机动性
|