STM32开发板使用picojpeg遇错误码19/20求助
关于picojpeg错误码19(PJPG_NOT_JPEG)和20(PJPG_UNSUPPORTED_MARKER)的成因说明
错误码19(PJPG_NOT_JPEG)
这代表picojpeg未检测到合法的JPEG文件起始标记,常见诱因包括:
- 摄像头输出的不是标准JPEG数据流,可能是原始像素数据(如YUV/RAW),或是传输、存储过程中损坏/截断的JPEG数据
- 读取数据时起始位置错误,没读到JPEG标志性开头
0xFFD8 - 串口/总线传输时出现字节丢失、字节序错乱,导致文件头被破坏
错误码20(PJPG_UNSUPPORTED_MARKER)
picojpeg是轻量级基线JPEG解码器,仅支持最基础的JPEG格式,遇到以下情况会触发该错误:
- 处理的是渐进式JPEG,这类格式包含基线标准外的扫描标记
- JPEG文件带有EXIF、ICC配置文件等额外元数据(对应
0xFFE1这类应用扩展标记) - 数据流中存在自定义或扩展的JPEG标记,超出了picojpeg的支持范围
排查方向
- 确认摄像头输出的是基线JPEG格式,而非渐进式或其他压缩格式
- 验证从摄像头读取的数据流完整性,确保没有截断、偏移,可导出到PC用图片查看器确认能否正常打开
- 检查数据传输链路,排除丢包、字节序错误的可能
内容的提问来源于stack exchange,提问作者Seth Harlaar
相关产品推荐
相关产品推荐

