首页 > 其他分享 >昇腾实战丨DVPP媒体数据处理图片解码问题案例

昇腾实战丨DVPP媒体数据处理图片解码问题案例

时间:2023-06-06 15:44:49浏览次数:40  
标签:解码 JPEG DVPP 图像 数据处理 日志 图片

摘要:本期就分享几个关于DVPP图片解码问题的典型案例,并给出原因分析及解决方法。

本文分享自华为云社区《DVPP媒体数据处理图片解码问题案例》,作者:昇腾CANN 。

DVPP(Digital Vision Pre-Processing)是昇腾AI处理器内置的图像处理单元,通过AscendCL媒体数据处理接口提供强大的媒体处理硬加速能力,主要功能包括图像编解码、视频编解码、图像抠图缩放等。

本期就分享几个关于DVPP图片解码问题的典型案例,并给出原因分析及解决方法:

  1. 图片格式不支持或图片数据不完整,图片解码失败
  2. 图像解码进程超时退出

01图片格式不支持或图片数据不完整,图片解码失败

问题现象信息

图片解码失败,查看日志有类似如下报错信息:

日志片段举例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

原因分析

分析上面日志信息,可能存在以下可能原因:

  • 数据格式不支持
  • 图片数据不完整

解决措施

针对上述可能原因,请按以下方式处理:

1、目前不支持的超规格图像格式,建议用户自行使用第三方软件解码。

解码JPEG图片,只支持JPEG图片为huffman编码(colorspace: yuv, subsample: 444/440/422/420/400 ),不支持算术编码,不支持渐进编码,不支持jpeg2000格式。

2、图片数据不完整,根据报错提示,通过第三方软件查看原图像二进制进行确认。

图像缺失最后的EOI结束符,对应图像二进制类似下图所示。正常JPEG图片最后应该由标记码FF D9结束,该数据最后缺失FF D9标记码。

如果确认原图数据不完整,报错属于正常现象,需更换图片。

3、原图像数据完整,可能数据在传输过程中存在损坏,需要在调用图片解码接口前,通过fwrite函数将送入解码接口的的图片码流保存下来,与原JPEG图进行二进制比较。如果不一致,传输过程出现数据缺失,需进一步定位传输过程数据缺失问题后,再重新解码图片。

02图像解码进程超时退出

问题现象信息

用户进程退出。

查看应用类日志,发现类似ERROR日志“task timeout, userData= ..., timeout=30, duration=…”和WARNING日志“frames statistic: ACL receive(n), send(n-1)”,n表示处理任务数量,需根据实际情况确定。

日志片段举例如下:

[ERROR] AICPU(pid,pName):DateTimeMS [dvpp_timeout_manager.cc:33][OnPulse][tid:2581][DVPP_KERNELS] WaitId[10] task timeout, userData=0xe7ffe0001280, timeout=30, duration=30.930062.
[INFO] AICPU(pid,pName):DateTimeMS [dvpp_kernel_base.cc:222][SendTaskCompleteToTs][tid:2581][DVPP_KERNELS] Send task complete to ts success, taskId=2, streamId=44, errorCode=1.
[WARNING] DVPP(pid,pName):DateTimeMS [JpegdAsyncManager.cpp:405][API] [PrintFrameCount:405] [T208] DFX [JPEGD]: frames statistic: ACL receive(16), send(15)

原因分析

多路并发解码JPEG图片场景下,如果每一路解码的JPEG图片中,都包含带旋转信息的大分辨率图片,例如3840*2160分辨率及以上的图片,则可能导致图片解码时间过长,从而导致用户进程超时退出。

解决措施

1、确定大分辨率的图片是否包含旋转信息。

使用JPEG码流分析工具(例如JPEGsnoop)解析大分辨率的图片,查看其是否包含旋转信息,若Orientation信息为1,则表示不旋转;否则,都带有一定角度的旋转,例如下图解析出来的Orientation信息为8,表示顺时针旋转270°。

2、如果无法更换图片,确定这些图片是带旋转的大分辨率图片,则建议用户先调用第三方库(例如OpenCV)进行解码。

03更多介绍

[1]昇腾文档中心:https://www.hiascend.com/zh/document

[2]昇腾社区在线课程:https://www.hiascend.com/zh/edu/courses

[3]昇腾论坛:https://www.hiascend.com/forum

 

点击关注,第一时间了解华为云新鲜技术~

