hi_mpi_venc_create_chn
Applicability
|
Product |
Supported |
|---|---|
|
Atlas 350 Accelerator Card |
√ |
|
|
√ |
|
|
√ |
|
|
√ |
|
|
√ |
|
|
☓ |
Function Description
Creates an encoding channel.
Prototype
hi_s32 hi_mpi_venc_create_chn(hi_venc_chn chn, const hi_venc_chn_attr *attr)
Parameters
|
Parameter |
Input/Output |
Description |
|---|---|---|
|
chn |
Input |
Encoding channel ID. Atlas 350 Accelerator Card: encoding channel ID. The value range is as follows: [0, 256). The maximum number of JPEGE channels is 256. For the |
|
attr |
Input |
Pointer to the encoding channel attributes. |
Returns
- 0: success
- Other values: failure. For details, see VENC/JPEGE Return Codes.
Restrictions
- The channel ID of a single device must not be greater than the maximum channel ID.
- An encoding channel has the encoder attributes, RC attributes, and group of pictures (GOP) attributes.
- In the encoder attributes, the stream buffer depth, stream fetching mode, and encoding profile must be set according to Table 1.
- The recommended encoding sizes are 3840 x 2160 (4K), 1920 x 1080 (1080p), and 1280 x 720 (720p).
- For H.264/H.265 encoding, a frame buffer consists of YHeaderSize, CHeaderSize, YSize, CSize, PmeSize, PmeInfoSize, and TmvSize. The encoder calculates the buffer allocation based on the maximum width and height by default. When configuring the channel width and height, ensure that each frame buffer calculated based on the channel width and height is within that calculated based on the maximum channel width and height.
- The input/output frame rate (src_frame_rate/dst_frame_rate) in the attributes of the bit rate controller is used to allocate the bit rate (bit_rate) during encoding, but not the final display frame rate of the player. For details about how to set the display frame rate, see hi_mpi_venc_set_h264_vui or hi_mpi_venc_set_h265_vui.
You are advised to set the control frame rate to be the same as the display frame rate. Otherwise, the bit rate during playback may be different from the encoding bit rate set by the user, and the playback bit rate will vary with the configured display frame rate.
- In the Ascend virtual instance scenario, the number of channels must meet the following requirements:
For
Atlas A2 training product /Atlas A2 inference product and Ascend virtual instance, the total number of JPEGE channels cannot exceed 256.For
Atlas 200I/500 A2 inference product , in the Ascend virtual instance scenario, the number of VENC channels is calculated as follows: Number of VENC channels = (Allocated VENC hardware units/VENC hardware units) x 128. If the total number of channels is not an integer, round down the value. The number of JPEGE channels is not affected by the computing power. However, the maximum number of JPEGE+VENC channels is 128.In the Ascend virtual instance scenario, the total number of VENC channels and JPEGE channels is calculated as follows: Total number of VENC channels and JPEGE channels = (Total number of allocated VENC and JPEGE hardware units/Total number of VENC and JPEGE hardware units) x 256. If the total number of channels is not an integer, round down the value.
You can run the npu-smi info -t template-info command on the server where AI processor is installed to view the computing power specifications of Ascend virtual instance in each scenario.
Restrictions on Encoder Attributes
|
Encode Protocol |
Encode Mode |
Stream Buffer Depth |
Stream Fetching Mode |
Encoding Profile |
|---|---|---|---|---|
|
H.264 |
Frame |
|
Frame/Slice |
Baseline Main Profile High Profile |
|
JPEG |
Frame |
|
Frame/Ecs |
Baseline |
|
H.265 |
Frame |
|
Frame/Slice |
Main profile Main 10 Profile (not supported currently) |
|
Frame/Slice |
Main 10 profile (not supported currently) |