使用LIBJPEG解压缩JPG图像(STM32F4)

问题描述 投票:0回答:0

我正在尝试在STM32F4上使用LibJPEG解码jpg图像,这里的目标是从SD卡读取图像,解码它并将其显示在TFT LCD上。我已经配置了与 SD 卡和 FATFS 相关的所有内容,并且可以读取图像文件。使用 LibJPEG 解码时出现主要问题。

这是我解码 jpg 图像的函数:

GLOBAL(int) read_JPG_image(FIL* _fptr)
{
    struct jpeg_decompress_struct cinfo;
    struct jpeg_error_mgr jerr;

    int row_stride;

    cinfo.err = jpeg_std_error(&jerr);

    jpeg_create_decompress(&cinfo);

    jpeg_stdio_src(&cinfo, _fptr);

    (void) jpeg_read_header(&cinfo, TRUE);

    (void) jpeg_start_decompress(&cinfo);

    row_stride = cinfo.output_width * cinfo.output_components;

    buffer = (*cinfo.mem->alloc_sarray)((j_common_ptr) &cinfo, JPOOL_IMAGE, row_stride, 1);

    while (cinfo.output_scanline < cinfo.output_height)
    {
        (void) jpeg_read_scanlines(&cinfo, buffer, 1);

//      put_scanline_someplace;
    }
    (void) jpeg_finish_decompress(&cinfo);

    jpeg_destroy_decompress(&cinfo);

    f_close(_fptr);

    return 1;
}

在调试器中一切似乎都工作得很好,但是一旦我执行

jpeg_start_decompress
函数,它就会在 MCU 上生成 UsageFault

以前有人遇到过这个问题吗?关于如何解决这个问题有什么想法吗?

image-processing stm32 jpeg libjpeg
© www.soinside.com 2019 - 2024. All rights reserved.