dm8148 jpeg编解码器测试

2024-03-17 14:59

本文主要是介绍dm8148 jpeg编解码器测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

测试过程:

1)于A8将jpeg传送到videoM3解码,然后,videoM3编码。在编译jpeg图像传输到A8,主要是测试jpeg编码的图像需要多少时间;

 

1000w像素:  编码时间:43ms。
800w像素:   编码时间:35ms
1080P:       编码时间:10ms

1600w像素:  编码时间:73ms


当測试到1600w像素时,解码link报错,内存不够。
在utils_mem.c的utils_memFrameAlloc函数中报错,内存分配错误;


4096*4096分辨率下。declink分配的内存为:
memory alloc failed,size=26560512,numFrames=4,file=utils/src/utils_mem.c,line=185

将建立解码link时,原来是4个buff,改为2个buff
改动完后,videoM3又报例如以下错误。

[m3video]  58133: Assertion @ Line: 99 in utils/src/utils_ringbuffer.c: status == 0 : failed !!!

将编码link的buff内存个数改动成3
encPrm.numBufPerCh[i] = 3;

改动完后,1600w像素编码成功。

 

我看ti的编解码文档最大支持的分辨率就是4096*4096了。我測试了更高分辨率,5120*5120,解码器报错;

MA: ChannelID allocated:4
 [m3video]  523256: IPC_BITS_IN   : Create in progress !!!
 [m3video]  523256: SYSTEM: Opening ListMP [HOST_IPC_OUT_28] ...
 [m3video]  523257: SYSTEM: Opening ListMP [HOST_IPC_IN_28] ...
 [m3video]  523258: SYSTEM: Opening MsgQ [HOST_MSGQ] ...
 [m3video]  523261: IPC_BITS_IN   : Create Done !!!
 [m3video]  523261: DECODE: Create in progress ... !!!
 [m3video]  523521: DECODE: Creating CH0 of 5120 x 5120 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
 [m3video] DECLINK_JPEG:HEAPID:0        USED:14512
 [m3video]  523523: DECODE: All CH Create ... DONE !!!
 [m3video] DECLINK:HEAPID:0     USED:14552
 [m3video]  523524: DECODE: Create ... DONE !!!
 [m3video]  523525: ENCODE: Create in progress ... !!!
 [m3video] prevLinkQueId=0,numQue=1
 [m3video]  EncLink_codecCreateOutObj BitBuf Q Status
 [m3video] Empty Q 0 -> count 1, wrPtr 1, rdPtr 0
 [m3video] Full Q -> count 0, wrPtr 0, rdPtr 0
 [m3video]  523609: ENCODE: Creating CH0 of 5120 x 5120, pitch = (5248, 5248) [PROGRESSIVE] [NON-TILED  ], bitrate = 24000 Kbps ... 
 [m3video] ENCLINK_JPEG:HEAPID:0        USED:4432
 [m3video]  523610: ENCODE: All CH Create ... DONE !!!
 [m3video] ENCLINK:HEAPID:0     USED:4672
 [m3video]  523613: ENCODE: Create ... DONE !!!
 [m3video]  523614: IPC_BITS_OUT   : Create in progress !!!
 [m3video]  523617: IPC_BITS_OUT   : Create Done !!!
 [m3video] 528461:DECLINK::links_m3video/iva_dec/decLink_jpeg.c:[203]::INTERNAL ERROR:-1
 [m3video] ALGPROCESS FAILED:STATUS
 [m3video] 528461:WARN
 [m3video] DECLINK:ERROR in Declink_jpegDecodeFrameBatch.Status[-1]
 [m3video] 530875:DECLINK::links_m3video/iva_dec/decLink_jpeg.c:[203]::INTERNAL ERROR:-1
 [m3video] ALGPROCESS FAILED:STATUS
 [m3video] 530875:WARN
 [m3video] DECLINK:ERROR in Declink_jpegDecodeFrameBatch.Status[-1]

错误码:

JPEG Extended error 20008000

