C API#

nvImageCodec 库和扩展 API。

宏定义#

NVIMGCODEC_MAX_CODEC_NAME_SIZE#

NVIMGCODEC_MAX_CODEC_NAME_SIZE#

编解码器名称的最大长度。

NVIMGCODEC_DEVICE_CURRENT#

NVIMGCODEC_DEVICE_CURRENT#

定义设备 ID 为当前设备。

NVIMGCODEC_DEVICE_CPU_ONLY#

NVIMGCODEC_DEVICE_CPU_ONLY#

定义设备 ID 为仅 CPU。

NVIMGCODEC_MAX_NUM_DIM#

NVIMGCODEC_MAX_NUM_DIM#

最大维度数。

NVIMGCODEC_MAX_NUM_PLANES#

NVIMGCODEC_MAX_NUM_PLANES#

最大图像平面数。

NVIMGCODEC_JPEG2K_MAXRES#

NVIMGCODEC_JPEG2K_MAXRES#

JPEG2000 分辨率的最大数量。

类型定义#

nvimgcodecInstance_t#

typedef struct nvimgcodecInstance *nvimgcodecInstance_t#

不透明 nvImageCodec 库实例类型的句柄。

nvimgcodecImage_t#

typedef struct nvimgcodecImage *nvimgcodecImage_t#

不透明 Image 类型的句柄。

nvimgcodecCodeStream_t#

typedef struct nvimgcodecCodeStream *nvimgcodecCodeStream_t#

不透明 Code Stream 类型的句柄。

nvimgcodecParser_t#

typedef struct nvimgcodecParser *nvimgcodecParser_t#

不透明 Parser 类型的句柄。

nvimgcodecEncoder_t#

typedef struct nvimgcodecEncoder *nvimgcodecEncoder_t#

不透明 Encoder 类型的句柄。

nvimgcodecDecoder_t#

typedef struct nvimgcodecDecoder *nvimgcodecDecoder_t#

不透明 Decoder 类型的句柄。

nvimgcodecDebugMessenger_t#

typedef struct nvimgcodecDebugMessenger *nvimgcodecDebugMessenger_t#

不透明 Debug Messenger 类型的句柄。

nvimgcodecExtension_t#

typedef struct nvimgcodecExtension *nvimgcodecExtension_t#

不透明 Extension 类型的句柄。

nvimgcodecFuture_t#

typedef struct nvimgcodecFuture *nvimgcodecFuture_t#

不透明 Future 类型的句柄。

nvimgcodecDeviceMalloc_t#

typedef int (*nvimgcodecDeviceMalloc_t)(void *ctx, void **ptr, size_t size, cudaStream_t stream)#

用于设备内存资源分配的函数类型。

Param ctx:

[in] 指向用户上下文的指针。

Param ptr:

[in] 指向用于写入已分配内存指针的位置的指针。

Param size:

[in] 要分配的字节数。

Param stream:

[in] CUDA 流

返回值:

成功时返回 0,否则返回非零值

nvimgcodecDeviceFree_t#

typedef int (*nvimgcodecDeviceFree_t)(void *ctx, void *ptr, size_t size, cudaStream_t stream)#

用于设备内存释放的函数类型。

Param ctx:

[in] 指向用户上下文的指针。

Param ptr:

[in] 指向要释放的内存缓冲区的指针。 如果为 NULL,则操作必须成功完成,且不执行任何操作。

Param size:

[in] 已分配的字节数(分配期间传递的大小)。

Param stream:

[in] CUDA 流

返回值:

成功时返回 0,否则返回非零值

nvimgcodecPinnedMalloc_t#

typedef int (*nvimgcodecPinnedMalloc_t)(void *ctx, void **ptr, size_t size, cudaStream_t stream)#

用于主机锁定内存资源分配的函数类型。

Param ctx:

[in] 指向用户上下文的指针。

Param ptr:

[in] 指向用于写入已分配内存指针的位置的指针。

Param size:

[in] 要分配的字节数。

Param stream:

[in] CUDA 流

返回值:

成功时返回 0,否则返回非零值

nvimgcodecPinnedFree_t#

typedef int (*nvimgcodecPinnedFree_t)(void *ctx, void *ptr, size_t size, cudaStream_t stream)#

用于主机锁定内存释放的函数类型。

Param ctx:

[in] 指向用户上下文的指针。

Param ptr:

[in] 指向要释放的内存缓冲区的指针。 如果为 NULL,则操作必须成功完成,且不执行任何操作。

Param size:

[in] 已分配的字节数(分配期间传递的大小)。

Param stream:

[in] CUDA 流

返回值:

成功时返回 0,否则返回非零值

nvimgcodecProcessingStatus_t#

typedef uint32_t nvimgcodecProcessingStatus_t#

处理状态类型,它结合了处理状态位掩码。

nvimgcodecDebugCallback_t#

typedef int (*nvimgcodecDebugCallback_t)(const nvimgcodecDebugMessageSeverity_t message_severity, const nvimgcodecDebugMessageCategory_t message_category, const nvimgcodecDebugMessageData_t *callback_data, void *user_data)#

调试回调函数类型。

Param message_severity:

[in] 消息严重性

Param message_category:

[in] 消息类别

Param callback_data:

[in] 调试消息数据

Param user_data:

[in] 在回调设置期间指定的指针

返回值:

如果消息不应进一步传递给其他回调,则为 1,否则为 0

nvimgcodecLogFunc_t#

typedef nvimgcodecStatus_t (*nvimgcodecLogFunc_t)(void *instance, const nvimgcodecDebugMessageSeverity_t message_severity, const nvimgcodecDebugMessageCategory_t message_category, const nvimgcodecDebugMessageData_t *data)#

指向日志记录函数的指针。

Param instance:

[in] 插件框架实例指针

Param message_severity:

[in] 消息严重性,例如错误或警告。

Param message_category:

[in] 消息类别,例如常规或性能相关。

Param data:

[in] 调试消息数据,即消息字符串、状态、编解码器等。

nvimgcodecExtensionModuleEntryFunc_t#

typedef nvimgcodecStatus_t (*nvimgcodecExtensionModuleEntryFunc_t)(nvimgcodecExtensionDesc_t *ext_desc)#

扩展模块入口函数类型。

Param ext_desc:

[in/out] 指向 nvimgcodecExtensionDesc_t 句柄,扩展描述将在此句柄中返回。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecResizeBufferFunc_t#

typedef unsigned char *(*nvimgcodecResizeBufferFunc_t)(void *ctx, size_t req_size)#

用于调整大小并提供主机缓冲区的函数类型。

注意

此函数可以多次调用,并且请求的大小在最后可能会更小,因此可以缩小缓冲区。

Param ctx:

[in] 指向与函数一起提供的上下文的指针。

Param req_size:

[in] 请求的缓冲区大小。

返回值:

指向请求缓冲区的指针。

枚举#

nvimgcodecStructureType_t#

enum nvimgcodecStructureType_t#

nvImageCodec API 支持的结构类型。

每个值对应于具有类型成员和匹配结构名称的特定结构。

enumerator NVIMGCODEC_STRUCTURE_TYPE_PROPERTIES#
enumerator NVIMGCODEC_STRUCTURE_TYPE_INSTANCE_CREATE_INFO#
enumerator NVIMGCODEC_STRUCTURE_TYPE_DEVICE_ALLOCATOR#
enumerator NVIMGCODEC_STRUCTURE_TYPE_PINNED_ALLOCATOR#
enumerator NVIMGCODEC_STRUCTURE_TYPE_DECODE_PARAMS#
enumerator NVIMGCODEC_STRUCTURE_TYPE_ENCODE_PARAMS#
enumerator NVIMGCODEC_STRUCTURE_TYPE_ORIENTATION#
enumerator NVIMGCODEC_STRUCTURE_TYPE_REGION#
enumerator NVIMGCODEC_STRUCTURE_TYPE_IMAGE_INFO#
enumerator NVIMGCODEC_STRUCTURE_TYPE_IMAGE_PLANE_INFO#
enumerator NVIMGCODEC_STRUCTURE_TYPE_JPEG_IMAGE_INFO#
enumerator NVIMGCODEC_STRUCTURE_TYPE_JPEG_ENCODE_PARAMS#
enumerator NVIMGCODEC_STRUCTURE_TYPE_TILE_GEOMETRY_INFO#
enumerator NVIMGCODEC_STRUCTURE_TYPE_JPEG2K_ENCODE_PARAMS#
enumerator NVIMGCODEC_STRUCTURE_TYPE_BACKEND#
enumerator NVIMGCODEC_STRUCTURE_TYPE_IO_STREAM_DESC#
enumerator NVIMGCODEC_STRUCTURE_TYPE_FRAMEWORK_DESC#
enumerator NVIMGCODEC_STRUCTURE_TYPE_DECODER_DESC#
enumerator NVIMGCODEC_STRUCTURE_TYPE_ENCODER_DESC#
enumerator NVIMGCODEC_STRUCTURE_TYPE_PARSER_DESC#
enumerator NVIMGCODEC_STRUCTURE_TYPE_IMAGE_DESC#
enumerator NVIMGCODEC_STRUCTURE_TYPE_CODE_STREAM_DESC#
enumerator NVIMGCODEC_STRUCTURE_TYPE_DEBUG_MESSENGER_DESC#
enumerator NVIMGCODEC_STRUCTURE_TYPE_DEBUG_MESSAGE_DATA#
enumerator NVIMGCODEC_STRUCTURE_TYPE_EXTENSION_DESC#
enumerator NVIMGCODEC_STRUCTURE_TYPE_EXECUTOR_DESC#
enumerator NVIMGCODEC_STRUCTURE_TYPE_BACKEND_PARAMS#
enumerator NVIMGCODEC_STRUCTURE_TYPE_EXECUTION_PARAMS#
enumerator NVIMGCODEC_STRUCTURE_TYPE_ENUM_FORCE_INT#

