Jetson Linux API 参考

32.7.4 版本

详细描述

使用 libjpeg API 解码 JPEG 图像的辅助类。

NvJPEGDecoder 使用 libjpeg API 解码 JPEG 图像。它支持两种解码方法

  • 解码到 DMABUF 并返回其文件描述符 (FD)。
  • 解码并将数据写入 NvBuffer 对象,即软件分配的内存 (malloc)。

JPEG 解码器能够解码 YUV420、YUV422 和 YUV444 JPEG 图像。

注意
目前仅支持 JCS_YCbCr (YUV420) 色彩空间。

定义于文件 86NvJpegDecoder.h

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

公共成员函数

 ~NvJPEGDecoder ()
 
int decodeToFd (int &fd, unsigned char *in_buf, unsigned long in_buf_size, uint32_t &pixfmt, uint32_t &width, uint32_t &height)
 将 JPEG 图像解码到硬件缓冲区内存。 更多...
 
int decodeToBuffer (NvBuffer **buffer, unsigned char *in_buf, unsigned long in_buf_size, uint32_t *pixfmt, uint32_t *width, uint32_t *height)
 将 JPEG 图像解码到软件缓冲区内存。 更多...
 
virtual int isInError ()
 指示元素在其操作期间是否遇到错误。 更多...
 
void getProfilingData (NvElementProfiler::NvElementProfilerData &data)
 获取元素的性能分析数据。 更多...
 
void printProfilingStats (std::ostream &out_stream=std::cout)
 将元素的性能分析数据打印到输出流。 更多...
 
virtual void enableProfiling ()
 启用元素的性能分析。 更多...
 
bool isProfilingEnabled ()
 检查是否为元素启用了性能分析。 更多...
 

静态公共成员函数

static NvJPEGDecodercreateJPEGDecoder (const char *comp_name)
 创建一个名为 comp_name 的新 JPEG 解码器。 更多...
 

受保护的属性

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

构造函数 & 析构函数文档

◆ ~NvJPEGDecoder()

NvJPEGDecoder::~NvJPEGDecoder ( )

成员函数文档

◆ createJPEGDecoder()

static NvJPEGDecoder* NvJPEGDecoder::createJPEGDecoder ( const char *  comp_name)
static

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

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

◆ decodeToBuffer()

int NvJPEGDecoder::decodeToBuffer ( NvBuffer **  buffer,
unsigned char *  in_buf,
unsigned long  in_buf_size,
uint32_t *  pixfmt,
uint32_t *  width,
uint32_t *  height 
)

将 JPEG 图像解码到软件缓冲区内存。

此方法将软件内存中的 JPEG 图像解码为指定的宽度和大小。

注意
由于 decodeToBuffer 方法涉及从硬件缓冲区内存到软件缓冲区内存的转换,因此它比 NvJPEGDecoder::decodeToFd 方法慢。
注意
应用程序必须释放 NvBuffer 对象。
参数
[out]buffer指向 NvBuffer 对象的间接指针,该对象包含解码后的图像。该对象由方法分配,缓冲区内存使用 NvBuffer::allocateMemory 分配。
[in]in_buf指向包含 JPEG 的内存的指针。
[in]in_buf_size输入缓冲区的大小(以字节为单位)。
[out]pixfmt指向解码图像的 V4L2 像素格式的指针。
[out]width指向解码图像宽度的指针(以像素为单位)。
[out]height指向解码图像高度的指针(以像素为单位)。
返回值
成功时返回 0,否则返回 -1。

◆ decodeToFd()

int NvJPEGDecoder::decodeToFd ( int &  fd,
unsigned char *  in_buf,
unsigned long  in_buf_size,
uint32_t &  pixfmt,
uint32_t &  width,
uint32_t &  height 
)

将 JPEG 图像解码到硬件缓冲区内存。

此方法将硬件内存中的 JPEG 图像解码为指定的宽度和大小。

参数
[out]fd硬件缓冲区的文件描述符 (FD) 的引用。
[in]in_buf指向包含 JPEG 图像的内存的指针。
[in]in_buf_size输入缓冲区的大小(以字节为单位)。
[out]pixfmt对解码图像的 V4L2 像素格式的引用。
[out]width对解码图像宽度的引用(以像素为单位)。
[out]height对解码图像高度的引用(以像素为单位)。
返回值
成功时返回 0,否则返回 -1。

◆ enableProfiling()

virtual void NvElement::enableProfiling ( )
virtualinherited

启用元素的性能分析。

NvV4l2Element 中重新实现。

◆ getProfilingData()

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

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

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

◆ isInError()

virtual int NvElement::isInError ( )
inlinevirtualinherited

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

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

NvV4l2Element 中重新实现。

定义于文件 72NvElement.h

参考 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。

字段文档

◆ comp_name

const char* NvElement::comp_name
protectedinherited

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

定义于文件 122NvElement.h

◆ is_in_error

int NvElement::is_in_error
protectedinherited

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

定义于文件 120NvElement.h

NvElement::isInError() 引用。

◆ profiler

NvElementProfiler NvElement::profiler
protectedinherited

元素的性能分析器。

定义于文件 124NvElement.h


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