---
title: hi_mpi_venc_set_roi_attr
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/dvpp/aclcppdevg_03_0742.html
sourcePath: /source/zh/canncommercial/900/API/dvpp/aclcppdevg_03_0742.html
indexId: f47bbcd18024634abbbb04a8bf76955efd18faba12c26cdc043dedc7e2da3ced62
---
# hi_mpi_venc_set_roi_attr

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | ☓ |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | ☓ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | ☓ |
| Atlas 200I/500 A2 推理产品 | √ |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | ☓ |


#### 功能说明

设置H.264/H.265通道的ROI属性，用户可以通过配置ROI区域，对该区域的图像Qp进行限制，从而实现图像中该区域的Qp与其他图像区域的差异化。关于ROI编码功能的详细说明请参见ROI编码功能说明。


#### 函数原型

```
hi_s32
hi_mpi_venc_set_roi_attr(
hi_venc_chn
chn, const
hi_venc_roi_attr
*roi_attr)
```


#### 参数说明

| 参数名 | 输入/输出 | 说明 |
| --- | --- | --- |
| chn | 输入 | 编码通道号。 Atlas 200I/500 A2 推理产品 ，编码通道号的取值范围：[0, 128)，JPEGE功能和VENC功能共用通道，且通道总数最多128。 Atlas 推理系列产品 ，编码通道号的取值范围：[0, 256)，JPEGE功能和VENC功能共用通道，且通道总数最多256。 |
| roi\_attr | 输入 | ROI区域参数指针。 |


#### 返回值说明

- 0：成功
- 非0：失败，参见  VENC视频编码/JPEGE图片编码返回码


#### 约束说明

- 本接口在编码通道创建之后，编码通道销毁之前设置。此接口在编码过程中被调用时，等到下一个帧时生效。
- 建议用户在创建通道之后，启动编码之前调用此接口，减少在编码过程中调用的次数。
- 建议用户在调用此接口之前先调用  hi_mpi_venc_get_roi_attr
接口，获取当前通道的ROI配置，然后再进行设置。
- 设置该接口后，如果当前帧判断编码为pskip帧，以pskip帧效果优先。
- 设置该接口后，可能会出现感兴趣区域QP值不全为设置值的现象；这是因为在编码过程中，有些编码块的残差会为0，没有数据需要被量化，QP值不生效所致，属于正常现象，不影响编码效果。


#### ROI编码功能说明

ROI（Region Of Interest）编码：对感兴趣区域编码。

用户可以通过配置ROI区域，对该区域的图像Qp进行限制，从而实现图像中该区域的Qp与其它图像区域的差异化。系统现仅支持对H.264/H.265通道进行ROI设置。系统提供了8个感兴趣区域，可供用户同时使用。

8个区域可以互相叠加，且叠加时的优先级按照0～7的索引号依次提高，这里，叠加优先级是指发生叠加时，图像区域的最终Qp值的判定，最终的区域Qp值按照优先级最高的区域设定。ROI区域可配置绝对Qp和相对Qp两种模式。

- 绝对Qp：ROI区域的Qp为用户设定的Qp值。
- 相对Qp：ROI区域的Qp为码率控制产生的Qp与用户设定的Qp偏移值的和。


以下图为例，假如图像Qp为25，即图像中所有宏块Qp值为25。Roi区域0设置为绝对Qp模式，Qp值为10，索引为0；Roi区域1设置为相对Qp模式，Qp为-10，索引为1。区域0的index小于区域1的index，所以在发生互相重叠的图像区域按高优先级的区域（区域1）Qp设置。区域0除了发生重叠的部分的Qp值等于10。区域1 的Qp值为25-10=15。