nvimgcodecStatus_t#

enum nvimgcodecStatus_t#

nvImageCodec API 的返回状态代码。

enumerator NVIMGCODEC_STATUS_SUCCESS#
enumerator NVIMGCODEC_STATUS_NOT_INITIALIZED#
enumerator NVIMGCODEC_STATUS_INVALID_PARAMETER#
enumerator NVIMGCODEC_STATUS_BAD_CODESTREAM#
enumerator NVIMGCODEC_STATUS_CODESTREAM_UNSUPPORTED#
enumerator NVIMGCODEC_STATUS_ALLOCATOR_FAILURE#
enumerator NVIMGCODEC_STATUS_EXECUTION_FAILED#
enumerator NVIMGCODEC_STATUS_ARCH_MISMATCH#
enumerator NVIMGCODEC_STATUS_INTERNAL_ERROR#
enumerator NVIMGCODEC_STATUS_IMPLEMENTATION_UNSUPPORTED#
enumerator NVIMGCODEC_STATUS_MISSED_DEPENDENCIES#
enumerator NVIMGCODEC_STATUS_EXTENSION_NOT_INITIALIZED#
enumerator NVIMGCODEC_STATUS_EXTENSION_INVALID_PARAMETER#
enumerator NVIMGCODEC_STATUS_EXTENSION_BAD_CODE_STREAM#
enumerator NVIMGCODEC_STATUS_EXTENSION_CODESTREAM_UNSUPPORTED#
enumerator NVIMGCODEC_STATUS_EXTENSION_ALLOCATOR_FAILURE#
enumerator NVIMGCODEC_STATUS_EXTENSION_ARCH_MISMATCH#
enumerator NVIMGCODEC_STATUS_EXTENSION_INTERNAL_ERROR#
enumerator NVIMGCODEC_STATUS_EXTENSION_IMPLEMENTATION_NOT_SUPPORTED#
enumerator NVIMGCODEC_STATUS_EXTENSION_INCOMPLETE_BITSTREAM#
enumerator NVIMGCODEC_STATUS_EXTENSION_EXECUTION_FAILED#
enumerator NVIMGCODEC_STATUS_EXTENSION_CUDA_CALL_ERROR#
enumerator NVIMGCODEC_STATUS_ENUM_FORCE_INT#

nvimgcodecSampleDataType_t#

enum nvimgcodecSampleDataType_t#

描述数据样本的类型。

位含义:第 0 位 -> 0 - 无符号,1- 有符号 1..7 位 -> 定义类型 8..15 位 -> 类型位深

enumerator NVIMGCODEC_SAMPLE_DATA_TYPE_UNKNOWN#
enumerator NVIMGCODEC_SAMPLE_DATA_TYPE_INT8#
enumerator NVIMGCODEC_SAMPLE_DATA_TYPE_UINT8#
enumerator NVIMGCODEC_SAMPLE_DATA_TYPE_INT16#
enumerator NVIMGCODEC_SAMPLE_DATA_TYPE_UINT16#
enumerator NVIMGCODEC_SAMPLE_DATA_TYPE_INT32#
enumerator NVIMGCODEC_SAMPLE_DATA_TYPE_UINT32#
enumerator NVIMGCODEC_SAMPLE_DATA_TYPE_INT64#
enumerator NVIMGCODEC_SAMPLE_DATA_TYPE_UINT64#
enumerator NVIMGCODEC_SAMPLE_DATA_TYPE_FLOAT16#
enumerator NVIMGCODEC_SAMPLE_DATA_TYPE_FLOAT32#
enumerator NVIMGCODEC_SAMPLE_DATA_TYPE_FLOAT64#
enumerator NVIMGCODEC_SAMPLE_DATA_TYPE_UNSUPPORTED#
enumerator NVIMGCODEC_SAMPLE_ENUM_FORCE_INT#

nvimgcodecChromaSubsampling_t#

enum nvimgcodecChromaSubsampling_t#

色度二次采样。

enumerator NVIMGCODEC_SAMPLING_NONE#
enumerator NVIMGCODEC_SAMPLING_444#
enumerator NVIMGCODEC_SAMPLING_422#
enumerator NVIMGCODEC_SAMPLING_420#
enumerator NVIMGCODEC_SAMPLING_440#
enumerator NVIMGCODEC_SAMPLING_411#
enumerator NVIMGCODEC_SAMPLING_410#
enumerator NVIMGCODEC_SAMPLING_GRAY#
enumerator NVIMGCODEC_SAMPLING_410V#
enumerator NVIMGCODEC_SAMPLING_UNSUPPORTED#
enumerator NVIMGCODEC_SAMPLING_ENUM_FORCE_INT#

nvimgcodecSampleFormat_t#

enum nvimgcodecSampleFormat_t#

提供有关颜色分量如何按给定顺序与通道匹配,以及通道如何与平面匹配的信息。

enumerator NVIMGCODEC_SAMPLEFORMAT_UNKNOWN#
enumerator NVIMGCODEC_SAMPLEFORMAT_P_UNCHANGED#
enumerator NVIMGCODEC_SAMPLEFORMAT_I_UNCHANGED#
enumerator NVIMGCODEC_SAMPLEFORMAT_P_RGB#
enumerator NVIMGCODEC_SAMPLEFORMAT_I_RGB#
enumerator NVIMGCODEC_SAMPLEFORMAT_P_BGR#
enumerator NVIMGCODEC_SAMPLEFORMAT_I_BGR#
enumerator NVIMGCODEC_SAMPLEFORMAT_P_Y#
enumerator NVIMGCODEC_SAMPLEFORMAT_P_YUV#
enumerator NVIMGCODEC_SAMPLEFORMAT_UNSUPPORTED#
enumerator NVIMGCODEC_SAMPLEFORMAT_ENUM_FORCE_INT#

nvimgcodecColorSpec_t#

enum nvimgcodecColorSpec_t#

定义颜色规范。

enumerator NVIMGCODEC_COLORSPEC_UNKNOWN#
enumerator NVIMGCODEC_COLORSPEC_UNCHANGED#
enumerator NVIMGCODEC_COLORSPEC_SRGB#
enumerator NVIMGCODEC_COLORSPEC_GRAY#
enumerator NVIMGCODEC_COLORSPEC_SYCC#
enumerator NVIMGCODEC_COLORSPEC_CMYK#
enumerator NVIMGCODEC_COLORSPEC_YCCK#
enumerator NVIMGCODEC_COLORSPEC_UNSUPPORTED#
enumerator NVIMGCODEC_COLORSPEC_ENUM_FORCE_INT#

nvimgcodecImageBufferKind_t#

enum nvimgcodecImageBufferKind_t#

定义图像数据存储在其中的缓冲区类型。

enumerator NVIMGCODEC_IMAGE_BUFFER_KIND_UNKNOWN#
enumerator NVIMGCODEC_IMAGE_BUFFER_KIND_STRIDED_DEVICE#

GPU 可访问,平面采用步幅线性布局。

enumerator NVIMGCODEC_IMAGE_BUFFER_KIND_STRIDED_HOST#

主机可访问,平面采用步幅线性布局。

enumerator NVIMGCODEC_IMAGE_BUFFER_KIND_UNSUPPORTED#
enumerator NVIMGCODEC_IMAGE_BUFFER_KIND_ENUM_FORCE_INT#

nvimgcodecJpegEncoding_t#

enum nvimgcodecJpegEncoding_t#

JPEG 编码。

当前可解析的 JPEG 编码(SOF 标记) https://www.w3.org/Graphics/JPEG/itu-t81.pdf 表 B.1 帧起始标记

enumerator NVIMGCODEC_JPEG_ENCODING_UNKNOWN#
enumerator NVIMGCODEC_JPEG_ENCODING_BASELINE_DCT#
enumerator NVIMGCODEC_JPEG_ENCODING_EXTENDED_SEQUENTIAL_DCT_HUFFMAN#
enumerator NVIMGCODEC_JPEG_ENCODING_PROGRESSIVE_DCT_HUFFMAN#
enumerator NVIMGCODEC_JPEG_ENCODING_LOSSLESS_HUFFMAN#
enumerator NVIMGCODEC_JPEG_ENCODING_DIFFERENTIAL_SEQUENTIAL_DCT_HUFFMAN#
enumerator NVIMGCODEC_JPEG_ENCODING_DIFFERENTIAL_PROGRESSIVE_DCT_HUFFMAN#
enumerator NVIMGCODEC_JPEG_ENCODING_DIFFERENTIAL_LOSSLESS_HUFFMAN#
enumerator NVIMGCODEC_JPEG_ENCODING_RESERVED_FOR_JPEG_EXTENSIONS#
enumerator NVIMGCODEC_JPEG_ENCODING_EXTENDED_SEQUENTIAL_DCT_ARITHMETIC#
enumerator NVIMGCODEC_JPEG_ENCODING_PROGRESSIVE_DCT_ARITHMETIC#
enumerator NVIMGCODEC_JPEG_ENCODING_LOSSLESS_ARITHMETIC#
enumerator NVIMGCODEC_JPEG_ENCODING_DIFFERENTIAL_SEQUENTIAL_DCT_ARITHMETIC#
enumerator NVIMGCODEC_JPEG_ENCODING_DIFFERENTIAL_PROGRESSIVE_DCT_ARITHMETIC#
enumerator NVIMGCODEC_JPEG_ENCODING_DIFFERENTIAL_LOSSLESS_ARITHMETIC#
enumerator NVIMGCODEC_JPEG_ENCODING_ENUM_FORCE_INT#

nvimgcodecBackendKind_t#

enum nvimgcodecBackendKind_t#

定义解码/编码后端类型。

enumerator NVIMGCODEC_BACKEND_KIND_CPU_ONLY#

解码/编码仅在 CPU 上执行。

enumerator NVIMGCODEC_BACKEND_KIND_GPU_ONLY#