查看错误码:http://www.doc88.com/p-3965543592868.html

第15位为1表示一个致命的错误。第29位为1。表示不支持的分辨率。width/height;

 

错误码:200000 第21位为1表示 :Not supported output chroma format set by the application to the codec

 

測试完后。看到一个ti的网页,也有这些性能的測试。

http://processors.wiki.ti.com/index.php/Latency_Measurement_on_Capture_Encode_Decode_Display_Demo

http://processors.wiki.ti.com/index.php/QualiTI

 

Latency Measurement on Capture Encode Decode Display Demo

Contents

 [hide] 
  • 1 Latency Measurement for Capture Encode/Decode Display application
  • 2 Usecase Description
  • 3 Setup Details
  • 4 OMX Components Details
  • 5 Measurement Procedure
  • 6 Results
  • 7 Summary
  • 8 Download the Latest EZSDK

Latency Measurement for Capture Encode/Decode Display application

This is the latency measurements performed on the sample Capture encode/decode display demo delivered along with the EZSDK 5.x for DM816x and DM814x devices from TI. The demo is created with the chain VFCC->DEI->VENC->VDEC->VFPC-SC->VFDC . This demo is validated on EZSDK 5.03.01.15 and OMX components 5.02.00.30.

The latency numbers are measured for the following resolutions:

  • 1080p60 (Capture, Encode, Decode and Display @ 1080p60)
  • 1080p30 (Capture, Encode, Decode and Display @ 1080p30)
  • 1080p60-30 ( Capture Display @ 1080p60. Encode Decoder @ 1080p30)
  • 720p60 (Capture, Encode, Decode and Display @ 720p60)

Usecase Description

The video data is captured by VFCC component from a HD camera source via HDMI . The captured data is fed to DEI.The DEI output is then encoded by VENC and decoded by VDEC component. The decoded frame is passed to Scalar component ( VFPC Sc) , which does chroma conversion from YUV 420 to YUV 422 format. The scalar ouput is passed to VFDC and the output is displayed on the TV via via on-chip HDMI interface. The IL Client source code is available hereMedia:capture_encode_decode_display.tar.gz


Capture encode decode display block.png

Setup Details

DM816x Base EVM DM816x Rev-C with DDR3 attached with a Video Conferencing Expansion IO (EIO) Card interface. A video source (Tandberg 1080p60 Camera / Sony PS3) is connected to the daughter card via a HDMI interface. The on-chip HDMI out from the DM816x Base EVM is connected to a TV.


OMX Components Details

Following are the list of OMX components used in the usecase:

  • VFCC (Video Frame Capture Component)
  • VFPC-DEI (Video Frame Processing Component - Deinterlacer)
  • VENC (Video Encode Component)
  • VDEC (Video Decode Component)
  • VFPC-SC (Video Frame Processing Component - Scalar)
  • VFDC (Video Frame Display Component)

Measurement Procedure

  1. The IL-client is executed on ARM side and the corresponding firmware binaries are loaded on the Video and VPSS media controller cores.
  2. The HD camera is focused on a running stop watch video. Glass-to-Glass latency is measured by measuring the time difference between the source time stamp and the time stamp displayed on the TV display.
  3. Timestamps corresponding to various OMX component events for consecutive frames are logged for latency measurements
  4. T0 - Start of capture. (start time for encode path)
  5. T1 - Timestamp when capture of frame is complete
  6. T2 - Timestamp when DEI processing is done
  7. T3 - Timestamp when VENC finish encoding the frame
  8. T4 - Timestamp when VDEC starts decoding the frame
  9. T5 - Timestamp when VDEC finish decoding the frame .
  10. T6 - Timestamp when VFPC scaling is done
  11. T7 - Timestamp when VFDC send the frame to HDMI output for display
  12. T8 - Timestamp when the frame is displayed on TV
  13. From the above timestamps, Running average of various latency values are measured
  • Running average: Series of averages is calculated for a fixed window period (8 Frames) of different subsets of the full data set and final average is calculated from the average series