标签:解码,JPEG,DVPP,图像,数据处理,日志,图片
From: https://www.cnblogs.com/huaweiyun/p/17460722.html

相关文章

  • 编码器 | 基于 Transformers 的编码器-解码器模型
    基于transformer的编码器-解码器模型是表征学习和模型架构这两个领域多年研究成果的结晶。本文简要介绍了神经编码器-解码器模型的历史,更多背景知识,建议读者阅读由SebastionRuder撰写的这篇精彩博文。此外,建议读者对自注意力(self-attention)架构有一个基本了解,可以......
  • Python生成器深度解析:构建强大的数据处理管道
    前言生成器是Python的一种核心特性,允许我们在请求新元素时再生成这些元素,而不是在开始时就生成所有元素。它在处理大规模数据集、实现节省内存的算法和构建复杂的迭代器模式等多种情况下都有着广泛的应用。在本篇文章中,我们将从理论和实践两方面来探索Python生成器的深度用法。生......
  • Python生成器深度解析:构建强大的数据处理管道
    前言生成器是Python的一种核心特性,允许我们在请求新元素时再生成这些元素,而不是在开始时就生成所有元素。它在处理大规模数据集、实现节省内存的算法和构建复杂的迭代器模式等多种情况下都有着广泛的应用。在本篇文章中,我们将从理论和实践两方面来探索Python生成器的深度用法。......
  • 亿级 GPS 数据处理用 NoSQL、MySQL 还是 HBase?数据库选型看这里
    在车联网场景下,GPS产生的时序数据量级通常都达到了亿级,高效写入、存储和快速查询是最基本的数据处理要求,但在具体实践上这却不是一件容易实现的事情。最近某企业就遇到了这样一个问题:服务端接收存储GPS相关数据,按1次/30秒的上传频率,一天的数据条数估计在1.2亿条,其想要实......
  • Python 标准类库-因特网数据处理之Base64数据编码
    该模块提供将二进制数据编码为可打印ASCII字符并将这种编码解码回二进制数据的功能。它为RFC3548中指定的编码提供编码和解码功能。定义了Base16、Base32和Base64算法,以及事实上的标准Ascii85和Base85编码。RFC3548编码适用于对二进制数据进行编码,以便可以安全地通过电子邮件发......
  • 非监督异常点检测算法总结——没有想到矩阵分解和编码解码器也是一种思路
    非监督异常点检测算法总结 一、基于密度1) d(p,o):两点p和o之间的距离;2)k-distance:第k距离 对于点p的第k距离dk(p)定义如下:p的第k距离,也就是距离p第k远的点的距离,如图。  3)k-distanceneighborhoodofp:第k距离邻域 点p的第k距离邻域Nk(p),就是p的第k距离即以内的所有点,包括......
  • opencv 读取图片 图片数据处理 笔记
    1.python中各类图片读取工具的比较参考Python各类图像库的图片读写方式总结可知,opencv的性能表现最好。opencvyyds相关文章收藏:Python-OpenCV:cv2.imread(),cv2.imshow(),cv2.imwrite()Python各类图像库的图片读写方式总结2.opencv常用函数2.1读取图片cv2.imread(filename,fla......
  • 编解码、加解密常见特征
    编码编码:Base系列、Unicode、Escape、URL、Hex;https://book.hacktricks.xyz/crypto-and-stego/crypto-ctfs-tricksbase系列Base64是我们最常见的编码,除此之外,其实还有Base16、Base32、Base58、Base85、Base100等,他们之间最明显的区别就是使用了不同数量的可打印字符对任意......
  • 超级加解密转换工具——todo,编解码 md5 sha解密可以到https://www.cmd5.com/ 注意有sa
    超级加解密转换工具V2.1绿色免费版       超级加解密转换工具可以说一款万能加密解密转换工具,支持75种方式多种转换,火星最强软件!MD5、16位MD5、MD4、拼音、大小写转换、简繁转换、GBK《-》Big5、GBK简体《-》Big5、GBK《-》SJIS、火星文转换、数字到大写金额、迅雷Thunder......
  • 背景 | 基于 Transformers 的编码器-解码器模型
    !pipinstalltransformers==4.2.1!pipinstallsentencepiece==0.1.95Vaswani等人在其名作Attentionisallyouneed中首创了基于transformer的编码器-解码器模型,如今已成为自然语言处理(naturallanguageprocessing,NLP)领域编码器-解码器架构的事实标准。最近基......