已关闭
[Requirement|需求建议]: AIPP算子新增13种csc类型转换支持 #331
jinyijian创建于  4月21日关闭于  4月24日
jinyijian成员
4月21日 创建

Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.

Backgroud(背景信息)

新增色域转换能力:
YUV420SP_U8转YUV444
YUV420SP_U8转YVU444
RGB888_U8转BGR
RGB888_U8转YVU444
BGR888_U8转RGB
BGR888_U8转BGR
XRGB8888_U8转YUV444
XRGB8888_U8转YVU444
XRGB8888_U8转GRAY
XBGR8888_U8转GRAY
RGBX8888_U8转GRAY
BGRX8888_U8转GRAY
YUV400_U8转GRAY

Origin(信息来源)

功能补齐

Benefit / Necessity (价值/作用)

AIPP提供了更为方便的图像格式转换方式:色域转换,用于将输入的图片格式,转换为模型需要的图片格式;
AIPP改变图片尺寸需要遵守如下图中的顺序,即先Crop再Padding,每个操作仅能执行一次;原图大小为srcImageSizeW、srcImageSizeH的图像经过图像预处理后变为模型预期的dstImageSizeW、dstImageSizeH图像尺寸。
image.png

Design(设计方案)

YUV420SP_U8转YUV444
输出是3个通道,Y、U、V各占1个通道
计算公式:
● Y444 (x, y) = Y420 (x, y)
● U444 (x, y)= U420 (x/2, y/2)
● V444 (x, y)= V420 (x/2, y/2)
输出图的(x, y)的U值,等于输入图色度平面上 (x/2, y/2)处的 U 值。x和y是平面的像素坐标
1)确定 UV 平面的起始地址:
offset_y = w * h
2)确定行偏移
offset_row = (y / 2) * w
3)确定列偏移
在 UV 平面中,每个色度像素对应 (1 个 V + 1 个 U)
offset_col = x /2 * 2
4)获取u地址
在 NV21 格式中,偶数字节是 U,奇数字节是 V
U420 (x/2, y/2) = w * h + (y / 2) * w + x /2 * 2
V420 (x/2, y/2) = w * h + (y / 2) * w + x /2 * 2 +1

likedislike
Jjinyijian成员
4月21日 修改了issue 的描述
Jjinyijian成员
4月21日 关联了pull request:aipp新增CSC色域转换
liu-weiliu-wei成员
4月21日 将 jinyijian 设为负责人
CANN-robotCANN-robot成员
4月24日 关闭了 issue
CANN-robotCANN-robot成员
4月24日 添加了label:resolved