Jetson Linux API 参考

32.7.4 版本

详细描述

NvJpegEncoder 使用 libjpeg API 进行 JPEG 图像解码。

它支持两种编码方法

  • 使用 V4L2 元素创建的 MMAP 缓冲区的 文件描述符 (FD) 进行编码(支持 YUV420 和 NV12 颜色格式)。
  • 使用 NvBuffer 对象中的数据指针进行编码,即软件分配的内存 (malloc);支持 YUV420 颜色格式。
注意
目前仅支持 JCS_YCbCr (YUV420) 颜色空间。

定义于文件 NvJpegEncoder.h 的第 85 行。

NvJPEGEncoder 的继承关系图
NvJPEGEncoder 的协作关系图

公共成员函数

 ~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 NvJPEGEncodercreateJPEGEncoder (const char *comp_name)
 创建一个名为 comp_name 的新 JPEG 编码器。 更多...
 

保护属性

int is_in_error
 指示元素操作期间是否遇到错误。 更多...
 
const char * comp_name
 指定组件的名称,用于调试。 更多...
 
NvElementProfiler profiler
 元素的性能分析器。 更多...
 

构造函数 & 析构函数 文档

◆ ~NvJPEGEncoder()

NvJPEGEncoder::~NvJPEGEncoder ( )

成员函数文档

◆ createJPEGEncoder()

static NvJPEGEncoder* NvJPEGEncoder::createJPEGEncoder ( const char *  comp_name)
static

创建一个名为 comp_name 的新 JPEG 编码器。

返回
对新创建的解码器对象的引用,如果初始化期间失败,则返回 NULL。

◆ enableProfiling()

virtual void NvElement::enableProfiling ( )
virtualinherited

为元素启用性能分析。

NvV4l2Element 中重新实现。

◆ encodeFromBuffer()

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_buf 内存。
参数
[out]buffer指示包含编码图像的 NvBuffer 对象。
[out]color_space指示用于编码的 color_space。
[in]out_buf指定指向 JPEG 图像内存的指针。
[in]out_buf_size指定输出缓冲区的大小(以字节为单位)。
[in]quality设置图像质量。
返回
成功返回 0,否则返回 -1。

◆ encodeFromFd()

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_buf 内存。
参数
[out]fd指示硬件缓冲区的文件描述符 (FD)。
[out]color_space指示用于编码的 color_space。
[in]out_buf指定指向 JPEG 图像内存的指针。
[in]out_buf_size指定输出缓冲区的大小(以字节为单位)。
[in]quality设置图像质量。
返回
成功返回 0,否则返回 -1。

◆ getProfilingData()

void NvElement::getProfilingData ( NvElementProfiler::NvElementProfilerData data)
inherited

获取元素的性能分析数据。

返回
对元素性能分析数据的常量引用。

◆ isInError()

virtual int NvElement::isInError ( )
inlinevirtualinherited

指示元素在其操作期间是否遇到错误。

返回
如果未遇到错误,则为 0;如果遇到错误,则为非零值。

NvV4l2Element 中重新实现。

定义于文件 NvElement.h 的第 72 行。

参考 NvElement::is_in_error

◆ isProfilingEnabled()

bool NvElement::isProfilingEnabled ( )
inherited

检查是否为元素启用了性能分析。

返回
布尔值,指示是否启用了性能分析。

◆ printProfilingStats()

void NvElement::printProfilingStats ( std::ostream &  out_stream = std::cout)
inherited

将元素的性能分析数据打印到输出流。

参数
[in]out_stream类型为 std::ostream 的输出流,用于将数据打印到该流。如果未指定,则采用默认值 std::cout。

◆ setCropRect()

void NvJPEGEncoder::setCropRect ( uint32_t  left,
uint32_t  top,
uint32_t  width,
uint32_t  height 
)

设置 JPEG 编码器使用的裁剪矩形。

必须在调用 encodeFromFdencodeFromBuffer 之前调用此方法,裁剪才能生效。

注意
JPEG 编码器在每次调用 jpeg_finish_compress 后都会重置裁剪参数。因此,必须在每次调用 encodeFromFd 或 encodeFromBuffer 之前调用此方法。
参数
[in]left裁剪矩形的水平偏移量,以像素为单位。
[in]top裁剪矩形的垂直偏移量,以像素为单位。
[in]width裁剪矩形的宽度,以像素为单位。
[in]height裁剪矩形的高度,以像素为单位。

◆ setScaledEncodeParams()

void NvJPEGEncoder::setScaledEncodeParams ( uint32_t  scale_width,
uint32_t  scale_height 
)

设置图像需要缩放和编码的缩放参数。

必须在调用 encodeFromFdencodeFromBuffer 之前调用此方法,缩放编码才能生效。

参数
[in]scale_width指定缩放后图像的宽度。
[in]scale_height指定缩放后图像的高度。

字段文档

◆ comp_name

const char* NvElement::comp_name
protectedinherited

指定组件的名称,用于调试。

定义于文件 NvElement.h 的第 122 行。

◆ is_in_error

int NvElement::is_in_error
protectedinherited

指示元素操作期间是否遇到错误。

定义于文件 NvElement.h 的第 120 行。

NvElement::isInError() 引用。

◆ profiler

NvElementProfiler NvElement::profiler
protectedinherited

元素的性能分析器。

定义于文件 NvElement.h 的第 124 行。


此类文档从以下文件生成
. All rights reserved.