NvJpegEncoder
使用 libjpeg
API 进行 JPEG 图像解码。
它支持两种编码方法
malloc
);支持 YUV420 颜色格式。定义于文件 NvJpegEncoder.h 的第 85 行。
公共成员函数 | |
~NvJPEGEncoder () | |
int | encodeFromFd (int fd, J_COLOR_SPACE color_space, unsigned char **out_buf, unsigned long &out_buf_size, int quality=75) |
从硬件缓冲区内存的文件描述符 (FD) 编码 JPEG 图像。 更多... | |
int | encodeFromBuffer (NvBuffer &buffer, J_COLOR_SPACE color_space, unsigned char **out_buf, unsigned long &out_buf_size, int quality=75) |
从软件缓冲区内存编码 JPEG 图像。 更多... | |
void | setCropRect (uint32_t left, uint32_t top, uint32_t width, uint32_t height) |
设置 JPEG 编码器使用的裁剪矩形。 更多... | |
void | setScaledEncodeParams (uint32_t scale_width, uint32_t scale_height) |
设置图像需要缩放和编码的缩放参数。 更多... | |
virtual int | isInError () |
指示元素在其操作期间是否遇到错误。 更多... | |
void | getProfilingData (NvElementProfiler::NvElementProfilerData &data) |
获取元素的性能分析数据。 更多... | |
void | printProfilingStats (std::ostream &out_stream=std::cout) |
将元素的性能分析数据打印到输出流。 更多... | |
virtual void | enableProfiling () |
为元素启用性能分析。 更多... | |
bool | isProfilingEnabled () |
检查是否为元素启用了性能分析。 更多... | |
静态公共成员函数 | |
static NvJPEGEncoder * | createJPEGEncoder (const char *comp_name) |
创建一个名为 comp_name 的新 JPEG 编码器。 更多... | |
保护属性 | |
int | is_in_error |
指示元素操作期间是否遇到错误。 更多... | |
const char * | comp_name |
指定组件的名称,用于调试。 更多... | |
NvElementProfiler | profiler |
元素的性能分析器。 更多... | |
NvJPEGEncoder::~NvJPEGEncoder | ( | ) |
|
static |
创建一个名为 comp_name 的新 JPEG 编码器。
|
virtualinherited |
为元素启用性能分析。
在 NvV4l2Element 中重新实现。
int NvJPEGEncoder::encodeFromBuffer | ( | NvBuffer & | buffer, |
J_COLOR_SPACE | color_space, | ||
unsigned char ** | out_buf, | ||
unsigned long & | out_buf_size, | ||
int | quality = 75 |
||
) |
从软件缓冲区内存编码 JPEG 图像。
应用程序可以分配内存来存储 JPEG 图像。如果分配的内存少于所需内存,libjpeg
将分配更多内存。out_buf 指针和 out_buf_size 会相应更新。
encodeFromBuffer
方法比 NvJPEGEncoder::encodeFromFd 慢,因为 encodeFromBuffer
涉及从软件缓冲区内存到硬件缓冲区内存的转换。
仅支持 YUV420 格式。
[out] | buffer | 指示包含编码图像的 NvBuffer 对象。 |
[out] | color_space | 指示用于编码的 color_space。 |
[in] | out_buf | 指定指向 JPEG 图像内存的指针。 |
[in] | out_buf_size | 指定输出缓冲区的大小(以字节为单位)。 |
[in] | quality | 设置图像质量。 |
int NvJPEGEncoder::encodeFromFd | ( | int | fd, |
J_COLOR_SPACE | color_space, | ||
unsigned char ** | out_buf, | ||
unsigned long & | out_buf_size, | ||
int | quality = 75 |
||
) |
从硬件缓冲区内存的文件描述符 (FD) 编码 JPEG 图像。
应用程序可以分配内存来存储 JPEG 图像。如果分配的内存少于所需内存,libjpeg
将分配更多内存。out_buf 指针和 out_buf_size 会相应更新。
支持 YUV420 和 NV12 格式。
[out] | fd | 指示硬件缓冲区的文件描述符 (FD)。 |
[out] | color_space | 指示用于编码的 color_space。 |
[in] | out_buf | 指定指向 JPEG 图像内存的指针。 |
[in] | out_buf_size | 指定输出缓冲区的大小(以字节为单位)。 |
[in] | quality | 设置图像质量。 |
|
inherited |
获取元素的性能分析数据。
|
inlinevirtualinherited |
|
inherited |
检查是否为元素启用了性能分析。
|
inherited |
将元素的性能分析数据打印到输出流。
[in] | out_stream | 类型为 std::ostream 的输出流,用于将数据打印到该流。如果未指定,则采用默认值 std::cout。 |
void NvJPEGEncoder::setCropRect | ( | uint32_t | left, |
uint32_t | top, | ||
uint32_t | width, | ||
uint32_t | height | ||
) |
设置 JPEG 编码器使用的裁剪矩形。
必须在调用 encodeFromFd 或 encodeFromBuffer 之前调用此方法,裁剪才能生效。
[in] | left | 裁剪矩形的水平偏移量,以像素为单位。 |
[in] | top | 裁剪矩形的垂直偏移量,以像素为单位。 |
[in] | width | 裁剪矩形的宽度,以像素为单位。 |
[in] | height | 裁剪矩形的高度,以像素为单位。 |
void NvJPEGEncoder::setScaledEncodeParams | ( | uint32_t | scale_width, |
uint32_t | scale_height | ||
) |
设置图像需要缩放和编码的缩放参数。
必须在调用 encodeFromFd 或 encodeFromBuffer 之前调用此方法,缩放编码才能生效。
[in] | scale_width | 指定缩放后图像的宽度。 |
[in] | scale_height | 指定缩放后图像的高度。 |
|
protectedinherited |
指定组件的名称,用于调试。
定义于文件 NvElement.h 的第 122 行。
|
protectedinherited |
|
protectedinherited |
元素的性能分析器。
定义于文件 NvElement.h 的第 124 行。