解码/编码仅在 GPU 上执行。

enumerator NVIMGCODEC_BACKEND_KIND_HYBRID_CPU_GPU#

解码/编码在 CPU 和 GPU 上均执行。

enumerator NVIMGCODEC_BACKEND_KIND_HW_GPU_ONLY#

解码/编码在 GPU 专用硬件引擎上执行。

nvimgcodecLoadHintPolicy_t#

enum nvimgcodecLoadHintPolicy_t#

定义如何解释加载提示参数。

enumerator NVIMGCODEC_LOAD_HINT_POLICY_IGNORE#

加载提示不被考虑。

enumerator NVIMGCODEC_LOAD_HINT_POLICY_FIXED#

加载提示用于计算后端批处理大小一次

enumerator NVIMGCODEC_LOAD_HINT_POLICY_ADAPTIVE_MINIMIZE_IDLE_TIME#

加载提示用作初始提示,并在每次迭代时重新计算以减少线程的空闲时间

nvimgcodecProcessingStatus#

enum nvimgcodecProcessingStatus#

用于解码或编码的处理状态位掩码。

enumerator NVIMGCODEC_PROCESSING_STATUS_UNKNOWN#
enumerator NVIMGCODEC_PROCESSING_STATUS_SUCCESS#

处理成功完成。

enumerator NVIMGCODEC_PROCESSING_STATUS_SATURATED#

解码器/编码器可能可以处理图像,但已饱和。

另请参阅

nvimgcodecBackendParams_t load_hint.

enumerator NVIMGCODEC_PROCESSING_STATUS_FAIL#

处理失败,原因未知。

enumerator NVIMGCODEC_PROCESSING_STATUS_IMAGE_CORRUPTED#

处理失败,因为压缩图像流已损坏。

enumerator NVIMGCODEC_PROCESSING_STATUS_CODEC_UNSUPPORTED#

处理失败,因为编解码器不受支持

enumerator NVIMGCODEC_PROCESSING_STATUS_BACKEND_UNSUPPORTED#

处理失败,因为允许的后端都不受支持。

enumerator NVIMGCODEC_PROCESSING_STATUS_ENCODING_UNSUPPORTED#

处理失败,因为编解码器编码不受支持。

enumerator NVIMGCODEC_PROCESSING_STATUS_RESOLUTION_UNSUPPORTED#

处理失败,因为图像分辨率不受支持。

enumerator NVIMGCODEC_PROCESSING_STATUS_CODESTREAM_UNSUPPORTED#

处理失败,因为压缩流的某些功能不受支持

enumerator NVIMGCODEC_PROCESSING_STATUS_COLOR_SPEC_UNSUPPORTED#

颜色规格不受支持。

enumerator NVIMGCODEC_PROCESSING_STATUS_ORIENTATION_UNSUPPORTED#

启用了应用方向,但不受支持。

enumerator NVIMGCODEC_PROCESSING_STATUS_ROI_UNSUPPORTED#

感兴趣区域解码不受支持。

enumerator NVIMGCODEC_PROCESSING_STATUS_SAMPLING_UNSUPPORTED#

选择了不受支持的色度二次采样。

enumerator NVIMGCODEC_PROCESSING_STATUS_SAMPLE_TYPE_UNSUPPORTED#

选择了不受支持的样本类型。

enumerator NVIMGCODEC_PROCESSING_STATUS_SAMPLE_FORMAT_UNSUPPORTED#

选择了不受支持的样本格式。

enumerator NVIMGCODEC_PROCESSING_STATUS_NUM_PLANES_UNSUPPORTED#

不支持解码/编码的平面数量。

enumerator NVIMGCODEC_PROCESSING_STATUS_NUM_CHANNELS_UNSUPPORTED#

不支持解码/编码的通道数量。

enumerator NVIMGCODEC_PROCESSING_STATUS_ENUM_FORCE_INT#

nvimgcodecJpeg2kProgOrder_t#

enum nvimgcodecJpeg2kProgOrder_t#

JPEG2000 标准中定义的渐进顺序。

enumerator NVIMGCODEC_JPEG2K_PROG_ORDER_LRCP#
enumerator NVIMGCODEC_JPEG2K_PROG_ORDER_RLCP#
enumerator NVIMGCODEC_JPEG2K_PROG_ORDER_RPCL#
enumerator NVIMGCODEC_JPEG2K_PROG_ORDER_PCRL#
enumerator NVIMGCODEC_JPEG2K_PROG_ORDER_CPRL#
enumerator NVIMGCODEC_JPEG2K_PROG_ORDER_ENUM_FORCE_INT#

nvimgcodecJpeg2kBitstreamType_t#

enum nvimgcodecJpeg2kBitstreamType_t#

JPEG2000 代码流类型。

enumerator NVIMGCODEC_JPEG2K_STREAM_J2K#

对应于 JPEG2000 代码流。

enumerator NVIMGCODEC_JPEG2K_STREAM_JP2#

对应于 .jp2 容器。

enumerator NVIMGCODEC_JPEG2K_STREAM_ENUM_FORCE_INT#

nvimgcodecDebugMessageSeverity_t#

enum nvimgcodecDebugMessageSeverity_t#

位掩码,用于指定哪些事件严重性会导致调试消息回调。

enumerator NVIMGCODEC_DEBUG_MESSAGE_SEVERITY_NONE#
enumerator NVIMGCODEC_DEBUG_MESSAGE_SEVERITY_TRACE#

对开发者有用的诊断消息

enumerator NVIMGCODEC_DEBUG_MESSAGE_SEVERITY_DEBUG#

对开发者有用的诊断消息

enumerator NVIMGCODEC_DEBUG_MESSAGE_SEVERITY_INFO#

信息性消息,例如资源的创建

enumerator NVIMGCODEC_DEBUG_MESSAGE_SEVERITY_WARNING#

关于行为的消息,该行为不一定是错误,但很可能是应用程序中的错误

enumerator NVIMGCODEC_DEBUG_MESSAGE_SEVERITY_ERROR#

关于无效行为的消息,可能导致操作执行不当或结果不正确(例如,无法打开文件),但不会导致应用程序崩溃

enumerator NVIMGCODEC_DEBUG_MESSAGE_SEVERITY_FATAL#

关于无效行为的消息,可能导致崩溃并强制关闭应用程序

enumerator NVIMGCODEC_DEBUG_MESSAGE_SEVERITY_ALL#

用于按消息严重性进行过滤的情况

enumerator NVIMGCODEC_DEBUG_MESSAGE_SEVERITY_DEFAULT#
enumerator NVIMGCODEC_DEBUG_MESSAGE_SEVERITY_ENUM_FORCE_INT#

nvimgcodecDebugMessageCategory_t#

enum nvimgcodecDebugMessageCategory_t#

位掩码,用于指定哪些事件类别会导致调试消息回调。

enumerator NVIMGCODEC_DEBUG_MESSAGE_CATEGORY_NONE#
enumerator NVIMGCODEC_DEBUG_MESSAGE_CATEGORY_GENERAL#

发生了一些与规范或性能无关的事件

enumerator NVIMGCODEC_DEBUG_MESSAGE_CATEGORY_VALIDATION#

发生了一些指示可能错误的事情

enumerator NVIMGCODEC_DEBUG_MESSAGE_CATEGORY_PERFORMANCE#

潜在的非最佳使用

enumerator NVIMGCODEC_DEBUG_MESSAGE_CATEGORY_ALL#

用于按消息类别进行过滤的情况

enumerator NVIMGCODEC_DEBUG_MESSAGE_CATEGORY_ENUM_FORCE_INT#

nvimgcodecPriority_t#

enum nvimgcodecPriority_t#

定义编解码器中解码器或编码器的优先级。

对于每个编解码器,可以注册更多的解码器和编码器。每个解码器和编码器都使用定义的优先级进行注册。解码过程从选择最高优先级的解码器开始,并检查它是否可以解码特定的代码流。如果所选解码器无法处理解码,则存在回退机制,该机制选择优先级较低的下一个解码器。可以注册更多具有相同优先级的解码器。在这种情况下,具有相同优先级的解码器按注册顺序选择。

enumerator NVIMGCODEC_PRIORITY_HIGHEST#
enumerator NVIMGCODEC_PRIORITY_VERY_HIGH#
enumerator NVIMGCODEC_PRIORITY_HIGH#
enumerator NVIMGCODEC_PRIORITY_NORMAL#
enumerator NVIMGCODEC_PRIORITY_LOW#
enumerator NVIMGCODEC_PRIORITY_VERY_LOW#
enumerator NVIMGCODEC_PRIORITY_LOWEST#
enumerator NVIMGCODEC_PRIORITY_ENUM_FORCE_INT#

结构体#

nvimgcodecBackend_t#

struct nvimgcodecBackend_t#

定义解码/编码后端。

公有成员

nvimgcodecStructureType_t struct_type#

结构体的类型。

size_t struct_size#

结构体的大小,以字节为单位。

void *struct_next#

为 NULL 或指向扩展结构类型的指针。

nvimgcodecBackendKind_t kind#

解码/编码后端类型。

nvimgcodecBackendParams_t params#

解码/编码后端参数。

nvimgcodecBackendParams_t#

struct nvimgcodecBackendParams_t#

定义解码/编码后端参数。

公有成员

nvimgcodecStructureType_t struct_type#

结构体的类型。

size_t struct_size#

结构体的大小,以字节为单位。

void *struct_next#

为 NULL 或指向扩展结构类型的指针。

float load_hint#

用于计算将由此后端选择的批处理项的分数的提示。这只是一个提示,特定的实现可以选择忽略它。可以选择不同的策略,请参阅 nvimgcodecLoadHintPolicy_t

nvimgcodecLoadHintPolicy_t load_hint_policy#

如果为 true,则将在每次迭代时调整后端负载,以最大限度地减少线程的空闲时间。

nvimgcodecCodeStreamDesc_t#

