![]() |
OpenCV 4.11.0
开源计算机视觉
|
类 | |
| 结构体 | cv::cudacodec::EncodeQp |
| 类 | cv::cudacodec::EncoderCallback |
| 编码器回调接口。 更多… | |
| 结构体 | cv::cudacodec::EncoderParams |
| CUDA视频编码器的不同参数。 更多… | |
| 结构体 | cv::cudacodec::FormatInfo |
| 提供视频文件格式信息的结构体: 更多… | |
| 类 | cv::cudacodec::NVSurfaceToColorConverter |
| 用于转换来自 VideoReader 的原始YUV Surface输出的类,如果输出颜色格式设置为 ColorFormat::NV_YUV_SURFACE_FORMAT (VideoReader::set(ColorFormat::NV_YUV_SURFACE_FORMAT)),则转换为请求的 ColorFormat。 更多… | |
| 类 | cv::cudacodec::RawVideoSource |
| 视频解复用接口: 更多… | |
| 类 | cv::cudacodec::VideoReader |
| 视频读取器接口,参见 createVideoReader()。 更多… | |
| 结构体 | cv::cudacodec::VideoReaderInitParams |
| VideoReader 初始化参数。 更多… | |
| 类 | cv::cudacodec::VideoWriter |
| 视频写入器接口,参见 createVideoWriter()。 更多… | |
#include <opencv2/cudacodec.hpp>
由 VideoReader::nextFrame() 和 VideoReader::retrieve() 返回的帧的位深度。
| 枚举值 | |
|---|---|
| EIGHT | 8 位深度。 |
| SIXTEEN | 16 位深度。 |
| UNCHANGED | 使用源位深度。 |
#include <opencv2/cudacodec.hpp>
由 cudacodec::VideoReader 支持的色度格式。
| 枚举值 | |
|---|---|
| Monochrome | |
| YUV420 | |
| YUV422 | |
| YUV444 | |
| NumFormats | |
#include <opencv2/cudacodec.hpp>
由 cudacodec::VideoReader 和 cudacodec::VideoWriter 支持的视频编解码器。
#include <opencv2/cudacodec.hpp>
由VideoReader::nextFrame() 和 VideoReader::retrieve() 返回的帧的颜色格式,或用于初始化 VideoWriter 的颜色格式。
| 枚举值 | |
|---|---|
| 未定义 (UNDEFINED) | |
| BGRA | OpenCV 颜色格式。 VideoReader 和 VideoWriter。 |
| BGR | OpenCV 颜色格式。 VideoReader 和 VideoWriter。 |
| 灰度 (GRAY) | OpenCV 颜色格式。 VideoReader 和 VideoWriter。 |
| RGB | OpenCV 颜色格式。 VideoReader 和 VideoWriter。 |
| RGBA | OpenCV 颜色格式。 VideoReader 和 VideoWriter。 |
| NV_YUV_SURFACE_FORMAT | Nvidia YUV 表面格式,由 Nvidia 解码器输出,参见 SurfaceFormat。仅限 VideoReader。 |
| NV_NV12 | Nvidia 缓冲区格式 - 半平面 YUV [Y 平面后跟交错的 UV 平面]。仅限 VideoWriter。
|
| NV_YV12 | Nvidia 缓冲区格式 - 平面 YUV [Y 平面后跟 V 和 U 平面]。仅限 VideoWriter。 |
| NV_IYUV | Nvidia 缓冲区格式 - 平面 YUV [Y 平面后跟 U 和 V 平面]。仅限 VideoWriter。 |
| NV_YUV444 | Nvidia 缓冲区格式 - 平面 YUV [Y 平面后跟 U 和 V 平面]。仅限 VideoWriter。 |
| NV_AYUV | Nvidia 缓冲区格式 - 8 位打包 A8Y8U8V8。这是一种按字顺序排列的格式,其中像素由一个 32 位字表示,最低 8 位是 V,接下来的 8 位是 U,再接下来的 8 位是 Y,最高 8 位是 A。仅限 VideoWriter。 |
| NV_YUV420_10BIT | Nvidia 缓冲区格式 - 10 位半平面 YUV [Y 平面后跟交错的 UV 平面]。每个像素大小为 2 字节。最重要的 10 位包含像素数据。仅限 VideoWriter。 |
| NV_YUV444_10BIT | Nvidia 缓冲区格式 - 10 位平面 YUV444 [Y 平面后跟 U 和 V 平面]。每个像素大小为 2 字节。最重要的 10 位包含像素数据。仅限 VideoWriter。 |
#include <opencv2/cudacodec.hpp>
VideoReader 源的视频信号描述颜色原色(H265 规范文件的 E.2.1 VUI 参数语义部分)
#include <opencv2/cudacodec.hpp>
解码器使用的去隔行模式。
| 枚举值 | |
|---|---|
| 交织 (Weave) | 交织两个场(无去隔行)。用于逐行内容和不需要去隔行的内容。 |
| 逐行扫描 (Bob) | 删除一个字段。 |
| 自适应 | 自适应隔行扫描比其他隔行扫描模式需要更多的视频内存。 |
#include <opencv2/cudacodec.hpp>
多遍编码。
| 枚举值 | |
|---|---|
| ENC_MULTI_PASS_DISABLED | 单遍。 |
| ENC_TWO_PASS_QUARTER_RESOLUTION | 启用两遍编码,第一遍为四分之一分辨率。 |
| ENC_TWO_PASS_FULL_RESOLUTION | 启用两遍编码,第一遍为全分辨率。 |
#include <opencv2/cudacodec.hpp>
码率控制模式。
| 枚举值 | |
|---|---|
| ENC_PARAMS_RC_CONSTQP | 恒定QP模式。 |
| ENC_PARAMS_RC_VBR | 可变码率模式。 |
| ENC_PARAMS_RC_CBR | 恒定码率模式。 |
#include <opencv2/cudacodec.hpp>
Nvidia编码预设。从P1到P7,性能下降,质量提高。
| 枚举值 | |
|---|---|
| ENC_PRESET_P1 | |
| ENC_PRESET_P2 | |
| ENC_PRESET_P3 | |
| ENC_PRESET_P4 | |
| ENC_PRESET_P5 | |
| ENC_PRESET_P6 | |
| ENC_PRESET_P7 | |
#include <opencv2/cudacodec.hpp>
支持的编码器配置文件。
#include <opencv2/cudacodec.hpp>
调整信息。
#include <opencv2/cudacodec.hpp>
解码器输出的视频表面格式。
| 枚举值 | |
|---|---|
| SF_NV12 | 半平面YUV [Y平面后跟交错的UV平面]。 |
| SF_P016 | 16位半平面YUV [Y平面后跟交错的UV平面]。可用于10位(6LSB位为0),12位(4LSB位为0)。 |
| SF_YUV444 | 平面YUV [Y平面后跟U和V平面]。 |
| SF_YUV444_16Bit | 16位平面YUV [Y平面后跟U和V平面]。可用于10位(6LSB位为0),12位(4LSB位为0)。 |
#include <opencv2/cudacodec.hpp>
cv::cudacodec::VideoReader 通用属性标识符。
| 枚举值 | |
|---|---|
| PROP_DECODED_FRAME_IDX | 使用retrieve()检索解码帧的索引。 |
| PROP_EXTRA_DATA_INDEX | 使用retrieve()检索与视频源关联的额外数据的索引。 |
| PROP_RAW_PACKAGES_BASE_INDEX | 使用retrieve()检索原始编码数据的基索引。 |
| PROP_NUMBER_OF_RAW_PACKAGES_SINCE_LAST_GRAB | 自上次调用grab()以来接收到的原始数据包数量。 |
| PROP_RAW_MODE | 原始模式的状态。 |
| PROP_LRF_HAS_KEY_FRAME | 仅限 FFmpeg 源码 - 指示从 VideoReader::retrieve()(当 VideoReader 以原始模式初始化时)输出的最后原始帧 (LRF) 是否包含关键帧的编码数据。 |
| PROP_COLOR_FORMAT | 解码帧的色彩格式。这可以在每次调用 nextFrame() 和 retrieve() 之前更改。 |
| PROP_UDP_SOURCE | VideoReaderInitParams::udpSource 初始化的状态。 |
| PROP_ALLOW_FRAME_DROP | |
| PROP_BIT_DEPTH | 解码帧的比特深度。这可以在每次调用 nextFrame() 和 retrieve() 之前更改。 |
| PROP_PLANAR | 为真时为平面格式,为假时为打包格式。这可以在每次调用 nextFrame() 和 retrieve() 之前更改。 |
| Ptr< NVSurfaceToColorConverter > cv::cudacodec::createNVSurfaceToColorConverter | ( | const ColorSpaceStandard | colorSpace, |
| const bool | videoFullRangeFlag = false ) |
#include <opencv2/cudacodec.hpp>
创建一个 NVSurfaceToColorConverter。
| colorSpace | 转换器所需的 ColorSpaceStandard。 |
| videoFullRangeFlag | 指示源的黑色电平、亮度和色度是否使用 ITU-T 规范附件 E 中定义的完整或有限范围(又称电视或“模拟”范围)的值表示。 |
| Ptr< VideoReader > cv::cudacodec::createVideoReader | ( | const Ptr< RawVideoSource > & | source, |
| const VideoReaderInitParams | params = VideoReaderInitParams() ) |
#include <opencv2/cudacodec.hpp>
这是一个重载成员函数,为了方便提供。它与上面的函数的区别仅仅在于它接受的参数。
| source | 用户实现的原始视频源。 |
| params | 初始化参数。参见 cv::cudacodec::VideoReaderInitParams。 |
| Ptr< VideoReader > cv::cudacodec::createVideoReader | ( | const String & | filename, |
| const std::vector< int > & | sourceParams = {}, | ||
| const VideoReaderInitParams | params = VideoReaderInitParams() ) |
#include <opencv2/cudacodec.hpp>
创建视频读取器。
| filename | 输入视频文件的名称。 |
| sourceParams | 传递给 VideoCapture 的参数。使用带有 FFMpeg 后端的 VideoCapture (CAP_FFMPEG) 来解析视频输入。sourceParams 参数允许指定编码为 (paramId_1, paramValue_1, paramId_2, paramValue_2, ...) 对的额外参数。例如,当从 RTSP 源流式传输时,可能需要设置 cv::VideoCaptureProperties,例如 CAP_PROP_OPEN_TIMEOUT_MSEC。 |
| params | 初始化参数。参见 cv::cudacodec::VideoReaderInitParams。 |
使用 FFMPEG 读取视频。用户可以使用 cudacodec::RawVideoSource 实现自己的解复用。
| Ptr< cudacodec::VideoWriter > cv::cudacodec::createVideoWriter | ( | const String & | fileName, |
| const Size | frameSize, | ||
| const Codec | codec, | ||
| const double | fps, | ||
| const ColorFormat | colorFormat, | ||
| const EncoderParams & | params, | ||
| Ptr< EncoderCallback > | encoderCallback = 0, | ||
| const cuda::Stream & | stream = cuda::Stream::Null() ) |
#include <opencv2/cudacodec.hpp>
创建视频写入器。
| fileName | 输出视频文件的名称。 |
| frameSize | 输入视频帧的大小。 |
| codec | 支持 Codec::H264 和 Codec::HEVC。 |
| fps | 创建的视频流的帧率。 |
| colorFormat | 要编码的帧的 OpenCV 颜色格式。 |
| params | 附加编码参数。 |
| encoderCallback | 视频编码器的回调函数。参见 cudacodec::EncoderCallback。对于使用编码视频流是必需的。 |
| stream | 帧预处理的流。 |
| Ptr< cudacodec::VideoWriter > cv::cudacodec::createVideoWriter | ( | const String & | fileName, |
| const Size | frameSize, | ||
| const Codec | codec = Codec::H264, | ||
| const double | fps = 25.0, | ||
| const ColorFormat | colorFormat = ColorFormat::BGR, | ||
| Ptr< EncoderCallback > | encoderCallback = 0, | ||
| const cuda::Stream & | stream = cuda::Stream::Null() ) |
#include <opencv2/cudacodec.hpp>
创建视频写入器。
| fileName | 输出视频文件的名称。 |
| frameSize | 输入视频帧的大小。 |
| codec | 支持 Codec::H264 和 Codec::HEVC。 |
| fps | 创建的视频流的帧率。 |
| colorFormat | 要编码的帧的 OpenCV 颜色格式。 |
| encoderCallback | 视频编码器的回调函数。参见 cudacodec::EncoderCallback。对于使用编码视频流是必需的。 |
| stream | 帧预处理的流。 |
| void cv::cudacodec::MapHist | ( | const cuda::GpuMat & | hist, |
| Mat & | histFull ) |
#include <opencv2/cudacodec.hpp>
实用程序函数,演示如何在 FormatInfo::videoFullRangeFlag == false 时映射亮度直方图。
| hist | 从 VideoReader::nextFrame(GpuMat& frame, GpuMat& hist, Stream& stream) 返回的亮度直方图 hist。 |
| histFull | 与调用 cuda::calcHist(InputArray frame, OutputArray hist, Stream& stream) 后下载 hist 等效的主机直方图。 |
| bool cv::cudacodec::operator== | ( | const EncoderParams & | lhs, |
| const EncoderParams & | rhs ) |
#include <opencv2/cudacodec.hpp>