![]() |
OpenCV 4.13.0
开源计算机视觉库 (Open Source Computer Vision)
|
类 | |
| 结构体 | cv::cudacodec::EncodeQp |
| 类 | cv::cudacodec::EncoderCallback |
| 编码器回调接口。 更多... | |
| 结构体 | cv::cudacodec::EncoderParams |
| CUDA 视频编码器的各种参数。 更多... | |
| 结构体 | cv::cudacodec::FormatInfo |
| 提供视频文件格式信息的结构体。 : 更多... | |
| 类 | cv::cudacodec::NVSurfaceToColorConverter |
| 当输出颜色格式设置为 ColorFormat::NV_YUV_SURFACE_FORMAT (VideoReader::set(ColorFormat::NV_YUV_SURFACE_FORMAT)) 时,该类用于将来自 VideoReader 的原始 YUV Surface 输出转换为请求的 ColorFormat。 更多... | |
| 类 | cv::cudacodec::RawVideoSource |
| 视频解复用(demultiplexing)接口。 : 更多... | |
| 类 | cv::cudacodec::VideoReader |
| 视频读取器接口,请参阅 createVideoReader()。 更多... | |
| 结构体 | cv::cudacodec::VideoReaderInitParams |
| VideoReader 初始化参数。 更多... | |
| 类 | cv::cudacodec::VideoWriter |
| 视频写入器接口,请参阅 createVideoWriter()。 更多... | |
#include <opencv2/cudacodec.hpp>
VideoReader::nextFrame() 和 VideoReader::retrieve() 返回的帧的位深
| 枚举值 (Enumerator) | |
|---|---|
| EIGHT | 8 位深度。 |
| SIXTEEN | 16 位深度。 |
| UNCHANGED | 使用源位深。 |
#include <opencv2/cudacodec.hpp>
cudacodec::VideoReader 支持的色度格式。
| 枚举值 (Enumerator) | |
|---|---|
| Monochrome | |
| YUV420 | |
| YUV422 | |
| YUV444 | |
| NumFormats | |
#include <opencv2/cudacodec.hpp>
cudacodec::VideoReader 和 cudacodec::VideoWriter 支持的视频编解码器。
#include <opencv2/cudacodec.hpp>
VideoReader::nextFrame() 和 VideoReader::retrieve() 返回的帧或用于初始化 VideoWriter 的颜色格式。
| 枚举值 (Enumerator) | |
|---|---|
| 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 解码器输出的 Nvidia YUV Surface 格式,请参阅 SurfaceFormat。仅限 VideoReader。 |
| NV_NV12 | Nvidia 缓冲区格式 - 半平面(Semi-Planar)YUV [Y 平面后跟交错的 UV 平面]。仅限 VideoWriter。
|
| NV_YV12 | Nvidia 缓冲区格式 - 平面(Planar)YUV [Y 平面后跟 V 和 U 平面]。仅限 VideoWriter。 |
| NV_IYUV | Nvidia 缓冲区格式 - 平面(Planar)YUV [Y 平面后跟 U 和 V 平面]。仅限 VideoWriter。 |
| NV_YUV444 | Nvidia 缓冲区格式 - 平面(Planar)YUV [Y 平面后跟 U 和 V 平面]。仅限 VideoWriter。 |
| NV_AYUV | Nvidia 缓冲区格式 - 8 位打包 A8Y8U8V8。这是一种字序(word-ordered)格式,其中一个像素由一个 32 位字表示,V 在最低 8 位,U 在接下来的 8 位,Y 在之后的 8 位,A 在最高 8 位。仅限 VideoWriter。 |
| NV_YUV420_10BIT | Nvidia 缓冲区格式 - 10 位半平面 YUV [Y 平面后跟交错的 UV 平面]。每个像素大小为 2 字节。最高 10 位包含像素数据。仅限 VideoWriter。 |
| NV_YUV444_10BIT | Nvidia 缓冲区格式 - 10 位平面 YUV444 [Y 平面后跟 U 和 V 平面]。每个像素大小为 2 字节。最高 10 位包含像素数据。仅限 VideoWriter。 |
|
strong |
#include <opencv2/cudacodec.hpp>
VideoReader 源的视频信号描述颜色原色(H265 规范文件第 E.2.1 节 VUI 参数语义)。
#include <opencv2/cudacodec.hpp>
解码器使用的去隔行模式。
| 枚举值 (Enumerator) | |
|---|---|
| Weave | 编织(Weave)两个场(不进行去隔行处理)。用于逐行扫描内容和不需要去隔行的内容。 |
| Bob | 丢弃一个场(Bob)。 |
| Adaptive | 自适应(Adaptive)去隔行,比其他去隔行模式需要更多的显存。 |
#include <opencv2/cudacodec.hpp>
多通行编码。
| 枚举值 (Enumerator) | |
|---|---|
| ENC_MULTI_PASS_DISABLED | 单次通行(Single Pass)。 |
| ENC_TWO_PASS_QUARTER_RESOLUTION | 启用两次通行编码,其中第一次通行是四分之一分辨率。 |
| ENC_TWO_PASS_FULL_RESOLUTION | 启用两次通行编码,其中第一次通行是全分辨率。 |
#include <opencv2/cudacodec.hpp>
码率控制模式。
| 枚举值 (Enumerator) | |
|---|---|
| ENC_PARAMS_RC_CONSTQP | 固定 QP 模式。 |
| ENC_PARAMS_RC_VBR | 可变码率(VBR)模式。 |
| ENC_PARAMS_RC_CBR | 固定码率(CBR)模式。 |
#include <opencv2/cudacodec.hpp>
Nvidia 编码预设。从 P1 到 P7,性能逐渐下降,质量逐渐提高。
| 枚举值 (Enumerator) | |
|---|---|
| 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>
支持的编码器配置文件(Profile)。
#include <opencv2/cudacodec.hpp>
微调信息。
#include <opencv2/cudacodec.hpp>
解码器输出的视频 Surface 格式。
|
strong |
#include <opencv2/cudacodec.hpp>
cv::cudacodec::VideoReader 通用属性标识符。
| 枚举值 (Enumerator) | |
|---|---|
| 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 时,从 VideoReader::retrieve() 输出的最后一帧原始帧 (LRF) 是否包含关键帧的编码数据。 |
| PROP_COLOR_FORMAT | 解码帧的颜色格式。可在每次调用 nextFrame() 和 retrieve() 之前更改。 |
| PROP_UDP_SOURCE | VideoReaderInitParams::udpSource 初始化的状态。 |
| PROP_ALLOW_FRAME_DROP | |
| PROP_BIT_DEPTH | 解码帧的位深度。可在每次调用 nextFrame() 和 retrieve() 之前更改。 |
| PROP_PLANAR | 为 true 时为平面格式(planar),为 false 时为打包格式(packed)。可在每次调用 nextFrame() 和 retrieve() 之前更改。 |
| Ptr< NVSurfaceToColorConverter > cv::cudacodec::createNVSurfaceToColorConverter | ( | const ColorSpaceStandard | colorSpace, |
| const bool | videoFullRangeFlag = false ) |
#include <opencv2/cudacodec.hpp>
创建一个 NVSurfaceToColorConverter。
| colorSpace | 转换器请求的 ColorSpaceStandard。 |
| videoFullRangeFlag | 指示源的黑电平、亮度和色度是使用全范围还是有限范围(也称为 TV 或“模拟”范围)的值表示,这些值在 ITU-T 规范的附录 E 中定义。 |
| Ptr< VideoReader > cv::cudacodec::createVideoReader | ( | const Ptr< RawVideoSource > & | source, |
| const VideoReaderInitParams | params = VideoReaderInitParams() ) |
#include <opencv2/cudacodec.hpp>
这是一个重载的成员函数,为方便起见而提供。它与上述函数的区别仅在于所接受的参数不同。
| source | 由用户实现的原始(RAW)视频源。 |
| 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 后端 (CAP_FFMPEG) 的 VideoCapture 来解析视频输入。sourceParams 参数允许指定以键值对 (paramId_1, paramValue_1, paramId_2, paramValue_2, ...) 编码的额外参数。请参阅 cv::VideoCaptureProperties,例如,从 RTSP 源流式传输时,可能需要设置 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。处理编码视频流时必需。 |
| 流 | 用于帧预处理的流。 |
| 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。处理编码视频流时必需。 |
| 流 | 用于帧预处理的流。 |
| 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 得到的在主机端(Host)的直方图。 |
| bool cv::cudacodec::operator== | ( | const EncoderParams & | lhs, |
| const EncoderParams & | rhs ) |
#include <opencv2/cudacodec.hpp>