struct nvimgcodecCodeStreamDesc_t#

代码流描述。

公有成员

nvimgcodecStructureType_t struct_type#

结构体的类型。

size_t struct_size#

结构体的大小,以字节为单位。

void *struct_next#

为 NULL 或指向扩展结构类型的指针。

void *instance#

代码流描述实例指针,将在函数中传递返回

nvimgcodecIoStreamDesc_t *io_stream#

<生成的 ID,唯一标识作为代码流字节源或接收器的实例 I/O 流

nvimgcodecStatus_t (*getImageInfo)(void *instance, nvimgcodecImageInfo_t *image_info)#

检索图像信息。

Param instance:

[in] 指向 nvimgcodecCodeStreamDesc_t 实例的指针。

参数 image_info:

[in/out] 指示返回图像信息的位置。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecDebugMessageData_t#

struct nvimgcodecDebugMessageData_t#

描述传递给调试回调函数的调试消息。

公有成员

nvimgcodecStructureType_t struct_type#

结构体的类型。

size_t struct_size#

结构体的大小,以字节为单位。

void *struct_next#

为 NULL 或指向扩展结构类型的指针。

const char *message#

描述触发条件的空字符结尾的字符串

uint32_t internal_status_id#

它是内部编解码器状态 ID

const char *codec#

如果消息由编解码器引发,则为编解码器名称;否则为 NULL(例如框架)

const char *codec_id#

如果消息由编解码器引发,则为编解码器 ID;否则为 NULL

uint32_t codec_version#

如果消息由编解码器引发,则为编解码器版本;否则为 0

nvimgcodecDebugMessengerDesc_t#

struct nvimgcodecDebugMessengerDesc_t#

调试消息传递器描述。

公有成员

nvimgcodecStructureType_t struct_type#

结构体的类型。

size_t struct_size#

结构体的大小,以字节为单位。

void *struct_next#

为 NULL 或指向扩展结构类型的指针。

uint32_t message_severity#

要监听的消息严重性位掩码,例如错误或警告。

uint32_t message_category#

要监听的消息类别位掩码,例如常规消息或与性能相关的消息。

nvimgcodecDebugCallback_t user_callback#

调试回调函数

void *user_data#

指向用户数据的指针,该指针将传递回调试回调函数。

nvimgcodecDecodeParams_t#

struct nvimgcodecDecodeParams_t#

解码参数。

公有成员

nvimgcodecStructureType_t struct_type#

结构体的类型。

size_t struct_size#

结构体的大小,以字节为单位。

void *struct_next#

为 NULL 或指向扩展结构类型的指针。

int apply_exif_orientation#

如果可用,则应用 Exif 方向。有效值为 0 或 1。

int enable_roi#

启用感兴趣区域。有效值为 0 或 1。

nvimgcodecDecoderDesc_t#

struct nvimgcodecDecoderDesc_t#

解码器描述。

公有成员

nvimgcodecStructureType_t struct_type#

结构体的类型。

size_t struct_size#

结构体的大小,以字节为单位。

void *struct_next#

为 NULL 或指向扩展结构类型的指针。

void *instance#

解码器描述实例指针,将在函数中传递回

const char *id#

编解码器命名标识符,例如 nvJpeg2000

const char *codec#

编解码器名称,例如 jpeg2000

nvimgcodecBackendKind_t backend_kind#

后端类型

nvimgcodecStatus_t (*create)(void *instance, nvimgcodecDecoder_t *decoder, const nvimgcodecExecutionParams_t *exec_params, const char *options)#

创建解码器。

Param instance:

[in] 指向 nvimgcodecDecoderDesc_t 实例的指针。

Param decoder:

[in/out] 指向将在其中返回已创建解码器句柄的位置。

Param exec_params:

[in] 指向执行参数。

Param options:

[in] 带有可选的、空格分隔的解码器参数列表的字符串,格式为“<encoder_id>:<parameter_name>=<parameter_value>”。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecStatus_t (*destroy)(nvimgcodecDecoder_t decoder)#

销毁解码器。

Param decoder:

[in] 要销毁的解码器句柄。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecProcessingStatus_t (*canDecode)(nvimgcodecDecoder_t decoder, const nvimgcodecImageDesc_t *image, const nvimgcodecCodeStreamDesc_t *code_stream, const nvimgcodecDecodeParams_t *params, int thread_idx)#

检查解码器是否可以使用提供的参数将给定的码流解码为图像。

Param decoder:

[in] 用于检查的解码器句柄。

Param info:

[in] 图像信息,包括请求的格式。

Param code_stream:

[in] 编码流。

Param params:

[in] 将用于检查的解码参数。

Param thread_idx:

[in] 调用线程的索引(可以从 0 到执行器的线程数,或者对于非线程执行为 -1)

返回值:

nvimgcodecStatus_t

nvimgcodecStatus_t (*decode)(nvimgcodecDecoder_t decoder, const nvimgcodecImageDesc_t *image, const nvimgcodecCodeStreamDesc_t *code_stream, const nvimgcodecDecodeParams_t *params, int thread_idx)#

使用提供的参数将给定的码流解码为图像。

Param decoder:

[in] 用于解码的解码器句柄。

Param image:

[in/out] 图像描述符。

Param code_stream:

[in] 编码流。

Param params:

[in] 解码参数。

Param thread_idx:

[in] 调用线程的索引(可以从 0 到执行器的线程数,或者对于非线程执行为 -1)

返回值:

nvimgcodecStatus_t

nvimgcodecStatus_t (*decodeBatch)(nvimgcodecDecoder_t decoder, const nvimgcodecImageDesc_t **images, const nvimgcodecCodeStreamDesc_t **code_streams, int batch_size, const nvimgcodecDecodeParams_t *params, int thread_idx)#

使用提供的参数将给定的批量码流解码为图像。

Param decoder:

[in] 用于解码的解码器句柄。

Param images:

[in/out] 指向批量大小的图像描述符指针数组的指针。

Param code_streams:

[in] 指向批量大小的编码流实例指针数组的指针。

Param batch_size:

[in] 要解码的批量项目数。

Param params:

[in] 解码参数。

Param thread_idx:

[in] 调用线程的索引(可以从 0 到执行器的线程数,或者对于非线程执行为 -1)

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecStatus_t (*getMiniBatchSize)(nvimgcodecDecoder_t decoder, int *batch_size)#

检索首选的小批量大小。库将尝试使用此值的倍数的批量大小。

Param decoder:

[in] 要使用的解码器句柄。

Param batch_size:

[out] 首选的小批量大小。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecDeviceAllocator_t#

struct nvimgcodecDeviceAllocator_t#

设备内存分配器。

公有成员

nvimgcodecStructureType_t struct_type#

结构体的类型。

size_t struct_size#

结构体的大小,以字节为单位。

void *struct_next#

为 NULL 或指向扩展结构类型的指针。

nvimgcodecDeviceMalloc_t device_malloc#

在设备上分配内存。

nvimgcodecDeviceFree_t device_free#

释放设备上的内存。

void *device_ctx#

调用分配器时,此上下文将作为输入传递给分配器函数。

size_t device_mem_padding#

任何设备内存分配都将填充到指定字节数的倍数

nvimgcodecEncodeParams_t#

struct nvimgcodecEncodeParams_t#

编码参数。

公有成员

nvimgcodecStructureType_t struct_type#

结构体的类型。

size_t struct_size#

结构体的大小,以字节为单位。

void *struct_next#

为 NULL 或指向扩展结构类型的指针。

float quality#

质量的浮点值,其解释取决于特定的编解码器。

对于 JPEG 编解码器,预计为介于 1 到 100 之间的整数值,其中 100 为最高质量。

对于 WebP 编解码器,大于 100 的值表示无损。

对于 OpenCV JPEG2000 后端,当压缩不可逆时,此值乘以 10 并用作 IMWRITE_JPEG2000_COMPRESSION_X1000。

警告

对于 nvJPEG2000 后端,不支持此值,应使用 target_psnr 代替。

float target_psnr#

目标 PSNR(峰值信噪比)的浮点值

警告

它仅对有损编码有效。

警告

并非所有编解码器都支持。

nvimgcodecEncoderDesc_t#

struct nvimgcodecEncoderDesc_t#

编码器描述。

公有成员

nvimgcodecStructureType_t struct_type#

结构体的类型。

size_t struct_size#

结构体的大小,以字节为单位。

void *struct_next#

为 NULL 或指向扩展结构类型的指针。

void *instance#

编码器描述实例指针,将在函数中传递回

const char *id#

编解码器命名标识符,例如 nvJpeg2000

const char *codec#

编解码器名称,例如 jpeg2000

nvimgcodecBackendKind_t backend_kind#

此编码器使用的后端类型

nvimgcodecStatus_t (*create)(void *instance, nvimgcodecEncoder_t *encoder, const nvimgcodecExecutionParams_t *exec_params, const char *options)#

创建编码器。

Param instance:

[in] 指向 nvimgcodecEncoderDesc_t 实例的指针。

Param encoder:

[in/out] 指向将在其中返回已创建编码器句柄的位置。

Param exec_params:

[in] 指向执行参数。

Param options:

[in] 带有可选的、空格分隔的编码器参数列表的字符串,格式为“<encoder_id>:<parameter_name>=<parameter_value>”。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecStatus_t (*destroy)(nvimgcodecEncoder_t encoder)#

销毁编码器。

Param encoder:

[in] 要销毁的编码器句柄。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecProcessingStatus_t (*canEncode)(nvimgcodecEncoder_t encoder, const nvimgcodecCodeStreamDesc_t *code_stream, const nvimgcodecImageDesc_t *image, const nvimgcodecEncodeParams_t *params, int thread_idx)#

检查编码器是否可以使用提供的参数将给定的图像编码为码流。

Param encoder:

[in] 编码器句柄。

Param code_stream:

[in] 编码流。

