# ESP JPEG SIMD [](https://components.espressif.com/components/wvirgil123/esp_jpeg_simd) ## Component Overview ESP JPEG SIMD is a high-performance JPEG codec component for ESP platforms. It supports multiple pixel formats, rotation, and SIMD optimization, making it suitable for image acquisition and AI vision scenarios. ## Decode API Overview ### Header File ```c #include "esp_jpeg_dec.h" ``` ### Main Structures - `jpeg_dec_config_t`: Decoder configuration (output format, rotation, etc.) - `jpeg_dec_io_t`: Input/output buffer descriptor - `jpeg_dec_header_info_t`: Image header information ### Main Functions - `jpeg_dec_open`: Create a decoder handle - `jpeg_dec_parse_header`: Parse JPEG header and get image info - `jpeg_dec_process`: Perform decoding - `jpeg_dec_close`: Release decoder resources ## Typical Decode Workflow Example The following is a typical JPEG decode workflow ```c #include "esp_jpeg_dec.h" int esp_jpeg_decoder_one_picture(uint8_t *input_buf, int len, uint8_t *output_buf) { // 1. Configure decoder parameters jpeg_dec_config_t config = { .output_type = JPEG_RAW_TYPE_RGB565_BE, .rotate = JPEG_ROTATE_0D }; jpeg_dec_handle_t jpeg_dec = jpeg_dec_open(&config); if (!jpeg_dec) return ESP_FAIL; // 2. Allocate IO structures jpeg_dec_io_t *jpeg_io = calloc(1, sizeof(jpeg_dec_io_t)); jpeg_dec_header_info_t *out_info = calloc(1, sizeof(jpeg_dec_header_info_t)); if (!jpeg_io || !out_info) return ESP_FAIL; jpeg_io->inbuf = input_buf; jpeg_io->inbuf_len = len; // 3. Parse JPEG header int ret = jpeg_dec_parse_header(jpeg_dec, jpeg_io, out_info); if (ret < 0) goto _exit; // 4. Set output buffer jpeg_io->outbuf = output_buf; int inbuf_consumed = jpeg_io->inbuf_len - jpeg_io->inbuf_remain; jpeg_io->inbuf = input_buf + inbuf_consumed; jpeg_io->inbuf_len = jpeg_io->inbuf_remain; // 5. Decode ret = jpeg_dec_process(jpeg_dec, jpeg_io); _exit: jpeg_dec_close(jpeg_dec); free(out_info); free(jpeg_io); return ret; } ``` ## Reference - For detailed APIs, see `include/esp_jpeg_dec.h`
idf.py add-dependency "wvirgil123/esp_jpeg_simd^1.0.0"