图片格式不支持或图片数据不完整,图片解码失败
2023/06/19
944
问题信息
问题来源 | 产品大类 | 产品子类 | 关键字 |
---|---|---|---|
官方 | 模型推理 | 应用开发AscendCL | jpegd、图片解码 |
问题现象描述
图片解码失败,查看日志有类似如下报错信息:
- 日志片段举例1:
Unsupported subsample format, just support jpeg with YUV 444 440 422 420 400 do not support progressive mode do not support arithmetic code, support huffman code only
- 日志片段举例2:
EOI segment of the stream is invalid
原因分析
分析上面日志信息,可能存在以下可能原因:
- 数据格式不支持
- 图片数据不完整
解决措施
针对上述可能原因,请按以下方式处理:
- 目前不支持的超规格图像格式,建议用户自行使用第三方软件解码。
解码JPEG图片,只支持JPEG图片为huffman编码(colorspace: yuv, subsample: 444/440/422/420/400 ),不支持算术编码,不支持渐进编码,不支持jpeg2000格式。
- 图片数据不完整,根据报错提示,通过第三方软件查看原图像二进制进行确认。
图像缺失最后的EOI结束符,对应图像二进制类似下图所示。正常JPEG图片最后应该由标记码FF D9结束,该数据最后缺失FF D9标记码。
如果确认原图数据不完整,报错属于正常现象,需更换图片。
- 原图像数据完整,可能数据在传输过程中存在损坏,需要在调用图片解码接口前,通过fwrite函数将送入解码接口的的图片码流保存下来,与原JPEG图进行二进制比较。如果不一致,传输过程出现数据缺失,需进一步定位传输过程数据缺失问题后,再重新解码图片。
本页内容