Param image:

[in] 图像描述符。

Param params:

[in] 将用于检查的编码参数。

Param thread_idx:

[in] 调用线程的索引(可以从 0 到执行器的线程数,或者对于非线程执行为 -1)

返回值:

nvimgcodecProcessingStatus_t - 处理状态

nvimgcodecStatus_t (*encode)(nvimgcodecEncoder_t encoder, const nvimgcodecCodeStreamDesc_t *code_stream, const nvimgcodecImageDesc_t *image, const nvimgcodecEncodeParams_t *params, int thread_idx)#

使用提供的参数将给定的图像编码为码流。

Param encoder:

[in] 编码器句柄。

Param image:

[in] 图像描述符。

Param code_stream:

[in] 编码流。

Param params:

[in] 编码参数。

Param thread_idx:

[in] 调用线程的索引(可以从 0 到执行器的线程数,或者对于非线程执行为 -1)

返回值:

nvimgcodecProcessingStatus_t - 处理状态

nvimgcodecExecutionParams_t#

struct nvimgcodecExecutionParams_t#

执行参数。

公有成员

nvimgcodecStructureType_t struct_type#

结构体的类型。

size_t struct_size#

结构体的大小,以字节为单位。

void *struct_next#

为 NULL 或指向扩展结构类型的指针。

nvimgcodecDeviceAllocator_t *device_allocator#

用于设备内存的自定义分配器

nvimgcodecPinnedAllocator_t *pinned_allocator#

用于pinned内存的自定义分配器

int max_num_cpu_threads#

默认执行器中的最大 CPU 线程数(0 表示默认值等于 CPU 核心数)

nvimgcodecExecutorDesc_t *executor#

指向执行器。如果为 NULL,将使用默认执行器。

注意

在插件级别 API 中,它始终指向执行器,无论是自定义的还是默认的。

int device_id#

用于处理解码的设备 ID。 也可以使用宏 NVIMGCODEC_DEVICE_CURRENT 或 NVIMGCODEC_DEVICE_CPU_ONLY 指定。

int pre_init#

如果为 true,则在创建实例时初始化所有相关资源

int skip_pre_sync#

如果为 true,则在解码前跳过用户流和每个线程流之间的同步(我们仅在解码后同步)。 当我们确定没有需要同步的操作时(例如,用户流上的 CUDA 异步分配),这可能很有用

int num_backends#

在 backends 参数中传递的允许后端数量(如果有)。 对于 0,允许所有后端。

const nvimgcodecBackend_t *backends#

指向定义了允许后端的 nvimgcodecBackend_t 数组。 对于 nullptr,允许所有后端。

nvimgcodecExecutorDesc_t#

struct nvimgcodecExecutorDesc_t#

执行器描述。

编解码器插件可以使用通过执行参数可用的执行器来调度异步任务的执行。

公有成员

nvimgcodecStructureType_t struct_type#

结构体的类型。

size_t struct_size#

结构体的大小,以字节为单位。

const void *struct_next#

为 NULL 或指向扩展结构类型的指针。

void *instance#

执行器实例指针,将在函数中传回

nvimgcodecStatus_t (*schedule)(void *instance, int device_id, int sample_idx, void *task_context, void (*task)(int thread_id, int sample_idx, void *task_context))#

调度异步任务的执行。

Param instance:

[in] 指向 nvimgcodecExecutorDesc_t 实例的指针。

Param device_id:

[in] 将在其上执行任务的设备 ID。

Param sample_idx:

[in] 要在其上处理任务的批处理样本的索引; 它将作为 task 函数中的参数传回。

Param task_context:

[in] 指向任务上下文的指针,该指针将作为 task 函数中的参数传回。

Param task:

[in] 指向要调度的任务函数的指针。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecStatus_t (*run)(void *instance, int device_id)#

开始执行所有已排队的工作。

nvimgcodecStatus_t (*wait)(void *instance, int device_id)#

阻塞直到之前发布的所有工作完成。

Remark

它必须仅在 run 之后调用

int (*getNumThreads)(void *instance)#

获取线程数。

Param instance:

[in] 指向 nvimgcodecExecutorDesc_t 实例的指针。

返回值:

执行器中的线程数。

nvimgcodecExtensionDesc_t#

struct nvimgcodecExtensionDesc_t#

扩展描述。

公有成员

nvimgcodecStructureType_t struct_type#

结构体的类型。

size_t struct_size#

结构体的大小,以字节为单位。

void *struct_next#

为 NULL 或指向扩展结构类型的指针。

void *instance#

扩展实例指针,将在函数中传回

const char *id#

扩展的命名标识符,例如 nvjpeg_ext

uint32_t version#

扩展版本。 用于注册扩展时检查是否有更新的版本。

uint32_t ext_api_version#

构建扩展所用的 nvImageCodec 扩展 API 的版本。

nvimgcodecStatus_t (*create)(void *instance, nvimgcodecExtension_t *extension, const nvimgcodecFrameworkDesc_t *framework)#

创建扩展。

Param instance:

[in] 指向 nvimgcodecExtensionDesc_t 实例的指针。

Param extension:

[in/out] 指向返回已创建扩展句柄的位置。

Param framework:

[in] 指向框架描述的指针,该描述可用于注册插件。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecStatus_t (*destroy)(nvimgcodecExtension_t extension)#

销毁扩展。

Param extension:

[in] 要销毁的扩展句柄。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecFrameworkDesc_t#

struct nvimgcodecFrameworkDesc_t#

插件框架。

公有成员

nvimgcodecStructureType_t struct_type#

结构体的类型。

size_t struct_size#

结构体的大小,以字节为单位。

void *struct_next#

为 NULL 或指向扩展结构类型的指针。

void *instance#

插件框架实例指针,将在函数中传回

const char *id#

插件框架的命名标识符,例如 nvImageCodec

uint32_t version#

插件框架版本。

uint32_t ext_api_version#

nvImageCodec 扩展 API 版本。

uint32_t cudart_version#

构建插件框架所用的 CUDA Runtime 版本。

nvimgcodecLogFunc_t log#

指向日志记录函数的指针。

另请参阅

nvimgcodecLogFunc_t

nvimgcodecStatus_t (*registerEncoder)(void *instance, const nvimgcodecEncoderDesc_t *desc, float priority)#

注册编码器插件。

另请参阅

nvimgcodecPriority_t

Param instance:

[in] 指向 nvimgcodecFrameworkDesc_t 实例的指针。

Param desc:

[in] 指向编码器描述的指针。

Param priority:

[in] 编码器的优先级。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecStatus_t (*unregisterEncoder)(void *instance, const nvimgcodecEncoderDesc_t *desc)#

注销编码器插件。

Param instance:

[in] 指向 nvimgcodecFrameworkDesc_t 实例的指针。

Param desc:

[in] 指向要注销的编码器描述的指针。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecStatus_t (*registerDecoder)(void *instance, const nvimgcodecDecoderDesc_t *desc, float priority)#

注册解码器插件。

另请参阅

nvimgcodecPriority_t

Param instance:

[in] 指向 nvimgcodecFrameworkDesc_t 实例的指针。

Param desc:

[in] 指向解码器描述的指针。

Param priority:

[in] 解码器的优先级。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecStatus_t (*unregisterDecoder)(void *instance, const nvimgcodecDecoderDesc_t *desc)#

注销解码器插件。

Param instance:

[in] 指向 nvimgcodecFrameworkDesc_t 实例的指针。

Param desc:

[in] 指向要注销的解码器描述的指针。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecStatus_t (*registerParser)(void *instance, const nvimgcodecParserDesc_t *desc, float priority)#

注册解析器插件。

另请参阅

nvimgcodecPriority_t

Param instance:

[in] 指向 nvimgcodecFrameworkDesc_t 实例的指针。

Param desc:

[in] 指向解析器描述的指针。

Param priority:

[in] 解码器的优先级。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecStatus_t (*unregisterParser)(void *instance, const nvimgcodecParserDesc_t *desc)#

注销解析器插件。

Param instance:

[in] 指向 nvimgcodecFrameworkDesc_t 实例的指针。

Param desc:

[in] 指向要注销的解析器描述的指针。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecImageDesc_t#

struct nvimgcodecImageDesc_t#

图像描述。

公有成员

nvimgcodecStructureType_t struct_type#

结构体的类型。

size_t struct_size#

结构体的大小,以字节为单位。

void *struct_next#

为 NULL 或指向扩展结构类型的指针。

void *instance#

图像实例指针,将在函数中传回

nvimgcodecStatus_t (*getImageInfo)(void *instance, nvimgcodecImageInfo_t *image_info)#

检索图像信息。

Param instance:

[in] 指向 nvimgcodecImageDesc_t 实例的指针。

参数 image_info:

[in/out] 指示返回图像信息的位置。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecStatus_t (*imageReady)(void *instance, nvimgcodecProcessingStatus_t processing_status)#

通知图像处理的主机端已准备就绪。

Param instance:

[in] 指向 nvimgcodecImageDesc_t 实例的指针。

Param processing_status:

[in] 处理状态。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecImageInfo_t#

struct nvimgcodecImageInfo_t#

定义关于图像的信息。

公有成员

nvimgcodecStructureType_t struct_type#

结构体的类型。

size_t struct_size#

结构体的大小,以字节为单位。

void *struct_next#

为 NULL 或指向扩展结构类型的指针。

char codec_name[NVIMGCODEC_MAX_CODEC_NAME_SIZE]#

关于所用编解码器的信息。 仅在使用代码流时有效。

nvimgcodecColorSpec_t color_spec#

图像颜色规范。

nvimgcodecChromaSubsampling_t chroma_subsampling#

图像色度二次采样。 仅对色度分量有效。

nvimgcodecSampleFormat_t sample_format#

定义如何将颜色分量按给定顺序匹配到通道,以及如何将通道匹配到平面。

