Edit online

图层控制

Read time: 3 minute(s)

UI 图层

UI 图层功能如下:
  • 多窗口支持:有四个矩形窗口,可单独控制开关。
  • 位置控制:各窗口以图层左上角为原点设置坐标,控制显示位置。
  • 颜色格式一致性:所有窗口的颜色格式必须一致。
  • 图像裁剪:窗口可显示原始图像的裁剪区域,软件需计算矩形区域的起始地址。
  • 非重叠约束:四个矩形窗口不可重叠,需进行有效性检查。

de_function_ui

1. UI 图层

Video 图层

Video 图层功能如下:

  • 格式支持:支持 RGB 和 YUV 格式输入。
  • Scaler 要求
    • 输入为 YUV420 或 YUV422 格式时必须开启 Scaler。
    • 输入为 RGB 格式时不支持 Scaler。
  • 图像裁剪
    • RGB 格式的裁剪在水平和垂直方向都是 1 像素对齐。
    • YUV420 格式裁剪的水平和垂直偏移需 2 像素对齐。
    • YUV422 格式裁剪的水平偏移需 2 像素对齐,垂直方向 1 像素对齐。
  • 颜色空间转换:YUV 转 RGB 通过 CSC0 模块完成,使用特定公式计算 RGB 值。
    R = Coef0 × Y + Coef1 × U + Coef2 ×V + Coef3
    G = Coef4 ×Y + Coef5 × U + Coef6 ×V + Coef7
    B= Coef8 × Y + Coef9 × U + Coef10 ×V + Coef11
  • Scaler 处理
    • Scaler0 有两个独立的 channel,Y 分量由 channel0 处理,U 和 V 分量由 channel1 处理。
    • YUV420/YUV422 经过 Scaler0 后输出 YUV444 格式,再经 CSC0 转换为 RGB 格式显示。
  • 滤波系数设置
    • 当选择多相位滤波算法且查表时,需软件设置滤波系数表。
    • 水平滤波系数为 6 taps,共 96 个系数,通过 48 个 32 bits 寄存器设置。
    • 垂直滤波系数为 4 taps,共 64 个系数,通过 32 个 32 bits 寄存器设置。

下图中的 YUV420P/ NV12/ NV21 格式的 U、V 分量的宽和高是 Y 分量的一半,经过 Scaler 模块后,三个分量的输出宽高相同,输出 YUV444 格式:


de_function_scale

2. Video 图层 YUV420 缩放
  • 当 scaler0 选择 6x4 taps 16 phases 多相位滤波算法,scaler0 控制寄存器选择的是内置滤波系数,不需要软件设置滤波系数表。
  • 当 scaler0 选择的是多相位滤波算法,并且 scaler0 控制寄存器选择的是查表,则需要软件设置滤波系数表。
Channel0 和 channel1 有独立的滤波系数表,并且水平滤波系数和垂直滤波系数需要单独设置,总共对应四组滤波系数。
  • 水平滤波为 6 taps,滤波系数为 6x16 共 96 个。

    通过 48 个 32 bits 寄存器来设置,每个系数为 14 bits 有符号数, 寄存器低 16 bits 和高 16 bits 各存储一个系数,采用小端方式存储。

    例如 phase0 和 phase1 占用一个 32 bits 寄存器,phase0 在[0:13],phase1 在[16:29]。先存储 tap0 的 phase0,phase1,依次到 phase15, 然后再存储 tap1, tap2,tap3,tap4,tap5。


    de_function_scale_horizontal

  • 垂直滤波为 4 taps,滤波系数为 4x16 共 64 个。

    通过 32 个 32 bits 寄存器来设置,每个系数为 14 bits 有符号数,寄存器低 16 bits 和高 16 bits 各存储一个系数。

    例如 phase0 和 phase1 占用一个 32 bits 寄存器,phase0 在[0:13], phase1 在[16:29]。先存储 tap0 的 phase0,phase1,依次到 phase15,然后再存储 tap1, tap2,tap3。


    de_function_scale_vertical