Results

  • Detailed latency performance results are available here Media:DM816x_Capture_Encode_Decode_Display_latency_performance_consolidated.zip


Summary

Metrics

  1. Glass to Glass Latency T8–T0 - Total delay observed in the system including TV delay
  2. Capture-Encode Latency = Capture-Encode Path delay + Buffers in Capture Driver
  3. Decode-Display Latency = Decode delay + Scalar delay + Display delay

Breakup

  1. Buffers in Capture Driver - Delay due to buffers held in capure driver. Range is from 0.5 to 1 frame
  2. Capture-Encode Path delay- T3–T1
  3. Buffer Hand Off to Decoder - Delay due to buffers held between VENC and VDEC components. Range is from 1 to 1.5 frames
  4. Decode Delay T5–T4
  5. Scalar Delay T6–T5
  6. Scale/Chroma Con. Display Delay T7–T5 - Cummulative delay for scaling, chroma conversion and display
  7. TV/Monitor Delay - Delay due to the internal processing in the TV/monitor (8ms delay is observed in Samsung LCD TV)



Capture encode decode display latency summary.png


Download the Latest EZSDK

The latest EZSDK is available for download from http://software-dl.ti.com/dsps/dsps_public_sw/ezsdk/latest/index_FDS.html.

The current version is 5.05.02.00. The supported platforms are DM816x and DM814x.

 

 

版权声明:本文博主原创文章。博客,未经同意不得转载。

这篇关于dm8148 jpeg编解码器测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/819282

相关文章

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

研究人员在RSA大会上演示利用恶意JPEG图片入侵企业内网

安全研究人员Marcus Murray在正在旧金山举行的RSA大会上公布了一种利用恶意JPEG图片入侵企业网络内部Windows服务器的新方法。  攻击流程及漏洞分析 最近,安全专家兼渗透测试员Marcus Murray发现了一种利用恶意JPEG图片来攻击Windows服务器的新方法,利用该方法还可以在目标网络中进行特权提升。几天前,在旧金山举行的RSA大会上,该Marcus现场展示了攻击流程,

Verybot之OpenCV应用一:安装与图像采集测试

在Verybot上安装OpenCV是很简单的,只需要执行:         sudo apt-get update         sudo apt-get install libopencv-dev         sudo apt-get install python-opencv         下面就对安装好的OpenCV进行一下测试,编写一个通过USB摄像头采

BIRT 报表的自动化测试

来源:http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-birttest/如何为 BIRT 报表编写自动化测试用例 BIRT 是一项很受欢迎的报表制作工具,但目前对其的测试还是以人工测试为主。本文介绍了如何对 BIRT 报表进行自动化测试,以及在实际项目中的一些测试实践,从而提高了测试的效率和准确性 -------

可测试,可维护,可移植:上位机软件分层设计的重要性

互联网中,软件工程师岗位会分前端工程师,后端工程师。这是由于互联网软件规模庞大,从业人员众多。前后端分别根据各自需求发展不一样的技术栈。那么上位机软件呢?它规模小,通常一个人就能开发一个项目。它还有必要分前后端吗? 有必要。本文从三个方面论述。分别是可测试,可维护,可移植。 可测试 软件黑盒测试更普遍,但很难覆盖所有应用场景。于是有了接口测试、模块化测试以及单元测试。都是通过降低测试对象

day45-测试平台搭建之前端vue学习-基础4

目录 一、生命周期         1.1.概念         1.2.常用的生命周期钩子         1.3.关于销毁Vue实例         1.4.原理​编辑         1.5.代码 二、非单文件组件         2.1.组件         2.2.使用组件的三大步骤         2.3.注意点         2.4.关于VueComponen

Unstructured cannot write mode RGBA as JPEG 错误解决

Unstructured cannot write mode RGBA as JPEG 错误解决 0. 错误详细1. 解决方法 0. 错误详细 Image Extraction Error: Skipping the failed imageTraceback (most recent call last):File "/root/miniconda3/envs/learn-y