nvimgcodecOrientation_t orientation#

图像方向。

nvimgcodecRegion_t region#

感兴趣区域。

uint32_t num_planes#

图像平面的数量。

nvimgcodecImagePlaneInfo_t plane_info[NVIMGCODEC_MAX_NUM_PLANES]#

包含关于图像平面信息的数组。

void *buffer#

指向存储图像数据的缓冲区的指针。

size_t buffer_size#

存储图像数据的缓冲区的大小。

nvimgcodecImageBufferKind_t buffer_kind#

存储图像数据的缓冲区类型。

cudaStream_t cuda_stream#

要同步的 CUDA 流

nvimgcodecImagePlaneInfo_t#

struct nvimgcodecImagePlaneInfo_t#

定义图像的平面。

公有成员

nvimgcodecStructureType_t struct_type#

结构体的类型。

size_t struct_size#

结构体的大小,以字节为单位。

void *struct_next#

为 NULL 或指向扩展结构类型的指针。

uint32_t width#

平面宽度。 第一个平面定义图像的宽度。

uint32_t height#

平面高度。 第一个平面定义图像的高度。

size_t row_stride#

偏移到平面下一行所需的字节数。

uint32_t num_channels#

通道数。 颜色分量始终是第一个,但是通道数可能多于颜色分量。

nvimgcodecSampleDataType_t sample_type#

样本数据类型。

uint8_t precision#

值 0 表示精度等于样本类型位深度

nvimgcodecInstanceCreateInfo_t#

struct nvimgcodecInstanceCreateInfo_t#

nvImageCodec 库实例创建信息结构体。

公有成员

nvimgcodecStructureType_t struct_type#

结构体的类型。

size_t struct_size#

结构体的大小,以字节为单位。

void *struct_next#

为 NULL 或指向扩展结构类型的指针。

int load_builtin_modules#

加载默认模块。 有效值为 0 或 1。

int load_extension_modules#

启动时发现并加载扩展模块。 有效值为 0 或 1。

const char *extension_modules_path#

可以有多个路径,Linux 上用“:”分隔,Windows 上用“;”分隔

int create_debug_messenger#

在实例创建期间创建调试消息传递器。 有效值为 0 或 1。

const nvimgcodecDebugMessengerDesc_t *debug_messenger_desc#

指向创建调试消息传递器时要使用的描述的指针。 如果为 NULL,将使用默认的内部描述,以及后续的 message_severity 和 message_category 字段。

uint32_t message_severity#

默认调试消息传递器的严重性

uint32_t message_category#

默认调试消息传递器的消息类别

nvimgcodecIoStreamDesc_t#

struct nvimgcodecIoStreamDesc_t#

输入/输出流描述。

此抽象表示代码流字节的源或目标。

公有成员

nvimgcodecStructureType_t struct_type#

结构体的类型。

size_t struct_size#

结构体的大小,以字节为单位。

void *struct_next#

为 NULL 或指向扩展结构类型的指针。

void *instance#

I/O 流描述实例指针,将在函数中传递回来

nvimgcodecStatus_t (*read)(void *instance, size_t *output_size, void *buf, size_t bytes)#

从流中读取所有请求的数据。

Param instance:

[in] 指向 nvimgcodecIoStreamDesc_t 实例的指针。

Param output_size:

[in/out] 指向返回读取字节数的指针。

Param buf:

[in] 指向输出缓冲区的指针

Param bytes:

[in] 要读取的字节数

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecStatus_t (*write)(void *instance, size_t *output_size, void *buf, size_t bytes)#

将所有请求的数据写入流。

Param instance:

[in] 指向 nvimgcodecIoStreamDesc_t 实例的指针。

Param output_size:

[in/out] 指向返回写入字节数的指针。

Param buf:

[in] 指向输入缓冲区的指针

Param bytes:

[in] 要写入的字节数

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecStatus_t (*putc)(void *instance, size_t *output_size, unsigned char ch)#

向流写入一个字符。

Param instance:

[in] 指向 nvimgcodecIoStreamDesc_t 实例的指针。

Param output_size:

[in/out] 指向返回写入字节数的指针。

Param ch:

[in] 要写入的字符。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecStatus_t (*skip)(void *instance, size_t count)#

在流中跳过 count 个对象。

Param instance:

[in] 指向 nvimgcodecIoStreamDesc_t 实例的指针。

Param count:

[in] 要跳过的字节数

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecStatus_t (*seek)(void *instance, ptrdiff_t offset, int whence)#

在流中移动读取指针。

Param instance:

[in] 指向 nvimgcodecIoStreamDesc_t 实例的指针。

Param offset:

[in] 要移动的偏移量。

Param whence:

[in] 起始位置 - SEEK_SET、SEEK_CUR 或 SEEK_END。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecStatus_t (*tell)(void *instance, ptrdiff_t *offset)#

检索流中从头开始的当前位置(以字节为单位)。

Param instance:

[in] 指向 nvimgcodecIoStreamDesc_t 实例的指针。

Param offset:

[in/out] 指向返回当前位置的指针。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecStatus_t (*size)(void *instance, size_t *size)#

检索流的长度(以字节为单位)。

Param instance:

[in] 指向 nvimgcodecIoStreamDesc_t 实例的指针。

Param size:

[in/out] 指向返回流长度的指针。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecStatus_t (*reserve)(void *instance, size_t bytes)#

提供预期要写入的字节数。

此函数提供预分配/重分配映射函数的可能性。

Param instance:

[in] 指向 nvimgcodecIoStreamDesc_t 实例的指针。

Param bytes:

[in] 预期要写入的字节数。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecStatus_t (*flush)(void *instance)#

请求将所有数据写入输出。

Param instance:

[in] 指向 nvimgcodecIoStreamDesc_t 实例的指针。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecStatus_t (*map)(void *instance, void **buffer, size_t offset, size_t size)#

将数据映射到主机内存

Param instance:

[in] 指向 nvimgcodecIoStreamDesc_t 实例的指针。

Param buffer:

[in/out] 指向返回映射数据指针的位置。 如果数据无法映射,将返回 NULL。

Param offset:

[in] 流中开始映射的偏移量。

Param size:

[in] 映射的长度

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecStatus_t (*unmap)(void *instance, void *buffer, size_t size)#

取消映射先前映射的数据。

Param instance:

[in] 指向 nvimgcodecIoStreamDesc_t 实例的指针。 *

Param buffer:

[in] 指向映射数据的指针

Param size:

[in] 要取消映射的数据长度

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecJpeg2kEncodeParams_t#

struct nvimgcodecJpeg2kEncodeParams_t#

JPEG2000 编码参数。

公有成员

nvimgcodecStructureType_t struct_type#

结构体的类型。

size_t struct_size#

结构体的大小,以字节为单位。

void *struct_next#

为 NULL 或指向扩展结构类型的指针。

nvimgcodecJpeg2kBitstreamType_t stream_type#

JPEG2000 代码流类型。

nvimgcodecJpeg2kProgOrder_t prog_order#

JPEG2000 渐进顺序。

uint32_t num_resolutions#

分辨率的数量。

uint32_t code_block_w#

代码块宽度。允许的值为 32, 64

uint32_t code_block_h#

代码块高度。允许的值为 32, 64

int irreversible#

设置是否使用不可逆编码。有效值为 0 或 1。

nvimgcodecJpegEncodeParams_t#

struct nvimgcodecJpegEncodeParams_t#

JPEG 编码参数。

公有成员

nvimgcodecStructureType_t struct_type#

结构体的类型。

size_t struct_size#

结构体的大小,以字节为单位。

void *struct_next#

为 NULL 或指向扩展结构类型的指针。

int optimized_huffman#

设置是否使用优化的 Huffman 编码。有效值为 0 或 1。

注意

使用优化的 Huffman 编码可以产生更小的 JPEG 比特流大小,同时保持相同的质量,但性能会较慢。

nvimgcodecJpegImageInfo_t#

struct nvimgcodecJpegImageInfo_t#

定义与 JPEG 格式相关的图像信息。

此结构扩展了 nvimgcodecImageInfo_t 中提供的信息

公有成员

nvimgcodecStructureType_t struct_type#

结构体的类型。

size_t struct_size#

结构体的大小,以字节为单位。

void *struct_next#

为 NULL 或指向扩展结构类型的指针。

nvimgcodecJpegEncoding_t encoding#

JPEG 编码类型。

nvimgcodecOrientation_t#

struct nvimgcodecOrientation_t#

定义图像的方向。

公有成员

nvimgcodecStructureType_t struct_type#

结构体的类型。

size_t struct_size#

结构体的大小,以字节为单位。

void *struct_next#

为 NULL 或指向扩展结构类型的指针。

int rotated#

旋转角度,以度为单位(顺时针)。仅允许 90 的倍数。

int flip_x#

水平翻转 0 或 1

int flip_y#

垂直翻转 0 或 1

nvimgcodecParserDesc_t#

struct nvimgcodecParserDesc_t#

解析器描述。

公有成员

nvimgcodecStructureType_t struct_type#

结构体的类型。

size_t struct_size#

结构体的大小,以字节为单位。

void *struct_next#

为 NULL 或指向扩展结构类型的指针。

void *instance#

nvimgcodecStatus_t (size)(void instance, size_t* size); 解析器描述实例指针,它将在函数中被返回。

const char *id#

编解码器命名标识符,例如 nvJpeg2000

const char *codec#

编解码器名称,例如 jpeg2000

nvimgcodecStatus_t (*canParse)(void *instance, int *result, nvimgcodecCodeStreamDesc_t *code_stream)#

检查解析器是否可以解析给定的码流。

Param instance:

[in] 指向 nvimgcodecParserDesc_t 实例的指针。

Param result:

[in/out] 指示返回解析检查结果的位置。有效值为 0 或 1。

Param code_stream:

[in] 要进行解析检查的码流。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecStatus_t (*create)(void *instance, nvimgcodecParser_t *parser)#

