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>