更新时间:2021-03-18 GMT+08:00
分享

VPC功能

功能说明

VPC功能包括:

  • 抠图,从输入图片中抠出需要用的图片区域。
  • 缩放
    • 针对不同分辨率的图像,VPC的处理方式可分为非8K缩放、8K缩放。
      • 8K缩放,用于处理输入图像宽度在4096~8192范围内或高度在4096~8192范围内的图片。
      • 非8K缩放,用于处理输入图像分辨率在32*6~4096*4096范围内的图片。
    • 从是否抠多张图的维度,可分为单图裁剪缩放(支持非压缩格式和HFBC压缩格式)、一图多框裁剪缩放(支持非压缩格式和HFBC压缩格式)。

      HFBC,是VDEC输出的一种压缩图像格式,使用这种方式压缩图像,VDEC的处理性能更优。

    • 其它缩放方式,如:原图缩放、等比例缩放。
  • 叠加,从输入图片中抠出来的图,对抠出的图进行缩放后,放在用户输出图片的指定区域,输出图片可以是空白图片(由用户申请的空输出内存产生的),也可以是已有图片(由用户申请输出内存后将已有图片读入输出内存),只有当输出图片是已有图片时,才表示叠加。
  • 拼接,从输入图片中抠多张图片,对抠出的图进行缩放后,放到输出图片的指定区域。
  • 格式转换
    • 将RGB格式/YUV422格式/YUV444格式的图片转为YUV420格式的图片。
    • 图像灰度化,对输出图像数据只取Y分量的数据。

约束说明

  • 针对不同分辨率的图像,VPC的处理方式包括8K缩放、非8K缩放,如下表所示。

    输入图像分辨率

    输入图像格式

    输入图像宽stride*高stride对齐要求

    VPC功能

    输出图像分辨率

    输出图像格式

    输出图像宽stride*高stride对齐要求

    宽度在4096~8192范围内或高度在4096~8192范围内(不包括4096)

    YUV420SP(NV12、NV21)

    2*2对齐

    8K缩放

    16*16~4096*4096

    请参见表1处的outputFormat参数

    2*2对齐

    32*6~4096*4096(包括4096)

    请参见表1处的inputFormat参数

    • 宽stride的对齐:请参见表1处的widthStride参数
    • 高stride是2对齐

    非8K缩放

    32*6~4096*4096

    请参见表1处的outputFormat参数

    16*2对齐

  • 针对缩放功能,宽高缩放比例范围:[1/32, 16]。
  • 对于8K缩放功能,支持缩放、支持YUV420SP NV12与YUV420SP NV21之间的格式转换、不支持抠图。

功能示意图

图1 VPC功能示意图(抠图+缩放+叠加)
图2 VPC功能示意图(拼接)
表1 概念解释

概念

描述

宽stride

指一行图像步长,表示输入图片对齐后的宽,RGB格式或YUV格式的宽stride计算方式不一样。宽stride最小为32,最大为4096 * 4(即宽是4096的argb格式的图像)。

  • yuv400sp、yuv420sp、yuv422sp、yuv444sp:输入图像的宽对齐到16。
  • yuv422packed:输入图像的宽*2后再对齐到16后。
  • yuv444packed、rgb888:输入图像的宽对齐*3后再对齐到16。
  • xrgb8888:输入图像的宽*4后再对齐到16。
  • HFBC格式:输入图像的宽。

高stride

指图像在内存中的行数,表示输入图片对齐后的高。

取值为:输入图像的高对齐到2。高stride最小为6,最大为4096。

上/下/左/右偏移

通过配置上偏移、下偏移、左偏移、右偏移可以实现两个功能:指定抠图区域或贴图区域的位置;控制抠图或贴图区域的宽、高,右偏移-左偏移+1=宽,下偏移-上偏移+1=高。
  • 左偏移:输入/输出图片中,抠图/贴图区域1、3两个点相对于0点水平向左偏移的值。
  • 右偏移:输入/输出图片中,抠图/贴图区域2、4两个点相对于0点水平向左偏移的值。
  • 上偏移:输入/输出图片中,抠图/贴图区域1、2两个点相对于0点垂直向上偏移的值。
  • 下偏移:输入/输出图片中,抠图/贴图区域3、4两个点相对于0点垂直向上偏移的值。

抠图区域

指用户指定的需裁剪的图片区域。

抠图区域最小分辨率为10*6,最大分辨率为4096*4096。

贴图区域

指在输出图片中用户指定的区域,贴图区域最小分辨率为10*6,最大分辨率为4096*4096。

约束如下:
  • 贴图区奇数、偶数限制为:左偏移和上偏移为偶数、右偏移和下偏移为奇数。
  • 抠图区域不超出输入图片,贴图区域不超出输出图片。
  • 贴图时可直接放置在输出图片的最左侧,即相对输出图片的左偏移为0。
  • 最大贴图个数为256个。
  • 贴图区域相对输出图片的左偏移16对齐。
  • 输出图片的贴图宽度建议16对齐,如果不是16对齐,会多写一段无效数据使其16对齐。

性能指标说明

  • 对于非8K缩放,VPC性能由于涉及到抠图、缩放等不同的场景,当处理图片的过程中分辨率改变时,以大分辨率来计算性能。例如,对于缩放,缩放后图片的分辨率大于缩放前图片的分辨率,则以缩放后图片的分辨率来计算性能指标;对于抠图,贴图区域的分辨率大于抠图区域的分辨率,则以贴图区域的分辨率来计算性能指标。对于YUV420 SP格式的图片,典型场景性能指标参考如下:

    场景举例

    总帧率

    1080p * n路(n<4,1路对应一个线程)

    n*360fps

    1080p * n路(n>=4,1路对应一个线程)

    1440fps

    4k * n路(n<4,1路对应一个线程)

    n*90fps

    4k * n路(n>=4,1路对应一个线程)

    360fps

  • 对于8K缩放,VPC性能与输出分辨率强相关,输出分辨率越大,处理耗时越久,性能越低,典型场景(输出分辨率为1080p、4k的场景,图片格式为YUV420 SP)性能指标参考如下:

    场景举例

    总帧率

    1080p * n路(n=1,1路对应一个线程)

    4fps

    1080p * n路(n>=4,1路对应一个线程)

    16fps

    4k * n路(n=1,1路对应一个线程)

    1fps

    4k * n路(n>=4,1路对应一个线程)

    4fps

参考说明

RBG、YUV格式图像的各分量排布示意图。示例:sp图像以yuv420sp为例,packed和rgb图像以argb图像为例。

分享:

    相关文档

    相关产品