创建解析器。

Param Pointer:

[in] 指向 nvimgcodecParserDesc_t 实例。

Param [in/out]:

指示返回已创建解析器的句柄的位置。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecStatus_t (*destroy)(nvimgcodecParser_t parser)#

销毁解析器。

Param parser:

[in] 要销毁的解析器句柄。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecStatus_t (*getImageInfo)(nvimgcodecParser_t parser, nvimgcodecImageInfo_t *image_info, nvimgcodecCodeStreamDesc_t *code_stream)#

解析给定的码流并返回图像信息。

Param parser:

[in] 解析器句柄。

参数 image_info:

[in/out] 指示返回图像信息的位置。

Param code_stream:

[in] 要解析的码流。

返回值:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecPinnedAllocator_t#

struct nvimgcodecPinnedAllocator_t#

主机 pinned 内存分配器。

公有成员

nvimgcodecStructureType_t struct_type#

结构体的类型。

size_t struct_size#

结构体的大小,以字节为单位。

void *struct_next#

为 NULL 或指向扩展结构类型的指针。

nvimgcodecPinnedMalloc_t pinned_malloc#

分配主机 pinned 内存:可由 CPU 和启用 CUDA 的 GPU 直接访问的内存。

nvimgcodecPinnedFree_t pinned_free#

释放主机 pinned 内存。

void *pinned_ctx#

调用分配器时,此上下文将作为输入传递给分配器函数。

size_t pinned_mem_padding#

任何 pinned 主机内存分配都将填充到指定字节数的倍数

nvimgcodecProperties_t#

struct nvimgcodecProperties_t#

nvImageCodec 属性。

公有成员

nvimgcodecStructureType_t struct_type#

结构体的类型。

size_t struct_size#

结构体的大小,以字节为单位。

void *struct_next#

为 NULL 或指向扩展结构类型的指针。

uint32_t version#

nvImageCodec 库版本。

uint32_t ext_api_version#

nvImageCodec 扩展 API 版本。

uint32_t cudart_version#

构建 nvImageCodec 库时使用的 CUDA Runtime 版本。

nvimgcodecRegion_t#

struct nvimgcodecRegion_t#

定义图像的区域。

公有成员

nvimgcodecStructureType_t struct_type#

结构体的类型。

size_t struct_size#

结构体的大小,以字节为单位。

void *struct_next#

为 NULL 或指向扩展结构类型的指针。

int ndim#

维度数量,值为 0 表示没有区域。

int start[NVIMGCODEC_MAX_NUM_DIM]#

特定维度上的区域起始位置。

int end[NVIMGCODEC_MAX_NUM_DIM]#

特定维度上的区域结束位置。

Functions#

nvimgcodecExtensionModuleEntry#

nvimgcodecStatus_t nvimgcodecExtensionModuleEntry(
nvimgcodecExtensionDesc_t *ext_desc,
)#

扩展共享模块导出的入口函数。

Parameters:

ext_desc – [in/out] 指向 nvimgcodecExtensionDesc_t 句柄,扩展描述将在其中返回。

Returns:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecGetProperties#

nvimgcodecStatus_t nvimgcodecGetProperties(
nvimgcodecProperties_t *properties,
)#

提供 nvImageCodec 库属性。

Parameters:

properties – [in/out] 指向 nvimgcodecProperties_t 句柄,属性将在其中返回。

Returns:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecInstanceCreate#

nvimgcodecStatus_t nvimgcodecInstanceCreate(
nvimgcodecInstance_t *instance,
const nvimgcodecInstanceCreateInfo_t *create_info,
)#

使用输入参数创建库的实例。

Parameters:
  • instance – [in/out] 指向 nvimgcodecInstance_t 句柄,结果实例将在其中返回。

  • create_info – [in] 指向 nvimgcodecInstanceCreateInfo_t 结构的指针,该结构控制实例的创建。

Returns:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecInstanceDestroy#

nvimgcodecStatus_t nvimgcodecInstanceDestroy(
nvimgcodecInstance_t instance,
)#

销毁 nvImageCodec 库实例。

Parameters:

instance – [in] 要销毁的库实例句柄

Returns:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecExtensionCreate#

nvimgcodecStatus_t nvimgcodecExtensionCreate(
nvimgcodecInstance_t instance,
nvimgcodecExtension_t *extension,
nvimgcodecExtensionDesc_t *extension_desc,
)#

创建库扩展。

Parameters:
  • instance – [in] 将使用扩展的库实例句柄。

  • extension – [in/out] 指向 nvimgcodecExtension_t 句柄,结果扩展将在其中返回。

  • extension_desc – [in] 指向 nvimgcodecExtensionDesc_t 结构的指针,该结构定义要创建的扩展。

Returns:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecExtensionDestroy#

nvimgcodecStatus_t nvimgcodecExtensionDestroy(
nvimgcodecExtension_t extension,
)#

销毁库扩展。

Parameters:

extension – [in] 要销毁的扩展句柄

Returns:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecDebugMessengerCreate#

nvimgcodecStatus_t nvimgcodecDebugMessengerCreate(
nvimgcodecInstance_t instance,
nvimgcodecDebugMessenger_t *dbg_messenger,
const nvimgcodecDebugMessengerDesc_t *messenger_desc,
)#

创建一个调试消息传递器。

Parameters:
  • instance – [in] 将使用消息传递器的库实例句柄。

  • dbg_messenger – [in/out] 指向 nvimgcodecDebugMessenger_t 句柄,结果调试消息传递器将在其中返回。

  • messenger_desc – [in] 指向 nvimgcodecDebugMessengerDesc_t 结构的指针,该结构定义要创建的调试消息传递器。

Returns:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecDebugMessengerDestroy#

nvimgcodecStatus_t nvimgcodecDebugMessengerDestroy(
nvimgcodecDebugMessenger_t dbg_messenger,
)#

销毁调试消息传递器。

Parameters:

dbg_messenger – [in] 要销毁的调试消息传递器句柄

Returns:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecFutureWaitForAl#

nvimgcodecStatus_t nvimgcodecFutureWaitForAll(
nvimgcodecFuture_t future,
)#

等待处理项完成。

另请参阅

nvimgcodecImageInfo_t cuda_stream 字段。

警告

请注意,当 future 准备就绪时,仅表示所有主机工作已完成,并且可能某些工作已计划在设备上执行(取决于编解码器)。为了进一步同步设备上的工作,nvimgcodecImageInfo_t 中提供了 cuda_stream 字段,可用于指定要同步的 cuda_stream。

Parameters:

future – [in] 由解码或编码函数创建的 future 对象的句柄。

Returns:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecFutureDestroy#

nvimgcodecStatus_t nvimgcodecFutureDestroy(nvimgcodecFuture_t future)#

销毁 future。

Parameters:

future – [in] 要销毁的 future 句柄

Returns:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecFutureGetProcessingStatus#

nvimgcodecStatus_t nvimgcodecFutureGetProcessingStatus(
nvimgcodecFuture_t future,
nvimgcodecProcessingStatus_t *processing_status,
size_t *size,
)#

接收计划用于解码或编码的批处理项的处理状态。

Parameters:
  • future – [in] 由解码或编码函数为给定的批处理项返回的 future 句柄。

  • processing_status – [in/out] 指向 nvimgcodecProcessingStatus_t 句柄,处理状态将在其中返回。

  • size – [in/out] 指向 size_t,其中返回的处理状态的大小。

Returns:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecImageCreate#

nvimgcodecStatus_t nvimgcodecImageCreate(
nvimgcodecInstance_t instance,
nvimgcodecImage_t *image,
const nvimgcodecImageInfo_t *image_info,
)#

创建 Image,它将采样缓冲区与格式信息一起包装。

Parameters:
  • instance – [in] 库实例句柄,该图像将与此句柄一起使用。

  • image – [in/out] 指向 nvimgcodecImage_t 句柄,结果图像将返回到该句柄中。

  • image_info – [in] 指向 nvimgcodecImageInfo_t 结构体,该结构体描述采样缓冲区以及格式。

Returns:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecImageDestroy#

nvimgcodecStatus_t nvimgcodecImageDestroy(nvimgcodecImage_t image)#

销毁图像。

Parameters:

image – [in] 要销毁的图像句柄

Returns:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecImageGetImageInfo#

nvimgcodecStatus_t nvimgcodecImageGetImageInfo(
nvimgcodecImage_t image,
nvimgcodecImageInfo_t *image_info,
)#

从提供的不透明图像对象检索图像信息。

Parameters:
  • image – [in] 要从中检索信息的图像句柄。

  • image_info – [in/out] 指向 nvimgcodecImageInfo_t 句柄,图像信息将返回到该句柄中。

Returns:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecCodeStreamCreateFromFile#

nvimgcodecStatus_t nvimgcodecCodeStreamCreateFromFile(
nvimgcodecInstance_t instance,
nvimgcodecCodeStream_t *code_stream,
const char *file_name,
)#

创建代码流,它包装压缩数据的文件源。

Parameters:
  • instance – [in] 库实例句柄,该代码流将与此句柄一起使用。

  • code_stream – [in/out] 指向 nvimgcodecCodeStream_t 句柄,结果代码流将返回到该句柄中。

  • file_name – [in] 包含要包装的压缩图像数据的文件名。

Returns:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecCodeStreamCreateFromHostMem#

nvimgcodecStatus_t nvimgcodecCodeStreamCreateFromHostMem(
nvimgcodecInstance_t instance,
nvimgcodecCodeStream_t *code_stream,
const unsigned char *data,
size_t length,
)#

创建代码流,它包装压缩数据的主机内存源。

Parameters:
  • instance – [in] 库实例句柄,该代码流将与此句柄一起使用。

  • code_stream – [in/out] 指向 nvimgcodecCodeStream_t 句柄,结果代码流将返回到该句柄中。

  • data – [in] 指向包含压缩数据的缓冲区的指针。

  • length – [in] 提供的缓冲区中压缩数据的长度。

Returns:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecCodeStreamCreateToFile#

nvimgcodecStatus_t nvimgcodecCodeStreamCreateToFile(
nvimgcodecInstance_t instance,
nvimgcodecCodeStream_t *code_stream,
const char *file_name,
const nvimgcodecImageInfo_t *image_info,
)#

创建代码流,它包装给定格式的压缩数据的文件接收器。

Parameters:
  • instance – [in] 库实例句柄,该代码流将与此句柄一起使用。

  • code_stream – [in/out] 指向 nvimgcodecCodeStream_t 句柄,结果代码流将返回到该句柄中。

  • file_name – [in] 用于包装压缩图像数据的文件名接收器。

  • image_info – [in] 指向 nvimgcodecImageInfo_t 结构体,该结构体描述输出图像格式。

Returns:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecCodeStreamCreateToHostMem#

nvimgcodecStatus_t nvimgcodecCodeStreamCreateToHostMem(
nvimgcodecInstance_t instance,
nvimgcodecCodeStream_t *code_stream,
void *ctx,
nvimgcodecResizeBufferFunc_t resize_buffer_func,
const nvimgcodecImageInfo_t *image_info,
)#

创建代码流,它包装给定格式的压缩数据的主机内存接收器。

Parameters:
  • instance – [in] 库实例句柄,该代码流将与此句柄一起使用。

  • code_stream – [in/out] 指向 nvimgcodecCodeStream_t 句柄,结果代码流将返回到该句柄中。

  • ctx – [in] 指向用户定义的上下文的指针,将使用该上下文回调获取缓冲区函数。

  • resize_buffer_func – [in] 指向 nvimgcodecResizeBufferFunc_t 函数句柄,该句柄将用于调整大小和提供主机输出缓冲区。

  • image_info – [in] 指向 nvimgcodecImageInfo_t 结构体,该结构体描述输出图像格式。

Returns:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecCodeStreamDestroy#

nvimgcodecStatus_t nvimgcodecCodeStreamDestroy(
nvimgcodecCodeStream_t code_stream,
)#

销毁代码流。

Parameters:

code_stream – [in] 要销毁的代码流句柄

Returns:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecCodeStreamGetImageInfo#

nvimgcodecStatus_t nvimgcodecCodeStreamGetImageInfo(
nvimgcodecCodeStream_t code_stream,
nvimgcodecImageInfo_t *image_info,
)#

从代码流检索压缩图像信息。

Parameters:
  • code_stream – [in] 要从中检索信息的代码流句柄。

  • image_info – [in/out] 指向 nvimgcodecImageInfo_t 句柄,图像信息将返回到该句柄中。

Returns:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecDecoderCreate#

nvimgcodecStatus_t nvimgcodecDecoderCreate(
nvimgcodecInstance_t instance,
nvimgcodecDecoder_t *decoder,
const nvimgcodecExecutionParams_t *exec_params,
const char *options,
)#

创建通用图像解码器。

Parameters:
  • instance – [in] 库实例句柄,解码器将与此句柄一起使用。

  • decoder – [in/out] 指向 nvimgcodecDecoder_t 句柄,解码器将返回到该句柄中。

  • exec_params – [in] 指向执行参数。

  • options – [in] 字符串,其中包含可选的空格分隔的特定解码器参数列表,格式为“<decoder_id>:<parameter_name>=<parameter_value>”。例如 “nvjpeg:fancy_upsampling=1”

Returns:

nvimgcodecStatus_t - 一个错误代码,在 { API 返回状态代码 } 中指定

nvimgcodecDecoderDestroy#

nvimgcodecStatus_t nvimgcodecDecoderDestroy(
nvimgcodecDecoder_t decoder,
)#

销毁解码器。

Parameters:

decoder – [in] 要销毁的解码器句柄

Returns:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecDecoderCanDecode#

nvimgcodecStatus_t nvimgcodecDecoderCanDecode(
nvimgcodecDecoder_t decoder,
const nvimgcodecCodeStream_t *streams,
const nvimgcodecImage_t *images,
int batch_size,
const nvimgcodecDecodeParams_t *params,
nvimgcodecProcessingStatus_t *processing_status,
int force_format,
)#

检查解码器是否可以使用指定的参数将提供的代码流解码为给定的输出图像。

Parameters:
  • decoder – [in] 用于检查的解码器句柄。

  • streams – [in] 指向输入 nvimgcodecCodeStream_t 数组的指针,用于检查解码。

  • images – [in] 指向输出 nvimgcodecImage_t 数组的指针,用于检查解码。

  • batch_size – [in] 提供的代码流和图像的批大小。

  • params – [in] 指向 nvimgcodecDecodeParams_t 结构体的指针,用于检查解码。

  • processing_status – [in/out] 指向 nvimgcodecProcessingStatus_t 句柄,处理状态将在其中返回。

  • force_format – [in] 有效值为 0 或 1。如果值为 1,并且高优先级编解码器不支持提供的格式,它将回退到较低优先级的编解码器以进行进一步检查。如果值为 0,当高优先级编解码器不支持提供的格式或参数,但它通常可以处理输入时,它将停止检查并返回处理状态,其中包含指示需要更改哪些格式或参数以避免回退到较低优先级编解码器的标志。

Returns:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecDecoderDecode#

nvimgcodecStatus_t nvimgcodecDecoderDecode(
nvimgcodecDecoder_t decoder,
const nvimgcodecCodeStream_t *streams,
const nvimgcodecImage_t *images,
int batch_size,
const nvimgcodecDecodeParams_t *params,
nvimgcodecFuture_t *future,
)#

使用指定的参数将提供的代码流批次解码为给定的输出图像。

Parameters:
  • decoder – [in] 用于解码的解码器句柄。

  • streams – [in] 指向要解码的输入 nvimgcodecCodeStream_t 数组的指针。

  • images – [in] 指向要解码到的输出 nvimgcodecImage_t 数组的指针。

  • batch_size – [in] 提供的代码流和图像的批大小。

  • params – [in] 指向 nvimgcodecDecodeParams_t 结构体的指针,用于解码。

  • future – [in/out] 指向 nvimgcodecFuture_t 句柄,future 将返回到该句柄中。future 对象可用于等待和获取处理状态。

Returns:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecEncoderCreate#

nvimgcodecStatus_t nvimgcodecEncoderCreate(
nvimgcodecInstance_t instance,
nvimgcodecEncoder_t *encoder,
const nvimgcodecExecutionParams_t *exec_params,
const char *options,
)#

创建通用图像编码器。

Parameters:
  • instance – [in] 库实例句柄,编码器将与此句柄一起使用。

  • encoder – [in/out] 指向 nvimgcodecEncoder_t 句柄,解码器将返回到该句柄中。

  • exec_params – [in] 指向执行参数。

  • options – [in] 字符串,其中包含可选的、空格分隔的特定编码器参数列表,格式为“<encoder_id>:<parameter_name>=<parameter_value>”。

Returns:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecEncoderDestroy#

nvimgcodecStatus_t nvimgcodecEncoderDestroy(
nvimgcodecEncoder_t encoder,
)#

销毁编码器。

Parameters:

encoder – [in] 要销毁的编码器句柄

Returns:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecEncoderCanEncode#

nvimgcodecStatus_t nvimgcodecEncoderCanEncode(
nvimgcodecEncoder_t encoder,
const nvimgcodecImage_t *images,
const nvimgcodecCodeStream_t *streams,
int batch_size,
const nvimgcodecEncodeParams_t *params,
nvimgcodecProcessingStatus_t *processing_status,
int force_format,
)#

检查编码器是否可以使用指定的参数将提供的图像编码为给定的输出代码流。

Parameters:
  • encoder – [in] 用于检查的编码器句柄。

  • images – [in] 指向输入 nvimgcodecImage_t 数组的指针,用于检查编码。

  • streams – [in] 指向输出 nvimgcodecCodeStream_t 数组的指针,用于检查编码。

  • batch_size – [in] 提供的代码流和图像的批大小。

  • params – [in] 指向 nvimgcodecEncodeParams_t 结构体的指针,用于检查解码。

  • processing_status – [in/out] 指向 nvimgcodecProcessingStatus_t 句柄,处理状态将在其中返回。

  • force_format – [in] 有效值为 0 或 1。如果值为 1,并且高优先级编解码器不支持提供的格式,它将回退到较低优先级的编解码器以进行进一步检查。如果值为 0,当高优先级编解码器不支持提供的格式或参数,但它通常可以处理输入时,它将停止检查并返回处理状态,其中包含指示需要更改哪些格式或参数以避免回退到较低优先级编解码器的标志。

Returns:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码

nvimgcodecEncoderEncode#

nvimgcodecStatus_t nvimgcodecEncoderEncode(
nvimgcodecEncoder_t encoder,
const nvimgcodecImage_t *images,
const nvimgcodecCodeStream_t *streams,
int batch_size,
const nvimgcodecEncodeParams_t *params,
nvimgcodecFuture_t *future,
)#

使用指定的参数将提供的图像批次编码为给定的输出代码流。

Parameters:
  • encoder – [in] 用于编码的编码器句柄。

  • images – [in] 指向要编码的输入 nvimgcodecImage_t 数组的指针。

  • streams – [in] 指向要编码到的输出 nvimgcodecCodeStream_t 数组的指针。

  • batch_size – [in] 提供的代码流和图像的批大小。

  • params – [in] 指向 nvimgcodecEncodeParams_t 结构体的指针,用于编码。

  • future – [in/out] 指向 nvimgcodecFuture_t 句柄,future 将返回到该句柄中。future 对象可用于等待和获取处理状态。

Returns:

nvimgcodecStatus_t - API 返回状态代码 中指定的错误代码